@yunhozz/arc 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/MANIFEST.sha256 +31 -27
  2. package/claude/agents/arc-planner.md +3 -3
  3. package/claude/skill/SKILL.md +2 -2
  4. package/claude/skill/models.toml +11 -11
  5. package/claude/skill/references/brainstorming.md +111 -42
  6. package/claude/skill/references/coordination.md +3 -3
  7. package/claude/skill/references/planning.md +6 -6
  8. package/claude/skill/references/superpowers-provenance.json +3 -3
  9. package/claude/skill/runtime/role-policy.json +3 -3
  10. package/claude/skill/scripts/model_config.py +17 -5
  11. package/codex/agents/arc-planner.toml +3 -3
  12. package/codex/skill/SKILL.md +2 -2
  13. package/codex/skill/models.toml +13 -13
  14. package/codex/skill/references/brainstorming.md +111 -42
  15. package/codex/skill/references/coordination.md +3 -3
  16. package/codex/skill/references/planning.md +6 -6
  17. package/codex/skill/references/superpowers-provenance.json +3 -3
  18. package/codex/skill/runtime/role-policy.json +3 -3
  19. package/codex/skill/scripts/model_config.py +25 -6
  20. package/lib/installer/global-config.mjs +1 -1
  21. package/lib/installer/plan.mjs +6 -5
  22. package/lib/installer/preset.mjs +7 -4
  23. package/lib/management/operations.mjs +1 -1
  24. package/lib/models/catalog-anthropic.mjs +46 -0
  25. package/lib/models/catalog.mjs +62 -0
  26. package/lib/models/codex-catalog.mjs +103 -0
  27. package/lib/models/config.mjs +19 -11
  28. package/lib/models/index.mjs +1 -1
  29. package/lib/policy/role-policy.json +3 -3
  30. package/lib/tui/app.mjs +15 -9
  31. package/lib/tui/custom-preset.mjs +122 -0
  32. package/lib/tui/render.mjs +3 -2
  33. package/lib/tui/setup.mjs +62 -6
  34. package/package.json +1 -1
@@ -22,7 +22,7 @@ If explicitly requested probe+implementation is fully specified, classify the wh
22
22
 
23
23
  Initial design/brainstorming may precede target choice. Formal spec/plan includes complete pre-save drafts returned only in chat. Before that, Orchestrator records actual absolute workspace/repository, branch/detached HEAD/HEAD, changes/ownership, explicit choice/preparation and in-target absolute document paths. Planner drafts for verified target; Orchestrator saves there. Missing/mismatched evidence stops affected drafting/saving. Planned paths prove no actual preparation. Initial preparation never starts Implementer without full handoff.
24
24
 
25
- Small-task direct edits follow only [handoff](handoff.md#orchestrator-direct-path-for-small-tasks), stopping/reclassifying changed scope/risk. Otherwise follow this reference. `brainstorming`/`writing-plans` instruct existing roles, not extra agents; ARC routing/approval overrides alternate executors. Missing required skills block their stage. Integration means save/route/request approval, never author.
25
+ Small-task direct edits follow only [handoff](handoff.md#orchestrator-direct-path-for-small-tasks), stopping/reclassifying changed scope/risk. Otherwise follow this reference. `brainstorming`/`writing-plans` instruct existing roles, not extra agents; ARC routing/approval overrides alternate executors. Missing required skills block their stage. Integration includes saving, reviewing and directly revising the same spec or plan after the complete Planner first draft; design/brainstorming retain their Planner drafting path.
26
26
 
27
27
  For Korean requests/briefs, Planner uses Korean titles/prose unless another language is requested, preserving identifiers, skill/API names, code, paths, commands and literals. Orchestrator preserves agreed language when saving.
28
28
 
@@ -34,10 +34,10 @@ Planner reports initial/revision progress only to Orchestrator: brief stage/feed
34
34
  1. Preflight relevant policy/references/profiles/tests/parity/manifest/conflicts. Apply formal-target and coordination provenance/input/local-skill gates, including required paths, approved bounded read alternatives and return conditions. Missing inputs/conflicts hold drafting. Read recovery grants no preparation/check/write/approval authority.
35
35
  2. Maintain a compact ledger of original requirements/IDs, approved/open decisions, exclusions and scope deltas. Consolidate intervening user changes into one brief delta. Separate approvals, path/line-verified facts, assumptions and open decisions.
36
36
  3. Send one complete stage-specific initial brief: prepared target/HEAD/ownership, scope/exclusions/depth/dependencies/shared contracts/criteria/checks/evidence/holds; preceding approved versions, paths, current behavior and connected source/generated/runtime/installer/docs, policy conflicts/resolution direction and exact deliverable. Visual work includes approved sources/versions/criteria/open interpretations.
37
- 4. Planner returns complete proportional draft/self-review; Orchestrator integrates/saves/reviews/requests approval without authoring missing content. Review once with the fixed checklist: scope/evidence; targets/ownership/paths; policy/conflicts; task boundaries/dependencies/criteria; checks/evidence/holds; roles/approval/commit boundaries; completeness. Finish before one consolidated correction covering every substantive omission with criterion/defect/evidence/expected fix. Use deltas/`unchanged`; never split by omission.
38
- 5. Further calls after correction need approved material scope/evidence changes or concrete unmet checklist items plus meaningful new input/criterion progress. State changed input/target criterion/expected artifact/progress. Existing-scope omissions need no renewed scope approval. Repeated unmet criteria without new input/evidence/progress hold the stage; report criterion/observation/exact unblock decision. Do not repeat resolved questions or count rewording/agent replacement as progress.
37
+ 4. Planner returns the complete proportional first draft and self-review. Orchestrator saves and reviews it against the fixed checklist: scope/evidence; targets/ownership/paths; policy/conflicts; task boundaries/dependencies/criteria; checks/evidence/holds; roles/approval/commit boundaries; completeness. For spec or plan, Orchestrator directly revises the same document, including substantive omissions, before requesting approval. New product decisions outside approved scope require user input first; Orchestrator then revises the document. Missing or failed first drafts stop the stage and do not transfer initial authorship.
38
+ 5. For design and brainstorming, finish the checklist before one consolidated correction covering every substantive omission with criterion/defect/evidence/expected fix. Use deltas/`unchanged`; never split by omission. Further calls after correction need approved material scope/evidence changes or concrete unmet checklist items plus meaningful new input/criterion progress. State changed input/target criterion/expected artifact/progress. Existing-scope omissions need no renewed scope approval. Repeated unmet criteria without new input/evidence/progress hold the stage; report criterion/observation/exact unblock decision. Do not repeat resolved questions or count rewording/agent replacement as progress.
39
39
 
40
- Allow initial draft and one consolidated correction. Reformatting/re-expression/save/patch errors belong to Orchestrator, not Planner calls. Separate substantive work uses normal gates. Design/spec/plan stages remain separately ordered; spec approval precedes dependent planning. Add no fixed call cap/profile count condition or incomplete-draft acceptance.
40
+ For design and brainstorming, allow initial draft and one consolidated correction. Reformatting/re-expression/save/patch errors belong to Orchestrator, not Planner calls. Separate substantive work uses normal gates. Design/spec/plan stages remain separately ordered; spec approval precedes dependent planning. Add no fixed call cap/profile count condition or incomplete-draft acceptance.
41
41
 
42
42
  <a id="design-and-planning"></a>
43
43
  <a id="design-path-and-plan-depth"></a>
@@ -53,7 +53,7 @@ Record depth separately from risk. Risk controls checks/review, not design paths
53
53
 
54
54
  If Bounded requires written spec, record necessity/scope using approved short design as basis. Planner returns proportional full spec/self-review; Orchestrator saves/reviews/obtains individual approval before dependent plan/preparation. Short design approval never substitutes. This applies recorded judgment, not new spec necessity. Required plans alone imply no written spec.
55
55
 
56
- Only Planner drafts. Never substitute Orchestrator-authored specs/plans. Return substantive omissions; unavailable/failed Planner stops work rather than transferring authorship. Design approval does not transfer ownership.
56
+ Only Planner authors the first complete spec or plan draft and self-review. Orchestrator reviews and directly revises the same document before approval. Unavailable/failed Planner stops first drafting rather than transferring authorship. Design approval does not transfer initial authorship.
57
57
 
58
58
  <a id="top-level-plan-tasks"></a>
59
59
  ## Top-level plan tasks
@@ -143,7 +143,7 @@ Generated from lib/policy/role-policy.json; do not edit this managed section man
143
143
  - [review.significant-plan] Significant/high-risk plan work follows Implementer → required fresh QA → Orchestrator acceptance and focused commit for each task. After all tasks are accepted and required QA is complete, Reviewer reviews the final full change once. Reviewer is not a per-task or per-commit gate. Preserve required checks and necessary finding rechecks.
144
144
  - [review.final-plan-recheck] Final overall Reviewer findings on plan work, including behavior findings, follow Implementer → Reviewer without QA reassignment until resolved. This exception applies only at the final plan stage. Preserve required QA and QA failure rechecks before the initial final review and outside this exception.
145
145
  - [planning.plan-amend] Mechanical plan progress records during approved execution need no new user approval. Changes to goals, scope, criteria, method, risk, dependencies or required verification need revised-version approval and preparation before affected work. In both cases Orchestrator amends the original planning-document commit at a safe boundary, with no separate document or fixup commit. Preserve actual approval chronology, recoverable old/new content, hashes, versions and SHA mappings; never authorize past work retroactively. Rewrite only unpublished, unshared local linear history with clear ownership and no merges. Unknown publication/ownership, unexpected state or replay conflicts stop rewriting; no force push or fallback document commit. Preserve implementation task boundaries and revalidate affected evidence. Follow planning, handoff-prep, commit and verification for the full contract.
146
- - [planning.planner-brief] Follow planning.md's Planner drafting preparation and consolidated feedback procedure, including preflight, ledger, evidence classification, target preparation, preceding approvals, provenance and reference gates. Allow the initial draft and one consolidated correction. Send one complete stage-specific initial brief. Planner returns a complete proportional draft and self-review. Orchestrator reviews once with the fixed checklist and sends one consolidated correction using changed fields only. Further calls require user-approved material scope/evidence changes or concrete unmet checklist items after correction, plus meaningful new input or criterion-state progress. State changed input, target criterion, expected artifact and expected progress. Hold repeated unmet criteria without new input, evidence or progress; report the criterion, observed evidence and exact unblock input/decision. Do not split omissions, repeat resolved items or count rewording/agent replacement as progress. Do not invoke Planner only for reformatting, re-expression, save errors or patch-application errors; Orchestrator handles these. Evaluate separate substantive work under the normal Planner gate. Preserve separate sequential design/spec/plan approvals. Add no fixed call cap or profile call-count conditions, and never accept an incomplete draft. Keep user progress brief and based on Planner status without relaying draft content. At approval, present the integrated, saved and reviewed Markdown without repeating its body in chat.
146
+ - [planning.planner-brief] Follow planning.md's Planner drafting preparation and review procedure, including preflight, ledger, evidence classification, target preparation, preceding approvals, provenance and reference gates. Send one complete stage-specific initial brief. Planner returns a complete proportional first draft and self-review. Orchestrator reviews and directly revises the same spec or plan when needed. A missing or failed first draft does not transfer initial authorship to Orchestrator. New product decisions outside approved scope require user input before Orchestrator revises the document. For design and brainstorming, allow the initial draft and one consolidated correction. Orchestrator reviews once with the fixed checklist and sends one consolidated correction using changed fields only. Further calls require user-approved material scope/evidence changes or concrete unmet checklist items after correction, plus meaningful new input or criterion-state progress. State changed input, target criterion, expected artifact and expected progress. Repeated unmet criteria without new input, evidence or progress hold the stage; report the criterion, observed evidence and exact unblock input/decision. Do not split omissions, repeat resolved items or count rewording/agent replacement as progress. Do not invoke Planner only for reformatting, re-expression, save errors or patch-application errors; Orchestrator handles these. Evaluate separate substantive work under the normal Planner gate. Preserve separate sequential design/spec/plan approvals. Add no fixed call cap or profile call-count conditions, and never accept an incomplete draft. Keep user progress brief and based on Planner status without relaying draft content. At approval, present the integrated, saved and reviewed Markdown without repeating its body in chat.
147
147
  - [platform.claude] Existing per-role tool allowlists reduce available tools; Bash and role contracts are not a filesystem sandbox. ARC supplies no native observer hook or Bash Git guard; Git restrictions remain prompt-level role contracts.
148
148
  [ARC role policy: contract end]
149
149
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "repository": "https://github.com/obra/superpowers",
4
- "revision": "bb92a77741419a4ab5f06e711a283343f1ada0c3",
5
- "fetchedAt": "2026-10-17T07:50:01.077Z",
4
+ "revision": "2ce8aa15d05bd57213e6f746f953aafb7ded7a8b",
5
+ "fetchedAt": "2026-10-29T17:10:27.098Z",
6
6
  "skills": [
7
7
  "brainstorming",
8
8
  "writing-plans",
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "files": {
12
12
  "LICENSE": "a37e0e9697144819e1d965176ac4ae5bc3fa02d11e7812036bbcadf6dafe2400",
13
- "brainstorming/SKILL.md": "6ee10d1481b8a2580d5336ff66c5c08acc9d4b251b13bbc3bfd31be99c261d43",
13
+ "brainstorming/SKILL.md": "61a7ef918652108c76a3fd01e02dd92d39996c6b46d4cb2819cbd03f6c45e46a",
14
14
  "brainstorming/builder-check-prompt.md": "36d51a4723d6f0a3ce5811a0ea3b3a8424f07533947e1355f5d8cb8cce40c55e",
15
15
  "brainstorming/scripts/frame-template.html": "6a8a4e58bd6a44b904e2e3c57de774481d909204597e1498de53f1b2fecc4c4e",
16
16
  "brainstorming/scripts/helper.js": "43c6d69954a46ec34a2a262bcc62a9a7e83e839c739f199cb72646d397c686e3",
@@ -150,7 +150,7 @@
150
150
  "role-ownership"
151
151
  ],
152
152
  "authority": "orchestrator",
153
- "text": "Assign design/spec/plan/brainstorming drafts only to Planner and implementation/configuration/test edits to Implementer. Orchestrator saves complete drafts and owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation remains limited to the existing small, low-risk path. Use a fresh Implementer per top-level task and a fresh QA per task requiring QA; QA findings alone do not create a new task. While approved scope, workspace, ownership and assignment context remain valid, default same-task corrections to the current Implementer and post-fix rechecks to the current QA. Replace or restart a role only for invalid/unavailable context or a changed task boundary, except that an approved plan or acceptance-criteria amendment requires a fresh Implementer even within the same task. Before Implementer reuse, refresh actual workspace, branch/HEAD and change state. QA reruns reproduction and invalidated related checks and reports actor, target state, outcomes and limits. Preserve task-boundary acceptance and the final plan Reviewer correction exception.",
153
+ "text": "Assign design/brainstorming drafts and first complete spec/plan drafts only to Planner and implementation/configuration/test edits to Implementer. Orchestrator saves and reviews complete spec/plan drafts and directly revises the same document when needed. Missing or failed first drafts do not transfer initial authorship. New product decisions outside approved scope require user input before revision. Orchestrator owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation remains limited to the existing small, low-risk path. Use a fresh Implementer per top-level task and a fresh QA per task requiring QA; QA findings alone do not create a new task. While approved scope, workspace, ownership and assignment context remain valid, default same-task corrections to the current Implementer and post-fix rechecks to the current QA. Replace or restart a role only for invalid/unavailable context or a changed task boundary, except that an approved plan or acceptance-criteria amendment requires a fresh Implementer even within the same task. Before Implementer reuse, refresh actual workspace, branch/HEAD and change state. QA reruns reproduction and invalidated related checks and reports actor, target state, outcomes and limits. Preserve task-boundary acceptance and the final plan Reviewer correction exception.",
154
154
  "controls": {
155
155
  "codex": "prompt",
156
156
  "claude": "prompt"
@@ -190,7 +190,7 @@
190
190
  "approved-spec-before-dependent-plan"
191
191
  ],
192
192
  "authority": "orchestrator",
193
- "text": "Return design/spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete draft and self-review for review and correction. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.",
193
+ "text": "Return design/brainstorming drafts and complete first spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete first draft and self-review for Orchestrator review; Orchestrator directly revises the same spec or plan when needed. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.",
194
194
  "controls": {
195
195
  "codex": "prompt",
196
196
  "claude": "prompt"
@@ -372,7 +372,7 @@
372
372
  "preceding-approval"
373
373
  ],
374
374
  "authority": "orchestrator",
375
- "text": "Follow planning.md's Planner drafting preparation and consolidated feedback procedure, including preflight, ledger, evidence classification, target preparation, preceding approvals, provenance and reference gates. Allow the initial draft and one consolidated correction. Send one complete stage-specific initial brief. Planner returns a complete proportional draft and self-review. Orchestrator reviews once with the fixed checklist and sends one consolidated correction using changed fields only. Further calls require user-approved material scope/evidence changes or concrete unmet checklist items after correction, plus meaningful new input or criterion-state progress. State changed input, target criterion, expected artifact and expected progress. Hold repeated unmet criteria without new input, evidence or progress; report the criterion, observed evidence and exact unblock input/decision. Do not split omissions, repeat resolved items or count rewording/agent replacement as progress. Do not invoke Planner only for reformatting, re-expression, save errors or patch-application errors; Orchestrator handles these. Evaluate separate substantive work under the normal Planner gate. Preserve separate sequential design/spec/plan approvals. Add no fixed call cap or profile call-count conditions, and never accept an incomplete draft. Keep user progress brief and based on Planner status without relaying draft content. At approval, present the integrated, saved and reviewed Markdown without repeating its body in chat.",
375
+ "text": "Follow planning.md's Planner drafting preparation and review procedure, including preflight, ledger, evidence classification, target preparation, preceding approvals, provenance and reference gates. Send one complete stage-specific initial brief. Planner returns a complete proportional first draft and self-review. Orchestrator reviews and directly revises the same spec or plan when needed. A missing or failed first draft does not transfer initial authorship to Orchestrator. New product decisions outside approved scope require user input before Orchestrator revises the document. For design and brainstorming, allow the initial draft and one consolidated correction. Orchestrator reviews once with the fixed checklist and sends one consolidated correction using changed fields only. Further calls require user-approved material scope/evidence changes or concrete unmet checklist items after correction, plus meaningful new input or criterion-state progress. State changed input, target criterion, expected artifact and expected progress. Repeated unmet criteria without new input, evidence or progress hold the stage; report the criterion, observed evidence and exact unblock input/decision. Do not split omissions, repeat resolved items or count rewording/agent replacement as progress. Do not invoke Planner only for reformatting, re-expression, save errors or patch-application errors; Orchestrator handles these. Evaluate separate substantive work under the normal Planner gate. Preserve separate sequential design/spec/plan approvals. Add no fixed call cap or profile call-count conditions, and never accept an incomplete draft. Keep user progress brief and based on Planner status without relaying draft content. At approval, present the integrated, saved and reviewed Markdown without repeating its body in chat.",
376
376
  "controls": {
377
377
  "codex": "prompt",
378
378
  "claude": "prompt"
@@ -39,10 +39,14 @@ def _validate_role(settings: dict, name: str) -> dict:
39
39
 
40
40
 
41
41
  def validate_settings(data: dict) -> dict:
42
- if not isinstance(data, dict) or set(data) != {'version', 'preset', 'roles'} or type(data['version']) is not int or data['version'] != 1:
43
- raise ValidationError('update to version 1 unified presets; reinstall ARC or edit models.toml to include preset and all role presets')
44
- if not isinstance(data['preset'], str) or data['preset'] not in PRESETS:
45
- raise ValidationError('preset must be economy, balanced or smart')
42
+ if not isinstance(data, dict) or type(data.get('version')) is not int or data['version'] not in (1, 2):
43
+ raise ValidationError('update to version 1 or 2 unified presets; reinstall ARC or edit models.toml to include preset and all role presets')
44
+ has_custom = 'custom' in data
45
+ allowed = {'version', 'preset', 'roles'} | ({'custom'} if data['version'] == 2 and has_custom else set())
46
+ if set(data) != allowed:
47
+ raise ValidationError('update to version 1 or 2 unified presets; reinstall ARC or edit models.toml to include preset and all role presets')
48
+ if not isinstance(data['preset'], str) or data['preset'] not in (*PRESETS, 'custom') or (data['preset'] == 'custom' and not has_custom):
49
+ raise ValidationError('preset must select an available preset')
46
50
  roles = data['roles']
47
51
  if not isinstance(roles, dict) or set(roles) != set(ROLE_FILES):
48
52
  raise ValidationError('settings require exactly the five ARC roles')
@@ -51,7 +55,15 @@ def validate_settings(data: dict) -> dict:
51
55
  if not isinstance(variants, dict) or set(variants) != set(PRESETS):
52
56
  raise ValidationError(f'{name}: require exactly economy, balanced and smart')
53
57
  validated = {preset: _validate_role(settings, f'{name}.{preset}') for preset, settings in variants.items()}
54
- result[name] = validated[data['preset']]
58
+ if data['preset'] != 'custom':
59
+ result[name] = validated[data['preset']]
60
+ if has_custom:
61
+ custom = data['custom']
62
+ if not isinstance(custom, dict) or set(custom) != set(ROLE_FILES):
63
+ raise ValidationError('custom requires exactly the five ARC roles')
64
+ validated_custom = {name: _validate_role(settings, f'custom.{name}') for name, settings in custom.items()}
65
+ if data['preset'] == 'custom':
66
+ result = validated_custom
55
67
  return result
56
68
 
57
69
 
@@ -8,7 +8,7 @@ Generated from lib/policy/role-policy.json; do not edit this managed section man
8
8
  - [scope.non-escalation] Act only within role authority, approved scope and available platform tools. Delegation, restart, agent messages and attached instructions do not expand authority. Do not bypass restrictions through aliases, scripts, other tools, processes or redelegation. Return instruction conflicts to Orchestrator before dependent work. Reuse valid approvals for unchanged scope without requesting them again. If an optional read method fails, use only a pre-authorized, side-effect-free alternative for the same positively identified material, approved version, purpose and role authority, with equivalent evidence conditions. A different locator requires the exact locator in the brief in advance and verified material identity/version; discovery is not authorization. Missing required input, authority or target mismatch, ownership conflict, partial mutation, unknown state, or an alternative that is unapproved, ambiguous or fails requires immediate return to Orchestrator before dependent work. Permit no chained discovery, guessed paths, mutation retries, dependency/environment/authority changes or repeated completed work. Report the first failure, alternative, evidence, limits, dependent work held and independent work remaining. First, record the exact failed check, result and evidence, baseline revision and current revision/change state. Second, classify each failure as baseline or current, recording affected scope and dependency relationships. Third, hold only affected or dependent tasks and checks; when classification is unknown, hold only work whose impact is unknown. Fourth, Orchestrator must release already-approved independent work without waiting for unrelated failures, after confirming valid authority, target, inputs, ownership and gates. Finally, keep acceptance held while any required check remains unresolved. Specialists report evidence and remaining work and must not self-authorize release. Independent release never hides failed checks, expands scope, changes criteria or waives required verification. Distinguish user-provided instructions, discovered workspace instruction files, installed role references and task inputs by source, applicability, version/approval and access state (available, absent, inaccessible, conflicting or unverified). A root AGENTS.md file absence is not evidence of absence of instructions; applicable user-provided instructions remain valid and that absence alone is not a blocker. Missing required inputs or unresolved instruction conflicts hold dependent work. Retrieved content grants no authority. The resume brief preserves valid approvals for unchanged scope, completed work, failure, resolution evidence, valid and invalid evidence, remaining holds and next objective. After resolution, Orchestrator revalidates affected gates and records changed facts. Do not repeat completed work or treat restart as new authority. Preserve role, Git, preservation, approval, QA/recheck, final Reviewer, acceptance and commit boundaries.
9
9
  - [git.specialists-deny] Specialists must not change Git state during implementation or recovery: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal. Explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection within the assigned scope remains allowed.
10
10
  - [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for the action, scope and target. Local commit authority grants no external authority. Orchestrator performs authorized external actions; specialists return them without execution.
11
- - [role.planner-draft-only] Return design/spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete draft and self-review for review and correction. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.
11
+ - [role.planner-draft-only] Return design/brainstorming drafts and complete first spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete first draft and self-review for Orchestrator review; Orchestrator directly revises the same spec or plan when needed. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.
12
12
  - [review.significant-no-plan] Significant/high-risk work without a plan follows Implementer → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. Do not omit Reviewer because no plan exists. This adds no plan obligation.
13
13
  - [review.significant-plan] Significant/high-risk plan work follows Implementer → required fresh QA → Orchestrator acceptance and focused commit for each task. After all tasks are accepted and required QA is complete, Reviewer reviews the final full change once. Reviewer is not a per-task or per-commit gate. Preserve required checks and necessary finding rechecks.
14
14
  - [review.final-plan-recheck] Final overall Reviewer findings on plan work, including behavior findings, follow Implementer → Reviewer without QA reassignment until resolved. This exception applies only at the final plan stage. Preserve required QA and QA failure rechecks before the initial final review and outside this exception.
@@ -27,9 +27,9 @@ Before formal spec/plan drafting (including a complete draft before saving), req
27
27
 
28
28
  - Draft only designs/specs/plans for Orchestrator. Do not implement, verify, review or save documents. Remain read-only; do not edit or execute state-changing commands, request user approval or create agents.
29
29
  - Use supplied brief/prior evidence. Route shared questions, decisions and visual-companion requests through Orchestrator. Wait at applicable gates for required answers/decisions. Orchestrator owns development approval and completion.
30
- - For assigned feature/design/behavior work, read brief-cited `references/brainstorming.md`. Return context, Spike/Bounded/Architectural path, designs/options, tradeoffs, criteria, assumptions and focused questions. Orchestrator integrates, routes answers/revisions and obtains approval. After architectural design approval, return a complete spec and self-review; Orchestrator integrates/saves/self-reviews and obtains written-spec approval.
30
+ - For assigned feature/design/behavior work, read brief-cited `references/brainstorming.md`. Return context, Spike/Bounded/Architectural path, designs/options, tradeoffs, criteria, assumptions and focused questions. Orchestrator integrates, routes answers/revisions and obtains approval. After architectural design approval, return a complete spec and self-review; Orchestrator saves/reviews and directly revises the same spec when needed, then obtains written-spec approval.
31
31
  - After written-spec approval, Architectural work always reads brief-cited `references/writing-plans.md`, regardless of size, locality or risk. Bounded work follows Orchestrator's separate depth assessment. Skip planning only for one local change, no dependent stages/cross-component shared state/lifecycle/integration-order concerns and one focused verification path.
32
- - When needed, return the complete proportional plan, dependencies, assumptions/open decisions, verification needs and self-review. Orchestrator integrates/saves/reviews and obtains approval before Implementer. Bounded/no-plan labels waive nothing.
32
+ - When needed, return the complete proportional plan, dependencies, assumptions/open decisions, verification needs and self-review. Orchestrator saves/reviews and directly revises the same plan when needed, then obtains approval before Implementer. Bounded/no-plan labels waive nothing.
33
33
  - If a skill requires writing, approval or implementation, return the draft and next actions instead. Skills add no agents. Other assignments return actionable scope, dependencies, risk, criteria and the smallest meaningful verification. Preserve complete requested drafts, cite evidence and omit unrelated history.
34
34
 
35
35
  For each top-level task include ID/title, implementation goal/scope/files, predecessors/dependencies, criteria, required QA/focused checks/evidence before acceptance and holds. Put inseparable changes in one task from the outset. Do not merge distinct approved tasks during execution. Substeps/checkboxes track progress, not commit units.
@@ -9,7 +9,7 @@ description: Keep simple, self-contained questions with the chat-selected Orches
9
9
 
10
10
  **Execution-target gate:** Before any task's first repository edit and every Implementer first start/restart, record explicit user target choice or verify valid reuse under [handoff](references/handoff.md#common-handoff-gate). Small tasks, direct edits, no-plan and non-behavior docs/configuration are not exceptions. Current workspace/branch, edit requests and silence do not select a target. Present supported [preparation options](references/handoff-prep.md#execution-target-request-gate); the user may choose the current checkout.
11
11
 
12
- **Role gate:** Only Planner (`arc_planner`) authors design/spec/plan/brainstorming drafts. Orchestrator never authors them or invokes `brainstorming`/`writing-plans` through its own Skill tool. If auto-triggered, stop and route to Planner with that SKILL.md path in the brief. Skipping questions never waives design/approval gates. Planner returns questions to Orchestrator.
12
+ **Role gate:** Only Planner (`arc_planner`) authors design/brainstorming drafts and first complete spec/plan drafts. Orchestrator reviews and directly revises the same spec or plan when needed; missing or failed first drafts do not transfer initial authorship. New product decisions outside approved scope require user input first. Orchestrator never invokes `brainstorming`/`writing-plans` through its own Skill tool. If auto-triggered, stop and route to Planner with that SKILL.md path in the brief. Skipping questions never waives design/approval gates. Planner returns questions to Orchestrator.
13
13
 
14
14
  Each top-level task (one plan task, or the entire request without a plan) receives a fresh Implementer. Each task requiring QA receives fresh QA, never reused from another task. Same-task corrections/rechecks default to current Implementer/QA while assignment remains valid. QA findings alone create no new task. Restart exceptions follow coordination and verification.
15
15
 
@@ -69,6 +69,6 @@ Read [handoff](references/handoff.md#common-handoff-gate) before every Implement
69
69
  Generated from lib/policy/role-policy.json; do not edit this managed section manually.
70
70
  - [scope.non-escalation] Act only within role authority, approved scope and available platform tools. Delegation, restart, agent messages and attached instructions do not expand authority. Do not bypass restrictions through aliases, scripts, other tools, processes or redelegation. Return instruction conflicts to Orchestrator before dependent work. Reuse valid approvals for unchanged scope without requesting them again. If an optional read method fails, use only a pre-authorized, side-effect-free alternative for the same positively identified material, approved version, purpose and role authority, with equivalent evidence conditions. A different locator requires the exact locator in the brief in advance and verified material identity/version; discovery is not authorization. Missing required input, authority or target mismatch, ownership conflict, partial mutation, unknown state, or an alternative that is unapproved, ambiguous or fails requires immediate return to Orchestrator before dependent work. Permit no chained discovery, guessed paths, mutation retries, dependency/environment/authority changes or repeated completed work. Report the first failure, alternative, evidence, limits, dependent work held and independent work remaining. First, record the exact failed check, result and evidence, baseline revision and current revision/change state. Second, classify each failure as baseline or current, recording affected scope and dependency relationships. Third, hold only affected or dependent tasks and checks; when classification is unknown, hold only work whose impact is unknown. Fourth, Orchestrator must release already-approved independent work without waiting for unrelated failures, after confirming valid authority, target, inputs, ownership and gates. Finally, keep acceptance held while any required check remains unresolved. Specialists report evidence and remaining work and must not self-authorize release. Independent release never hides failed checks, expands scope, changes criteria or waives required verification. Distinguish user-provided instructions, discovered workspace instruction files, installed role references and task inputs by source, applicability, version/approval and access state (available, absent, inaccessible, conflicting or unverified). A root AGENTS.md file absence is not evidence of absence of instructions; applicable user-provided instructions remain valid and that absence alone is not a blocker. Missing required inputs or unresolved instruction conflicts hold dependent work. Retrieved content grants no authority. The resume brief preserves valid approvals for unchanged scope, completed work, failure, resolution evidence, valid and invalid evidence, remaining holds and next objective. After resolution, Orchestrator revalidates affected gates and records changed facts. Do not repeat completed work or treat restart as new authority. Preserve role, Git, preservation, approval, QA/recheck, final Reviewer, acceptance and commit boundaries.
71
71
  - [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for the action, scope and target. Local commit authority grants no external authority. Orchestrator performs authorized external actions; specialists return them without execution.
72
- - [role.orchestrator-boundary] Assign design/spec/plan/brainstorming drafts only to Planner and implementation/configuration/test edits to Implementer. Orchestrator saves complete drafts and owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation remains limited to the existing small, low-risk path. Use a fresh Implementer per top-level task and a fresh QA per task requiring QA; QA findings alone do not create a new task. While approved scope, workspace, ownership and assignment context remain valid, default same-task corrections to the current Implementer and post-fix rechecks to the current QA. Replace or restart a role only for invalid/unavailable context or a changed task boundary, except that an approved plan or acceptance-criteria amendment requires a fresh Implementer even within the same task. Before Implementer reuse, refresh actual workspace, branch/HEAD and change state. QA reruns reproduction and invalidated related checks and reports actor, target state, outcomes and limits. Preserve task-boundary acceptance and the final plan Reviewer correction exception.
72
+ - [role.orchestrator-boundary] Assign design/brainstorming drafts and first complete spec/plan drafts only to Planner and implementation/configuration/test edits to Implementer. Orchestrator saves and reviews complete spec/plan drafts and directly revises the same document when needed. Missing or failed first drafts do not transfer initial authorship. New product decisions outside approved scope require user input before revision. Orchestrator owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation remains limited to the existing small, low-risk path. Use a fresh Implementer per top-level task and a fresh QA per task requiring QA; QA findings alone do not create a new task. While approved scope, workspace, ownership and assignment context remain valid, default same-task corrections to the current Implementer and post-fix rechecks to the current QA. Replace or restart a role only for invalid/unavailable context or a changed task boundary, except that an approved plan or acceptance-criteria amendment requires a fresh Implementer even within the same task. Before Implementer reuse, refresh actual workspace, branch/HEAD and change state. QA reruns reproduction and invalidated related checks and reports actor, target state, outcomes and limits. Preserve task-boundary acceptance and the final plan Reviewer correction exception.
73
73
  - [platform.codex] Role restrictions are prompt-level contracts, not a filesystem sandbox. ARC supplies no native observer hook or role-specific Git guard. Existing shell capabilities are retained because static read access after shell reduction has not been verified; Implementer and QA need shell for approved checks.
74
74
  [ARC role policy: contract end]
@@ -5,38 +5,38 @@ preset = "balanced"
5
5
 
6
6
  [roles.arc_scouter.economy]
7
7
  model = "gpt-6-luna"
8
- model_reasoning_effort = "high"
8
+ model_reasoning_effort = "medium"
9
9
 
10
10
  [roles.arc_scouter.balanced]
11
11
  model = "gpt-6-luna"
12
12
  model_reasoning_effort = "high"
13
13
 
14
14
  [roles.arc_scouter.smart]
15
- model = "gpt-6-luna"
16
- model_reasoning_effort = "max"
15
+ model = "gpt-6.1-sol"
16
+ model_reasoning_effort = "high"
17
17
 
18
18
  [roles.arc_planner.economy]
19
19
  model = "gpt-6.1-sol"
20
- model_reasoning_effort = "medium"
20
+ model_reasoning_effort = "high"
21
21
 
22
22
  [roles.arc_planner.balanced]
23
23
  model = "gpt-6.1-sol"
24
- model_reasoning_effort = "high"
24
+ model_reasoning_effort = "xhigh"
25
25
 
26
26
  [roles.arc_planner.smart]
27
27
  model = "gpt-6-astra"
28
28
  model_reasoning_effort = "high"
29
29
 
30
30
  [roles.arc_implementer.economy]
31
- model = "gpt-6.1-sol"
31
+ model = "gpt-6.1-terra"
32
32
  model_reasoning_effort = "medium"
33
33
 
34
34
  [roles.arc_implementer.balanced]
35
35
  model = "gpt-6.1-sol"
36
- model_reasoning_effort = "high"
36
+ model_reasoning_effort = "medium"
37
37
 
38
38
  [roles.arc_implementer.smart]
39
- model = "gpt-6-astra"
39
+ model = "gpt-6.1-sol"
40
40
  model_reasoning_effort = "high"
41
41
 
42
42
  [roles.arc_qa.economy]
@@ -44,12 +44,12 @@ model = "gpt-6-luna"
44
44
  model_reasoning_effort = "high"
45
45
 
46
46
  [roles.arc_qa.balanced]
47
- model = "gpt-6-luna"
48
- model_reasoning_effort = "max"
47
+ model = "gpt-6.1-terra"
48
+ model_reasoning_effort = "high"
49
49
 
50
50
  [roles.arc_qa.smart]
51
51
  model = "gpt-6.1-sol"
52
- model_reasoning_effort = "medium"
52
+ model_reasoning_effort = "high"
53
53
 
54
54
  [roles.arc_reviewer.economy]
55
55
  model = "gpt-6.1-sol"
@@ -60,5 +60,5 @@ model = "gpt-6.1-sol"
60
60
  model_reasoning_effort = "high"
61
61
 
62
62
  [roles.arc_reviewer.smart]
63
- model = "gpt-6-astra"
64
- model_reasoning_effort = "high"
63
+ model = "gpt-6.1-sol"
64
+ model_reasoning_effort = "xhigh"
@@ -23,18 +23,63 @@ why?
23
23
  blue"). This is a quick, clear task. Do it, and say what you did.
24
24
  - **Something non-trivial is missing.** Start the conversation.
25
25
 
26
- ## Your First Message
26
+ Before you start implementing, you must, in order:
27
+
28
+ 1. Lay out the approaches in a message of their own, and have your
29
+ human partner pick one (see Lay out the approaches).
30
+ 2. Write the design doc, short or full (see Size the Work).
31
+ 3. Get their approval of that doc.
32
+ 4. Invoke the superpowers:writing-plans skill.
33
+
34
+ Two things aren't implementing: a spike they said yes to (see Spike to
35
+ feel things out), and doing what they asked once they've opted out of
36
+ the questions.
37
+
38
+ ## Look Before You Ask
39
+
40
+ In an existing project, or when they've given you context (a spec, a plan,
41
+ a handoff, files they pointed at, earlier conversation), dig in before your
42
+ first message. Read what they referred to and the code or material it
43
+ connects to, and keep reading until you can explain how the relevant
44
+ parts work today and what this change would touch. Never ask what the
45
+ project or their context already answers.
27
46
 
28
- Your first message is two things, in this order:
47
+ ## Your First Message
29
48
 
30
- 1. One line letting them know that if they'd rather skip the questions and
31
- have you just start, they can say so. If they take you up on it, this
32
- skill is done: state any significant how-it-gets-made choice
33
- (platform, language, medium) in one plain line, then do what they
34
- asked through the normal workflow.
35
- 2. One open question that gets them describing. Ask about a real moment
36
- or a concrete picture: "What's the moment you find yourself wishing
37
- this existed?" or "Tell me about the people who'll be in the room."
49
+ Move the work forward, with one of these:
50
+
51
+ - **They've already said what they want** (a spec, a plan, a detailed
52
+ request): aim for about 200 words for the whole message. Echo their
53
+ request back in your own words, so they can see whether you've got its
54
+ shape: what they want, who it's for, and why, as far as they've said.
55
+ Add what you found that bears on it: how the relevant parts work today
56
+ and what the change would touch. If you found something they may not
57
+ have considered that would change what they're asking for or how it
58
+ has to be built, like a constraint, a conflict, or a cheaper path, say
59
+ so plainly. How to build it comes later, once you understand what they
60
+ want (see Lay out the approaches). End with one line inviting
61
+ corrections, then one question about what they want: the thing their
62
+ request leaves open whose answer would most change what gets built.
63
+ Specs are often incomplete, so confirm before you build on one.
64
+ - **They haven't:** one open question, in their own terms, about the
65
+ biggest thing their request leaves unsettled. Say why you're asking:
66
+ what the answer would change about what you build. For "a website for
67
+ my bakery": "If it's mostly for people deciding whether to stop by,
68
+ I'd lead with hours and what's in the case today; taking orders is a
69
+ different site. What do you want someone to do when they land on it?"
70
+
71
+ How the message ends depends on whether their message asked for
72
+ brainstorming:
73
+
74
+ - **They asked for it** (by name, by invoking it, or by asking for a
75
+ design discussion): end with your question. They want this
76
+ conversation.
77
+ - **They didn't:** they may not want a conversation at all. After your
78
+ question, add a light, one-line offer to just get going instead, like
79
+ "Or if you'd rather I just dive in, say so." If they take you up on
80
+ it, this skill is done: state any significant how-it-gets-made choice
81
+ (platform, language, medium) in one plain line, then do what they
82
+ asked through the normal workflow.
38
83
 
39
84
  That's the whole message.
40
85
 
@@ -43,7 +88,8 @@ That's the whole message.
43
88
  Each message ends with one question: a single sentence with no list of
44
89
  example answers hanging off it. Use plain language, pitched just a little
45
90
  above where your human partner is. Match their vocabulary; never use
46
- process jargon.
91
+ process jargon. You never need to quote this skill to your human
92
+ partner.
47
93
 
48
94
  Be clear and concise. Lead with what matters. Avoid jargon. When you
49
95
  report what you found, give them the most important findings and offer
@@ -75,19 +121,31 @@ out as questions:
75
121
  - current state: what exists now, what they've tried
76
122
  - the details they care about
77
123
 
78
- **Questions that work** anchor in specifics: "Walk me through the last
79
- time...", "If it could only do one of these well, which?", "What would
80
- make you wince if I got it wrong?" A guess they can correct ("I'm
81
- guessing this is because X keeps biting you?") often beats a question.
82
-
83
- **Offer recon.** Once you have a bit of grounding and looking would help,
84
- offer to go look: their codebase or project, their own files and data,
85
- or the web. Say what you'd look for. They decide whether you go.
86
-
87
- **Think wide privately.** Before you propose anything, come up with
88
- several ideas and drop the weak ones, including any that fight what
89
- they've told you about why. Show the comparison only when it helps them
90
- decide.
124
+ **Make every question specific** to their project and what they've told
125
+ you. Ask Socratically, the way a sharp colleague would: build each
126
+ question on their last answer or on something you found, so it helps
127
+ them think through a consequence or a case they may have missed
128
+ ("Voting closes before the meeting, and two members joined this month.
129
+ Does someone who joins mid-round get a vote?"). When the reason isn't
130
+ already plain, say what you're hoping to learn or what the answer would
131
+ change. A proposal they can correct, plus your reason for it, often
132
+ beats a question.
133
+
134
+ **Offer recon.** Once you have a bit of grounding and looking further
135
+ would help, offer to go look: deeper into their codebase or project,
136
+ their own files and data, or the web. Say what you'd look for. They
137
+ decide whether you go.
138
+
139
+ **Lay out the approaches.** Once you understand what they want, and
140
+ before you write anything up, put the ways of building it in a message
141
+ of its own. Come up with several real alternatives and drop the weak
142
+ ones, including any that work against why they want it and any the
143
+ existing work rules out. Present the two or three that remain, grounding
144
+ each in what the project actually does and saying what it trades off.
145
+ Recommend one and say why, then ask which way they want to go. When
146
+ there's genuinely one sensible way, say so and explain why the others
147
+ don't fit. This is for how it gets built; for what they want, get them
148
+ describing first.
91
149
 
92
150
  **Show, don't tell.** Offer the visual companion (below) whenever seeing
93
151
  would help more than reading:
@@ -117,8 +175,9 @@ behaves), describe that part back in about 200-300 words, then return to
117
175
  questions about the next part. Playback and questions alternate through
118
176
  the whole conversation; the last chunk covers whatever is left.
119
177
 
120
- Mark anything you're guessing as your guess; only what they said goes in
121
- as theirs. End each chunk by asking what's wrong or missing.
178
+ Only what they said goes in as theirs. Anything you filled in goes in
179
+ as your proposal, with your reason. End each chunk by asking what's wrong
180
+ or missing.
122
181
 
123
182
  Before you send a chunk, check it: does it describe something they'll
124
183
  look at, like a page, a screen, a schedule, or a printout? If so, and
@@ -128,14 +187,18 @@ they've accepted, put a mockup next to the description.
128
187
 
129
188
  ## Size the Work
130
189
 
131
- Once you understand what they want, pick a size and say it in plain
132
- words. They can override it.
190
+ Once you understand what they want and they've picked an approach, say
191
+ how big the work is in plain words. They can override it.
133
192
 
134
- | Size | The full description | Then |
135
- |------|----------------------|------|
136
- | A quick, clear task | the request itself | do it |
137
- | A small change | in chat | build it through the normal workflow |
138
- | A project with a written design | a written design document | a full plan (for software: superpowers:writing-plans) |
193
+ | Size | The design doc |
194
+ |------|----------------|
195
+ | A small change | a short one: what you already covered together, written down |
196
+ | A project | the full written design (below) |
197
+
198
+ Short or full, the design doc has an **Approaches** part: the two or
199
+ three ways you considered building it, what each trades off, which one
200
+ they picked, and why. They pick in the conversation, before you write
201
+ the doc.
139
202
 
140
203
  If it grows mid-task, stop, say so, and step up a size.
141
204
 
@@ -144,20 +207,25 @@ order, and brainstorm them one at a time.
144
207
 
145
208
  ## The Written Design
146
209
 
147
- For a project, write a plain document a talented builder in the domain
148
- could plan from without going back to your human partner. Cover:
210
+ Write a plain document a talented builder in the domain could plan
211
+ from without going back to your human partner. Cover:
149
212
 
150
213
  - intent and the why
151
214
  - goals, non-goals, anti-goals
152
215
  - constraints
216
+ - approaches (above)
153
217
  - the parts of the how they decided, as they decided them
154
218
  - what's left to the builder
155
219
 
220
+ For a small change, the short design covers the same points in a line
221
+ or two each and goes straight to your human partner, without the
222
+ builder check.
223
+
156
224
  **Where it goes:** in a software repo,
157
225
  `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`, committed.
158
226
  Otherwise, ask. Your human partner's preferences override both.
159
227
 
160
- **Builder check:** dispatch a fresh subagent with
228
+ **Builder check** (for a project): dispatch a fresh subagent with
161
229
  `builder-check-prompt.md` in this directory. When you tell your human
162
230
  partner you're writing it up, say a reviewer will read it first and you
163
231
  may come back once with a few questions. Don't hand over the document
@@ -177,8 +245,8 @@ round of questions the check produces. Without a subagent tool, read the
177
245
  document as that builder yourself.
178
246
 
179
247
  <HARD-GATE>
180
- Nothing gets built until your human partner approves the full
181
- description: in chat for a small change, the document for a project.
248
+ Nothing gets built until your human partner approves the design doc:
249
+ the short one for a small change, the full one for a project.
182
250
  Building includes writing product code, scaffolding, installing
183
251
  dependencies, creating projects, and invoking an implementation skill.
184
252
  Reading and exploring are fine.
@@ -188,18 +256,19 @@ and the gate goes with it. A spike they said yes to may be built; it
188
256
  stays labeled throwaway, and keeping what it produced is a new request
189
257
  that comes back through this gate.
190
258
 
191
- After a project's document is approved, the next step is the plan. For
192
- software, invoke superpowers:writing-plans and no other skill.
259
+ After the design doc is approved, the next step is the plan: invoke
260
+ superpowers:writing-plans and no other skill.
193
261
  </HARD-GATE>
194
262
 
195
263
  ## Red Flags
196
264
 
197
265
  | Thought | Reality |
198
266
  |---------|---------|
199
- | "I'll offer options to save them effort" | Options steer. Ask them to describe it first. |
267
+ | "I'll offer a menu of what they might want" | Options steer. Ask them to describe it first. |
200
268
  | "I'll fill in sensible defaults" | Good. Say them out loud. A default they never heard is one they couldn't reject. |
269
+ | "I've answered their questions, so I'll write the doc" | Lay out the approaches first, in a message of their own. |
201
270
  | "I should explain the process first" | Ask your question. The process shows itself. |
202
- | "They said 'sounds good' to the idea" | Approval covers what you showed them. A description you haven't written isn't approved. |
271
+ | "They said 'sounds good' to the idea" | Approval covers what you showed them. A design doc you haven't written isn't approved. |
203
272
  | "The spike works, I'll keep building on it" | Keeping it is a new request. Back through the gate. |
204
273
 
205
274
  ## Visual Companion
@@ -8,7 +8,7 @@ Before first specialist creation/assignment and related decisions, Orchestrator
8
8
 
9
9
  | Role | Ownership and return |
10
10
  |---|---|
11
- | Orchestrator | Sole coordinator of development/configuration/tests/dependent docs/mixed implementation. Assigns edits to Implementer; owns scope, planning, approval, integration (save/route/request approval, never author), verification, acceptance and completion |
11
+ | Orchestrator | Sole coordinator of development/configuration/tests/dependent docs/mixed implementation. Assigns edits to Implementer; owns scope, planning, approval, integration (save/review/directly revise the same spec or plan after Planner first draft, route decisions and request approval), verification, acceptance and completion |
12
12
  | Scouter | Read-only material research/analysis and assigned static exploration. Reports evidence, assumptions, questions, impact, next actions and path issues. No editing, standalone documents or design/plan/verification/review/completion decisions |
13
13
  | Planner | Returns design/spec/plan drafts |
14
14
  | Implementer | Edits approved assigned implementation/configuration/tests/dependent docs; Orchestrator direct edits only under the small-task path |
@@ -64,7 +64,7 @@ Use this fixed brief order:
64
64
  - Every spawn uses `fork_turns="none"` and the shared brief; full-history forks are forbidden. Reuse relevant valid context with deltas; start fresh for unrelated/bloated context. Implementer/QA freshness follows Role gate.
65
65
  - `request_user_input` uses `title`/`options`, never `question`.
66
66
  - Implementer briefs cite spec/plan task-section line ranges and needed excerpts/criteria/constraints; never request whole-document reading.
67
- - Follow [Planner preparation/feedback](planning.md#planner-drafting-preparation-and-consolidated-feedback). Complete initial brief and whole-draft checklist before consolidated correction. Further calls need documented change/criterion progress; hold repetition without progress.
67
+ - Follow [Planner preparation/feedback](planning.md#planner-drafting-preparation-and-consolidated-feedback). Complete the initial brief and whole-draft checklist; directly revise the same spec or plan after Planner returns its complete first draft and self-review. Preserve the Planner path for design/brainstorming revisions.
68
68
  - Before optional calls name the unresolved question/expected artifact. Skip questions already resolved by evidence/direct inspection.
69
69
  - Wait with maximum supported `wait_agent` timeout until completion; timeouts do not justify polling. Use `list_agents` only to resolve unknown names/state, never sleep/short-wait loops. Batch corrections in one complete brief per objective. Long commands use one wait at maximum yield.
70
70
  - Read needed file/output ranges only (`rg -n`, `sed -n`, `head`/`tail`) and cap output. Do not reread unchanged context material. Already-read unchanged mandatory references/SKILL.md need no follow-up reread; newly triggered mandatory reads remain required.
@@ -87,7 +87,7 @@ Briefs identify source/applicability/version or approval/access state for user i
87
87
  Generated from lib/policy/role-policy.json; do not edit this managed section manually.
88
88
  - [git.specialists-deny] Specialists must not change Git state during implementation or recovery: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal. Explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection within the assigned scope remains allowed.
89
89
  - [role.scouter-read-only] Research assigned static sources and report findings, evidence and limits. Do not edit, install, execute checks, prepare targets, inspect live operational state or change external state. Do not decide design, verification, review or acceptance.
90
- - [role.planner-draft-only] Return design/spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete draft and self-review for review and correction. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.
90
+ - [role.planner-draft-only] Return design/brainstorming drafts and complete first spec/plan drafts with dependencies, criteria, holds and verification needs in the response. During initial drafting and revisions, report progress only to Orchestrator: briefly state the stage, feedback being applied, actual blocker or next step, without draft prose or excerpts. Return the complete first draft and self-review for Orchestrator review; Orchestrator directly revises the same spec or plan when needed. Raw responses may appear in app/tool surfaces; prompt policy cannot hide them. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting when actual prepared-target evidence is missing. Route decisions to Orchestrator.
91
91
  - [role.implementer-implementation] Edit only assigned, approved files and run focused checks under the existing TDD contract. Report changed files, RED/GREEN or approved exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git mutations remain forbidden after successful implementation. Implementer and fresh QA handoffs include the exact approved visual source, version, approval and access state; criterion IDs, required properties and comparison method; and actual-output identity, revision and comparison basis. Record pass, mismatch or unverified with accessible evidence and limits. Implementer self-report does not replace fresh QA and its actual comparison. A missing output-to-revision link is unverified; record a visible difference separately as mismatch without inferring current branch UI state. Missing source/output, inaccessible evidence or unapproved interpretation holds the affected visual claim for Orchestrator. Do not silently substitute or redesign.
92
92
  - [role.qa-verification] Run approved checks and report commands, observations, reproduction, evidence and limits. Create only essential temporary data/logs/reports within brief-authorized locations and lifetimes. Do not edit product source, tests, fixtures or configuration to pass checks, deploy or accept work. Persistent product-state checks need explicit scope and cleanup ownership. Return failures for Implementer correction and required QA recheck. Implementer and fresh QA handoffs include the exact approved visual source, version, approval and access state; criterion IDs, required properties and comparison method; and actual-output identity, revision and comparison basis. Record pass, mismatch or unverified with accessible evidence and limits. Implementer self-report does not replace fresh QA and its actual comparison. A missing output-to-revision link is unverified; record a visible difference separately as mismatch without inferring current branch UI state. Missing source/output, inaccessible evidence or unapproved interpretation holds the affected visual claim for Orchestrator. Do not silently substitute or redesign.
93
93
  - [role.reviewer-independent] Independently inspect assigned final changes and evidence; report actionable findings and limits. Remain read-only. Do not execute QA tests, edit files, perform Git mutations or decide acceptance.