mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-18 18:48:48 +08:00
2.6 KiB
2.6 KiB
Phase 1: Load & Bind
Objective
Locate and load the workflow template, collect any missing context variables from the user, bind all {variable} references.
Workflow
Step 1.1 — Resolve Template Path
Parse $ARGUMENTS for template identifier:
Path resolution order:
- Absolute path: use as-is
- Relative path (starts with
.): resolve from cwd - Slug only (e.g.
feature-tdd-review): look up in.workflow/templates/index.json→ get path - Partial slug match: scan index for closest match → confirm with user
If not found:
- Show available templates from index
- AskUserQuestion: "Which template to run?"
Step 1.2 — Parse --context Arguments
Extract --context key=value pairs from $ARGUMENTS.
Examples:
--context goal="Implement user auth" --context scope="src/auth"
--context goal='Fix login bug' scope=src/auth
Build bound_context = { goal: "...", scope: "..." }.
Step 1.3 — Load Template
Read template JSON from resolved path.
Validate:
template_id,nodes,edges,context_schemaall presentnodesarray non-empty
Step 1.4 — Collect Missing Required Variables
For each variable in context_schema where required: true:
- If not in
bound_context: collect via AskUserQuestion - If has
defaultvalue: use default if not provided
AskUserQuestion({
questions: [{
question: "Provide values for required workflow inputs:",
header: "Workflow: <template.name>",
// one question per missing required variable
}]
})
For optional variables not provided: use default value or leave as empty string.
Step 1.5 — Bind Variables
Apply substitution throughout all args_template strings:
- Replace
{variable_name}withbound_context[variable_name] - Leave
{N-001.session_id}and{prev_*}references unresolved — these are runtime-resolved in Phase 3
Write bound context to memory for Phase 3 use.
Step 1.6 — Dry Run Output (if --dry-run)
Print execution plan and exit:
Workflow: <template.name>
Context:
goal = "<value>"
scope = "<value>"
Execution Plan:
[1] N-001 [skill] workflow-lite-plan "<goal>"
[2] CP-01 [checkpoint] After Plan auto-continue
[3] N-002 [skill] workflow-execute --resume-session {N-001.session_id}
[4] CP-02 [checkpoint] Before Tests pause-for-user
[5] N-003 [skill] workflow-test-fix --session {N-002.session_id}
To execute: Skill(skill="wf-player", args="<slug> --context goal='...'")
Success Criteria
- Template loaded and validated
- All required context variables bound
- bound_context{} available for Phase 2