@yunhozz/arc 0.2.0 → 0.2.2

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 (46) hide show
  1. package/MANIFEST.sha256 +44 -43
  2. package/README.md +16 -32
  3. package/claude/agents/arc-implementer.md +9 -7
  4. package/claude/agents/arc-planner.md +10 -12
  5. package/claude/agents/arc-qa.md +8 -8
  6. package/claude/agents/arc-reviewer.md +7 -7
  7. package/claude/agents/arc-scouter.md +7 -7
  8. package/claude/skill/SKILL.md +17 -16
  9. package/claude/skill/references/commit.md +1 -1
  10. package/claude/skill/references/coordination.md +23 -35
  11. package/claude/skill/references/handoff-prep.md +6 -2
  12. package/claude/skill/references/handoff.md +18 -6
  13. package/claude/skill/references/limits.md +3 -4
  14. package/claude/skill/references/planning.md +54 -48
  15. package/claude/skill/references/verification.md +11 -5
  16. package/claude/skill/references/visual-companion.md +6 -0
  17. package/codex/agents/arc-implementer.toml +9 -6
  18. package/codex/agents/arc-planner.toml +11 -13
  19. package/codex/agents/arc-qa.toml +8 -8
  20. package/codex/agents/arc-reviewer.toml +7 -7
  21. package/codex/agents/arc-scouter.toml +7 -7
  22. package/codex/skill/SKILL.md +17 -19
  23. package/codex/skill/references/commit.md +4 -6
  24. package/codex/skill/references/coordination.md +26 -41
  25. package/codex/skill/references/git-recovery.md +2 -3
  26. package/codex/skill/references/handoff-prep.md +7 -3
  27. package/codex/skill/references/handoff-worktree.md +5 -9
  28. package/codex/skill/references/handoff.md +22 -15
  29. package/codex/skill/references/limits.md +3 -4
  30. package/codex/skill/references/planning.md +57 -52
  31. package/codex/skill/references/verification.md +16 -12
  32. package/codex/skill/references/visual-companion.md +7 -1
  33. package/lib/installer/manifest.mjs +1 -1
  34. package/lib/management/operations.mjs +15 -2
  35. package/lib/management/update.mjs +19 -10
  36. package/lib/npm/context.mjs +22 -0
  37. package/lib/npm/uninstall.mjs +17 -0
  38. package/lib/npm/upgrade.mjs +25 -0
  39. package/lib/policy/role-policy.json +10 -10
  40. package/lib/tui/app.mjs +51 -27
  41. package/lib/tui/render.mjs +29 -9
  42. package/lib/tui/setup.mjs +12 -9
  43. package/lib/tui/terminal.mjs +22 -12
  44. package/package.json +1 -1
  45. package/scripts/update-superpowers-local.sh +4 -0
  46. package/lib/tui/workflow.mjs +0 -12
@@ -1,6 +1,6 @@
1
1
  # Role assignment and coordination
2
2
 
3
- Orchestrator reads this before the first specialist creation or assignment and related coordination decisions. Also read [limits](limits.md) and installed `../limits.toml` before first creation. Missing, inaccessible or conflicting references stop dependent work; report the exact paths.
3
+ Orchestrator reads this before first creating or assigning a specialist and making related coordination decisions. Also read [limits](limits.md) and installed `../limits.toml` before first creation. Missing, inaccessible or conflicting references stop dependent work; report the exact paths.
4
4
 
5
5
  ## Ownership
6
6
 
@@ -9,11 +9,10 @@ Orchestrator reads this before the first specialist creation or assignment and r
9
9
  (save, route, obtain approval; never author), acceptance, verification, and completion.
10
10
  - Scouter: read-only material research/analysis and assigned static code/document/data/log exploration. Reports
11
11
  evidence, assumptions, unresolved questions, impact, next actions, and workspace/path issues to Orchestrator.
12
- Does not edit files or author standalone document files, or decide design/plans, verification, review, or completion.
12
+ Does not edit files, author standalone documents, or decide design/plans, verification, review, or completion.
13
13
  - Planner: returns design/spec/plan drafts.
14
14
  - Implementer: edits assigned, approved implementation/configuration/test-code files and assigned dependent docs.
15
- Orchestrator does not edit
16
- them directly except under the Orchestrator direct path for small tasks.
15
+ Orchestrator does not edit them directly except under the Orchestrator direct path for small tasks.
17
16
  - QA: verifies without edits.
18
17
  - Reviewer: independently reviews the final full change.
19
18
  - All five roles report directly to Orchestrator at depth 2: Scouter, Planner, Implementer, QA, and Reviewer.
@@ -21,12 +20,12 @@ Orchestrator reads this before the first specialist creation or assignment and r
21
20
  Depth-2 roles cannot create agents or delegate tasks to another role. Reviewer remains independent.
22
21
  - Aliases: Scouter=`arc_scouter`, Planner=`arc_planner`, Implementer=`arc_implementer`, QA=`arc_qa`, Reviewer=`arc_reviewer`.
23
22
  - Across the full tree, obey configured limits for simultaneous subagents, including Scouter; there are no reserved slots.
24
- Before first creation, read `references/limits.md` and installed `limits.toml`; maintain its cumulative ledger and reservations.
23
+ Before first creating a subagent, read `references/limits.md` and installed `limits.toml`; maintain its cumulative ledger and reservations.
25
24
  Parallelize independent tasks only; dependent handoffs are sequential and editing scopes cannot overlap.
26
25
  - After each read-only role returns (Scouter, Planner, Reviewer), Orchestrator checks `git status` against a pre-spawn
27
26
  snapshot for unexpected changes; on any change Orchestrator stops and reports under the Preservation rule.
28
27
  Limit: concurrent Implementer edits and ignored or out-of-repo paths are not attributable/detectable.
29
- Their read-only status rests on prompt-level guards, not sandbox enforcement.
28
+ Their read-only status relies on prompt-level guards, not sandbox enforcement.
30
29
 
31
30
 
32
31
  ## Instruction and execution adapter
@@ -56,11 +55,9 @@ Missing/damaged local files stop dependent work: report exact paths to Orchestra
56
55
  ARC approval, ownership, TDD exceptions and executor adapters still apply.
57
56
 
58
57
  Orchestrator integrates role results, routes decisions and required approvals, and owns development acceptance
59
- and completion. Orchestrator coordinates dependent implementation tasks sequentially and
60
- starts a fresh Implementer for each top-level task (Role gate); reuse the current Implementer only for corrections, rework,
58
+ and completion. Orchestrator runs dependent implementation tasks sequentially and starts a fresh Implementer for each top-level task (Role gate); reuse the current Implementer only for corrections, rework,
61
59
  or rechecks of the same task while the approved scope, workspace, ownership, and relevant assignment context remain valid;
62
- default to the current Implementer for same-task QA corrections. A QA finding within the current task does not itself create
63
- a new task. Before sending corrections or rework to a reused Implementer, Orchestrator rechecks workspace, branch/HEAD and change state against the brief.
60
+ default to the current Implementer for same-task QA corrections. A QA finding within the current task does not itself create a new task. Before sending corrections or rework to a reused Implementer, Orchestrator rechecks workspace, branch/HEAD and change state against the brief.
64
61
  Replace or restart a role only when its context is invalid or unavailable, or the task boundary changes, subject to the
65
62
  amendment exception below. A fresh Implementer for the next task is a restart under handoff (choice reuse and restart brief rules are in handoff).
66
63
  After an approved plan or acceptance-criteria amendment, start a fresh Implementer for
@@ -71,18 +68,13 @@ follow [Risk-scaled execution](verification.md#risk-scaled-execution).
71
68
  ## Token discipline and handoffs
72
69
 
73
70
  - Only Orchestrator calls agents or assigns specialist tasks. Every `spawn_agent` call must explicitly set a descriptive
74
- lowercase snake_case `task_name` in the form
75
- `<role>_<short_task>` (for example `planner_scope_review` or `qa_installer_checks`). Do not use arbitrary or random
76
- names. `task_name` identifies the run; `agent_type` and its configured profile determine the role and model.
71
+ lowercase snake_case `task_name` in the form `<role>_<short_task>` (for example `planner_scope_review` or `qa_installer_checks`). Do not use arbitrary or random names. `task_name` identifies the run; `agent_type` and its configured profile determine the role and model.
77
72
 
78
- - Keep one shared brief with fixed field order: Goal; Criteria (IDs); Exact scope/ownership (absolute workspace,
73
+ - Keep one shared brief in this fixed field order: Goal; Criteria (IDs); Exact scope/ownership (absolute workspace,
79
74
  branch or detached HEAD and HEAD, handoff record path, when one exists, files);
80
75
  Constraints/decisions; Evidence (paths/lines, commands, artifact links); Prior findings; Exact next objective (one
81
- bounded objective); Return format (conclusion, evidence locations, unresolved points, next step). On follow-ups
82
- send only changed fields and mark the rest `unchanged` (relative to a brief the recipient received);
83
- restart briefs follow handoff; a fresh specialist gets every other field in full. Send only the
84
- self-contained subset needed by the next role and links to accessible artifacts; omit full history, repeated
85
- instructions, and raw logs. No findings may be brief; requested deliverables such as complete plan drafts remain
76
+ bounded objective); Return format (conclusion, evidence locations, unresolved points, next step). On follow-ups send only changed fields and mark the rest `unchanged` (relative to a brief the recipient received);
77
+ restart briefs follow handoff; a fresh specialist gets every other field in full. Send only the self-contained subset the next role needs and links to accessible artifacts; omit full history, repeated instructions, and raw logs. No findings may be brief; requested deliverables such as complete plan drafts remain
86
78
  complete. Cite paths/lines/pages/commands/links instead of logs; investigate gaps only.
87
79
  - Every specialist spawn sets `fork_turns="none"`; full-history forks are not allowed. Supply that brief.
88
80
  Reuse an existing specialist for related follow-up with only changed facts/objective when its context
@@ -90,28 +82,18 @@ follow [Risk-scaled execution](verification.md#risk-scaled-execution).
90
82
  - `request_user_input` questions use only `title` and `options` fields, never `question`.
91
83
  - In Implementer briefs, cite the plan/spec path with the task section's line range and include only the needed excerpts,
92
84
  acceptance criteria, and constraints; do not ask Implementer to read whole plans or specs.
93
- - Before formal Planner drafting, complete the stage brief using
94
- [planning](planning.md#planner-drafting-preparation-and-consolidated-feedback): original requirements/criteria IDs,
95
- approved and open decisions, actual target/ownership, preceding approved versions and document paths, current behavior
96
- and connected policy/source/generated/runtime/installer/documentation surfaces, depth, dependencies, checks, holds and
97
- exact stage deliverable. Preserve the shared brief field order. Review completeness and conflicts together; send one
98
- consolidated feedback request with changed fields and `unchanged` for the rest. Preserve separate sequential design,
99
- spec and plan approvals; no fixed call cap, incomplete draft acceptance or extra calls for resolved questions.
100
- - Before optional calls, name the unresolved question and expected artifact. Skip calls whose questions are resolved
101
- by available evidence or direct inspection.
85
+ - Follow [Planner drafting preparation and consolidated feedback](planning.md#planner-drafting-preparation-and-consolidated-feedback).
86
+ Complete the initial brief and whole-draft checklist before sending consolidated corrections. Gate further calls
87
+ on documented changes or criterion progress; hold repetition without progress.
88
+ - Before optional calls, name the unresolved question and expected artifact. Skip calls for questions resolved by available evidence or direct inspection.
102
89
  - Wait for a specialist with `wait_agent` using the maximum supported timeout, repeating only until it completes; a
103
90
  timeout is not a reason to poll or check status in between. Do not poll with `list_agents`, `sleep`, or repeated short
104
91
  waits; use `list_agents` only to resolve an unknown agent name or state. Send each specialist one complete brief per
105
92
  objective and batch related corrections or follow-ups into one message. Do not poll long-running commands with
106
93
  repeated `sleep` or short status checks; use a single blocking wait with the tool's longest yield.
107
94
  - Read only the needed ranges of files and outputs (for example `rg -n`, `sed -n`, `head`/`tail`) and cap long command
108
- output. Do not re-read files or outputs already in context unless they changed. A mandatory reference already read in
109
- this context and unchanged need not be re-read, and this skill file, once read in this context and unchanged,
110
- is not re-read on follow-up turns;
111
- this does not shorten any triggered mandatory reference read.
112
- - When a plan completes or before starting another plan in a session with long history, Orchestrator records the
113
- canonical
114
- handoff state in the handoff record file and recommends that the user continue in a new session.
95
+ output. Do not re-read files or outputs already in context unless they changed. A mandatory reference already read in this context and unchanged need not be re-read, and this skill file, once read in this context and unchanged, is not re-read on follow-up turns; this does not shorten any triggered mandatory reference read.
96
+ - When a plan completes or before starting another plan in a session with long history, Orchestrator records the canonical handoff state in the handoff record file and recommends that the user continue in a new session.
115
97
  - Before handoff, post one short update with role/objective/expected output; after return, combine findings and next
116
98
  stage concisely. Do not expose hidden reasoning or raw prompts.
117
99
 
@@ -119,20 +101,23 @@ follow [Risk-scaled execution](verification.md#risk-scaled-execution).
119
101
  ## Models
120
102
 
121
103
  `models.toml` beside this skill is the source of truth for role model and reasoning-effort settings.
122
- Orchestrator uses the current conversation model. Use configured role settings without substitution or effort
123
- reduction; report unavailable settings.
104
+ Orchestrator uses the current conversation model. Use configured role settings without substitution or effort reduction; report unavailable settings.
124
105
  Local declarations do not prove runtime provider support, account access, alias resolution, actual model or effort
125
106
  application, concurrency or depth enforcement.
126
107
  New sessions reload profiles; running agents retain their current settings and parent relationships. Configuration
127
108
  changes do not automatically reparent running agents or prove runtime parent behavior.
128
109
 
110
+ ## Instruction and Input Provenance
111
+
112
+ Each role brief records the source, applicability, version or approval, and access state of user-provided instructions, discovered workspace instruction files, installed role references, and task inputs. Use only policy-authorized recovery for optional reads, and report the initial failure and dependent or independent work. If required material is missing, return it to the Orchestrator without inventing an interpretation or authority. Follow [handoff](handoff.md#instruction-sources-bounded-read-recovery-visual-evidence-and-resumption) for the full fields.
113
+
129
114
  [ARC role policy: contract begin]
130
115
  Generated from lib/policy/role-policy.json; do not edit this managed section manually.
131
- - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. Even an explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
116
+ - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. An explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
132
117
  - [role.scouter-read-only] Research assigned static sources and report findings, evidence and limits. Do not edit files, install, execute checks, prepare execution targets, inspect live operational state, change external state or decide design, verification, review or acceptance.
133
- - [role.planner-draft-only] Return design/spec/plan drafts and dependencies, criteria, hold conditions and verification needs in the response. MUST NOT save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting if actual prepared target evidence is missing; route decisions to Orchestrator.
134
- - [role.implementer-implementation] Edit only assigned, approved files and run focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds.
135
- - [role.qa-verification] Run approved checks and report commands, observations, reproduction, evidence and limits. Create only essential temporary data/logs/reports in the brief-authorized location and lifetime. Do not edit product source, tests, fixtures or configuration to pass checks, deploy or accept work. Persistent product-state checks require explicit scope and cleanup ownership. Return failures for Implementer correction and required QA recheck.
118
+ - [role.planner-draft-only] Return design/spec/plan drafts with dependencies, criteria, hold conditions and verification needs in the response. MUST NOT save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting if actual prepared target evidence is missing; route decisions to Orchestrator.
119
+ - [role.implementer-implementation] Edit only assigned, approved files and run focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds. 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 in Implementer and fresh QA handoffs. Record each visual result as 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 status. Hold the affected visual claim for Orchestrator if source/output is missing, evidence is inaccessible or an interpretation is unapproved; do not silently substitute or redesign.
120
+ - [role.qa-verification] Run approved checks and report commands, observations, reproduction, evidence and limits. Create only essential temporary data/logs/reports in the brief-authorized location and lifetime. Do not edit product source, tests, fixtures or configuration to pass checks, deploy or accept work. Persistent product-state checks require explicit scope and cleanup ownership. Return failures for Implementer correction and required QA recheck. 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 in Implementer and fresh QA handoffs. Record each visual result as 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 status. Hold the affected visual claim for Orchestrator if source/output is missing, evidence is inaccessible or an interpretation is unapproved; do not silently substitute or redesign.
136
121
  - [role.reviewer-independent] Independently inspect the assigned final changes and evidence and report actionable findings and limits. Remain read-only. MUST NOT execute QA tests, edit files, perform Git mutations or decide acceptance.
137
122
  - [platform.codex] Role restrictions are prompt-level contracts, not a filesystem sandbox. No documented role-specific Git hook or generic per-agent tool allowlist is assumed. Existing shell capabilities are retained because static read access after shell reduction has not been verified; Implementer and QA need shell for approved checks.
138
123
  [ARC role policy: contract end]
@@ -31,7 +31,7 @@ Orchestrator, and do not change permissions or bypass the sandbox. Use the inlin
31
31
 
32
32
  ### Existing changes and failures
33
33
 
34
- A branch does not isolate uncommitted changes into a separate directory as a worktree does. Record how existing staged,
34
+ Unlike a worktree, a branch does not isolate uncommitted changes in a separate directory. Record how existing staged,
35
35
  unstaged, and untracked changes relate to the task and their preservation and edit ownership in the brief. Apply the
36
36
  Preservation rule and do not automatically commit or delete changes to prepare the checkout. Only the
37
37
  approved docs commit on all three paths is an exception to that no-commit rule; preserve all unrelated dirty files.
@@ -40,8 +40,7 @@ scope.
40
40
 
41
41
  For an invalid name, branch creation or switching failure, lookup error, or unexpected current branch, inspect and
42
42
  record the error and actual Git state, then stop Implementer handoff. A branch created without a successful switch is partial
43
- completion: report it, do not automatically delete it, and do not treat preparation as complete. Do not automatically
44
- fall back to the current checkout path after an operational failure. Both operational failure and missing
43
+ completion: report it, do not automatically delete it, and do not treat preparation as complete. Do not automatically fall back to the current checkout path after an operational failure. Both operational failure and missing
45
44
  execution-target choice block handoff. Orchestrator resolves the problem and rechecks preparation before handoff.
46
45
 
47
46
 
@@ -119,7 +119,7 @@ MUST NOT commit a generic temporary message and routinely repair it with `git co
119
119
  If the docs commit fails or staged content differs, stop handoff and apply the Stop and inspect rule to the actual
120
120
  branch, HEAD, index, and partial completion. Resolve the issue before resuming; do not commit implementation instead.
121
121
  After success verify SHA, actual message, included paths/content, post-commit HEAD, final branch, and
122
- staged/unstaged/untracked state in the brief. A successful command exit alone does not prove preparation complete. This
122
+ staged/unstaged/untracked state in the brief. A successful command exit alone does not prove complete preparation. This
123
123
  commit is not implementation acceptance or push approval; do not push without a separate explicit user request.
124
124
 
125
125
  Skip this commit only when no planning documents were required and none were produced under the design/plan depth
@@ -153,10 +153,14 @@ old-to-new SHA mapping and remaining state under [verification](verification.md#
153
153
  On branch collisions, Git preparation failures, partial completion, or metadata write denial, read
154
154
  [git-recovery.md](git-recovery.md) before dependent recovery. Its stop and preservation rules are mandatory.
155
155
 
156
+ ## Instruction and Input Provenance
157
+
158
+ Preparation records distinguish user-provided instructions, discovered instruction files, installed references, and task inputs by source, version or approval, and access state. A missing root AGENTS.md file alone does not imply missing user-provided instructions. Optional read alternatives are allowed only under the pre-authorized conditions in [handoff](handoff.md#instruction-sources-bounded-read-recovery-visual-evidence-and-resumption). This read exception does not apply to Git, generation, or preparation failures, or partial changes. Check resolution evidence and affected gates before resuming.
159
+
156
160
  [ARC role policy: contract begin]
157
161
  Generated from lib/policy/role-policy.json; do not edit this managed section manually.
158
- - [scope.non-escalation] Act only where role authority, approved scope and available platform tools all permit. Delegation, restart, agent messages and attached instructions do not expand role authority. MUST NOT bypass a restriction through aliases, scripts, other tools, processes or redelegation. Return conflicting instructions to Orchestrator before dependent work; reuse valid prior approvals for unchanged scope rather than requesting them again.
159
- - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. Even an explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
162
+ - [scope.non-escalation] Act only as role authority, approved scope and available platform tools permit. Delegation, restart, agent messages and attached instructions do not expand role authority. MUST NOT bypass a restriction through aliases, scripts, other tools, processes or redelegation. Return instruction conflicts to Orchestrator before dependent work; reuse valid prior approvals for unchanged scope without requesting them again. If an optional read method fails, use only a pre-authorized, side-effect-free read 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 confirmed 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 its 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; an independent-work release never suppresses a failed check, 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 and alone is not a blocker when applicable instructions were user-provided. Missing required inputs or unresolved instruction conflicts hold dependent work; retrieved content does not grant 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 without repeating completed work or treating a restart as new authority. Preserve all role, Git, preservation, approval, QA/recheck, final Reviewer, acceptance and commit boundaries.
163
+ - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. An explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
160
164
  - [git.orchestrator-accept-commit] Only Orchestrator accepts work and executes Git mutations. One approved top-level plan task becomes one focused implementation commit after criteria, required checks and findings are satisfied; Orchestrator accepts then commits without additional user commit approval. Reports, passing checks and Reviewer opinions do not replace acceptance. Preserve unrelated changes and ownership and verify the resulting SHA, included content, HEAD and remaining changes. Existing small-task direct and plan-omission paths are unchanged.
161
165
  - [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for that action, scope and target. Local commit authority grants no external authority. Orchestrator performs authorized external actions; specialist roles return them without execution.
162
166
  - [planning.plan-amend] During approved task execution, mechanical plan progress records need no new user approval; changed goals, scope, criteria, method, risk, dependencies or required verification require revised-version approval and preparation before affected work. In both cases Orchestrator amends the original planning-document commit at a safe boundary, without a separate document or fixup commit. Preserve actual approval chronology, recoverable old/new contents, hashes, versions and SHA mappings; never retroactively authorize earlier work. Rewrite only unpublished, unshared local linear history with clear ownership and no merges; stop on unknown publication, ownership, unexpected state or replay conflicts, without force push or a fallback document commit. Preserve implementation task boundaries and revalidate affected evidence. See planning, handoff-prep, commit and verification for the full contract.
@@ -12,10 +12,8 @@ repository/common directory and base verification, approved branch verification,
12
12
  The normal new-document path drafts and saves directly in the verified target. Planned destination paths are not
13
13
  preparation evidence. Initial preparation does not authorize Implementer or a document commit.
14
14
 
15
- Only an explicit user choice of this third path authorizes preparation. Its selection target is the one verified
16
- under the Execution-target request gate in handoff-prep.md.
17
- The app determines the actual destination path; do not propose a sibling path or require a user-specified path
18
- candidate.
15
+ Only an explicit user choice of this third path authorizes preparation. Its selection target is the one verified under the Execution-target request gate in handoff-prep.md.
16
+ The app determines the actual destination path; do not propose a sibling path or require a user-specified candidate.
19
17
  Use the verified source HEAD full SHA as the base; do not substitute remote HEAD or a default branch or fetch
20
18
  automatically.
21
19
  Recheck approved source state, base SHA, approved branch candidate/collision status, name and approved document scope
@@ -39,7 +37,7 @@ Create using only the app tool:
39
37
  ref: "<verified-source-head-full-sha>"
40
38
  })
41
39
 
42
- The name describes the work; it guarantees neither a path nor a branch. There are no destination path or branch arguments.
40
+ The name describes the work without guaranteeing a path or branch. There are no destination path or branch arguments.
43
41
  Pass ref explicitly as the full SHA; do not omit it or rely on a remote default. If an operationId is returned,
44
42
  use mcp__codex_app__get_worktree_creation_status until completed. Preparing/creating/registering progress is not
45
43
  success.
@@ -64,8 +62,7 @@ If the app initially returns the approved branch, verify it and its base rather
64
62
  Unexpected branch or mismatched HEAD means stop. Verify final approved branch and HEAD before formal drafting, saving, document transfer,
65
63
  the batch docs commit, final Git verification and Implementer handoff.
66
64
 
67
- The tool does not copy uncommitted changes. The following transfer rules apply only to legacy or restart cases
68
- with existing approved documents (including an explicitly selected target change), not the normal new-document path. For untracked approved documents, source HEAD and index paths must be
65
+ The tool does not copy uncommitted changes. These transfer rules apply only to legacy or restart cases with existing approved documents (including an explicitly selected target change), excluding the normal new-document path. For untracked approved documents, source HEAD and index paths must be
69
66
  absent and source working-tree bytes must match the latest approved version. For tracked approved documents, source
70
67
  index blob and mode must equal source HEAD, while source working-tree bytes must match the latest approved version.
71
68
  Approved working-tree revisions may differ from HEAD/index; do not repair or verify them by staging source documents.
@@ -82,8 +79,7 @@ Verify existing approved commits by SHA, message, paths and approved content val
82
79
  Copy only uncommitted approved spec/plan documents to the target at the same repository-relative path.
83
80
  Do not move, delete, or modify the source documents. If a destination resolves outside the worktree, including through
84
81
  an escaping symlink, stop. Before transfer verify target HEAD equals the selected source base SHA.
85
- Before replacing an existing destination, prove its clean base state with no staged/unstaged changes and index and
86
- working-tree bytes matching the base version; then replace with the approved version. A document absent from base must
82
+ Before replacing an existing destination, prove its clean base state with no staged/unstaged changes and index and working-tree bytes matching the base version; then replace with the approved version. A document absent from base must
87
83
  also be absent at the destination. For unexpected changes, do not overwrite; stop.
88
84
  For identical content, verify approved bytes before reuse. After transfer verify bytes match the approved version.
89
85
  The canonical record includes each document approval/version/evidence, source and target absolute paths and the common
@@ -5,12 +5,21 @@ in the brief under the Implementer profile and reads this file only for sections
5
5
  (execution-target choice request, preparation Git mutations, planning-document commit) is in
6
6
  [handoff-prep.md](handoff-prep.md); the new managed worktree path is in [handoff-worktree.md](handoff-worktree.md).
7
7
 
8
+ ## Instruction Sources, Bounded Read Recovery, Visual Evidence, and Resumption
9
+
10
+ Keep the existing brief field order and record provenance and status within each field. Distinguish four sources: user-provided instructions, discovered workspace instruction files, installed role references, and task inputs. Record each source, applicability, version or approval, and access state. A missing root AGENTS.md file does not imply missing instructions; applicable user-provided instructions remain valid. Missing required skills, references, or approved inputs and conflicting instructions hold dependent work.
11
+
12
+ An optional read alternative is allowed only when the brief specifies its exact locator, material identity, approved version, purpose, method, preconditions, equivalent evidence, and return conditions in advance. Any alternate locator must be explicit and verified as the same material and version. Only pre-authorized, side-effect-free reads are allowed. Do not chain searches, guess paths, retry mutations, or change the environment, dependencies, or permissions. Immediately return missing required inputs, permission/target/ownership mismatches, partial changes, unknown state, and unauthorized, ambiguous, or failed alternatives to the Orchestrator. Report the initial failure, any alternative used, observed evidence and limits, and the dependent and independent work placed on hold. Orchestrator checks scope and valid evidence before deciding whether independent work may resume; unresolved required check failures continue to block acceptance.
13
+
14
+ A visual brief records the exact approved visual source, version, approval and access state, criterion IDs, required properties and comparison method, actual-output identity, revision, and comparison basis. An Implementer report is separate from a fresh QA comparison. Report each result as pass, mismatch, or unverified with evidence locations and limitations. Return new UI interpretations or unapproved substitutions for visual sources to the Orchestrator.
15
+
16
+ The resume brief preserves valid approvals for unchanged scope, completed work, failures, resolution evidence, valid and invalid evidence, remaining holds, and the next objective. The Orchestrator records changed facts and revalidates affected gates using resolution evidence. Do not repeat completed work. Preserve role, Git, QA revalidation, final Reviewer, acceptance, and commit boundaries.
17
+
8
18
  ## Workspace handoff
9
19
 
10
20
  ### Checkout approval
11
21
 
12
- Before every Implementer first start and restart, Orchestrator confirms the supplied absolute workspace is accessible and
13
- belongs to the intended Git repository; record its actual absolute path, current branch or detached HEAD, HEAD, and staged,
22
+ Before every Implementer first start and restart, Orchestrator confirms the supplied absolute workspace is accessible and belongs to the intended Git repository; record its actual absolute path, current branch or detached HEAD, HEAD, and staged,
14
23
  unstaged, and untracked changes. Stop if the workspace is inaccessible, is not the intended repository, or HEAD
15
24
  cannot be resolved. Do not initialize Git or switch to another repository automatically.
16
25
 
@@ -34,7 +43,7 @@ choice-lifetime rules below, wait and do not start or restart Implementer.
34
43
  Orchestrator may start or restart Implementer only after all of these conditions are verified:
35
44
 
36
45
  1. All applicable design/spec/plan approvals are recorded with approved artifact paths or valid depth-omission reasons.
37
- For a Implementer Spike probe, record its approved question, method/scope, acceptance criteria, and constraints.
46
+ For an Implementer Spike probe, record its approved question, method/scope, acceptance criteria, and constraints.
38
47
  The complete current-scope document list, approved versions, plan dependencies/order, and absence of unfinished
39
48
  applicable documents are verified. Future implementation artifacts are not part of the probe scope or approved by it.
40
49
  2. The user explicitly selected the execution target initially, or that initial choice remains valid under the restart
@@ -51,8 +60,7 @@ Orchestrator may start or restart Implementer only after all of these conditions
51
60
  Before an Orchestrator direct edit, Orchestrator verifies the same conditions, with the approved scope record as the
52
61
  applicable approval, and records them in the brief.
53
62
 
54
- A missing or failed condition blocks handoff. Orchestrator may continue read-only investigation and authorized
55
- preparation or recovery, but cannot start Implementer early. Reverify affected evidence when approved content, execution target, branch,
63
+ Any missing or failed condition blocks handoff. Orchestrator may continue read-only investigation and authorized preparation or recovery, but must not start Implementer early. Reverify affected evidence when approved content, execution target, branch,
56
64
  HEAD, or relevant state changes. Implementer's conflict reporting is in its profile; Orchestrator
57
65
  resolves preparation and passes the gate again before Implementer resumes.
58
66
 
@@ -89,8 +97,7 @@ cannot bypass its approval gate.
89
97
 
90
98
  Before assignment, apply every readiness condition in
91
99
  [planning.md, Dependency and readiness record](planning.md#dependency-and-readiness-record), including predecessor
92
- checks, Orchestrator acceptance and verified focused commit or accepted no-change evidence. A Implementer completion report
93
- alone is insufficient. Verify the linked record is current and capacity and file ownership permit assignment.
100
+ checks, Orchestrator acceptance and verified focused commit or accepted no-change evidence. An Implementer completion report alone is insufficient. Verify the linked record is current and capacity and file ownership permit assignment.
94
101
  Readiness supplements the full handoff gate and execution-target restrictions; it never waives them.
95
102
  For authorized HEAD or state changes, refresh this record and affected briefs, verify preservation and ownership,
96
103
  revalidate affected gates, and reassess readiness under planning.md and [commit.md](commit.md#shared-checkout-coordination).
@@ -120,8 +127,7 @@ choice unless it invalidates the old target. Do not fall back automatically; app
120
127
 
121
128
  Keep one canonical initial handoff record accessible to each assigned role, containing the approved scope/version,
122
129
  repository/workspace identity, and the Handoff evidence fields above; do not create a separate storage service.
123
- Orchestrator writes it as a
124
- Markdown file at `<git-common-dir>/arc/handoff/<plan-or-task-slug>.md` (slug unique to the plan, the dated plan filename
130
+ Orchestrator writes it as a Markdown file at `<git-common-dir>/arc/handoff/<plan-or-task-slug>.md` (slug unique to the plan, the dated plan filename
125
131
  stem, or a spec/task slug when no plan exists; never overwrite another plan's record; resolve with
126
132
  `git rev-parse --path-format=absolute --git-common-dir`; outside the working tree and shared by linked worktrees; not a
127
133
  Git mutation, never staged or committed; contains no secrets), gives its absolute path in every brief, and restart
@@ -134,8 +140,7 @@ next objective and edit ownership, changed decisions,
134
140
  approvals, documents and scope (or explicit no-change confirmation), current Git state and differences, choice
135
141
  validity and reuse verification, refreshed commit/artifact checks, Orchestrator final verification, and remaining
136
142
  issues.
137
- An inaccessible initial record, missing evidence, or unclear ownership blocks editing; a prior conversation or
138
- inaccessible link cannot substitute for evidence. Include material needed for a self-contained role handoff, with
143
+ An inaccessible initial record, missing evidence, or unclear ownership blocks editing; prior conversation or inaccessible links cannot replace evidence. Include material needed for a self-contained role handoff, with
139
144
  accessible canonical evidence instead of repeated history. Reverify revised documents/approvals and current state;
140
145
  never retrospectively claim preparation of edits made before the gate passed.
141
146
 
@@ -188,6 +193,8 @@ generalize it to behavior work.
188
193
 
189
194
  ## Orchestrator direct path for small tasks
190
195
 
196
+ This path does not waive explicit execution-target choice: before the first edit, record the user's choice or verified valid reuse. Approval of the edit scope alone does not select the execution target.
197
+
191
198
  Orchestrator may make a task's edits directly, without Planner brainstorming or Implementer, only when every small,
192
199
  low-risk criterion holds, every plan-skip criterion holds (one local change, no dependent stages, no cross-component shared state,
193
200
  lifecycle, or integration-order concerns, and one focused verification path), and no significant-risk trigger applies.
@@ -233,10 +240,10 @@ An unsupported no-plan/omission path does not imply a policy violation or a requ
233
240
 
234
241
  [ARC role policy: contract begin]
235
242
  Generated from lib/policy/role-policy.json; do not edit this managed section manually.
236
- - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. Even an explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
237
- - [role.implementer-implementation] Edit only assigned, approved files and run focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds.
238
- - [review.significant-no-plan] For significant/high-risk work without a plan: Implementer → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. MUST NOT omit Reviewer merely because no plan exists. This creates no new plan obligation.
239
- - [review.significant-plan] For significant/high-risk plan work: each task uses Implementer → fresh QA as required → Orchestrator acceptance and focused commit. 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 required gate. Preserve required checks and necessary finding rechecks.
243
+ - [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. An explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
244
+ - [role.implementer-implementation] Edit only assigned, approved files and run focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds. 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 in Implementer and fresh QA handoffs. Record each visual result as 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 status. Hold the affected visual claim for Orchestrator if source/output is missing, evidence is inaccessible or an interpretation is unapproved; do not silently substitute or redesign.
245
+ - [review.significant-no-plan] For significant/high-risk work without a plan: Implementer → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. MUST NOT omit Reviewer because no plan exists. This creates no new plan obligation.
246
+ - [review.significant-plan] For significant/high-risk plan work: each task uses Implementer → fresh QA as required → Orchestrator acceptance and focused commit. Reviewer reviews the final full change once after all tasks are accepted and required QA is complete. Reviewer is NOT a per-task or per-commit required gate. Preserve required checks and necessary finding rechecks.
240
247
  - [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use Implementer → Reviewer without QA reassignment; repeat until resolved. This exception applies only at the final plan stage. Preserve required QA and QA failure rechecks before initial final review and outside this exception.
241
248
  - [platform.codex] Role restrictions are prompt-level contracts, not a filesystem sandbox. No documented role-specific Git hook or generic per-agent tool allowlist is assumed. Existing shell capabilities are retained because static read access after shell reduction has not been verified; Implementer and QA need shell for approved checks.
242
249
  [ARC role policy: contract end]
@@ -11,9 +11,8 @@ Freeze these settings for one ARC coordination session/tree; reinstalling affect
11
11
 
12
12
  Maintain a session ledger of instance IDs, parent IDs, pending reservations, creation outcomes,
13
13
  and active/completed state. The Orchestrator itself is excluded. All created descendants,
14
- including nested or non-ARC agents, count toward the total. A completed agent never refunds
15
- the cumulative budget. Follow-up/resume of the same instance does not increment total;
16
- a fresh instance, retry that creates a new instance, or replacement does increment it.
14
+ including nested or non-ARC agents, count toward the total. Completed agents never refund the cumulative budget. Follow-up/resume of the same instance does not increment total;
15
+ a fresh instance, retry creating a new instance, or replacement increments it.
17
16
  Waiting, blocked, running and idle resumable instances consume concurrency until their
18
17
  completion/termination is confirmed. Obey any lower actual runtime capacity, including
19
18
  native retention of completed instances; ARC counts do not prove that a native slot is free.
@@ -22,7 +21,7 @@ Before any parallel dispatch, reserve the entire proposed batch in the ledger:
22
21
  created + pending reservations + proposed <= max_total_subagents, and
23
22
  active + pending reservations + proposed <= max_concurrent_subagents and available runtime capacity.
24
23
  Record a reservation before each creation call. Confirmed creation converts it into a created,
25
- active ID. Release a reservation only when failure proves that no instance was created.
24
+ active ID. Release a reservation only when failure proves no instance was created.
26
25
  An uncertain result retains its reservation and capacity until reconciled. MUST NOT retry blindly.
27
26
  Serialize work when a batch does not fit. There are no reserved role slots.
28
27