One-time setup for a workflow session. Prompts for terminal role, sets up logging context, checks folder structure, and guides next steps. Run this once per terminal at session start.
You are in init mode. Your job is to set up a terminal for the workflow session: establish its role, configure logging, and provide next-step guidance.
Display the 4-terminal pipeline:
develop (T1, T2) feature/ (T3, T4) release, main
- Plans only - Code only - Ship it
T1: Intake šµ T2: Planner š¢ T3/T4: Worktree
(/wf-status, (/wf-spec) (/wf-implement, /wf-verify, /wf-test)
/wf-brainstorm, ā ā
/wf-bug) āāā [ready/] āāāāāāāāāāāāāāāā¤
ā ā
āāāā [active/] āāāāāāāā
ā
āāāā [verify/] āāā [human test] āāā [release PR]
T3: Builder š” T4: Validator š£
(/wf-implement) (/wf-verify, /wf-test)
ā
(staging validation)
ā
/wf-release: main ā complete
Then say: "Run /wf-help anytime to see the full strategy."
Which terminal are you?
1) T1 ā Intake šµ (/wf-status, /wf-brainstorm, /wf-bug) [Sonnet]
2) T2 ā Planner š¢ (/wf-spec) [Opus]
3) T3 ā Builder š” (/wf-implement loop) [Opus]
4) T4 ā Validator š£ (/wf-verify loop) [Sonnet]
Wait for user input (1ā4).
Based on selection, show and apply:
ā You are T2 (Planner) š¢
ā Model: Opus 4.6
ā Command: /model opus
ā Terminal color: GREEN
Set terminal background color by invoking the color command (per role):
/color blue/color green/color yellow/color purpleThen set the terminal role and invoke the next skill:
export TERMINAL_ROLE="T2 ā Planner"
/wf-next
This will automatically invoke the right skill for your role and the terminal background will remain colored.
Create/read session files:
mkdir -p .logs
if [ ! -f ".logs/SESSION_TIMESTAMP" ]; then
date +%Y-%m-%d-%s > .logs/SESSION_TIMESTAMP
echo "š New session: $(cat .logs/SESSION_TIMESTAMP)"
else
echo "š Joining session: $(cat .logs/SESSION_TIMESTAMP)"
fi
# Derive terminal ID from TERM_SESSION_ID
export SESSION_ID="$(cat .logs/SESSION_TIMESTAMP)-T${ROLE_NUM}"
echo "š Your ID: $SESSION_ID"
Then show:
ā Logging enabled to .logs/workflow.log
ā SESSION_ID: 2026-04-02-1743868195-T2
ā Queue metrics tracked automatically
Verify these folders exist (create if missing):
ā plans/ready/
ā plans/active/
ā plans/verify/
ā plans/complete/
ā plans/rolled-back/
ā bugs/open/
ā bugs/triaged/
ā bugs/closed/
Verify these branches exist (warn if missing):
ā develop (current)
ā release
ā main
If release branch does not exist locally:
ā ļø Release branch not found. Create it:
git checkout develop
git checkout -b release
git push origin release
Show:
ā Folder structure: ready
ā Branches: develop, release, main
Based on role:
T1 (Intake) šµ:
NEXT STEPS:
1. /color blue
2. /model sonnet
3. /loop 10m /wf-status
4. /wf-brainstorm to capture new ideas
5. /wf-bug to file discovered issues
6. Keep T2 fed with decided briefs
Run /wf-help to understand the flow.
T2 (Planner) š¢:
NEXT STEPS:
1. /color green
2. /model opus
3. /wf-spec BRF-001 (or pick a brief)
4. Convert briefs to plans, move to ready/
5. Keep ready/ queue at 2ā3 plans for T3
Run /wf-help to understand the flow.
T3 (Builder) š”:
NEXT STEPS:
1. /color yellow
2. /model opus
3. /wf-implement
4. Follow prompts to create feature branch + worktree
5. Switch to worktree directory (shown by /wf-implement)
6. Run /wf-implement again in the worktree to start coding
7. When done: /wf-verify ā /wf-test ā creates PR to release
After: wait for staging validation, then /wf-release moves to production.
Run /wf-help to understand the flow.
T4 (Validator) š£:
NEXT STEPS:
1. /color purple
2. /model sonnet
3. Join T3 in the worktree directory (same feature branch)
4. After /wf-implement finishes, run /wf-verify
5. If all tests pass, /wf-test walks through acceptance criteria
6. On pass, PR is created to release branch
Wait for staging validation, then /wf-release handles production.
Run /wf-help to understand the flow.
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Session: 2026-04-02-1743868195
Terminal: T2 (Planner) š¢
Background: GREEN
Model: Opus 4.6
Logging: Enabled ā .logs/workflow.log
Ready to go! Follow the NEXT STEPS above.
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
.logs/SESSION_TIMESTAMP is created by first terminal, read by others/wf-help reference in outputprecmd hook to ~/.zshrc (see step 3)Other skills check:
if [ -n "$SESSION_ID" ] && [ -d ".logs" ]; then
log_start "skill_name" "metric"
# ... do work ...
log_done "skill_name" "outcome"
else
# Logging disabled, skill still runs
# ... do work ...
fi
If user runs a skill without /wf-init, it works but doesn't log. No friction.
Users will see this after init completes:
/model [opus|sonnet] (shown in NEXT STEPS)/wf-init in each/wf-status shows healthy queues/wf-help to review strategy anytime