@yunhozz/arc 0.0.0-stage → 0.1.1
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 +96 -0
- package/README.md +61 -2
- package/bin/arc.mjs +3 -0
- package/claude/agents/arc-coder.md +67 -0
- package/claude/agents/arc-planner.md +74 -0
- package/claude/agents/arc-qa.md +68 -0
- package/claude/agents/arc-reviewer.md +65 -0
- package/claude/agents/arc-scouter.md +63 -0
- package/claude/skill/SKILL.md +370 -0
- package/claude/skill/hooks/git-policy.json +208 -0
- package/claude/skill/hooks/role-git-guard.mjs +98 -0
- package/claude/skill/models.toml +64 -0
- package/claude/skill/references/commit.md +77 -0
- package/claude/skill/references/git-recovery.md +46 -0
- package/claude/skill/references/handoff-prep.md +102 -0
- package/claude/skill/references/handoff.md +100 -0
- package/claude/skill/references/limits.md +42 -0
- package/claude/skill/references/planning.md +250 -0
- package/claude/skill/references/superpowers/LICENSE +21 -0
- package/claude/skill/references/superpowers/brainstorming/SKILL.md +225 -0
- package/claude/skill/references/superpowers/brainstorming/builder-check-prompt.md +23 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/helper.js +167 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/claude/skill/references/superpowers/brainstorming/visual-companion.md +299 -0
- package/claude/skill/references/superpowers/provenance.json +26 -0
- package/claude/skill/references/superpowers/test-driven-development/SKILL.md +330 -0
- package/claude/skill/references/superpowers/test-driven-development/writing-good-tests.md +198 -0
- package/claude/skill/references/superpowers/writing-plans/SKILL.md +204 -0
- package/claude/skill/references/verification.md +125 -0
- package/claude/skill/references/visual-companion.md +16 -0
- package/claude/skill/scripts/apply-models.py +31 -0
- package/claude/skill/scripts/model_config.py +211 -0
- package/codex/agents/arc-coder.toml +37 -0
- package/codex/agents/arc-planner.toml +38 -0
- package/codex/agents/arc-qa.toml +24 -0
- package/codex/agents/arc-reviewer.toml +25 -0
- package/codex/agents/arc-scouter.toml +37 -0
- package/codex/skill/SKILL.md +356 -0
- package/codex/skill/models.toml +64 -0
- package/codex/skill/references/commit.md +100 -0
- package/codex/skill/references/git-recovery.md +64 -0
- package/codex/skill/references/handoff-prep.md +153 -0
- package/codex/skill/references/handoff-worktree.md +93 -0
- package/codex/skill/references/handoff.md +181 -0
- package/codex/skill/references/limits.md +43 -0
- package/codex/skill/references/planning.md +287 -0
- package/codex/skill/references/superpowers/LICENSE +21 -0
- package/codex/skill/references/superpowers/brainstorming/SKILL.md +225 -0
- package/codex/skill/references/superpowers/brainstorming/builder-check-prompt.md +23 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/helper.js +167 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/codex/skill/references/superpowers/brainstorming/visual-companion.md +299 -0
- package/codex/skill/references/superpowers/provenance.json +26 -0
- package/codex/skill/references/superpowers/test-driven-development/SKILL.md +330 -0
- package/codex/skill/references/superpowers/test-driven-development/writing-good-tests.md +198 -0
- package/codex/skill/references/superpowers/writing-plans/SKILL.md +204 -0
- package/codex/skill/references/verification.md +163 -0
- package/codex/skill/references/visual-companion.md +23 -0
- package/codex/skill/scripts/apply-models.py +207 -0
- package/codex/skill/scripts/model_config.py +362 -0
- package/install.command +5 -0
- package/lib/cli/choices.mjs +47 -0
- package/lib/cli/completion.mjs +53 -0
- package/lib/cli/index.mjs +55 -0
- package/lib/cli/preset.mjs +29 -0
- package/lib/cli/progress.mjs +10 -0
- package/lib/cli/root.mjs +20 -0
- package/lib/cli/uninstall.mjs +17 -0
- package/lib/installer/acquisition.mjs +77 -0
- package/lib/installer/global-config.mjs +43 -0
- package/lib/installer/install.mjs +28 -0
- package/lib/installer/language.mjs +13 -0
- package/lib/installer/limits.mjs +21 -0
- package/lib/installer/manifest.mjs +37 -0
- package/lib/installer/package-references.mjs +32 -0
- package/lib/installer/plan.mjs +62 -0
- package/lib/installer/preset.mjs +26 -0
- package/lib/installer/runtime-config.mjs +85 -0
- package/lib/installer/shell-completion.mjs +29 -0
- package/lib/installer/stage-cleanup.mjs +40 -0
- package/lib/installer/superpowers.mjs +113 -0
- package/lib/installer/targets.mjs +55 -0
- package/lib/installer/transaction.mjs +91 -0
- package/lib/installer/uninstall.mjs +32 -0
- package/lib/limits.mjs +13 -0
- package/lib/models/config.mjs +58 -0
- package/lib/models/index.mjs +2 -0
- package/lib/models/profiles.mjs +111 -0
- package/lib/policy/claude-hook.mjs +40 -0
- package/lib/policy/render.mjs +74 -0
- package/lib/policy/role-policy.json +577 -0
- package/lib/safe-fs/index.mjs +67 -0
- package/lib/safe-fs/native.mjs +54 -0
- package/native/binding.c +157 -0
- package/native/binding.gyp +1 -0
- package/package.json +43 -4
- package/prebuilds/darwin-arm64/arc_safe_fs.node +0 -0
- package/prebuilds/darwin-x64/arc_safe_fs.node +0 -0
- package/prebuilds/index.json +64 -0
- package/prebuilds/linux-arm64-gnu/arc_safe_fs.node +0 -0
- package/prebuilds/linux-x64-gnu/arc_safe_fs.node +0 -0
- package/scripts/build-native.mjs +36 -0
- package/scripts/check-installer-parity.mjs +59 -0
- package/scripts/update-manifest.mjs +28 -0
- package/scripts/update-role-policy.mjs +15 -0
- package/scripts/update-superpowers.mjs +4 -0
- package/scripts/vendor-toml.mjs +40 -0
- package/vendor/toml/LICENSE +24 -0
- package/vendor/toml/dist/date.js +156 -0
- package/vendor/toml/dist/error.js +67 -0
- package/vendor/toml/dist/extract.js +293 -0
- package/vendor/toml/dist/index.js +34 -0
- package/vendor/toml/dist/parse.js +164 -0
- package/vendor/toml/dist/primitive.js +151 -0
- package/vendor/toml/dist/stringify.js +219 -0
- package/vendor/toml/dist/struct.js +156 -0
- package/vendor/toml/dist/util.js +57 -0
- package/vendor/toml/package.json +6 -0
- package/vendor/toml/provenance.json +35 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# Planning and approval
|
|
2
|
+
|
|
3
|
+
## Authorization and scope
|
|
4
|
+
|
|
5
|
+
An explicit execution request is authorization only for its sufficiently specified scope. Confirm execution intent,
|
|
6
|
+
expected outcome, constraints, document depth, and verification risk, with no unresolved material behavior, method,
|
|
7
|
+
or risk decision requiring the user. The request itself or a description explicitly referenced by the user must
|
|
8
|
+
supply that scope. Record authorization evidence, scope, acceptance criteria, constraints, and depth in the brief or
|
|
9
|
+
canonical record. Routine execution and check choices may be recorded by Orchestrator; added product behavior or
|
|
10
|
+
material scope cannot be claimed as already approved. A restatement, role handoff, or restart does not create an
|
|
11
|
+
approval requirement for the same scope.
|
|
12
|
+
|
|
13
|
+
Silence, ambiguous assent, approval of other work, and unspecified blanket improvement requests are not authorization.
|
|
14
|
+
Planner's new material choices are not automatically approved. Ask for the missing material decision; roles route
|
|
15
|
+
questions to Orchestrator. Required written specs and plans still require their individual approval in the order below.
|
|
16
|
+
|
|
17
|
+
For material changes to scope, method, or risk, hold affected work and explain the missing decision or evidence and
|
|
18
|
+
remaining work. Target changes, unclear ownership, unexpected state, unresolved failures, or missing required inputs
|
|
19
|
+
also hold affected work under [handoff](handoff.md) and [git-recovery](git-recovery.md). Distinguish new authorization
|
|
20
|
+
needs from execution issues within existing scope: ordinary corrections and reverification do not require duplicate
|
|
21
|
+
approval after failure. Revalidate affected gates after resolution.
|
|
22
|
+
|
|
23
|
+
### Probe scope
|
|
24
|
+
|
|
25
|
+
A probe-only scope completes with findings, evidence, limits, and remaining uncertainty answering the approved question;
|
|
26
|
+
a well-supported infeasibility result can complete it. Probe-only authorization does not authorize product retention
|
|
27
|
+
or subsequent implementation. Record question, method/scope, criteria, and constraints; a sufficiently specific probe
|
|
28
|
+
request can supply that approval. Match checks to probe purpose/risk and do not report probe evidence as product proof.
|
|
29
|
+
|
|
30
|
+
If the user explicitly requests both a probe and implementation and the whole scope is sufficiently specified,
|
|
31
|
+
classify the entire scope. When the entire scope meets Bounded conditions, the probe is an internal investigation
|
|
32
|
+
with no new approval boundary at its report. Unknown implementation is not blanket authorization: hold affected
|
|
33
|
+
implementation if findings materially change scope, method, or risk, or leave a new material decision. Reassess depth
|
|
34
|
+
and obtain any required design/spec/plan approvals before that implementation. A probe-only request remains separate.
|
|
35
|
+
|
|
36
|
+
## Formal drafting boundary
|
|
37
|
+
|
|
38
|
+
Initial design proposals and brainstorming may precede execution-target choice. Formal spec or plan drafting includes a
|
|
39
|
+
complete draft before saving, even when returned only in chat. Before formal drafting and saving, Orchestrator supplies
|
|
40
|
+
and records the actual absolute workspace/repository, branch or detached HEAD, HEAD, changes and ownership,
|
|
41
|
+
explicit choice and preparation evidence, and absolute document paths inside that target. Planner drafts for that
|
|
42
|
+
verified workspace; Orchestrator saves directly in the selected target. Missing or mismatched evidence stops the
|
|
43
|
+
affected drafting or save and is reported to Orchestrator. Planned scope and intended paths are not actual preparation.
|
|
44
|
+
Initial target preparation does not authorize Coder; the complete handoff gate still applies.
|
|
45
|
+
|
|
46
|
+
Orchestrator classifies scope before implementation. The Orchestrator direct path for small tasks is defined only in
|
|
47
|
+
SKILL.md ("Orchestrator direct path for small tasks"); follow it there and stop and reclassify if scope or risk changes.
|
|
48
|
+
Everything else follows this reference. Brainstorming and writing-plans are instructions for existing roles,
|
|
49
|
+
not extra agents; ARC routing and approval gates apply even if a skill names another executor.
|
|
50
|
+
Report a missing required skill before its stage. Integrate means save, route, and obtain approval; never author.
|
|
51
|
+
Significant risk is defined in SKILL.md Risk-scaled execution.
|
|
52
|
+
|
|
53
|
+
When the request or brief is in Korean, Planner writes spec and plan titles and prose in Korean unless the user asks
|
|
54
|
+
otherwise, preserving identifiers, skill/API names, code, paths, commands, and literal values.
|
|
55
|
+
Orchestrator preserves that language when saving.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Planner drafting preparation and consolidated feedback
|
|
59
|
+
|
|
60
|
+
Before formal drafting, Orchestrator performs a preflight of relevant policy, reference, profile, test, parity and
|
|
61
|
+
manifest surfaces and conflicts. Provide one complete brief with actual absolute workspace/repository, branch or
|
|
62
|
+
detached HEAD, HEAD, change state and ownership, explicit target choice and preparation evidence, approved preceding
|
|
63
|
+
design/spec/plan versions, scope and exclusions, design/plan depth, dependencies and shared contracts, acceptance
|
|
64
|
+
criteria, required QA/focused checks and evidence, hold conditions and open decisions. Resolve missing or conflicting
|
|
65
|
+
required evidence first or hold that stage.
|
|
66
|
+
|
|
67
|
+
Planner returns a complete proportional draft and self-review for the current approval stage. Orchestrator integrates,
|
|
68
|
+
saves, reviews and obtains approval. Orchestrator checks once with a fixed checklist: scope and evidence; targets,
|
|
69
|
+
ownership and paths; policy surfaces and conflicts; task boundaries, dependencies and acceptance criteria; checks,
|
|
70
|
+
evidence and holds; roles, approval and commit boundaries; draft completeness. Gather all substantive omissions into
|
|
71
|
+
one consolidated follow-up request to Planner. Do not split requests by omission or author the missing plan yourself.
|
|
72
|
+
|
|
73
|
+
Initial design, required spec approval, and formal plan drafting/approval remain separate ordered stages.
|
|
74
|
+
Allow additional Planner calls for substantive omissions or user-approved scope/evidence changes. There is no fixed
|
|
75
|
+
call cap; never accept an incomplete draft to minimize calls. Do not add call-count conditions to Planner profiles.
|
|
76
|
+
|
|
77
|
+
## Design path and plan depth
|
|
78
|
+
|
|
79
|
+
Record design and plan depth separately from verification risk. Risk determines checks and review, not the design path;
|
|
80
|
+
a bounded path or document omission does not imply low risk, and architectural depth adds no QA/Reviewer at every stage.
|
|
81
|
+
|
|
82
|
+
1. Before feature, design, or behavior changes, Orchestrator assigns Planner the local `brainstorming` skill with
|
|
83
|
+
the brief and evidence. Planner returns the path (Spike, Bounded, or Architectural), design/options, trade-offs,
|
|
84
|
+
acceptance criteria, assumptions, and focused questions. Orchestrator integrates, announces scope, routes
|
|
85
|
+
answers/revisions, and obtains approvals; Orchestrator never runs brainstorming or writing-plans itself (SKILL.md
|
|
86
|
+
Role gate); the direct path uses only a scope record.
|
|
87
|
+
2. Spike: apply Probe scope above; distinguish probe-only authorization from a sufficiently specified combined scope.
|
|
88
|
+
Bounded: approve a short design before Coder or a Orchestrator direct edit (Planner's design before
|
|
89
|
+
Coder; a direct edit uses only an approved scope record). Architectural: approve the design, then Planner returns a
|
|
90
|
+
complete spec draft and self-review; Orchestrator integrates, saves (user's path or
|
|
91
|
+
`docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`), self-reviews, and obtains written-spec approval before
|
|
92
|
+
implementation planning. Planner is read-only and cannot request approval.
|
|
93
|
+
3. After approved design/spec and before Coder, Orchestrator assesses plan depth separately from file count, LOC,
|
|
94
|
+
or bounded scope. Architectural work always uses `writing-plans` and a written plan approval, regardless of locality,
|
|
95
|
+
risk, or size. For Bounded work skip the plan only for one local change with no dependent stages, cross-component
|
|
96
|
+
shared state, lifecycle or integration-order concerns, and one focused verification path; otherwise require a draft.
|
|
97
|
+
A "bounded" or "no plan" label does not bypass this judgment. "Orchestrator's recorded plan-depth judgment" means
|
|
98
|
+
this assessment, including any Bounded written spec requirement, recorded in the brief.
|
|
99
|
+
4. Record dependencies and any plan-depth rationale in the brief. Planner returns the complete proportional plan,
|
|
100
|
+
assumptions/open decisions, verification requirements, and self-review. Orchestrator integrates, saves to the user's
|
|
101
|
+
path or `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`, self-reviews, and obtains plan approval before Coder.
|
|
102
|
+
Planner cannot save, implement, or request approval.
|
|
103
|
+
5. Every Coder first start and restart requires all applicable approvals and the common handoff gate (SKILL.md,
|
|
104
|
+
handoff). Non-behavior configuration/documentation may skip inapplicable design/planning stages but not the gate.
|
|
105
|
+
|
|
106
|
+
When Orchestrator's recorded plan-depth judgment requires a Bounded written spec, record that and its scope,
|
|
107
|
+
use the approved short design as its basis, and have Planner return a proportional complete draft and self-review;
|
|
108
|
+
Orchestrator integrates, saves, self-reviews, and obtains individual written-spec approval before dependent plan
|
|
109
|
+
drafting. This applies that judgment, not a new spec rule. A required plan alone does not require a spec.
|
|
110
|
+
|
|
111
|
+
Design, spec, plan, and brainstorming drafts are authored only by Planner.
|
|
112
|
+
Orchestrator must not substitute its own spec for Planner's complete draft; return substantive omissions to Planner;
|
|
113
|
+
if Planner fails or is unavailable, stop and report, never draft instead. Design approval alone does not change ownership.
|
|
114
|
+
|
|
115
|
+
## Top-level plan tasks
|
|
116
|
+
|
|
117
|
+
For each top-level task Planner specifies ID and title, goal/scope and target files, preceding tasks,
|
|
118
|
+
acceptance criteria, required QA/focused checks and evidence before acceptance, and hold conditions.
|
|
119
|
+
Each task must be independently implementable, verifiable, and acceptable; changes that cannot be verified independently
|
|
120
|
+
(policy, profile, tests, manifest sharing one contract) belong in one task. Never merge approved tasks into one commit
|
|
121
|
+
during execution; if inseparability appears, stop and have Orchestrator revise scope and approvals.
|
|
122
|
+
|
|
123
|
+
Substeps and checkboxes are progress, not commit units: one approved top-level task is one focused commit after
|
|
124
|
+
Orchestrator acceptance. Never list Reviewer as a per-task check. State final plan QA/integration verification
|
|
125
|
+
separately with scope and timing; for significant work it lists the single independent Reviewer of the final full change
|
|
126
|
+
after all tasks are accepted. Task boundaries add no QA gates; keep risk requirements, risky-dependency QA,
|
|
127
|
+
and approved obligations. No-change, hold, and resume follow commit.
|
|
128
|
+
|
|
129
|
+
## Dependency and readiness record
|
|
130
|
+
|
|
131
|
+
After plan approval and before the first Coder assignment, Orchestrator records all top-level task IDs in the
|
|
132
|
+
accessible canonical handoff record, linked to the approved plan version. For each task record explicit and implicit
|
|
133
|
+
predecessors, required inputs, outputs and shared contracts, owned files, conflicting shared resources, required
|
|
134
|
+
checks/QA path, ready/held status and reasons. Record the initial ready batch and capacity/serialization reasons.
|
|
135
|
+
Analyze shared APIs, contracts, generated artifacts and resources even when tasks edit different files. Unresolved
|
|
136
|
+
shared contracts or insufficient dependency information block the affected tasks; same-file concurrent Coder edits
|
|
137
|
+
are blocked even for different lines. Do not infer independence from file separation or plan listing order.
|
|
138
|
+
|
|
139
|
+
A task is ready only when all applicable approvals and execution preparation are complete, required inputs/contracts
|
|
140
|
+
are available and settled, predecessors have required evidence and Orchestrator acceptance plus verified focused
|
|
141
|
+
commits (or accepted no-change records), ownership/resources do not conflict, its required check/QA path is available,
|
|
142
|
+
and a subagent slot exists under both the configured ARC full-tree cap shared by all roles and any lower actual runtime
|
|
143
|
+
limit. Report runtime limits. Start all ready independent tasks with fresh Coders concurrently within capacity;
|
|
144
|
+
record each hold or serialization reason instead of silently following list order. Preserve existing risk gates.
|
|
145
|
+
|
|
146
|
+
Update the map on completion, check evidence, acceptance, commit, slot return and new conflicts. Completion reports
|
|
147
|
+
alone do not release dependents. Reevaluate newly ready tasks immediately without waiting for unrelated batch members;
|
|
148
|
+
failed or ambiguous predecessors hold their dependent chain, while unaffected ready tasks may proceed. Dispatch still
|
|
149
|
+
passes handoff.md for each task; commits and shared Git mutations follow commit.md. This record does not authorize
|
|
150
|
+
Orchestrator to rewrite Planner's approved task boundaries or waive approvals.
|
|
151
|
+
|
|
152
|
+
For example, with A → B → C and independent D and two slots, start A and D. After A's required checks,
|
|
153
|
+
Orchestrator acceptance and verified commit, start B while D continues if capacity and gates allow.
|
|
154
|
+
If A fails, hold B and C; D may continue if unaffected.
|
|
155
|
+
|
|
156
|
+
## Document-save evidence gates
|
|
157
|
+
|
|
158
|
+
Before the first Architectural spec save, first required Bounded spec save, or first plan save, read this reference and
|
|
159
|
+
record accessible evidence in the brief or handoff record. Saving creates a reviewable file and does not require
|
|
160
|
+
written-spec approval; it requires valid execution-target choice and actual preparation; it is not approval or a commit, and an uncommitted file is never
|
|
161
|
+
described as committed.
|
|
162
|
+
|
|
163
|
+
**Spec save:** verify the approved design scope and approval evidence, Planner's complete spec draft and self-review,
|
|
164
|
+
Orchestrator's integration/save/review responsibility, and the absolute save path.
|
|
165
|
+
For a Bounded spec also verify the depth judgment, approved short design, and necessity rationale.
|
|
166
|
+
Saving or approving the short design does not replace the spec's drafting, self-review, or individual approval.
|
|
167
|
+
|
|
168
|
+
**Plan save:** verify the approved design and, when required, the approved spec version, Orchestrator's plan-depth
|
|
169
|
+
judgment, plan list and dependencies, Planner's complete draft and self-review, Orchestrator's responsibility,
|
|
170
|
+
and the absolute save path.
|
|
171
|
+
|
|
172
|
+
Missing or mismatched evidence stops the affected save; report to Orchestrator.
|
|
173
|
+
|
|
174
|
+
## Complete planning-document set
|
|
175
|
+
|
|
176
|
+
The applicable set means all specs and plans required for the current approved execution scope.
|
|
177
|
+
Record scope, depth, absolute paths and coverage, approved versions, dependencies and order, skipped stages with
|
|
178
|
+
rationale, and documents awaiting writing or approval. The set is complete only when every required document is written
|
|
179
|
+
and individually approved and no unresolved decision needs another document.
|
|
180
|
+
|
|
181
|
+
A required plan does not itself require a written spec. Bounded uses Orchestrator's recorded plan-depth judgment;
|
|
182
|
+
spec steps apply only to Architectural and required Bounded specs. Preserve existing document omission rationales.
|
|
183
|
+
|
|
184
|
+
Claude v1 uses the current checkout or an approved task branch there; managed worktrees remain unsupported.
|
|
185
|
+
|
|
186
|
+
Normal order: initial design approval → execution-target choice → target preparation and verification →
|
|
187
|
+
formal spec drafting (when required), saving and self-review → written-spec approval → formal plan drafting
|
|
188
|
+
(when required), saving and self-review → individual plan approvals → complete applicable set → existing-commit
|
|
189
|
+
verification and one batch docs commit of remaining approved documents → final Git verification → Coder handoff.
|
|
190
|
+
Written-spec approval precedes dependent plan drafting. On document-omission paths skip only the inapplicable document
|
|
191
|
+
steps; preserve target choice, preparation, state/ownership checks and Coder gates.
|
|
192
|
+
|
|
193
|
+
While documents are being written, reviewed, or approved, do not stage documents or commit planning documents.
|
|
194
|
+
Selection and initial target preparation happen before formal drafting; document completion is a staging/commit gate,
|
|
195
|
+
not an initial preparation gate. An incomplete set or missing applicable approval blocks document commit and Coder,
|
|
196
|
+
not the initial choice request. No early Coder work is authorized by approval of only some documents.
|
|
197
|
+
|
|
198
|
+
This ARC defers the local brainstorming early spec commit: save and self-review the spec, obtain written-spec
|
|
199
|
+
approval without committing, then write and approve all plans; commit the spec only in the final batch.
|
|
200
|
+
`writing-plans` commit steps do not permit document commits during planning or start Coder.
|
|
201
|
+
Do not modify external skills.
|
|
202
|
+
|
|
203
|
+
| Path | Approvals and preparation |
|
|
204
|
+
|---|---|
|
|
205
|
+
| Spike probe | Approve question, method/scope, criteria, constraints; no spec/plan forced. If Coder runs the probe, pass the common gate after approval. Read-only investigation needs no gate. |
|
|
206
|
+
| Bounded, plan skipped | Approve the short design and record plan-skip criteria; select target, prepare any documents or record absence, pass the gate. |
|
|
207
|
+
| Bounded, plan required | Approve short design and every required plan; a spec only when the depth judgment requires it, approved before dependent plans. One preparation batch, then the gate. |
|
|
208
|
+
| Architectural | Approve design, then spec, then every plan; select and prepare the target before formal drafting; complete the set before batch commit, final verification, and the gate. |
|
|
209
|
+
| Non-behavior documentation/configuration | Record scope, criteria, and why design/planning is inapplicable; still select the target, verify Git state, prepare documents or record absence, pass the gate. |
|
|
210
|
+
|
|
211
|
+
Apply Authorization and scope above to probe-only and combined requests; preserve required design/spec/plan gates.
|
|
212
|
+
These gates add no new spec obligation for Spike, Bounded plan-skip, or non-behavior documentation/configuration paths.
|
|
213
|
+
Document omission skips only document obligations, never target choice, Git/ownership checks,
|
|
214
|
+
or handoff evidence. New scope found in planning requires reassessing the list and additional approvals before dependent drafting or commit; revised approved documents need renewed approval. New scope found during implementation stops dependent
|
|
215
|
+
execution (a running Coder stops before edits dependent on new plans) until its documents, approvals,
|
|
216
|
+
and preparation are complete; do not amend old commits to cover it.
|
|
217
|
+
|
|
218
|
+
## Evidence refresh and limits
|
|
219
|
+
|
|
220
|
+
Missing or mismatched evidence, unfinished approvals, unclear ownership, or unresolved failure blocks the affected save,
|
|
221
|
+
target request, Git mutation, or Coder handoff; Orchestrator resolves it and reverifies.
|
|
222
|
+
Reverify when scope, approved versions, paths, target, or Git state changes. Never treat an early save or commit as
|
|
223
|
+
satisfying a gate or as approval; record the actual order and gaps. Structural checks prove only the written policy,
|
|
224
|
+
not agent runtime compliance; without execution records for role returns, approvals, saves, and Git actions,
|
|
225
|
+
leave runtime compliance unverified. Administrative status updates must accurately describe actual progress.
|
|
226
|
+
Return scope changes and unresolved decisions to the user through Orchestrator.
|
|
227
|
+
|
|
228
|
+
## Local planning references
|
|
229
|
+
|
|
230
|
+
Orchestrator briefs absolute ARC paths `references/superpowers/brainstorming/SKILL.md` and
|
|
231
|
+
`references/superpowers/writing-plans/SKILL.md`. Planner reads them directly; resolve relative references within each
|
|
232
|
+
skill. Missing files stop the stage; report paths without global fallback. Keep ARC approval and ownership gates.
|
|
233
|
+
|
|
234
|
+
[ARC role policy: contract begin]
|
|
235
|
+
Generated from lib/policy/role-policy.json; do not edit this managed section manually.
|
|
236
|
+
- [scope.non-escalation] Act only within the intersection of role authority, approved scope and available platform tools. Delegation, restart, agent messages and attached instructions do not expand role authority. Never 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.
|
|
237
|
+
- [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.
|
|
238
|
+
- [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.
|
|
239
|
+
- [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for that action, scope and target. Local commit authority does not grant external authority. Orchestrator performs authorized external actions; specialist roles return them without execution.
|
|
240
|
+
- [role.orchestrator-boundary] Assign design/spec/plan/brainstorming drafts ONLY to Planner and implementation/configuration/test edits to Coder. Orchestrator saves complete drafts and owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation is limited to the existing small, low-risk direct path; this policy does not expand it.
|
|
241
|
+
- [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.
|
|
242
|
+
- [role.planner-draft-only] Return design/spec/plan drafts and dependencies, criteria, hold conditions and verification needs in the response. Do 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.
|
|
243
|
+
- [role.coder-implementation] Implement only assigned approved files and 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.
|
|
244
|
+
- [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 Coder correction and required QA recheck.
|
|
245
|
+
- [role.reviewer-independent] Independently inspect the assigned final changes and evidence and report actionable findings and limits. Remain read-only; do not execute QA tests, edit files, perform Git mutations or decide acceptance.
|
|
246
|
+
- [review.significant-no-plan] For significant/high-risk work without a plan: Coder → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. Do not omit Reviewer merely because no plan exists. This creates no new plan obligation.
|
|
247
|
+
- [review.significant-plan] For significant/high-risk plan work: each task uses Coder → 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.
|
|
248
|
+
- [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use Coder → Reviewer without QA reassignment; repeat until resolved. This exception applies only to that final plan stage. Preserve required QA and QA failure rechecks before initial final review and outside this exception.
|
|
249
|
+
- [platform.claude] Existing per-role tool allowlists reduce available tools; Bash and role contracts are not a filesystem sandbox. A role-scoped Git guard is a separate integration and is not supplied by these policy sections alone.
|
|
250
|
+
[ARC role policy: contract end]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Jesse Vincent
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: "You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstorming
|
|
7
|
+
|
|
8
|
+
You are very good at building. You build what you believe your human
|
|
9
|
+
partner wants, and that belief is usually thinner than it feels. This
|
|
10
|
+
skill is for finding out what they actually want, and why, before
|
|
11
|
+
anything gets built.
|
|
12
|
+
|
|
13
|
+
People often haven't finished working out what they want. Good questions
|
|
14
|
+
help them think it through. When you understand the why, you make the
|
|
15
|
+
hundred decisions they never mention the way they would have made them.
|
|
16
|
+
|
|
17
|
+
## First: What Do You Actually Know?
|
|
18
|
+
|
|
19
|
+
Before you reply, ask yourself: what do I know about what they want, and
|
|
20
|
+
why?
|
|
21
|
+
|
|
22
|
+
- **Everything that matters is in the request** ("make the icon cornflower
|
|
23
|
+
blue"). This is a quick, clear task. Do it, and say what you did.
|
|
24
|
+
- **Something non-trivial is missing.** Start the conversation.
|
|
25
|
+
|
|
26
|
+
## Your First Message
|
|
27
|
+
|
|
28
|
+
Your first message is two things, in this order:
|
|
29
|
+
|
|
30
|
+
1. One line letting them know that if they'd rather skip the questions and
|
|
31
|
+
have you just start, they can say so. If they take you up on it, this
|
|
32
|
+
skill is done: state any significant how-it-gets-made choice
|
|
33
|
+
(platform, language, medium) in one plain line, then do what they
|
|
34
|
+
asked through the normal workflow.
|
|
35
|
+
2. One open question that gets them describing. Ask about a real moment
|
|
36
|
+
or a concrete picture: "What's the moment you find yourself wishing
|
|
37
|
+
this existed?" or "Tell me about the people who'll be in the room."
|
|
38
|
+
|
|
39
|
+
That's the whole message.
|
|
40
|
+
|
|
41
|
+
## The Conversation
|
|
42
|
+
|
|
43
|
+
Each message ends with one question: a single sentence with no list of
|
|
44
|
+
example answers hanging off it. Use plain language, pitched just a little
|
|
45
|
+
above where your human partner is. Match their vocabulary; never use
|
|
46
|
+
process jargon.
|
|
47
|
+
|
|
48
|
+
Be clear and concise. Lead with what matters. Avoid jargon. When you
|
|
49
|
+
report what you found, give them the most important findings and offer
|
|
50
|
+
the rest.
|
|
51
|
+
|
|
52
|
+
**Get them describing.** Open questions come first. Their own words carry
|
|
53
|
+
intent that your options can't. Offer a short menu only when they're
|
|
54
|
+
stuck. When they say "just guess" or "what do you think?", propose
|
|
55
|
+
something concrete.
|
|
56
|
+
|
|
57
|
+
**How it gets made.** Every project rests on choices about medium, tools,
|
|
58
|
+
materials, and resources: the platform, programming language, and
|
|
59
|
+
libraries for an app; the medium for a piece of art. Find out early which
|
|
60
|
+
of those choices they want to make, which they're handing to you, and what
|
|
61
|
+
they already have to work with. Someone with strong views or skills will
|
|
62
|
+
want to talk it through. Someone counting on you needs sensible defaults,
|
|
63
|
+
said in plain words. When there's existing work, build on what it already
|
|
64
|
+
uses. Any choice you make goes in the design as your call, never as
|
|
65
|
+
something they agreed to.
|
|
66
|
+
|
|
67
|
+
**Ground to cover.** This is territory, not a script. Never read these
|
|
68
|
+
out as questions:
|
|
69
|
+
|
|
70
|
+
- what kind of thing this is, and what makes it special
|
|
71
|
+
- why now, and what success looks like to them
|
|
72
|
+
- goals, non-goals, and anti-goals (what would make this a failure even
|
|
73
|
+
if it technically works)
|
|
74
|
+
- prior art: what they've seen elsewhere, loved or hated
|
|
75
|
+
- current state: what exists now, what they've tried
|
|
76
|
+
- the details they care about
|
|
77
|
+
|
|
78
|
+
**Questions that work** anchor in specifics: "Walk me through the last
|
|
79
|
+
time...", "If it could only do one of these well, which?", "What would
|
|
80
|
+
make you wince if I got it wrong?" A guess they can correct ("I'm
|
|
81
|
+
guessing this is because X keeps biting you?") often beats a question.
|
|
82
|
+
|
|
83
|
+
**Offer recon.** Once you have a bit of grounding and looking would help,
|
|
84
|
+
offer to go look: their codebase or project, their own files and data,
|
|
85
|
+
or the web. Say what you'd look for. They decide whether you go.
|
|
86
|
+
|
|
87
|
+
**Think wide privately.** Before you propose anything, come up with
|
|
88
|
+
several ideas and drop the weak ones, including any that fight what
|
|
89
|
+
they've told you about why. Show the comparison only when it helps them
|
|
90
|
+
decide.
|
|
91
|
+
|
|
92
|
+
**Show, don't tell.** Offer the visual companion (below) whenever seeing
|
|
93
|
+
would help more than reading:
|
|
94
|
+
|
|
95
|
+
- something they'll look at: a screen, a page, a printout, a sign
|
|
96
|
+
- a layout or arrangement: of a screen, a room, a schedule
|
|
97
|
+
- a flow or a sequence of steps
|
|
98
|
+
- options that would look different from each other
|
|
99
|
+
- a structure that's easier to see than read: a diagram, a timeline, a map
|
|
100
|
+
|
|
101
|
+
Once they've accepted, use it for mockups to react to, side-by-side
|
|
102
|
+
options, and throwaway prototypes they can click.
|
|
103
|
+
|
|
104
|
+
**Spike to feel things out.** Agentic work is waterfall, but very, very
|
|
105
|
+
fast. A quick throwaway build is often the cheapest way to learn what
|
|
106
|
+
they want or whether something works. Offer one when it would help.
|
|
107
|
+
When they just want to spike, get out of the way. Spikes get no tests
|
|
108
|
+
or minimal ones, aren't bulletproof, and skip the plan, implementation,
|
|
109
|
+
and review process. Bring what the spike taught you back into the
|
|
110
|
+
conversation.
|
|
111
|
+
|
|
112
|
+
## Play It Back
|
|
113
|
+
|
|
114
|
+
Play back as you go. As soon as you understand one part well enough to
|
|
115
|
+
describe it (what it's for and who it serves, say, or how one piece
|
|
116
|
+
behaves), describe that part back in about 200-300 words, then return to
|
|
117
|
+
questions about the next part. Playback and questions alternate through
|
|
118
|
+
the whole conversation; the last chunk covers whatever is left.
|
|
119
|
+
|
|
120
|
+
Mark anything you're guessing as your guess; only what they said goes in
|
|
121
|
+
as theirs. End each chunk by asking what's wrong or missing.
|
|
122
|
+
|
|
123
|
+
Before you send a chunk, check it: does it describe something they'll
|
|
124
|
+
look at, like a page, a screen, a schedule, or a printout? If so, and
|
|
125
|
+
they haven't seen the visual companion offer yet, send the offer instead
|
|
126
|
+
(its own message, below) and hold the chunk for the next message. Once
|
|
127
|
+
they've accepted, put a mockup next to the description.
|
|
128
|
+
|
|
129
|
+
## Size the Work
|
|
130
|
+
|
|
131
|
+
Once you understand what they want, pick a size and say it in plain
|
|
132
|
+
words. They can override it.
|
|
133
|
+
|
|
134
|
+
| Size | The full description | Then |
|
|
135
|
+
|------|----------------------|------|
|
|
136
|
+
| A quick, clear task | the request itself | do it |
|
|
137
|
+
| A small change | in chat | build it through the normal workflow |
|
|
138
|
+
| A project with a written design | a written design document | a full plan (for software: superpowers:writing-plans) |
|
|
139
|
+
|
|
140
|
+
If it grows mid-task, stop, say so, and step up a size.
|
|
141
|
+
|
|
142
|
+
If this is really several independent projects, say so, agree on an
|
|
143
|
+
order, and brainstorm them one at a time.
|
|
144
|
+
|
|
145
|
+
## The Written Design
|
|
146
|
+
|
|
147
|
+
For a project, write a plain document a talented builder in the domain
|
|
148
|
+
could plan from without going back to your human partner. Cover:
|
|
149
|
+
|
|
150
|
+
- intent and the why
|
|
151
|
+
- goals, non-goals, anti-goals
|
|
152
|
+
- constraints
|
|
153
|
+
- the parts of the how they decided, as they decided them
|
|
154
|
+
- what's left to the builder
|
|
155
|
+
|
|
156
|
+
**Where it goes:** in a software repo,
|
|
157
|
+
`docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`, committed.
|
|
158
|
+
Otherwise, ask. Your human partner's preferences override both.
|
|
159
|
+
|
|
160
|
+
**Builder check:** dispatch a fresh subagent with
|
|
161
|
+
`builder-check-prompt.md` in this directory. When you tell your human
|
|
162
|
+
partner you're writing it up, say a reviewer will read it first and you
|
|
163
|
+
may come back once with a few questions. Don't hand over the document
|
|
164
|
+
until the check is back. Sort what the builder asks into three piles:
|
|
165
|
+
|
|
166
|
+
- **Answered already** by the conversation or the project: put the answer
|
|
167
|
+
in the document.
|
|
168
|
+
- **Minor:** a sensible builder could settle it without changing what gets
|
|
169
|
+
built. Settle it yourself and mark it in the document as your call.
|
|
170
|
+
- **Theirs:** only your human partner can answer it, and the answer changes
|
|
171
|
+
what gets built.
|
|
172
|
+
|
|
173
|
+
Bring the "theirs" pile in one message, most important first. Update the
|
|
174
|
+
document with their answers, then hand it over with a short list of the
|
|
175
|
+
calls you made so they can check those while reading. That's the only
|
|
176
|
+
round of questions the check produces. Without a subagent tool, read the
|
|
177
|
+
document as that builder yourself.
|
|
178
|
+
|
|
179
|
+
<HARD-GATE>
|
|
180
|
+
Nothing gets built until your human partner approves the full
|
|
181
|
+
description: in chat for a small change, the document for a project.
|
|
182
|
+
Building includes writing product code, scaffolding, installing
|
|
183
|
+
dependencies, creating projects, and invoking an implementation skill.
|
|
184
|
+
Reading and exploring are fine.
|
|
185
|
+
|
|
186
|
+
Two exceptions. If they opted out of the questions, the skill is done
|
|
187
|
+
and the gate goes with it. A spike they said yes to may be built; it
|
|
188
|
+
stays labeled throwaway, and keeping what it produced is a new request
|
|
189
|
+
that comes back through this gate.
|
|
190
|
+
|
|
191
|
+
After a project's document is approved, the next step is the plan. For
|
|
192
|
+
software, invoke superpowers:writing-plans and no other skill.
|
|
193
|
+
</HARD-GATE>
|
|
194
|
+
|
|
195
|
+
## Red Flags
|
|
196
|
+
|
|
197
|
+
| Thought | Reality |
|
|
198
|
+
|---------|---------|
|
|
199
|
+
| "I'll offer options to save them effort" | Options steer. Ask them to describe it first. |
|
|
200
|
+
| "I'll fill in sensible defaults" | Good. Say them out loud. A default they never heard is one they couldn't reject. |
|
|
201
|
+
| "I should explain the process first" | Ask your question. The process shows itself. |
|
|
202
|
+
| "They said 'sounds good' to the idea" | Approval covers what you showed them. A description you haven't written isn't approved. |
|
|
203
|
+
| "The spike works, I'll keep building on it" | Keeping it is a new request. Back through the gate. |
|
|
204
|
+
|
|
205
|
+
## Visual Companion
|
|
206
|
+
|
|
207
|
+
A browser tab for showing mockups, diagrams, and prototypes. It's a
|
|
208
|
+
tool, not a mode: accepting it doesn't send every question to the
|
|
209
|
+
browser.
|
|
210
|
+
|
|
211
|
+
**Offer it just-in-time.** Offer it the first time one of the moments
|
|
212
|
+
above comes up, never upfront. The offer is its own message with nothing
|
|
213
|
+
else in it:
|
|
214
|
+
|
|
215
|
+
> "This might be easier if I show you. Want me to open a browser tab with some mockups?"
|
|
216
|
+
|
|
217
|
+
If they decline, stay in text and don't offer again unless they raise it.
|
|
218
|
+
|
|
219
|
+
**Per question, ask: would they understand this better by seeing it?**
|
|
220
|
+
Mockups, layouts, diagrams, and side-by-side designs go in the browser.
|
|
221
|
+
Requirements, scope, tradeoffs, and conceptual choices stay in text. A
|
|
222
|
+
question about a UI topic isn't automatically a visual question.
|
|
223
|
+
|
|
224
|
+
If they accept, read `visual-companion.md` in this directory before
|
|
225
|
+
starting the server.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Builder Check Prompt
|
|
2
|
+
|
|
3
|
+
Dispatch a fresh general-purpose subagent with this prompt once the
|
|
4
|
+
written design exists. Fill in the domain and the document path.
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
You are a talented [DOMAIN, e.g. "software engineer", "event planner",
|
|
8
|
+
"bakery consultant"]. You've been handed a design document and asked to
|
|
9
|
+
put together a plan to build what it describes. You will not be able to
|
|
10
|
+
talk to the person who wrote it.
|
|
11
|
+
|
|
12
|
+
Read [DOCUMENT_PATH].
|
|
13
|
+
|
|
14
|
+
Report only the questions you'd still need answered before you could plan
|
|
15
|
+
this well: places where you'd have to guess and a wrong guess would
|
|
16
|
+
matter. For each, give the question and why the answer changes the plan.
|
|
17
|
+
Rank them by importance.
|
|
18
|
+
|
|
19
|
+
Skip anything the document explicitly leaves to the builder, and anything
|
|
20
|
+
you could reasonably decide yourself. Skip nitpicks about wording.
|
|
21
|
+
|
|
22
|
+
If nothing important is left, say "nothing important left".
|
|
23
|
+
```
|