PAW Initialization
Execution Context: This skill runs directly in the PAW session (not a subagent), as bootstrap requires user input for workflow parameters.
Bootstrap skill that initializes the PAW workflow directory structure. This runs before the workflow skill is loaded—WorkflowContext.md must exist for the workflow to function.
Capabilities
- Generate Work Title from issue URL, branch name, or user description
- Generate Work ID from Work Title (normalized, unique) unless
work_id is provided explicitly
- Create
.paw/work/<work-id>/ directory structure
- Generate WorkflowContext.md with all configuration fields
- Create and checkout git branch (explicit or auto-derived)
- Commit initial artifacts if lifecycle mode allows it
- Open WorkflowContext.md for review
Input Parameters
| Parameter |
Required |
Default |
Values |
base_branch |
No |
main |
branch name |
work_id |
No |
auto-derived from Work Title |
lowercase slug |
target_branch |
No |
auto-derive from work ID |
branch name |
execution_mode |
No |
current-checkout |
current-checkout, worktree |
repository_identity |
No |
none |
<normalized-origin-slug>@<root-commit-sha> |
execution_binding |
No |
none |
worktree:<work_id>:<target_branch> |
preset |
No |
none |
preset name (built-in or user-defined) |
workflow_mode |
No |
full |
full, minimal, custom |
review_strategy |
No |
prs (local if minimal) |
prs, local |
review_policy |
No |
milestones |
every-stage, milestones, planning-only, final-pr-only |
| {{#vscode}} |
|
|
|
session_policy |
No |
per-stage |
per-stage, continuous |
| {{/vscode}} |
|
|
|
| {{#cli}} |
|
|
|
session_policy |
No |
continuous |
continuous |
| {{/cli}} |
|
|
|
artifact_lifecycle |
No |
commit-and-clean |
commit-and-clean, commit-and-persist, never-commit |
issue_url |
No |
none |
URL |
custom_instructions |
Conditional |
— |
text (required if workflow_mode is custom) |
work_description |
No |
none |
text |
final_agent_review |
No |
enabled |
enabled, disabled |
final_review_mode |
No |
multi-model |
single-model, multi-model, society-of-thought |
final_review_interactive |
No |
smart |
true, false, smart |
final_review_models |
No |
latest GPT, latest Gemini, latest Claude Opus |
comma-separated model names or intents |
final_review_specialists |
No |
all |
all, comma-separated names, or adaptive:<N> (e.g., adaptive:3) |
final_review_interaction_mode |
No |
parallel |
parallel, debate |
final_review_specialist_models |
No |
none |
none, model pool, pinned pairs, or mixed (see below) |
final_review_perspectives |
No |
auto |
none, auto, comma-separated perspective names |
final_review_perspective_cap |
No |
2 |
positive integer |
implementation_model |
No |
none |
none (session default), or model name/intent (e.g., gpt-5.4, claude-opus-4.6-1m, latest Claude Opus) |
plan_generation_mode |
No |
single-model |
single-model, multi-model |
plan_generation_models |
No |
latest GPT, latest Gemini, latest Claude Opus |
comma-separated model names or intents |
planning_docs_review |
No |
enabled (disabled if minimal) |
enabled, disabled |
planning_review_mode |
No |
multi-model |
single-model, multi-model, society-of-thought |
planning_review_interactive |
No |
smart |
true, false, smart |
planning_review_models |
No |
latest GPT, latest Gemini, latest Claude Opus |
comma-separated model names or intents |
planning_review_specialists |
No |
all |
all, comma-separated names, or adaptive:<N> (e.g., adaptive:3) |
planning_review_interaction_mode |
No |
parallel |
parallel, debate |
planning_review_specialist_models |
No |
none |
none, model pool, pinned pairs, or mixed (see below) |
planning_review_perspectives |
No |
auto |
none, auto, comma-separated perspective names |
planning_review_perspective_cap |
No |
2 |
positive integer |
Handling Missing Parameters
When parameters are not provided:
- Apply defaults from the table above
- Check user-level defaults in
copilot-instructions.md or AGENTS.md (these override table defaults)
- If a
preset was specified, apply preset configuration (overrides steps 1-2 for fields the preset defines)
- Apply any explicit user overrides from the current request (override everything)
- Present configuration summary showing the source of each non-default field (preset, user-default, or explicit override) and ask for confirmation
- If user requests changes, update values and re-confirm
Precedence (lowest → highest): table defaults → user-level defaults → preset → explicit overrides.
Ask in this order and allow defaults where permitted.
Preset System
Presets are named bundles of configuration fields that simplify workflow initialization. Users reference a preset by name (e.g., "paw this with quick") instead of specifying individual fields.
Preset File Schema
name: my-preset
description: Short description for listing
default: false # optional; if true, applied when no preset specified
extends: base-preset # optional; inherit from another preset
initial_activity: spec # optional; spec (default), work-shaping, code-research
config:
workflow_mode: full
review_strategy: local
# ... only fields to override
Presetable fields: All configuration fields from the Input Parameters table above. Not presetable (per-workflow, ignored with warning if present in config:): base_branch, target_branch, preset, issue_url, custom_instructions, work_description. Fields not in the Input Parameters table (e.g., work_title, work_id, remote) are always non-presetable.
Built-in Presets
Canonical definitions live in references/presets/<name>.yaml. Load the specific preset file when resolving.
| Preset |
Description |
quick |
Minimal ceremony — burns through with no reviews |
standard |
Balanced local workflow with milestone review gates |
thorough |
Maximum rigor — multi-model planning, SoT debate final |
team |
PR-based collaboration with every-stage review |
auto |
Autonomous full workflow, only pauses at final PR |
auto-full |
Auto + multi-model planning with perspectives + SoT debate final |
shaping-full |
Work shaping then auto-full (interactive shaping, auto everything else) |
User Presets
User presets are YAML files at ~/.paw/presets/<name>.yaml. The filename (minus extension) is the preset name.
Preset Resolution
When a preset is specified (explicitly or via default):
- Lookup: Check
~/.paw/presets/ first, then references/presets/ for built-in. User presets override built-in presets of the same name.
- Inheritance: If preset has
extends, resolve the base preset recursively (max depth 5). Detect circular chains and report error.
- Merge: Apply fields from base → child (most-specific-wins for each field).
- Validate: Run Configuration Validation on the merged result.
- Initial activity: If the resolved preset has
initial_activity, use it for the completion response recommendation instead of the workflow-mode default.
Default preset: If no preset specified, scan user presets for one with default: true. If found, apply it. If multiple defaults found, report conflict and ask user. If none found, use standard PAW defaults. The precedence chain ensures explicit overrides still win over default preset values.
Error Handling
- Unknown preset: Report not found, list available (built-in + user)
- Invalid YAML / circular extends / multiple defaults: Report error, ask user to resolve
- Unknown fields in
config:: Warn but don't fail (forward compatibility)
- Empty preset / missing
~/.paw/presets/: Skip gracefully (no-op / no user presets)
Desired End States
Work Title
- A 2-4 word human-readable name exists
- Sources (priority order): issue title → branch name → work description
- Capitalized appropriately (e.g.,
User Auth System)
Work ID
- Unique within
.paw/work/
- Format: lowercase letters, numbers, hyphens only; 1-100 chars
- No leading/trailing/consecutive hyphens
- Not reserved (
., .., node_modules, .git, .paw)
- If
work_id is provided explicitly, validate and use it instead of regenerating it from the Work Title
- If conflict: append
-2, -3, etc.
Configuration Validation
- If
workflow_mode is minimal, review_strategy MUST be local
- If
review_policy is planning-only or final-pr-only, review_strategy MUST be local
- If
final_review_mode is society-of-thought, final_agent_review MUST be enabled
- If
planning_review_mode is society-of-thought, planning_docs_review MUST be enabled
- Invalid combinations: STOP and report error
Model Resolution
Resolve model intents to concrete model names wherever they appear (e.g., "latest GPT" → gpt-5.2, "latest Gemini" → gemini-3-pro-preview, "latest Claude Opus" → claude-opus-4.6). This applies to final_review_models, plan_generation_models, implementation_model, and all specialist model fields. Present resolved models for user confirmation and store resolved concrete model names in WorkflowContext.md (not the intent strings).
This ensures model selection is a one-time upfront decision during init, not a per-stage interruption.
Society-of-Thought Configuration (society-of-thought only)
When final_review_mode is society-of-thought:
final_review_specialists and final_review_interaction_mode become relevant
- Validate specialist values:
all, comma-separated specialist names, or adaptive:<N> where N is a positive integer
- Validate interaction mode:
parallel or debate
final_review_specialist_models becomes relevant — validate format:
none (default): all specialists use session default model
- Pool: comma-separated model names (e.g.,
gpt-5.3-codex, claude-opus-4.6) — distributed round-robin across specialists
- Pinning:
specialist:model pairs (e.g., security:claude-opus-4.6, architecture:gpt-5.3-codex) — explicit assignment
- Mixed: combination of pinned pairs and pool models (e.g.,
security:claude-opus-4.6, gpt-5.3-codex, gemini-3-pro-preview) — pinned specialists get their model, unpinned draw from pool round-robin
- Resolve model intents (e.g.,
latest GPT) using existing model intent resolution
final_review_models is ignored (use final_review_specialist_models for model diversity with society-of-thought)
final_review_perspectives becomes relevant — validate: none, auto, or comma-separated perspective names
final_review_perspective_cap becomes relevant — validate: positive integer
- Present society-of-thought config as part of the configuration summary
Planning Review Society-of-Thought Configuration (society-of-thought only)
When planning_review_mode is society-of-thought:
planning_review_specialists and planning_review_interaction_mode become relevant — validate using the same rules as final review (specialist values, interaction mode)
planning_review_specialist_models becomes relevant — validate format using the same rules as final_review_specialist_models (none, pool, pinning, mixed)
planning_review_models is ignored (use planning_review_specialist_models for model diversity with society-of-thought)
planning_review_perspectives becomes relevant — validate: none, auto, or comma-separated perspective names
planning_review_perspective_cap becomes relevant — validate: positive integer
- Present planning review society-of-thought config as part of the configuration summary
Directory Structure
.paw/work/<work-id>/
└── WorkflowContext.md
WorkflowContext.md
Created at .paw/work/<work-id>/WorkflowContext.md with all input parameters:
# WorkflowContext
Work Title: <generated_work_title>
Work ID: <work_id or generated_work_id>
Base Branch: <base_branch>
Target Branch: <target_branch>
Execution Mode: <execution_mode>
Repository Identity: <repository_identity or "none">
Execution Binding: <execution_binding or "none">
Workflow Mode: <workflow_mode>
Review Strategy: <review_strategy>
Review Policy: <review_policy>
Session Policy: <session_policy>
Final Agent Review: <final_agent_review>
Final Review Mode: <final_review_mode>
Final Review Interactive: <final_review_interactive>
Final Review Models: <final_review_models>
Final Review Specialists: <final_review_specialists>
Final Review Interaction Mode: <final_review_interaction_mode>
Final Review Specialist Models: <final_review_specialist_models>
Final Review Perspectives: <final_review_perspectives>
Final Review Perspective Cap: <final_review_perspective_cap>
Implementation Model: <implementation_model or "none">
Plan Generation Mode: <plan_generation_mode>
Plan Generation Models: <plan_generation_models>
Planning Docs Review: <planning_docs_review>
Planning Review Mode: <planning_review_mode>
Planning Review Interactive: <planning_review_interactive>
Planning Review Models: <planning_review_models>
Planning Review Specialists: <planning_review_specialists>
Planning Review Interaction Mode: <planning_review_interaction_mode>
Planning Review Specialist Models: <planning_review_specialist_models>
Planning Review Perspectives: <planning_review_perspectives>
Planning Review Perspective Cap: <planning_review_perspective_cap>
Custom Workflow Instructions: <custom_instructions or "none">
Initial Prompt: <work_description or "none">
Issue URL: <issue_url or "none">
Remote: origin
Artifact Lifecycle: <artifact_lifecycle>
Artifact Paths: auto-derived
Additional Inputs: none
Execution Contract
- If
Execution Mode is absent in an older context, treat it as current-checkout.
Repository Identity and Execution Binding are portable proof only. Never write machine-local execution paths into WorkflowContext.md.
Repository Identity format: <normalized-origin-slug>@<root-commit-sha>. Normalize origin to lowercase host/path form and strip any trailing .git before appending the root commit SHA.
Execution Binding format: worktree:<work_id>:<target_branch> in worktree mode; otherwise write none.
- Write these strings exactly in
WorkflowContext.md and compare them literally.
{{#vscode}}
- Use the local execution registry to map
Repository Identity + Execution Binding to the canonical execution checkout path for reuse and recovery.
- In worktree mode, create, reuse, or validate the execution checkout before continuing. If validation fails, STOP and give recovery guidance:
git worktree list, reopen the execution checkout, or re-initialize.
{{/vscode}}
{{#cli}}
- Do not assume a registry or automatic handoff into another checkout.
- In worktree mode, prove the intended execution checkout path with
WorkflowContext.md, git worktree list, and the repo/branch/worktree state for that candidate checkout before continuing. The session cwd may differ from the execution checkout when that path is already known or can be derived safely.
- When the session cwd differs, run git commands against that candidate/proven execution checkout path (for example,
git -C <execution-checkout-path> ... or switch cwd there) and keep artifact writes there. Do not treat the caller checkout's branch/status as authoritative proof, fallback, or a mutation target.
- If proof fails (execution checkout unknown, branch mismatch, missing metadata), STOP and give recovery guidance:
git worktree list, identify or reopen the execution checkout, or re-initialize in current-checkout mode.
{{/cli}}
- After the execution checkout is identified and proven, later workflow stages stay scoped to that checkout; they do not try to rediscover or auto-repair execution state from the caller checkout.
- Classify failures clearly:
- missing dedicated-worktree metadata → half-initialized worktree
{{#vscode}}
- missing or stale registry path → orphaned binding
{{/vscode}}
{{#cli}}
- execution checkout cannot be proven from this session → unknown checkout; stop and recover before continuing
{{/cli}}
- repository, binding, or branch mismatch → invalid reuse; do not guess or auto-repair
Git Branch
Branch creation and checkout follows paw-git-operations patterns.
Branch creation sequence (REQUIRED):
- Checkout base branch:
git checkout <base_branch>
- Update base:
git pull origin <base_branch> --ff-only
- Create feature branch:
git checkout -b <target_branch>
Never create feature branch from current HEAD without explicit checkout of base.
- Target branch exists and is checked out
- If explicit branch provided: use as-is (prompt if exists)
- If auto-derive:
feature/<work-id>
Artifact Lifecycle
commit-and-clean or commit-and-persist: WorkflowContext.md committed with message Initialize PAW workflow for <Work Title>
never-commit: .gitignore with * created in work directory as a local-only lifecycle marker; WorkflowContext.md is NOT committed and the marker itself remains untracked
User Review
- WorkflowContext.md presented for user review/confirmation
Completion Response
Report initialization results to PAW agent including: work ID, workflow mode, target branch, and the recommended next step. Next step defaults by workflow mode (full → spec, minimal → code research, custom → per instructions) but is overridden by the preset's initial_activity if set (e.g., work-shaping).
Validation Checklist
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: paw-init3description: Bootstrap skill for PAW workflow initialization. Creates WorkflowContext.md, directory structure, and git branch. Runs before workflow skill is loaded. Use when this capability is needed.4---56# PAW Initialization78> **Execution Context**: This skill runs **directly** in the PAW session (not a subagent), as bootstrap requires user input for workflow parameters.910Bootstrap skill that initializes the PAW workflow directory structure. This runs **before** the workflow skill is loaded—WorkflowContext.md must exist for the workflow to function.1112## Capabilities1314- Generate Work Title from issue URL, branch name, or user description15- Generate Work ID from Work Title (normalized, unique) unless `work_id` is provided explicitly16- Create `.paw/work/<work-id>/` directory structure17- Generate WorkflowContext.md with all configuration fields18- Create and checkout git branch (explicit or auto-derived)19- Commit initial artifacts if lifecycle mode allows it20- Open WorkflowContext.md for review2122## Input Parameters2324| Parameter | Required | Default | Values |25|-----------|----------|---------|--------|26| `base_branch` | No | `main` | branch name |27| `work_id` | No | auto-derived from Work Title | lowercase slug |28| `target_branch` | No | auto-derive from work ID | branch name |29| `execution_mode` | No | `current-checkout` | `current-checkout`, `worktree` |30| `repository_identity` | No | `none` | `<normalized-origin-slug>@<root-commit-sha>` |31| `execution_binding` | No | `none` | `worktree:<work_id>:<target_branch>` |32| `preset` | No | none | preset name (built-in or user-defined) |33| `workflow_mode` | No | `full` | `full`, `minimal`, `custom` |34| `review_strategy` | No | `prs` (`local` if minimal) | `prs`, `local` |35| `review_policy` | No | `milestones` | `every-stage`, `milestones`, `planning-only`, `final-pr-only` |36{{#vscode}}37| `session_policy` | No | `per-stage` | `per-stage`, `continuous` |38{{/vscode}}39{{#cli}}40| `session_policy` | No | `continuous` | `continuous` |41{{/cli}}42| `artifact_lifecycle` | No | `commit-and-clean` | `commit-and-clean`, `commit-and-persist`, `never-commit` |43| `issue_url` | No | none | URL |44| `custom_instructions` | Conditional | — | text (required if `workflow_mode` is `custom`) |45| `work_description` | No | none | text |46| `final_agent_review` | No | `enabled` | `enabled`, `disabled` |47| `final_review_mode` | No | `multi-model` | `single-model`, `multi-model`, `society-of-thought` |48| `final_review_interactive` | No | `smart` | `true`, `false`, `smart` |49| `final_review_models` | No | `latest GPT, latest Gemini, latest Claude Opus` | comma-separated model names or intents |50| `final_review_specialists` | No | `all` | `all`, comma-separated names, or `adaptive:<N>` (e.g., `adaptive:3`) |51| `final_review_interaction_mode` | No | `parallel` | `parallel`, `debate` |52| `final_review_specialist_models` | No | `none` | `none`, model pool, pinned pairs, or mixed (see below) |53| `final_review_perspectives` | No | `auto` | `none`, `auto`, comma-separated perspective names |54| `final_review_perspective_cap` | No | `2` | positive integer |55| `implementation_model` | No | `none` | `none` (session default), or model name/intent (e.g., `gpt-5.4`, `claude-opus-4.6-1m`, `latest Claude Opus`) |56| `plan_generation_mode` | No | `single-model` | `single-model`, `multi-model` |57| `plan_generation_models` | No | `latest GPT, latest Gemini, latest Claude Opus` | comma-separated model names or intents |58| `planning_docs_review` | No | `enabled` (`disabled` if minimal) | `enabled`, `disabled` |59| `planning_review_mode` | No | `multi-model` | `single-model`, `multi-model`, `society-of-thought` |60| `planning_review_interactive` | No | `smart` | `true`, `false`, `smart` |61| `planning_review_models` | No | `latest GPT, latest Gemini, latest Claude Opus` | comma-separated model names or intents |62| `planning_review_specialists` | No | `all` | `all`, comma-separated names, or `adaptive:<N>` (e.g., `adaptive:3`) |63| `planning_review_interaction_mode` | No | `parallel` | `parallel`, `debate` |64| `planning_review_specialist_models` | No | `none` | `none`, model pool, pinned pairs, or mixed (see below) |65| `planning_review_perspectives` | No | `auto` | `none`, `auto`, comma-separated perspective names |66| `planning_review_perspective_cap` | No | `2` | positive integer |6768### Handling Missing Parameters6970When parameters are not provided:711. Apply defaults from the table above722. Check user-level defaults in `copilot-instructions.md` or `AGENTS.md` (these override table defaults)733. If a `preset` was specified, apply preset configuration (overrides steps 1-2 for fields the preset defines)744. Apply any explicit user overrides from the current request (override everything)755. **Present configuration summary** showing the source of each non-default field (preset, user-default, or explicit override) and ask for confirmation766. If user requests changes, update values and re-confirm7778Precedence (lowest → highest): table defaults → user-level defaults → preset → explicit overrides.7980Ask in this order and allow defaults where permitted.8182## Preset System8384Presets are named bundles of configuration fields that simplify workflow initialization. Users reference a preset by name (e.g., "paw this with quick") instead of specifying individual fields.8586### Preset File Schema8788```yaml89name: my-preset90description: Short description for listing91default: false # optional; if true, applied when no preset specified92extends: base-preset # optional; inherit from another preset93initial_activity: spec # optional; spec (default), work-shaping, code-research94config:95 workflow_mode: full96 review_strategy: local97 # ... only fields to override98```99100**Presetable fields**: All configuration fields from the Input Parameters table above. **Not presetable** (per-workflow, ignored with warning if present in `config:`): `base_branch`, `target_branch`, `preset`, `issue_url`, `custom_instructions`, `work_description`. Fields not in the Input Parameters table (e.g., `work_title`, `work_id`, `remote`) are always non-presetable.101102### Built-in Presets103104Canonical definitions live in `references/presets/<name>.yaml`. Load the specific preset file when resolving.105106| Preset | Description |107|--------|-------------|108| `quick` | Minimal ceremony — burns through with no reviews |109| `standard` | Balanced local workflow with milestone review gates |110| `thorough` | Maximum rigor — multi-model planning, SoT debate final |111| `team` | PR-based collaboration with every-stage review |112| `auto` | Autonomous full workflow, only pauses at final PR |113| `auto-full` | Auto + multi-model planning with perspectives + SoT debate final |114| `shaping-full` | Work shaping then auto-full (interactive shaping, auto everything else) |115116### User Presets117118User presets are YAML files at `~/.paw/presets/<name>.yaml`. The filename (minus extension) is the preset name.119120### Preset Resolution121122When a preset is specified (explicitly or via default):1231241. **Lookup**: Check `~/.paw/presets/` first, then `references/presets/` for built-in. User presets override built-in presets of the same name.1252. **Inheritance**: If preset has `extends`, resolve the base preset recursively (max depth 5). Detect circular chains and report error.1263. **Merge**: Apply fields from base → child (most-specific-wins for each field).1274. **Validate**: Run Configuration Validation on the merged result.1285. **Initial activity**: If the resolved preset has `initial_activity`, use it for the completion response recommendation instead of the workflow-mode default.129130**Default preset**: If no preset specified, scan user presets for one with `default: true`. If found, apply it. If multiple defaults found, report conflict and ask user. If none found, use standard PAW defaults. The precedence chain ensures explicit overrides still win over default preset values.131132### Error Handling133134- **Unknown preset**: Report not found, list available (built-in + user)135- **Invalid YAML / circular extends / multiple defaults**: Report error, ask user to resolve136- **Unknown fields in `config:`**: Warn but don't fail (forward compatibility)137- **Empty preset / missing `~/.paw/presets/`**: Skip gracefully (no-op / no user presets)138139## Desired End States140141### Work Title142- A 2-4 word human-readable name exists143- Sources (priority order): issue title → branch name → work description144- Capitalized appropriately (e.g., `User Auth System`)145146### Work ID147- Unique within `.paw/work/`148- Format: lowercase letters, numbers, hyphens only; 1-100 chars149- No leading/trailing/consecutive hyphens150- Not reserved (`.`, `..`, `node_modules`, `.git`, `.paw`)151- If `work_id` is provided explicitly, validate and use it instead of regenerating it from the Work Title152- If conflict: append `-2`, `-3`, etc.153154### Configuration Validation155- If `workflow_mode` is `minimal`, `review_strategy` MUST be `local`156- If `review_policy` is `planning-only` or `final-pr-only`, `review_strategy` MUST be `local`157- If `final_review_mode` is `society-of-thought`, `final_agent_review` MUST be `enabled`158- If `planning_review_mode` is `society-of-thought`, `planning_docs_review` MUST be `enabled`159- Invalid combinations: STOP and report error160161### Model Resolution162Resolve model intents to concrete model names wherever they appear (e.g., "latest GPT" → `gpt-5.2`, "latest Gemini" → `gemini-3-pro-preview`, "latest Claude Opus" → `claude-opus-4.6`). This applies to `final_review_models`, `plan_generation_models`, `implementation_model`, and all specialist model fields. Present resolved models for user confirmation and store **resolved concrete model names** in WorkflowContext.md (not the intent strings).163164This ensures model selection is a one-time upfront decision during init, not a per-stage interruption.165166### Society-of-Thought Configuration (society-of-thought only)167When `final_review_mode` is `society-of-thought`:168- `final_review_specialists` and `final_review_interaction_mode` become relevant169- Validate specialist values: `all`, comma-separated specialist names, or `adaptive:<N>` where N is a positive integer170- Validate interaction mode: `parallel` or `debate`171- `final_review_specialist_models` becomes relevant — validate format:172 - `none` (default): all specialists use session default model173 - **Pool**: comma-separated model names (e.g., `gpt-5.3-codex, claude-opus-4.6`) — distributed round-robin across specialists174 - **Pinning**: `specialist:model` pairs (e.g., `security:claude-opus-4.6, architecture:gpt-5.3-codex`) — explicit assignment175 - **Mixed**: combination of pinned pairs and pool models (e.g., `security:claude-opus-4.6, gpt-5.3-codex, gemini-3-pro-preview`) — pinned specialists get their model, unpinned draw from pool round-robin176 - Resolve model intents (e.g., `latest GPT`) using existing model intent resolution177- `final_review_models` is ignored (use `final_review_specialist_models` for model diversity with society-of-thought)178- `final_review_perspectives` becomes relevant — validate: `none`, `auto`, or comma-separated perspective names179- `final_review_perspective_cap` becomes relevant — validate: positive integer180- Present society-of-thought config as part of the configuration summary181182### Planning Review Society-of-Thought Configuration (society-of-thought only)183When `planning_review_mode` is `society-of-thought`:184- `planning_review_specialists` and `planning_review_interaction_mode` become relevant — validate using the same rules as final review (specialist values, interaction mode)185- `planning_review_specialist_models` becomes relevant — validate format using the same rules as `final_review_specialist_models` (none, pool, pinning, mixed)186- `planning_review_models` is ignored (use `planning_review_specialist_models` for model diversity with society-of-thought)187- `planning_review_perspectives` becomes relevant — validate: `none`, `auto`, or comma-separated perspective names188- `planning_review_perspective_cap` becomes relevant — validate: positive integer189- Present planning review society-of-thought config as part of the configuration summary190191### Directory Structure192```193.paw/work/<work-id>/194└── WorkflowContext.md195```196197### WorkflowContext.md198Created at `.paw/work/<work-id>/WorkflowContext.md` with all input parameters:199200```markdown201# WorkflowContext202203Work Title: <generated_work_title>204Work ID: <work_id or generated_work_id>205Base Branch: <base_branch>206Target Branch: <target_branch>207Execution Mode: <execution_mode>208Repository Identity: <repository_identity or "none">209Execution Binding: <execution_binding or "none">210Workflow Mode: <workflow_mode>211Review Strategy: <review_strategy>212Review Policy: <review_policy>213Session Policy: <session_policy>214Final Agent Review: <final_agent_review>215Final Review Mode: <final_review_mode>216Final Review Interactive: <final_review_interactive>217Final Review Models: <final_review_models>218Final Review Specialists: <final_review_specialists>219Final Review Interaction Mode: <final_review_interaction_mode>220Final Review Specialist Models: <final_review_specialist_models>221Final Review Perspectives: <final_review_perspectives>222Final Review Perspective Cap: <final_review_perspective_cap>223Implementation Model: <implementation_model or "none">224Plan Generation Mode: <plan_generation_mode>225Plan Generation Models: <plan_generation_models>226Planning Docs Review: <planning_docs_review>227Planning Review Mode: <planning_review_mode>228Planning Review Interactive: <planning_review_interactive>229Planning Review Models: <planning_review_models>230Planning Review Specialists: <planning_review_specialists>231Planning Review Interaction Mode: <planning_review_interaction_mode>232Planning Review Specialist Models: <planning_review_specialist_models>233Planning Review Perspectives: <planning_review_perspectives>234Planning Review Perspective Cap: <planning_review_perspective_cap>235Custom Workflow Instructions: <custom_instructions or "none">236Initial Prompt: <work_description or "none">237Issue URL: <issue_url or "none">238Remote: origin239Artifact Lifecycle: <artifact_lifecycle>240Artifact Paths: auto-derived241Additional Inputs: none242```243244### Execution Contract245246- If `Execution Mode` is absent in an older context, treat it as `current-checkout`.247- `Repository Identity` and `Execution Binding` are portable proof only. Never write machine-local execution paths into `WorkflowContext.md`.248- `Repository Identity` format: `<normalized-origin-slug>@<root-commit-sha>`. Normalize `origin` to lowercase `host/path` form and strip any trailing `.git` before appending the root commit SHA.249- `Execution Binding` format: `worktree:<work_id>:<target_branch>` in worktree mode; otherwise write `none`.250- Write these strings exactly in `WorkflowContext.md` and compare them literally.251{{#vscode}}252- Use the local execution registry to map `Repository Identity + Execution Binding` to the canonical execution checkout path for reuse and recovery.253- In worktree mode, create, reuse, or validate the execution checkout before continuing. If validation fails, STOP and give recovery guidance: `git worktree list`, reopen the execution checkout, or re-initialize.254{{/vscode}}255{{#cli}}256- Do not assume a registry or automatic handoff into another checkout.257- In worktree mode, prove the intended execution checkout path with `WorkflowContext.md`, `git worktree list`, and the repo/branch/worktree state for that candidate checkout before continuing. The session cwd may differ from the execution checkout when that path is already known or can be derived safely.258- When the session cwd differs, run git commands against that candidate/proven execution checkout path (for example, `git -C <execution-checkout-path> ...` or switch cwd there) and keep artifact writes there. Do not treat the caller checkout's branch/status as authoritative proof, fallback, or a mutation target.259- If proof fails (execution checkout unknown, branch mismatch, missing metadata), STOP and give recovery guidance: `git worktree list`, identify or reopen the execution checkout, or re-initialize in `current-checkout` mode.260{{/cli}}261- After the execution checkout is identified and proven, later workflow stages stay scoped to that checkout; they do not try to rediscover or auto-repair execution state from the caller checkout.262- Classify failures clearly:263 - missing dedicated-worktree metadata → half-initialized worktree264{{#vscode}}265 - missing or stale registry path → orphaned binding266{{/vscode}}267{{#cli}}268 - execution checkout cannot be proven from this session → unknown checkout; stop and recover before continuing269{{/cli}}270 - repository, binding, or branch mismatch → invalid reuse; do not guess or auto-repair271272### Git Branch273> Branch creation and checkout follows `paw-git-operations` patterns.274275**Branch creation sequence** (REQUIRED):2761. Checkout base branch: `git checkout <base_branch>`2772. Update base: `git pull origin <base_branch> --ff-only`2783. Create feature branch: `git checkout -b <target_branch>`279280Never create feature branch from current HEAD without explicit checkout of base.281282- Target branch exists and is checked out283- If explicit branch provided: use as-is (prompt if exists)284- If auto-derive: `feature/<work-id>`285286### Artifact Lifecycle287- **`commit-and-clean` or `commit-and-persist`**: WorkflowContext.md committed with message `Initialize PAW workflow for <Work Title>`288- **`never-commit`**: `.gitignore` with `*` created in work directory as a local-only lifecycle marker; WorkflowContext.md is NOT committed and the marker itself remains untracked289290### User Review291- WorkflowContext.md presented for user review/confirmation292293## Completion Response294295Report initialization results to PAW agent including: work ID, workflow mode, target branch, and the recommended next step. Next step defaults by workflow mode (full → spec, minimal → code research, custom → per instructions) but is overridden by the preset's `initial_activity` if set (e.g., `work-shaping`).296297## Validation Checklist298299- [ ] Work ID is unique and valid format300- [ ] Review strategy valid for workflow mode301- [ ] WorkflowContext.md created with all fields302- [ ] Git branch created and checked out303- [ ] Artifacts committed (if lifecycle is `commit-and-clean` or `commit-and-persist`)304- [ ] WorkflowContext.md opened for review305306---307> Converted and distributed by [TomeVault](https://tomevault.io/claim/lossyrob) — claim your Tome and manage your conversions.308<!-- tomevault:4.0:skill_md:2026-04-11 -->