@yunhozz/arc 0.1.9 → 0.2.0
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.
- package/MANIFEST.sha256 +109 -75
- package/README.md +19 -31
- package/claude/agents/{arc-coder.md → arc-implementer.md} +7 -7
- package/claude/agents/arc-planner.md +4 -4
- package/claude/agents/arc-qa.md +4 -4
- package/claude/agents/arc-reviewer.md +5 -5
- package/claude/agents/arc-scouter.md +3 -3
- package/claude/skill/SKILL.md +7 -7
- package/claude/skill/models.toml +3 -3
- package/claude/skill/references/commit.md +22 -7
- package/claude/skill/references/coordination.md +25 -18
- package/claude/skill/references/git-recovery.md +1 -1
- package/claude/skill/references/handoff-prep.md +25 -2
- package/claude/skill/references/handoff.md +116 -24
- package/claude/skill/references/planning.md +78 -22
- package/claude/skill/references/verification.md +155 -17
- package/claude/skill/runtime/acceptance.mjs +68 -0
- package/claude/skill/runtime/assignment.mjs +42 -0
- package/claude/skill/runtime/bootstrap.mjs +35 -0
- package/claude/skill/runtime/cli.mjs +8 -0
- package/claude/skill/runtime/command.mjs +21 -0
- package/claude/skill/runtime/cooperative-schema.mjs +55 -0
- package/claude/skill/runtime/cooperative.mjs +136 -0
- package/claude/skill/runtime/evaluate.mjs +40 -4
- package/claude/skill/runtime/external.mjs +51 -0
- package/claude/skill/runtime/gate.mjs +7 -7
- package/claude/skill/runtime/git-evidence.mjs +46 -0
- package/claude/skill/runtime/operations.mjs +2 -2
- package/claude/skill/runtime/role-policy.json +64 -19
- package/claude/skill/runtime/schema.mjs +1 -0
- package/claude/skill/runtime/scope.mjs +36 -0
- package/claude/skill/runtime/store.mjs +25 -4
- package/claude/skill/runtime/verification.mjs +123 -0
- package/claude/skill/scripts/model_config.py +2 -2
- package/codex/agents/{arc-coder.toml → arc-implementer.toml} +8 -8
- package/codex/agents/arc-planner.toml +6 -6
- package/codex/agents/arc-qa.toml +6 -6
- package/codex/agents/arc-reviewer.toml +6 -6
- package/codex/agents/arc-scouter.toml +5 -5
- package/codex/skill/SKILL.md +9 -9
- package/codex/skill/models.toml +3 -3
- package/codex/skill/references/commit.md +23 -8
- package/codex/skill/references/coordination.md +25 -18
- package/codex/skill/references/git-recovery.md +2 -2
- package/codex/skill/references/handoff-prep.md +25 -2
- package/codex/skill/references/handoff-worktree.md +4 -4
- package/codex/skill/references/handoff.md +126 -34
- package/codex/skill/references/planning.md +81 -23
- package/codex/skill/references/verification.md +160 -22
- package/codex/skill/runtime/acceptance.mjs +68 -0
- package/codex/skill/runtime/assignment.mjs +42 -0
- package/codex/skill/runtime/bootstrap.mjs +35 -0
- package/codex/skill/runtime/cli.mjs +8 -0
- package/codex/skill/runtime/command.mjs +21 -0
- package/codex/skill/runtime/cooperative-schema.mjs +55 -0
- package/codex/skill/runtime/cooperative.mjs +136 -0
- package/codex/skill/runtime/evaluate.mjs +40 -4
- package/codex/skill/runtime/external.mjs +51 -0
- package/codex/skill/runtime/gate.mjs +7 -7
- package/codex/skill/runtime/git-evidence.mjs +46 -0
- package/codex/skill/runtime/operations.mjs +2 -2
- package/codex/skill/runtime/role-policy.json +64 -19
- package/codex/skill/runtime/schema.mjs +1 -0
- package/codex/skill/runtime/scope.mjs +36 -0
- package/codex/skill/runtime/store.mjs +25 -4
- package/codex/skill/runtime/verification.mjs +123 -0
- package/codex/skill/scripts/model_config.py +3 -3
- package/lib/cli/postinstall.mjs +3 -16
- package/lib/cli/root.mjs +8 -18
- package/lib/cli/upgrade.mjs +1 -57
- package/lib/installer/manifest.mjs +7 -2
- package/lib/installer/plan.mjs +27 -13
- package/lib/installer/runtime-assets.mjs +25 -0
- package/lib/installer/shell-completion.mjs +15 -20
- package/lib/installer/targets.mjs +1 -1
- package/lib/installer/uninstall.mjs +5 -1
- package/lib/installer/upgrade-state.mjs +2 -2
- package/lib/installer/upgrade.mjs +2 -5
- package/lib/management/operations.mjs +39 -0
- package/lib/management/status.mjs +18 -0
- package/lib/management/update.mjs +58 -0
- package/lib/management/workflow.mjs +51 -0
- package/lib/models/config.mjs +1 -1
- package/lib/models/profiles.mjs +1 -1
- package/lib/policy/placement.mjs +6 -6
- package/lib/policy/render.mjs +3 -3
- package/lib/policy/role-policy.json +64 -19
- package/lib/release/artifact.mjs +1 -1
- package/lib/runtime/acceptance.mjs +68 -0
- package/lib/runtime/assignment.mjs +42 -0
- package/lib/runtime/bootstrap.mjs +35 -0
- package/lib/runtime/cli.mjs +8 -0
- package/lib/runtime/command.mjs +21 -0
- package/lib/runtime/cooperative-schema.mjs +55 -0
- package/lib/runtime/cooperative.mjs +136 -0
- package/lib/runtime/evaluate.mjs +40 -4
- package/lib/runtime/external.mjs +51 -0
- package/lib/runtime/gate.mjs +7 -7
- package/lib/runtime/git-evidence.mjs +46 -0
- package/lib/runtime/operations.mjs +2 -2
- package/lib/runtime/schema.mjs +1 -0
- package/lib/runtime/scope.mjs +36 -0
- package/lib/runtime/store.mjs +25 -4
- package/lib/runtime/verification.mjs +123 -0
- package/lib/tui/app.mjs +41 -0
- package/lib/tui/render.mjs +21 -0
- package/lib/tui/setup.mjs +20 -0
- package/lib/tui/terminal.mjs +71 -0
- package/lib/tui/workflow.mjs +12 -0
- package/package.json +1 -1
- package/scripts/postinstall.mjs +1 -3
- package/scripts/update-runtime-assets.mjs +6 -1
- package/lib/cli/choices.mjs +0 -47
- package/lib/cli/completion.mjs +0 -55
- package/lib/cli/index.mjs +0 -55
- package/lib/cli/preset.mjs +0 -29
- package/lib/cli/terminal.mjs +0 -19
- package/lib/cli/uninstall.mjs +0 -17
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Handoff contract
|
|
2
2
|
|
|
3
|
-
Orchestrator reads before every
|
|
4
|
-
in the brief under the
|
|
3
|
+
Orchestrator reads before every Implementer first start or restart preparation. Implementer trusts the Orchestrator-verified facts
|
|
4
|
+
in the brief under the Implementer profile and reads this file only for sections the brief explicitly cites. First-start preparation
|
|
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
|
|
|
@@ -9,13 +9,13 @@ in the brief under the Coder profile and reads this file only for sections the b
|
|
|
9
9
|
|
|
10
10
|
### Checkout approval
|
|
11
11
|
|
|
12
|
-
Before every
|
|
12
|
+
Before every Implementer first start and restart, Orchestrator confirms the supplied absolute workspace is accessible and
|
|
13
13
|
belongs to the intended Git repository; record its actual absolute path, current branch or detached HEAD, HEAD, and staged,
|
|
14
14
|
unstaged, and untracked changes. Stop if the workspace is inaccessible, is not the intended repository, or HEAD
|
|
15
15
|
cannot be resolved. Do not initialize Git or switch to another repository automatically.
|
|
16
16
|
|
|
17
17
|
Execution-target choice and actual preparation precede formal drafting and saving of required specs/plans.
|
|
18
|
-
Initial design proposals may precede choice. Initial target preparation does not authorize
|
|
18
|
+
Initial design proposals may precede choice. Initial target preparation does not authorize Implementer; all applicable
|
|
19
19
|
approvals, complete documents, verified batch docs commits or valid absence, and final Git verification remain required.
|
|
20
20
|
Record planned document scope/paths and actual preparation separately, followed by actual drafting/save/approval and
|
|
21
21
|
commit results; preserve actual order and evidence gaps. Reuse a valid choice during document drafting and subsequent
|
|
@@ -27,14 +27,14 @@ After initial design approval, obtain and record an explicit user choice for the
|
|
|
27
27
|
Explicit choice rule: use the current checkout, create a new task branch from the verified base HEAD in that same
|
|
28
28
|
checkout, or create a new managed worktree and task branch (selection target under handoff-prep.md; contract in
|
|
29
29
|
handoff-worktree.md after selection). Without an explicit execution-target choice or verified valid reuse under the
|
|
30
|
-
choice-lifetime rules below, wait and do not start or restart
|
|
30
|
+
choice-lifetime rules below, wait and do not start or restart Implementer.
|
|
31
31
|
|
|
32
|
-
###
|
|
32
|
+
### Implementer handoff gate
|
|
33
33
|
|
|
34
|
-
Orchestrator may start or restart
|
|
34
|
+
Orchestrator may start or restart Implementer only after all of these conditions are verified:
|
|
35
35
|
|
|
36
36
|
1. All applicable design/spec/plan approvals are recorded with approved artifact paths or valid depth-omission reasons.
|
|
37
|
-
For a
|
|
37
|
+
For a Implementer Spike probe, record its approved question, method/scope, acceptance criteria, and constraints.
|
|
38
38
|
The complete current-scope document list, approved versions, plan dependencies/order, and absence of unfinished
|
|
39
39
|
applicable documents are verified. Future implementation artifacts are not part of the probe scope or approved by it.
|
|
40
40
|
2. The user explicitly selected the execution target initially, or that initial choice remains valid under the restart
|
|
@@ -52,9 +52,9 @@ Before an Orchestrator direct edit, Orchestrator verifies the same conditions, w
|
|
|
52
52
|
applicable approval, and records them in the brief.
|
|
53
53
|
|
|
54
54
|
A missing or failed condition blocks handoff. Orchestrator may continue read-only investigation and authorized
|
|
55
|
-
preparation or recovery, but cannot start
|
|
56
|
-
HEAD, or relevant state changes.
|
|
57
|
-
resolves preparation and passes the gate again before
|
|
55
|
+
preparation or recovery, but cannot start Implementer early. Reverify affected evidence when approved content, execution target, branch,
|
|
56
|
+
HEAD, or relevant state changes. Implementer's conflict reporting is in its profile; Orchestrator
|
|
57
|
+
resolves preparation and passes the gate again before Implementer resumes.
|
|
58
58
|
|
|
59
59
|
### Handoff evidence
|
|
60
60
|
|
|
@@ -74,7 +74,7 @@ Record the Complete planning-document set fields from planning.md, confirming no
|
|
|
74
74
|
writing/approval.
|
|
75
75
|
Distinguish reused commits from the batch preparation commit, or record valid document absence.
|
|
76
76
|
Record applicable approvals and the initial explicit execution-target choice or verified reuse for each first start or
|
|
77
|
-
restart. Give all five roles (
|
|
77
|
+
restart. Give all five roles (Implementer, QA, Planner, Reviewer, Scouter) the same actual workspace and selected execution checkout or absolute
|
|
78
78
|
worktree path, preparation evidence, and absolute artifact paths. Each role stays in the supplied workspace, reports
|
|
79
79
|
missing, inaccessible, or conflicting paths and unexpected branch state to Orchestrator before dependent work, and does
|
|
80
80
|
not create or switch workspaces or branches.
|
|
@@ -89,7 +89,7 @@ cannot bypass its approval gate.
|
|
|
89
89
|
|
|
90
90
|
Before assignment, apply every readiness condition in
|
|
91
91
|
[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
|
|
92
|
+
checks, Orchestrator acceptance and verified focused commit or accepted no-change evidence. A Implementer completion report
|
|
93
93
|
alone is insufficient. Verify the linked record is current and capacity and file ownership permit assignment.
|
|
94
94
|
Readiness supplements the full handoff gate and execution-target restrictions; it never waives them.
|
|
95
95
|
For authorized HEAD or state changes, refresh this record and affected briefs, verify preservation and ownership,
|
|
@@ -103,7 +103,7 @@ when its evidence is accessible and still valid. On every first start and restar
|
|
|
103
103
|
state against the current brief: absolute workspace and repository identity, branch or detached HEAD, HEAD,
|
|
104
104
|
staged/unstaged/untracked changes, preservation and edit ownership, applicable approvals and artifacts,
|
|
105
105
|
planning-document SHA/message/paths/content or valid no-document rationale, and Orchestrator's final state verification
|
|
106
|
-
(
|
|
106
|
+
(Implementer handoff gate items 1-7); a reused choice never waives any gate. A restart without document changes reuses
|
|
107
107
|
verified valid planning-document commits without recommitting them and a still-valid initial choice, with fresh
|
|
108
108
|
actual-state checks. Normal authorized HEAD and dirty-state changes, including accepted task commits, docs commits,
|
|
109
109
|
implementation, and approved worktree document transfer, do not by themselves invalidate the choice; record them and
|
|
@@ -125,11 +125,11 @@ Markdown file at `<git-common-dir>/arc/handoff/<plan-or-task-slug>.md` (slug uni
|
|
|
125
125
|
stem, or a spec/task slug when no plan exists; never overwrite another plan's record; resolve with
|
|
126
126
|
`git rev-parse --path-format=absolute --git-common-dir`; outside the working tree and shared by linked worktrees; not a
|
|
127
127
|
Git mutation, never staged or committed; contains no secrets), gives its absolute path in every brief, and restart
|
|
128
|
-
briefs cite it. If the write is denied or unavailable, each
|
|
128
|
+
briefs cite it. If the write is denied or unavailable, each Implementer brief states why and includes the full record inline, with no delta;
|
|
129
129
|
that inline record satisfies the accessible record requirement. Do not delete it automatically.
|
|
130
130
|
|
|
131
131
|
Restart brief: supply only verified deltas and mark unchanged fields; `unchanged` means unchanged relative to the record
|
|
132
|
-
file the fresh
|
|
132
|
+
file the fresh Implementer reads, and every other brief field is in full. Include: initial record location,
|
|
133
133
|
next objective and edit ownership, changed decisions,
|
|
134
134
|
approvals, documents and scope (or explicit no-change confirmation), current Git state and differences, choice
|
|
135
135
|
validity and reuse verification, refreshed commit/artifact checks, Orchestrator final verification, and remaining
|
|
@@ -146,7 +146,7 @@ its scope, criteria, constraints, and valid document-depth omissions alongside e
|
|
|
146
146
|
Reuse valid authorization for the same approved scope and target. A restart or new role assignment does not require
|
|
147
147
|
repeat approval. Reuse never waives verification of actual workspace/repository, branch or detached HEAD, HEAD,
|
|
148
148
|
changes, preservation, ownership, applicable documents, and preparation evidence by Orchestrator. Refresh actual state
|
|
149
|
-
and affected briefs for authorized changes; they alone do not invalidate approval.
|
|
149
|
+
and affected briefs for authorized changes; they alone do not invalidate approval. Implementer trusts the verified brief
|
|
150
150
|
under its profile. Material scope/method/risk changes and invalid target evidence hold affected work; resolve using
|
|
151
151
|
planning and the choice-lifetime rules above. Report the missing condition and resume evidence rather than asking
|
|
152
152
|
for an approval already valid for that scope.
|
|
@@ -155,13 +155,13 @@ Before any exception judgment, Orchestrator reads [Risk-scaled execution](verifi
|
|
|
155
155
|
|
|
156
156
|
## Common handoff gate
|
|
157
157
|
|
|
158
|
-
Before every
|
|
158
|
+
Before every Implementer first start/restart, Orchestrator passes the full gate:
|
|
159
159
|
applicable approvals/artifacts or valid omissions, explicit execution-target choice
|
|
160
160
|
or verified reuse, intended accessible repository/workspace, actual Git identity/state, preservation/ownership,
|
|
161
161
|
verified document commits or valid absence, and no unresolved failure/partial completion.
|
|
162
162
|
Missing evidence, mismatches, unclear ownership or unresolved preparation block handoff and require Orchestrator
|
|
163
163
|
resolution and full revalidation. Handoff owns the evidence fields, canonical handoff record, restart brief, choice lifetime
|
|
164
|
-
and reuse.
|
|
164
|
+
and reuse. Implementer trusts the Orchestrator-verified brief and reports actual conflicts under its self-contained profile;
|
|
165
165
|
never replace its local guards with a requirement to load Orchestrator procedures.
|
|
166
166
|
Depth-2 roles use the supplied workspace and report path/state conflicts; they cannot create/switch workspaces or
|
|
167
167
|
branches. The same conditions apply before an Orchestrator direct edit.
|
|
@@ -169,12 +169,12 @@ For a selected worktree, handoff requires common directory, registration, app-ma
|
|
|
169
169
|
approved branch, and source preservation; prepare only through the selected managed-worktree contract.
|
|
170
170
|
|
|
171
171
|
|
|
172
|
-
##
|
|
172
|
+
## Implementer TDD and constraints
|
|
173
173
|
|
|
174
|
-
Before feature, bug-fix, or behavior edits,
|
|
175
|
-
ARC exception applies; the
|
|
174
|
+
Before feature, bug-fix, or behavior edits, Implementer follows local `test-driven-development` unless the explicit
|
|
175
|
+
ARC exception applies; the Implementer profile holds Implementer's full TDD rules. TDD is waived only when every small,
|
|
176
176
|
low-risk criterion (Risk-scaled execution) and every plan-skip criterion (Orchestrator direct path) holds.
|
|
177
|
-
Before
|
|
177
|
+
Before Implementer starts,
|
|
178
178
|
Orchestrator records the scope, why every criterion is met, acceptance criteria, and focused verification in the brief.
|
|
179
179
|
An explicit user or task-specific TDD request overrides
|
|
180
180
|
this waiver. For qualifying tasks only, this exception takes precedence over the generic trigger in the local reference;
|
|
@@ -188,41 +188,133 @@ generalize it to behavior work.
|
|
|
188
188
|
|
|
189
189
|
## Orchestrator direct path for small tasks
|
|
190
190
|
|
|
191
|
-
Orchestrator may make a task's edits directly, without Planner brainstorming or
|
|
191
|
+
Orchestrator may make a task's edits directly, without Planner brainstorming or Implementer, only when every small,
|
|
192
192
|
low-risk criterion holds, every plan-skip criterion holds (one local change, no dependent stages, no cross-component shared state,
|
|
193
193
|
lifecycle, or integration-order concerns, and one focused verification path), and no significant-risk trigger applies.
|
|
194
194
|
Spike, architectural, ordinary-behavior, significant/high-risk, unclear-risk work, and edits overlapping files assigned
|
|
195
|
-
to a running
|
|
195
|
+
to a running Implementer are not eligible.
|
|
196
196
|
|
|
197
197
|
Before editing, Orchestrator records a scope record (not a brainstorming design) with scope and files,
|
|
198
198
|
why every criterion holds, acceptance criteria, and focused verification. Apply authorization in
|
|
199
199
|
[planning](planning.md#authorization-and-scope): an existing sufficiently specific user request can approve
|
|
200
200
|
that scope; no duplicate approval is needed. Otherwise present the scope record to the user and obtain explicit
|
|
201
201
|
approval before editing. Silence, an ambiguous response, or approval of other work is not approval.
|
|
202
|
-
Orchestrator then passes the
|
|
202
|
+
Orchestrator then passes the Implementer handoff gate in handoff,
|
|
203
203
|
with the approved scope record as the applicable approval, before the first edit. Orchestrator edits only the approved files,
|
|
204
204
|
preserves others' edits, makes surgical edits in the local style without unrelated refactoring or speculative additions,
|
|
205
205
|
and does not install dependencies without authorization.
|
|
206
206
|
|
|
207
|
-
Behavior edits follow
|
|
207
|
+
Behavior edits follow Implementer TDD and constraints; when TDD applies, Orchestrator follows local
|
|
208
208
|
`test-driven-development`.
|
|
209
209
|
After editing, Orchestrator records the changed files, runs the focused checks, connects each acceptance criterion to
|
|
210
210
|
evidence, and preserves unverified scope. Orchestrator is not independent of its own edit; assign QA when the evidence is
|
|
211
211
|
incomplete.
|
|
212
|
-
After a failed focused check or a QA finding, Orchestrator routes the correction to
|
|
212
|
+
After a failed focused check or a QA finding, Orchestrator routes the correction to Implementer and obtains a recheck.
|
|
213
213
|
|
|
214
214
|
If scope expands, risk becomes unclear, or a criterion stops holding, Orchestrator stops editing, records the changes
|
|
215
|
-
already made, and reclassifies; further work follows the normal Planner/
|
|
215
|
+
already made, and reclassifies; further work follows the normal Planner/Implementer flow with Implementer owning subsequent edits. Do not
|
|
216
216
|
automatically revert, reset, stash, or clean those changes. Like other plan-skip paths, there is no automatic task
|
|
217
217
|
commit; commits follow applicable guidance and user requests.
|
|
218
218
|
|
|
219
219
|
|
|
220
|
+
## Cooperative CLI verification handoff
|
|
221
|
+
|
|
222
|
+
For the supported spec+plan path, the verification handoff includes the registered task contract, exact check descriptor,
|
|
223
|
+
task/final scope, `status.changeFingerprints`, independent actor attestations, intent ID, result messageRef and verdict.
|
|
224
|
+
An externally authorized role performs each check/review after `prepare`, and records the actual result through `result`.
|
|
225
|
+
CLI records do not authenticate identities or prove actual agent policy compliance.
|
|
226
|
+
|
|
227
|
+
When scope, documents or approvals change, inspect `affectedTaskIds` and the dependency chain, preserve earlier approval and
|
|
228
|
+
result records, and hand off new approvals and contracts for affected tasks. Do not reuse an old passing check for a different fingerprint.
|
|
229
|
+
Link failed findings to the assigned Implementer's resolution evidence and QA rechecks for that change version. Only final overall Reviewer
|
|
230
|
+
findings use Implementer→Reviewer revalidation. Do not add Reviewer as a prerequisite for individual task acceptance or commits.
|
|
231
|
+
Follow [verification.md](verification.md#verification-lifecycle-in-the-cooperative-cli) for detailed fields and hold conditions.
|
|
232
|
+
An unsupported no-plan/omission path does not imply a policy violation or a requirement to write documents.
|
|
233
|
+
|
|
220
234
|
[ARC role policy: contract begin]
|
|
221
235
|
Generated from lib/policy/role-policy.json; do not edit this managed section manually.
|
|
222
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.
|
|
223
|
-
- [role.
|
|
224
|
-
- [review.significant-no-plan] For significant/high-risk work without a plan:
|
|
225
|
-
- [review.significant-plan] For significant/high-risk plan work: each task uses
|
|
226
|
-
- [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use
|
|
227
|
-
- [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;
|
|
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.
|
|
240
|
+
- [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
|
+
- [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.
|
|
228
242
|
[ARC role policy: contract end]
|
|
243
|
+
|
|
244
|
+
## Initial Implementer assignment through the cooperative CLI
|
|
245
|
+
|
|
246
|
+
In approved plan mode, Orchestrator performs the following sequence. All mutation commands pass JSON through stdin with
|
|
247
|
+
`node "$ARC_RUNTIME_ENTRY" <command> --cwd "$ARC_CHECKOUT" --workflow "$ARC_WORKFLOW_ID" --input -`.
|
|
248
|
+
Resolve `ARC_RUNTIME_ENTRY` from the actual ARC skill directory selected by the installation resolver:
|
|
249
|
+
`<target-home>/skills/arc/runtime/cli.mjs`. Use the loaded skill's location, including a custom target home;
|
|
250
|
+
do not guess the default home or use a package, checkout or cache entry. Pass the resolved path, checkout and
|
|
251
|
+
workflow ID as separate argv values when using a process API. In a shell, assign values safely and double-quote
|
|
252
|
+
these variables; never interpolate paths into executable shell text or use `eval`.
|
|
253
|
+
Query `status` without `--input`.
|
|
254
|
+
|
|
255
|
+
The entry preserves the cooperative state path in the selected checkout's Git common directory. Installing or
|
|
256
|
+
updating the entry does not migrate state or renew approvals. Runtime/hash, target, actor and revision checks still
|
|
257
|
+
apply: runtime drift holds existing evidence; obtain the required current evidence and approval through the
|
|
258
|
+
existing recovery procedure. A new workflow cannot retroactively validate earlier execution.
|
|
259
|
+
|
|
260
|
+
1. Prepare the docs-only commit of the approved spec and plan, and verify the exact document set, objects and current files.
|
|
261
|
+
Perform `init`, approval `record` and `prepare` only after this commit verification, even when user approval preceded the document commit.
|
|
262
|
+
2. After document commit verification, pass `mode: "plan"`, `actor: {id: "operator"}` and `selection: {messageRef, contentHash}` to `init` at the final target HEAD.
|
|
263
|
+
3. Use `record` to persist the user approval attestation already confirmed. The input is
|
|
264
|
+
`{requestId, expectedRevision, actor, evidence: {kind: "approval", messageRef, data: {approvalVersion, documentVersion, documents}}}`.
|
|
265
|
+
`documents` contains exactly the spec and plan, each with `{kind, path, gitPath, contentHash, approvalRef, commit}`.
|
|
266
|
+
`contentHash` is `sha256:<hex>`, and `approvalRef` must match the approval `messageRef`.
|
|
267
|
+
On HEAD drift, record a fresh target observation and renewed approval instead of reconnecting an earlier intent.
|
|
268
|
+
4. Pass `{requestId, expectedRevision, actor, operation: "assign-agent", taskId, arguments: {role: "implementer", paths, operations: ["edit"], documents, approvalRef, approvalVersion, documentVersion, correlation}}` to `prepare`.
|
|
269
|
+
Absolute `paths` must be inside the checkout. Confirm `allow`, `persisted: true` and the persisted intent.
|
|
270
|
+
5. Invoke the native assignment with the task, scope and correlation from the persisted intent.
|
|
271
|
+
6. Pass `{requestId, expectedRevision, actor, intentId, result: {status, messageRef, data: {correlation, taskId, agentId}}}` to `result`.
|
|
272
|
+
`intentId` is the prepare requestId. Distinguish success as `succeeded`, failure as `failed`, uncertain execution as `unknown` and a response mismatch as `mismatch`.
|
|
273
|
+
Success requires the returned agent ID. `unknown`/`mismatch` causes a hold; stop duplicate assignments and investigate the actual result.
|
|
274
|
+
|
|
275
|
+
Approval and assignment results on this path are `operator-attested`. They do not authenticate native identities or verify platform events.
|
|
276
|
+
The CLI cannot block direct calls outside it, and a new workflow cannot legitimize omitted past execution. Existing trusted adapter provenance requirements remain in force.
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
## External operations and recovery in the cooperative CLI
|
|
280
|
+
|
|
281
|
+
The three phases support state, documents and assignment; scope, verification, acceptance and focused commits; and external approval, results and audit recovery.
|
|
282
|
+
Use `status.support` to inspect all nine areas and their limits. The supported mode is `plan` with spec+plan; no-plan and omission are unsupported. The CLI does not execute native/provider calls or push, merge, deploy or publish.
|
|
283
|
+
User approvals and execution results confirmed by the operator are `operator-attested`, with `nativeVerified: false` and
|
|
284
|
+
`remoteVerified: false`. Blocking direct calls outside the CLI and independent remote verification are not provided.
|
|
285
|
+
|
|
286
|
+
Orchestrator records an explicit approval it has already confirmed through `record` with
|
|
287
|
+
`evidence: {kind: "external-approval", messageRef, data: {operation, scope, descriptor}}`.
|
|
288
|
+
`scope` is an array of unique absolute paths within the checkout. Local commit approval does not authorize external operations.
|
|
289
|
+
Include the exact action, scope and target in the approval, and record every descriptor field below.
|
|
290
|
+
|
|
291
|
+
| operation | descriptor fields |
|
|
292
|
+
|---|---|
|
|
293
|
+
| push | repository, destination, refspec, sourceOid, expectedRemoteOid |
|
|
294
|
+
| merge | repository, changeRef, targetRef, expectedTargetOid |
|
|
295
|
+
| deploy | service, project, environment, artifactId, destination |
|
|
296
|
+
| publish | service, namespace, name, version, artifactHash, destination |
|
|
297
|
+
|
|
298
|
+
Git OIDs are full 40/64-character lowercase hex values; artifactHash is `sha256:<64-hex>`. Without a remote observation,
|
|
299
|
+
an OID is an expected value asserted by the user, not verified remote state. destination must be an identifier without secrets.
|
|
300
|
+
Do not submit URL userinfo, query or fragment components, or authentication information such as passwords, tokens or credentials.
|
|
301
|
+
The CLI rejects recognized credential inputs before persistence, but cannot determine whether every arbitrary string contains a secret.
|
|
302
|
+
|
|
303
|
+
Pass `{requestId, expectedRevision, actor: {id, role: "orchestrator"}, operation,
|
|
304
|
+
arguments: {approvalRef, scope, descriptor}}` to `prepare`. approvalRef matches the external approval messageRef.
|
|
305
|
+
An intent is persisted only when the exact approval, scope/target versions and runtime version match and no effect is unresolved.
|
|
306
|
+
After confirming `allow` and `persisted: true`, Orchestrator performs the external operation within its separately approved scope.
|
|
307
|
+
This CLI does not expand that execution authority.
|
|
308
|
+
|
|
309
|
+
`result`/`reconcile` accepts `{requestId, expectedRevision, actor, intentId,
|
|
310
|
+
result: {status, messageRef, data: {operation, scope, descriptor}}}`. intentId is the prepare requestId.
|
|
311
|
+
Target mismatches, unknown outcomes and stale results cause a hold while preserving earlier attestations. After an interruption,
|
|
312
|
+
use `status` to inspect the intent, `state.requests`, `state.audit` and `state.results`, and investigate whether the effect occurred.
|
|
313
|
+
Reconcile the investigation result against the same intent rather than preparing again or reusing the same approval to execute again.
|
|
314
|
+
Cancellation additionally requires a `notExecutedEvidence: {messageRef}` attestation that the operation was not executed.
|
|
315
|
+
The approval remains consumed after cancellation. Do not resolve version drift through automatic updates, migration or renewed permission.
|
|
316
|
+
Report the cause of the hold to Orchestrator.
|
|
317
|
+
|
|
318
|
+
Even succeeded results are operator attestations, not independent remote verification. `audit` retains the
|
|
319
|
+
request→decision→intent→result→resolution linkage, but is a locally editable record rather than tamper-proof security evidence.
|
|
320
|
+
Do not retry while the actual external outcome is uncertain.
|
|
@@ -44,7 +44,7 @@ and records the actual absolute workspace/repository, branch or detached HEAD, H
|
|
|
44
44
|
explicit choice and preparation evidence, and absolute document paths inside that target. Planner drafts for that
|
|
45
45
|
verified workspace; Orchestrator saves directly in the selected target. Missing or mismatched evidence stops the
|
|
46
46
|
affected drafting or save and is reported to Orchestrator. Planned scope and paths do not establish actual preparation.
|
|
47
|
-
Initial target preparation does not authorize
|
|
47
|
+
Initial target preparation does not authorize Implementer; the complete handoff gate still applies.
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
## Planner drafting preparation and consolidated feedback
|
|
@@ -66,6 +66,14 @@ Initial design, required spec approval, and formal plan drafting/approval remain
|
|
|
66
66
|
Allow additional Planner calls for substantive omissions or user-approved scope/evidence changes. There is no fixed
|
|
67
67
|
call cap; never accept an incomplete draft to minimize calls. Do not add call-count conditions to Planner profiles.
|
|
68
68
|
|
|
69
|
+
The complete initial brief identifies original user requirements, criteria IDs, approved decisions and open decisions;
|
|
70
|
+
current behavior and connected source, generated, runtime, installer and documentation surfaces; conflicting rules and
|
|
71
|
+
resolution direction; exact current-stage deliverable and absolute output path. Keep the shared brief's fixed field order
|
|
72
|
+
in [coordination](coordination.md). Link accessible evidence and needed ranges instead of full dialogue or raw logs.
|
|
73
|
+
Consolidated feedback contains changed fields only and marks remaining fields `unchanged` relative to the received brief.
|
|
74
|
+
Do not call Planner again for already resolved questions. Missing target preparation or required decisions holds formal
|
|
75
|
+
drafting; initial design proposals may still precede target selection. Written-spec approval precedes dependent plan drafting.
|
|
76
|
+
|
|
69
77
|
## Design and planning
|
|
70
78
|
|
|
71
79
|
`brainstorming` and `writing-plans` are instructions for existing roles, not extra agents. This ARC controls
|
|
@@ -92,12 +100,12 @@ approved obligations separately.
|
|
|
92
100
|
(SKILL.md Role gate);
|
|
93
101
|
the direct path uses only a scope record.
|
|
94
102
|
2. Spike: apply Probe scope above; distinguish probe-only authorization from a sufficiently specified combined scope.
|
|
95
|
-
Bounded: approve a short design before
|
|
96
|
-
before
|
|
103
|
+
Bounded: approve a short design before Implementer or an Orchestrator direct edit (Planner's design
|
|
104
|
+
before Implementer; a direct edit uses only an approved scope record). Architectural: approve
|
|
97
105
|
design, then Planner returns complete spec draft and self-review findings; Orchestrator integrates, saves,
|
|
98
106
|
self-reviews, and obtains written-spec approval
|
|
99
107
|
before implementation planning. Planner is read-only and cannot request approval.
|
|
100
|
-
3. After approved design/spec and before
|
|
108
|
+
3. After approved design/spec and before Implementer, Orchestrator assesses plan depth separately from file count, LOC,
|
|
101
109
|
or bounded
|
|
102
110
|
scope. Architectural work always uses local `writing-plans` and requires written plan approval, regardless of
|
|
103
111
|
locality, risk, or size. For bounded work, skip planning only for one local change with no dependent stages,
|
|
@@ -109,8 +117,8 @@ approved obligations separately.
|
|
|
109
117
|
returning its complete proportional draft, assumptions/open decisions, verification requirements, and self-review.
|
|
110
118
|
Orchestrator integrates, saves to the user's path or `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`,
|
|
111
119
|
self-reviews,
|
|
112
|
-
then obtains plan approval before
|
|
113
|
-
5. Every
|
|
120
|
+
then obtains plan approval before Implementer.
|
|
121
|
+
5. Every Implementer first start and restart requires all applicable design/spec/plan approvals and passing
|
|
114
122
|
the Common handoff gate in SKILL.md and handoff.md, with approved artifacts, brief, and relevant findings.
|
|
115
123
|
Non-behavior
|
|
116
124
|
configuration/documentation may skip inapplicable design/planning stages, but still requires the handoff gate.
|
|
@@ -141,12 +149,12 @@ These requirements apply to required plans; existing plan-omission paths gain no
|
|
|
141
149
|
|
|
142
150
|
### Dependency and readiness record
|
|
143
151
|
|
|
144
|
-
After plan approval and before the first
|
|
152
|
+
After plan approval and before the first Implementer assignment, Orchestrator records all top-level task IDs in the
|
|
145
153
|
accessible canonical handoff record, linked to the approved plan version. For each task record explicit and implicit
|
|
146
154
|
predecessors, required inputs, outputs and shared contracts, owned files, conflicting shared resources, required
|
|
147
155
|
checks/QA path, ready/held status and reasons. Record the initial ready batch and capacity/serialization reasons.
|
|
148
156
|
Analyze shared APIs, contracts, generated artifacts and resources even when tasks edit different files. Unresolved
|
|
149
|
-
shared contracts or insufficient dependency information block the affected tasks; same-file concurrent
|
|
157
|
+
shared contracts or insufficient dependency information block the affected tasks; same-file concurrent Implementer edits
|
|
150
158
|
are blocked even for different lines. Do not infer independence from file separation or plan listing order.
|
|
151
159
|
|
|
152
160
|
A task is ready only when all applicable approvals and execution preparation are complete, required inputs/contracts
|
|
@@ -154,7 +162,7 @@ are available and settled, predecessors have required evidence and Orchestrator
|
|
|
154
162
|
commits (or accepted no-change records), ownership/resources do not conflict, its required check/QA path is available,
|
|
155
163
|
and a subagent slot exists under both the configured ARC full-tree cap shared by all roles and any lower actual runtime
|
|
156
164
|
limit (see [limits](limits.md)). Report runtime limits; ARC's cap is not a claim of runtime capability. Start all ready
|
|
157
|
-
independent tasks with fresh
|
|
165
|
+
independent tasks with fresh Implementers concurrently within capacity; record each hold or serialization reason instead of
|
|
158
166
|
silently following list order. Preserve existing risk gates, risk-scaled QA/Reviewer timing and execution-target
|
|
159
167
|
restrictions.
|
|
160
168
|
|
|
@@ -206,24 +214,24 @@ Bounded plan-skip, or non-behavior documentation/configuration paths; preserve e
|
|
|
206
214
|
Normal order: initial design approval → execution-target choice → target preparation and verification →
|
|
207
215
|
formal spec drafting (when required), saving and self-review → written-spec approval → formal plan drafting
|
|
208
216
|
(when required), saving and self-review → individual plan approvals → complete applicable set → existing-commit
|
|
209
|
-
verification and one batch docs commit of remaining approved documents → final Git verification →
|
|
217
|
+
verification and one batch docs commit of remaining approved documents → final Git verification → Implementer handoff.
|
|
210
218
|
Written-spec approval precedes dependent plan drafting. On document-omission paths skip only the inapplicable document
|
|
211
|
-
steps; preserve target choice, preparation, state/ownership checks and
|
|
219
|
+
steps; preserve target choice, preparation, state/ownership checks and Implementer gates.
|
|
212
220
|
|
|
213
221
|
While documents are being written, reviewed, or approved, do not stage documents or commit planning documents.
|
|
214
222
|
Selection and initial target preparation happen before formal drafting; document completion is a staging/commit gate,
|
|
215
|
-
not an initial preparation gate. An incomplete set or missing applicable approval blocks document commit and
|
|
216
|
-
not the initial choice request. No early
|
|
223
|
+
not an initial preparation gate. An incomplete set or missing applicable approval blocks document commit and Implementer,
|
|
224
|
+
not the initial choice request. No early Implementer work is authorized by approval of only some documents.
|
|
217
225
|
|
|
218
226
|
This ARC explicitly defers the local `brainstorming` instruction to commit the spec before written-spec review:
|
|
219
227
|
save and self-review the spec, obtain written-spec approval without committing it, then write and obtain approval for
|
|
220
228
|
all applicable plans. Commit the spec only in the final batch preparation. Do not modify external skills.
|
|
221
229
|
`writing-plans` implementation-step commit instructions
|
|
222
|
-
are not permission for document commits during planning or for starting
|
|
230
|
+
are not permission for document commits during planning or for starting Implementer.
|
|
223
231
|
|
|
224
232
|
| Path | Applicable approvals and preparation |
|
|
225
233
|
|------|--------------------------------------|
|
|
226
|
-
| Spike probe | Approve the feasibility question, probe method/scope, acceptance criteria, and constraints. Do not force specs/plans for still-unknown implementation; no new spec obligation is added by this gate. If
|
|
234
|
+
| Spike probe | Approve the feasibility question, probe method/scope, acceptance criteria, and constraints. Do not force specs/plans for still-unknown implementation; no new spec obligation is added by this gate. If Implementer executes the probe, pass the Common handoff gate after probe approval. Read-only Orchestrator/Planner investigation without Implementer does not trigger that gate. |
|
|
227
235
|
| Bounded, plan skipped | Approve the short design and record the existing plan-skip criteria/rationale; this gate adds no new spec obligation. Complete applicable approvals, select the target, prepare any actual approved documents, or record valid document absence, then pass the Common handoff gate. |
|
|
228
236
|
| Bounded, plan required | Approve the short design and every required plan; write a spec only when Orchestrator's recorded plan-depth judgment requires it, then obtain its individual written-spec approval before dependent plan drafting. Select and prepare the target before formal drafting; complete all applicable artifacts before one docs batch and the Common handoff gate. |
|
|
229
237
|
| Architectural | Approve design, then written spec, then every required plan using `writing-plans`; select and prepare the target before formal drafting; complete the document set before batch preparation, final verification, and the Common handoff gate. |
|
|
@@ -235,16 +243,47 @@ Document omission skips only document obligations, never explicit
|
|
|
235
243
|
execution-target choice, Git state/ownership checks, or handoff evidence.
|
|
236
244
|
|
|
237
245
|
If planning reveals new scope, reassess the list, depth, and dependencies and obtain additional required approvals
|
|
238
|
-
before dependent drafting or commit. Changed approved
|
|
239
|
-
|
|
240
|
-
|
|
246
|
+
before dependent drafting or commit. Changed approved document bodies require approval of the revised version, except
|
|
247
|
+
mechanical execution records defined below. If implementation reveals new scope, stop affected execution until that
|
|
248
|
+
scope's documents, approvals, and preparation are complete. Then reflect the approved plan version in its original
|
|
249
|
+
planning-document commit under the update contract below; never retroactively authorize work before actual approval.
|
|
250
|
+
An already-running Implementer must stop before edits dependent on new plans; inspect
|
|
241
251
|
current changes/Git state and do not retroactively claim preparation. A restart without document changes follows Choice
|
|
242
252
|
lifetime and restart record in [handoff.md](handoff.md).
|
|
243
253
|
|
|
254
|
+
## Plan updates during execution
|
|
255
|
+
|
|
256
|
+
Mechanical execution records may be recorded without new user approval: checkbox completion, actual results, evidence
|
|
257
|
+
links and task completion state that preserve the approved execution contract. Record their classification, reason and
|
|
258
|
+
actual recording time in the canonical handoff record. Required checks' removal, invented success, unsupported acceptance
|
|
259
|
+
or scope changes mixed with a completion mark are not mechanical records.
|
|
260
|
+
|
|
261
|
+
Changes to goals, task scope or boundaries, acceptance criteria, method, risk, dependencies or required verification
|
|
262
|
+
require revised-version approval before affected work. Hold affected execution, obtain necessary design/spec/plan approvals
|
|
263
|
+
in order, and complete target, ownership, checks and handoff preparation before resuming. Other approved body corrections
|
|
264
|
+
follow the document-version approval rules; classify typos, paths, commands and explanations by their semantic effect.
|
|
265
|
+
|
|
266
|
+
Both mechanical records and approved contract revisions amend the original planning-document commit at a safe checkpoint.
|
|
267
|
+
Make no separate document commit or fixup commit, including for newly approved scope. Preserve implementation task commits.
|
|
268
|
+
This history update does not make actual approval time retroactive: the latest plan in the original commit is not evidence
|
|
269
|
+
that its contents were approved from the outset. Never use rewritten history to justify work started before approval.
|
|
270
|
+
|
|
271
|
+
In the canonical handoff record preserve plan absolute/Git paths; before and after content hashes and versions; prior and
|
|
272
|
+
revised approval references and actual times; change reason and classification; affected tasks and hold/preparation/resume
|
|
273
|
+
evidence. For mechanical records explain why no new approval is needed and record the time. Preserve recoverable document
|
|
274
|
+
contents, not hashes alone, and each old-to-new SHA mapping for the original document commit and descendant task commits.
|
|
275
|
+
Do not overwrite earlier approval references or the contents they approved.
|
|
276
|
+
|
|
277
|
+
Orchestrator alone performs the safe rewrite in [handoff-prep](handoff-prep.md#execution-time-plan-amendment) and
|
|
278
|
+
[commit](commit.md#execution-time-plan-document-updates). Shared/published or unknown history, merges, unclear ownership,
|
|
279
|
+
unexpected HEAD/dirty state and replay conflicts stop affected work. No force push or fallback document commit.
|
|
280
|
+
After rewriting, connect evidence to the new state under [verification](verification.md#evidence-after-plan-history-rewrite).
|
|
281
|
+
This contract adds no Git automation, runtime enforcement, authority or exemption from required checks/QA/Reviewer gates.
|
|
282
|
+
|
|
244
283
|
### Evidence refresh and limits
|
|
245
284
|
|
|
246
285
|
Missing or mismatched evidence, unfinished approvals, unclear ownership, or unresolved failure blocks the affected
|
|
247
|
-
save, execution-target request, Git mutation, or
|
|
286
|
+
save, execution-target request, Git mutation, or Implementer handoff: stop and report to Orchestrator.
|
|
248
287
|
Orchestrator resolves the issue and reverifies affected evidence before resumption. Reverify evidence when scope,
|
|
249
288
|
approved versions, paths, target, or relevant Git state changes. Preserve unrelated changes under handoff rules;
|
|
250
289
|
read-only investigation remains allowed.
|
|
@@ -253,6 +292,7 @@ Do not retroactively treat an early save or commit as satisfying these gates or
|
|
|
253
292
|
order and any evidence gap. Structural checks prove only the repository's written policy contract, not consuming-agent
|
|
254
293
|
runtime compliance. Without execution records for role returns, approvals, saves, and Git actions, leave runtime
|
|
255
294
|
compliance unverified. Do not add runtime infrastructure or modify external skills for these checks.
|
|
295
|
+
The narrow exception below applies only to the explicitly approved cooperative CLI path within this repository.
|
|
256
296
|
|
|
257
297
|
### Managed worktree preparation
|
|
258
298
|
|
|
@@ -269,8 +309,26 @@ skill. Missing files stop the stage; report paths without global fallback. Keep
|
|
|
269
309
|
[ARC role policy: contract begin]
|
|
270
310
|
Generated from lib/policy/role-policy.json; do not edit this managed section manually.
|
|
271
311
|
- [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.
|
|
272
|
-
- [review.significant-no-plan] For significant/high-risk work without a plan:
|
|
273
|
-
- [review.significant-plan] For significant/high-risk plan work: each task uses
|
|
274
|
-
- [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use
|
|
275
|
-
- [
|
|
312
|
+
- [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.
|
|
313
|
+
- [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.
|
|
314
|
+
- [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.
|
|
315
|
+
- [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.
|
|
316
|
+
- [planning.planner-brief] Before formal drafting, Orchestrator supplies one complete stage-specific brief with original requirements and criteria IDs, approved/open decisions, verified target and ownership, document paths and preceding approved versions, current behavior and connected source/generated/runtime/installer/documentation surfaces, policy conflicts, depth, dependencies, checks, holds and exact deliverable. Preserve shared brief field order. Review the complete draft once and consolidate substantive feedback as changed fields with other fields marked unchanged. Preserve sequential design, spec and plan approvals; no fixed call cap or incomplete drafts, and no calls for already resolved questions.
|
|
317
|
+
- [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.
|
|
276
318
|
[ARC role policy: contract end]
|
|
319
|
+
|
|
320
|
+
## Approved cooperative execution path within the repository
|
|
321
|
+
|
|
322
|
+
The approved installed workflow entry connects document commits to the initial Implementer assignment in plan mode.
|
|
323
|
+
Resolve `<target-home>/skills/arc/runtime/cli.mjs` from the actual loaded ARC skill location selected by the installation
|
|
324
|
+
resolver, including custom homes. Invoke `node` with that path and command options as separate arguments; for shell
|
|
325
|
+
calls use `node "$ARC_RUNTIME_ENTRY" <command> --cwd "$ARC_CHECKOUT" --workflow "$ARC_WORKFLOW_ID" --input -`
|
|
326
|
+
with safely assigned, quoted values. See [handoff](handoff.md) for invocation and continuity requirements.
|
|
327
|
+
An entry update does not migrate existing state or renew approvals; runtime/target drift still requires current evidence.
|
|
328
|
+
Its scope is decisions and records within the repository's cooperative path. It adds no authority to install native hooks/providers/installers or block direct tool calls.
|
|
329
|
+
`no-plan`/omission is unsupported by this CLI, and this boundary remains in Phases 2 and 3. This does not imply an omission policy violation or a new obligation to write documents.
|
|
330
|
+
|
|
331
|
+
Orchestrator records the SHA-256 values of the user-approved spec and plan, their shared docs-only commit, document version and approval version.
|
|
332
|
+
The CLI verifies the exact changed paths in actual Git objects and the current document bytes before persisting an assignment intent.
|
|
333
|
+
A new workflow or late document commit cannot prove earlier execution was compliant. Earlier agent history and execution outside this path remain unverified.
|
|
334
|
+
Approval attestations and native returns are `operator-attested`; an agent ID is not an authenticated identity.
|