@bfirestone45/opencode-arc 0.3.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/README.md +41 -0
- package/agents/arc-doc-writer.md +44 -0
- package/agents/arc-evaluator.md +188 -0
- package/agents/arc-implementer.md +229 -0
- package/agents/arc-issue-tracker.md +162 -0
- package/agents/arc-reviewer.md +91 -0
- package/commands/arc-blocked.md +12 -0
- package/commands/arc-close.md +33 -0
- package/commands/arc-create.md +48 -0
- package/commands/arc-db.md +19 -0
- package/commands/arc-dep.md +35 -0
- package/commands/arc-docs.md +53 -0
- package/commands/arc-init.md +27 -0
- package/commands/arc-list.md +29 -0
- package/commands/arc-migrate-paths.md +14 -0
- package/commands/arc-onboard.md +12 -0
- package/commands/arc-paths.md +34 -0
- package/commands/arc-plugin.md +30 -0
- package/commands/arc-prime.md +7 -0
- package/commands/arc-project.md +35 -0
- package/commands/arc-quickstart.md +11 -0
- package/commands/arc-ready.md +15 -0
- package/commands/arc-self.md +33 -0
- package/commands/arc-server.md +24 -0
- package/commands/arc-show.md +17 -0
- package/commands/arc-stats.md +12 -0
- package/commands/arc-team.md +30 -0
- package/commands/arc-update.md +30 -0
- package/commands/arc-which.md +13 -0
- package/index.js +153 -0
- package/package.json +43 -0
- package/skills/arc/SKILL.md +210 -0
- package/skills/arc/_formatting.md +26 -0
- package/skills/arc-brainstorm/SKILL.md +103 -0
- package/skills/arc-debug/SKILL.md +62 -0
- package/skills/arc-finish/SKILL.md +57 -0
- package/skills/arc-implement/SKILL.md +269 -0
- package/skills/arc-plan/SKILL.md +98 -0
- package/skills/arc-review/SKILL.md +159 -0
- package/skills/arc-verify/SKILL.md +60 -0
- package/version.txt +1 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arc-implement
|
|
3
|
+
description: Use when executing planned arc implementation tasks in OpenCode, especially when the user says to implement a task, continue coding, or run the subagent workflow. Use this instead of direct coding when work should flow through arc-implementer, arc-reviewer, arc-evaluator, or arc-doc-writer.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Arc Implement
|
|
7
|
+
|
|
8
|
+
Run arc implementation as explicit orchestrator work. The main agent manages task state, dispatches named OpenCode subagents, and decides whether another pass is required. The main agent does not write the task implementation directly.
|
|
9
|
+
|
|
10
|
+
## Core Rule
|
|
11
|
+
|
|
12
|
+
**Orchestrate first, dispatch second, edit code never.** If work needs to be built, reviewed, or accepted, start a named OpenCode subagent task for the correct agent, pass the task/design/test context in that dispatch, and wait for a structured result before continuing.
|
|
13
|
+
|
|
14
|
+
This skill starts from tracked work that already exists. Use `arc ready` and `arc show <task-id>` to select work; do not create issues or infer ad hoc work that bypassed `arc-plan`.
|
|
15
|
+
|
|
16
|
+
## Default Mode
|
|
17
|
+
|
|
18
|
+
Use a sequential workflow unless the user explicitly asks for something else and the runtime clearly supports it. Do not rely on worktree isolation, `isolation: "worktree"`, or Codex-only tool names.
|
|
19
|
+
|
|
20
|
+
## Orchestration Loop
|
|
21
|
+
|
|
22
|
+
### 1. Create or Update the Todo List
|
|
23
|
+
|
|
24
|
+
Before dispatching anything, create or refresh a short todo list for the current task batch. Keep one entry per arc task and update it as work moves through implementation, review, and acceptance.
|
|
25
|
+
|
|
26
|
+
Minimum statuses:
|
|
27
|
+
- `pending` before dispatch
|
|
28
|
+
- `in_progress` while a subagent is working
|
|
29
|
+
- `needs_fix` when findings require another pass
|
|
30
|
+
- `done` after review and acceptance are clear
|
|
31
|
+
|
|
32
|
+
### 2. Find and Claim the Task
|
|
33
|
+
|
|
34
|
+
Use arc to identify the next unblocked task and claim it:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
arc ready
|
|
38
|
+
arc update <task-id> --take
|
|
39
|
+
arc show <task-id>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Record the current commit before dispatching so later review has a stable base:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
PRE_TASK_SHA=$(git rev-parse HEAD)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 3. Check for `docs-only`
|
|
49
|
+
|
|
50
|
+
If the task is documentation-only, do not send it through the full code path.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
arc show <task-id> --json | jq -e '.labels[] | select(. == "docs-only")' > /dev/null 2>&1
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the label is present, dispatch `arc-doc-writer` with the task description and skip the evaluator path. Use `arc-reviewer` only when the docs change is substantial enough to benefit from a second pass, such as broad restructuring or operator-facing behavior changes. Do not dispatch `arc-implementer` for docs-only work.
|
|
57
|
+
|
|
58
|
+
Dispatch prompt shape:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
Write or update the documentation described below.
|
|
62
|
+
|
|
63
|
+
## Task
|
|
64
|
+
<paste output of: arc show <task-id>>
|
|
65
|
+
|
|
66
|
+
Stay within the listed files, verify formatting quality, and report back with files changed and checks performed.
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
OpenCode dispatch shape:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
Start a named subagent/task using agent `arc-doc-writer`.
|
|
73
|
+
Pass the full prompt above plus the pasted `arc show <task-id>` output.
|
|
74
|
+
Expect back: `PASS`, `PARTIAL`, or `NEEDS_CONTEXT`, followed by files changed and checks performed.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 4. Dispatch `arc-implementer`
|
|
78
|
+
|
|
79
|
+
For non-docs work, dispatch `arc-implementer` with the full task spec and project test command.
|
|
80
|
+
|
|
81
|
+
Dispatch prompt shape:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Implement this task using TDD.
|
|
85
|
+
|
|
86
|
+
## Task
|
|
87
|
+
<paste output of: arc show <task-id>>
|
|
88
|
+
|
|
89
|
+
## Context
|
|
90
|
+
Parent issue, completed prerequisites, and any already-landed shared types or files.
|
|
91
|
+
|
|
92
|
+
## Project Test Command
|
|
93
|
+
<project test command>
|
|
94
|
+
|
|
95
|
+
## Scope Rules
|
|
96
|
+
- Build only what the task specifies.
|
|
97
|
+
- Stay inside the task's scoped files.
|
|
98
|
+
- If a prerequisite is missing or the task is ambiguous, report `NEEDS_CONTEXT`.
|
|
99
|
+
- If non-blocking issues are noticed outside scope, report `DONE_WITH_CONCERNS`.
|
|
100
|
+
|
|
101
|
+
Commit only after your gate passes.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
OpenCode dispatch shape:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
Start a named subagent/task using agent `arc-implementer`.
|
|
108
|
+
Pass the full prompt above, including the pasted task output, context, and project test command.
|
|
109
|
+
Expect back: `PASS`, `PARTIAL`, `NEEDS_CONTEXT`, or `DONE_WITH_CONCERNS`, plus a short implementation summary, files changed, tests run, and whether the work was committed.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 5. Triage the Implementation Result
|
|
113
|
+
|
|
114
|
+
Read the subagent report before doing anything else.
|
|
115
|
+
|
|
116
|
+
If the result is `PASS`:
|
|
117
|
+
- Run the project test command yourself.
|
|
118
|
+
- If that passes, continue to review and acceptance.
|
|
119
|
+
|
|
120
|
+
If the result is `PARTIAL` or `NEEDS_CONTEXT`:
|
|
121
|
+
- Read the unresolved or missing-context section closely.
|
|
122
|
+
- Fix missing prerequisites or clarify the task before dispatching again.
|
|
123
|
+
- Re-dispatch `arc-implementer` only with the specific gaps called out.
|
|
124
|
+
|
|
125
|
+
If the result is `DONE_WITH_CONCERNS`:
|
|
126
|
+
- Preserve the concern in task notes.
|
|
127
|
+
- Continue if the in-scope work is complete and verified.
|
|
128
|
+
|
|
129
|
+
If the gate was skipped or the report is incomplete:
|
|
130
|
+
- Treat it as a failed pass.
|
|
131
|
+
- Re-dispatch `arc-implementer` with an explicit instruction to complete the full gate.
|
|
132
|
+
|
|
133
|
+
### 6. Dispatch `arc-reviewer`
|
|
134
|
+
|
|
135
|
+
After a successful implementation pass, dispatch `arc-reviewer` on the resulting work.
|
|
136
|
+
|
|
137
|
+
Compute the review input first. Use the committed range when the implementer created one or more commits; otherwise diff the working tree against the pre-task base so the review is not empty.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
BASE_SHA=$PRE_TASK_SHA
|
|
141
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
142
|
+
if [ "$HEAD_SHA" != "$BASE_SHA" ]; then
|
|
143
|
+
git diff $BASE_SHA..$HEAD_SHA
|
|
144
|
+
else
|
|
145
|
+
git diff $BASE_SHA
|
|
146
|
+
fi
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
If the uncommitted implementation added new files, include those paths from `git status --short` in the review context so the reviewer sees the full task output.
|
|
150
|
+
|
|
151
|
+
Dispatch prompt shape:
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
Review these changes for bugs, regressions, missing verification, and plan drift.
|
|
155
|
+
|
|
156
|
+
## Task Spec
|
|
157
|
+
<paste output of: arc show <task-id>>
|
|
158
|
+
|
|
159
|
+
## Design Spec
|
|
160
|
+
<paste relevant design excerpt if available>
|
|
161
|
+
|
|
162
|
+
## Changes
|
|
163
|
+
<paste output of the diff selected by the rule above>
|
|
164
|
+
|
|
165
|
+
Report findings first with file references. Keep any summary brief and secondary.
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
OpenCode dispatch shape:
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
Start a named subagent/task using agent `arc-reviewer`.
|
|
172
|
+
Pass the task spec, any relevant design excerpt, and the diff produced by the rule above.
|
|
173
|
+
Expect back: findings grouped by severity with file references, then a brief summary.
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 7. Dispatch `arc-evaluator`
|
|
177
|
+
|
|
178
|
+
After review is dispatched, dispatch `arc-evaluator` for acceptance. Keep this sequential by default in OpenCode: reviewer first or evaluator first is fine, but do not require simultaneous worktree-based execution.
|
|
179
|
+
|
|
180
|
+
Dispatch prompt shape:
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
Evaluate whether this implementation satisfies the task spec from the outside.
|
|
184
|
+
|
|
185
|
+
## Task Spec
|
|
186
|
+
<paste output of: arc show <task-id>>
|
|
187
|
+
|
|
188
|
+
## Design Spec
|
|
189
|
+
<paste relevant design excerpt if available>
|
|
190
|
+
|
|
191
|
+
## Base SHA
|
|
192
|
+
<BASE_SHA>
|
|
193
|
+
|
|
194
|
+
## Project Test Command
|
|
195
|
+
<project test command>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
For docs-only tasks, skip this step and rely on the documentation result plus optional review.
|
|
199
|
+
|
|
200
|
+
OpenCode dispatch shape:
|
|
201
|
+
|
|
202
|
+
```text
|
|
203
|
+
Start a named subagent/task using agent `arc-evaluator`.
|
|
204
|
+
Pass the task spec, any relevant design excerpt, the base SHA, and the project test command.
|
|
205
|
+
Expect back: `PASS`, `CONCERNS`, `FAIL`, or `BLOCKED`, with concise acceptance evidence.
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 8. Triage Findings and Decide Whether to Repeat
|
|
209
|
+
|
|
210
|
+
Another pass happens only when findings require it.
|
|
211
|
+
|
|
212
|
+
Re-dispatch `arc-implementer` when:
|
|
213
|
+
- `arc-reviewer` reports Critical or Important issues
|
|
214
|
+
- `arc-reviewer` identifies a design deviation that should be fixed
|
|
215
|
+
- `arc-evaluator` reports `FAIL`
|
|
216
|
+
- `arc-evaluator` reports `CONCERNS` that the orchestrator decides must be fixed now
|
|
217
|
+
|
|
218
|
+
Do not re-run the whole loop just because a reviewer noted a Minor issue or because the evaluator was `BLOCKED` by its own setup.
|
|
219
|
+
|
|
220
|
+
When re-dispatching, include:
|
|
221
|
+
- the original task spec
|
|
222
|
+
- the specific reviewer or evaluator finding
|
|
223
|
+
- the exact file references or failed behaviors
|
|
224
|
+
- the same project test command
|
|
225
|
+
|
|
226
|
+
After fixes, run review again and run acceptance again.
|
|
227
|
+
|
|
228
|
+
### 9. Close the Task
|
|
229
|
+
|
|
230
|
+
Once implementation, review, and acceptance are clear for the current task:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
arc close <task-id> --reason "Implemented: <short summary>"
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Update the todo list entry to `done`, then move to the next ready task.
|
|
237
|
+
|
|
238
|
+
## Triage Rules
|
|
239
|
+
|
|
240
|
+
| Source | Result | Action |
|
|
241
|
+
|--------|--------|--------|
|
|
242
|
+
| `arc-reviewer` | Critical / Important | Re-dispatch `arc-implementer`, then re-review |
|
|
243
|
+
| `arc-reviewer` | Minor | Note it, usually proceed |
|
|
244
|
+
| `arc-reviewer` | Deviation with `fix` | Re-dispatch `arc-implementer` |
|
|
245
|
+
| `arc-reviewer` | Deviation with `accept` | Record rationale, then proceed |
|
|
246
|
+
| `arc-evaluator` | `PASS` | Proceed |
|
|
247
|
+
| `arc-evaluator` | `CONCERNS` | Decide whether to fix now or defer |
|
|
248
|
+
| `arc-evaluator` | `FAIL` | Re-dispatch `arc-implementer`, then re-evaluate |
|
|
249
|
+
| `arc-evaluator` | `BLOCKED` | Do not blame the implementer automatically; note the inconclusive acceptance result |
|
|
250
|
+
|
|
251
|
+
## Circuit Breaker
|
|
252
|
+
|
|
253
|
+
If the same finding survives three fix cycles, stop and escalate with:
|
|
254
|
+
- the task ID
|
|
255
|
+
- the repeated finding
|
|
256
|
+
- the competing interpretations of the spec
|
|
257
|
+
- what evidence each agent produced
|
|
258
|
+
|
|
259
|
+
## Rules
|
|
260
|
+
|
|
261
|
+
- Keep the workflow sequential by default.
|
|
262
|
+
- Start only from tracked work surfaced by `arc ready`.
|
|
263
|
+
- Do not rely on `isolation: "worktree"`.
|
|
264
|
+
- Do not use Codex-only task tools or workflow names.
|
|
265
|
+
- Do not create issues or infer ad hoc work that bypassed `arc-plan`.
|
|
266
|
+
- Use `arc-doc-writer` instead of the full code path for docs-only work; review is optional for substantial docs changes and evaluator is skipped.
|
|
267
|
+
- Dispatch `arc-implementer`, then `arc-reviewer`, then `arc-evaluator` in substance for code tasks.
|
|
268
|
+
- Repeat only when findings require another pass.
|
|
269
|
+
- Format all arc issue content using `skills/arc/_formatting.md`.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arc-plan
|
|
3
|
+
description: Use when an approved Arc design needs to be converted into truthful tracked work before implementation starts. Prefer this over generic planning when the project uses Arc plans and issue tracking.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Arc Plan
|
|
7
|
+
|
|
8
|
+
Turn an approved Arc design into ordered tracked work and hand off to `arc-implement` only after the work exists.
|
|
9
|
+
|
|
10
|
+
<HARD-GATE>
|
|
11
|
+
Do NOT implement, scaffold implementation files, or bypass tracked work creation while planning. This skill owns issue creation and ends before implementation starts.
|
|
12
|
+
</HARD-GATE>
|
|
13
|
+
|
|
14
|
+
## Ordered Checklist
|
|
15
|
+
|
|
16
|
+
Follow these items in order.
|
|
17
|
+
|
|
18
|
+
1. **Read the approved design**
|
|
19
|
+
- Run `arc plan show <plan-id>`.
|
|
20
|
+
- Read the approved design, plan status, and file path from the planner output before creating tasks.
|
|
21
|
+
- Verify that the plan status is approved before proceeding.
|
|
22
|
+
- If the plan is deferred, pending review, or otherwise not approved, stop and direct the user back to planner review instead of creating tracked work.
|
|
23
|
+
2. **Restate the approved goal and constraints**
|
|
24
|
+
- Restate the approved goal, scope boundaries, major risks, and non-goals in plain language.
|
|
25
|
+
- Preserve any shared contracts, foundation work, or dependency ordering established during `arc-brainstorm`.
|
|
26
|
+
- Ask one clarifying question only if something material is still ambiguous.
|
|
27
|
+
3. **Break the design into ordered tasks**
|
|
28
|
+
- Create a truthful, bounded task list from the approved design.
|
|
29
|
+
- Keep tasks dependency-ordered.
|
|
30
|
+
- Use exact file ownership when it is honestly knowable.
|
|
31
|
+
- If exact files are not yet knowable, name the owning subsystem, contract boundary, or surface instead of pretending certainty.
|
|
32
|
+
- If shared contracts or setup must land first, create an explicit foundation task and order downstream work behind it.
|
|
33
|
+
4. **Keep the task list realistic**
|
|
34
|
+
- Do not invent placeholder work, vague cleanup tasks, or hidden phases.
|
|
35
|
+
- Do not expand scope beyond the approved design.
|
|
36
|
+
- Keep the breakdown small enough that each item represents a real unit of tracked work.
|
|
37
|
+
5. **Create tracked work through `arc-issue-tracker`**
|
|
38
|
+
- Use `arc-issue-tracker` to create the tracked work.
|
|
39
|
+
- Do not create ad hoc issues in `arc-brainstorm` or `arc-implement`.
|
|
40
|
+
- Create either a single tracked issue for small work or an epic plus child issues for multi-task work.
|
|
41
|
+
- Preserve dependency ordering and ownership in the tracked work that gets created.
|
|
42
|
+
- Hand the agent a manifest that includes the approved plan ID, the plan file path from `arc plan show <plan-id>`, the chosen tracked-work shape, the ordered task list, ownership notes, and dependency notes.
|
|
43
|
+
- Require the agent to return the created Arc IDs, titles, parent-child relationships when applicable, and dependency results so the main session can verify them.
|
|
44
|
+
6. **Confirm tracked work exists**
|
|
45
|
+
- Verify the issue creation result from `arc-issue-tracker` before moving on.
|
|
46
|
+
- Check that the returned IDs match the requested tracked-work shape: one issue for the small-work path, or one epic plus the expected child issues for the multi-task path.
|
|
47
|
+
- Spot-check that parent-child relationships and dependency ordering were created when requested.
|
|
48
|
+
- Make sure the resulting tracked work matches the approved design and ordered task list.
|
|
49
|
+
7. **Ask for approval before implementation starts**
|
|
50
|
+
- Present the tracked work summary and execution order.
|
|
51
|
+
- Ask for approval before handing off to implementation.
|
|
52
|
+
- If the user changes scope or ordering before approval but the requested changes stay within the approved design, revise the task list and reconcile the already-created tracked work before asking again.
|
|
53
|
+
- Reconciliation can mean updating issue descriptions, titles, dependencies, or parentage when the existing IDs still fit, or creating replacement tracked work for items that changed materially within the already approved design.
|
|
54
|
+
- If the requested change materially expands or changes the approved design, stop and send the user back to planner review instead of mutating tracked work in place.
|
|
55
|
+
- Re-verify the reconciled tracked work after those changes before asking for approval again.
|
|
56
|
+
- Keep the final approval tied to the actual tracked work that now exists, not the stale pre-change version.
|
|
57
|
+
8. **Hand off only after tracked work exists**
|
|
58
|
+
- Route to `arc-implement` only after the tracked work has been created.
|
|
59
|
+
- Do not begin implementation inside this skill.
|
|
60
|
+
|
|
61
|
+
## Planning Rules
|
|
62
|
+
|
|
63
|
+
- Start from `arc plan show <plan-id>`.
|
|
64
|
+
- Require `arc plan show <plan-id>` to report an approved plan before creating tracked work.
|
|
65
|
+
- Restate the approved goal and constraints before writing tasks.
|
|
66
|
+
- Preserve shared contracts and dependency ordering from brainstorm.
|
|
67
|
+
- Keep the task list truthful and bounded.
|
|
68
|
+
- Use exact file ownership when honestly knowable.
|
|
69
|
+
- Create tracked work through `arc-issue-tracker`.
|
|
70
|
+
- Support a single issue when the approved design is genuinely small.
|
|
71
|
+
- Make the tracked-work shape explicit: single issue for small work, or epic plus child issues for multi-task work.
|
|
72
|
+
- Do not absorb material design changes after issue creation; route those back to planner review.
|
|
73
|
+
- Ask for approval before implementation starts.
|
|
74
|
+
- Do not implement while planning.
|
|
75
|
+
|
|
76
|
+
## Tracked Work Standard
|
|
77
|
+
|
|
78
|
+
The planning output should be Arc-ready tracked work, not a generic outline.
|
|
79
|
+
|
|
80
|
+
- Create an epic plus child issues when the design spans multiple work items.
|
|
81
|
+
- Create a single tracked issue when the design is small enough that extra issue splitting would be fake precision.
|
|
82
|
+
- Give `arc-issue-tracker` a manifest with the plan reference, task order, ownership, and dependency expectations.
|
|
83
|
+
- Verify the returned Arc IDs, shape, and dependencies before asking for approval.
|
|
84
|
+
- Keep dependencies explicit.
|
|
85
|
+
- Keep ownership explicit.
|
|
86
|
+
- Keep the breakdown aligned to the approved design instead of adding speculative follow-up work.
|
|
87
|
+
|
|
88
|
+
## Completion Condition
|
|
89
|
+
|
|
90
|
+
This skill is complete when:
|
|
91
|
+
|
|
92
|
+
- `arc plan show <plan-id>` has been used to read the approved design,
|
|
93
|
+
- `arc plan show <plan-id>` has confirmed the plan is approved,
|
|
94
|
+
- the approved goal and constraints have been restated,
|
|
95
|
+
- shared contracts and dependency ordering from brainstorm have been preserved,
|
|
96
|
+
- one or more tracked issues have been created through `arc-issue-tracker`,
|
|
97
|
+
- the user has approved the tracked work before implementation, and
|
|
98
|
+
- the handoff goes to `arc-implement` only after tracked work exists.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arc-review
|
|
3
|
+
description: Use when reviewing work that was implemented for an arc task, especially after arc-implement or when the user asks for a code review of task changes. Use this to dispatch arc-reviewer, inspect bugs and regressions, and triage findings before task closure.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Arc Review
|
|
7
|
+
|
|
8
|
+
Review task work by dispatching `arc-reviewer`, then triage the result. This skill is for review, not implementation.
|
|
9
|
+
|
|
10
|
+
## Review Goal
|
|
11
|
+
|
|
12
|
+
Check the work for:
|
|
13
|
+
- bugs
|
|
14
|
+
- behavioral regressions
|
|
15
|
+
- missing or weak verification
|
|
16
|
+
- plan or spec drift
|
|
17
|
+
|
|
18
|
+
The review output must put findings first, each with a file reference when possible. Summaries stay brief and secondary.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
### 1. Determine the Review Range
|
|
23
|
+
|
|
24
|
+
Prefer the SHA captured before implementation:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
BASE_SHA=$PRE_TASK_SHA
|
|
28
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If implementation work was committed, review `git diff $BASE_SHA..$HEAD_SHA`.
|
|
32
|
+
|
|
33
|
+
If `HEAD_SHA` is still `BASE_SHA`, the implementer left working-tree edits instead of a commit; review `git diff $BASE_SHA` so tracked staged and unstaged changes are included.
|
|
34
|
+
|
|
35
|
+
If the uncommitted implementation added new files, include those paths from `git status --short` in the review context so the reviewer does not miss them.
|
|
36
|
+
|
|
37
|
+
If that value is unavailable, determine the range manually:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
git log --oneline -10
|
|
41
|
+
BASE_SHA=$(git rev-parse <commit-before-task>)
|
|
42
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 2. Gather the Task and Design Context
|
|
46
|
+
|
|
47
|
+
Retrieve the task spec:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
arc show <task-id>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If the task belongs to an epic or has approved design material, retrieve only the relevant design excerpt. The reviewer should compare the implementation against both the task spec and any approved design decisions.
|
|
54
|
+
|
|
55
|
+
### 3. Dispatch `arc-reviewer`
|
|
56
|
+
|
|
57
|
+
Dispatch `arc-reviewer` with the task spec, design excerpt if present, and the git diff.
|
|
58
|
+
|
|
59
|
+
Dispatch prompt shape:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
Review these changes for bugs, regressions, missing verification, and design drift.
|
|
63
|
+
|
|
64
|
+
## Task Spec
|
|
65
|
+
<paste output of: arc show <task-id>>
|
|
66
|
+
|
|
67
|
+
## Design Spec
|
|
68
|
+
<paste relevant design excerpt if available>
|
|
69
|
+
|
|
70
|
+
## Changes
|
|
71
|
+
<paste output of the diff selected by the committed-vs-working-tree rule>
|
|
72
|
+
|
|
73
|
+
Report findings first with file references. Keep the summary brief and secondary.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
OpenCode dispatch shape:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
Start a named subagent/task using agent `arc-reviewer`.
|
|
80
|
+
Pass the full prompt above, including the pasted task spec, any design excerpt, and the diff selected by the committed-vs-working-tree rule.
|
|
81
|
+
Expect back: findings grouped by severity with file references, then a brief summary.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 4. Evaluate the Review Report
|
|
85
|
+
|
|
86
|
+
Handle the report in this order:
|
|
87
|
+
|
|
88
|
+
1. Read all Critical findings.
|
|
89
|
+
2. Read all Important findings.
|
|
90
|
+
3. Read Minor findings.
|
|
91
|
+
4. Read any plan-adherence section.
|
|
92
|
+
5. Read the summary last.
|
|
93
|
+
|
|
94
|
+
Do not start from the summary. The point of this skill is findings first triage.
|
|
95
|
+
|
|
96
|
+
### 5. Triage by Severity
|
|
97
|
+
|
|
98
|
+
| Review result | Action |
|
|
99
|
+
|---------------|--------|
|
|
100
|
+
| Critical | Re-dispatch `arc-implementer` with the exact finding and file references |
|
|
101
|
+
| Important | Re-dispatch `arc-implementer` before task closure |
|
|
102
|
+
| Minor | Note for later or accept explicitly |
|
|
103
|
+
| Deviation with `fix` | Re-dispatch `arc-implementer` to match the approved design |
|
|
104
|
+
| Deviation with `accept` | Record the rationale on the task, then proceed |
|
|
105
|
+
|
|
106
|
+
When fixes are needed, send the finding back with concrete evidence:
|
|
107
|
+
- the file reference
|
|
108
|
+
- what behavior or verification is missing
|
|
109
|
+
- why it matters
|
|
110
|
+
|
|
111
|
+
After fixes land, re-run this review workflow on the updated diff.
|
|
112
|
+
|
|
113
|
+
### 6. Reviewer Discipline
|
|
114
|
+
|
|
115
|
+
Treat these as the default review questions:
|
|
116
|
+
- Could this change break an existing path?
|
|
117
|
+
- Does the task spec require behavior that is untested or only partially tested?
|
|
118
|
+
- Is the implementation relying on assumptions the spec does not support?
|
|
119
|
+
- Does the code drift from nearby project conventions in a way that increases risk?
|
|
120
|
+
|
|
121
|
+
### 7. Circuit Breaker
|
|
122
|
+
|
|
123
|
+
If three review and fix cycles fail to resolve the same finding, stop and escalate with:
|
|
124
|
+
- the repeated finding
|
|
125
|
+
- the file references involved
|
|
126
|
+
- the current implementation response
|
|
127
|
+
- the open question that is blocking agreement
|
|
128
|
+
|
|
129
|
+
## Output Standard
|
|
130
|
+
|
|
131
|
+
The effective output shape from `arc-reviewer` should be:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
## Critical
|
|
135
|
+
- `path/to/file:line` <problem and why it matters>
|
|
136
|
+
|
|
137
|
+
## Important
|
|
138
|
+
- `path/to/file:line` <problem and why it matters>
|
|
139
|
+
|
|
140
|
+
## Minor
|
|
141
|
+
- `path/to/file:line` <problem and why it matters>
|
|
142
|
+
|
|
143
|
+
## Plan Adherence
|
|
144
|
+
- `ADHERENT` or explicit deviations
|
|
145
|
+
|
|
146
|
+
## Summary
|
|
147
|
+
<brief secondary wrap-up>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
If there are no findings, say so explicitly and keep the summary short.
|
|
151
|
+
|
|
152
|
+
## Rules
|
|
153
|
+
|
|
154
|
+
- Review for bugs, regressions, and missing verification before anything else.
|
|
155
|
+
- Keep findings first.
|
|
156
|
+
- Include file references whenever the evidence supports them.
|
|
157
|
+
- Keep summaries brief and secondary.
|
|
158
|
+
- Never make code changes in this skill; send fixes back to `arc-implementer`.
|
|
159
|
+
- Format all arc issue content using `skills/arc/_formatting.md`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arc-verify
|
|
3
|
+
description: Use before claiming an arc-tracked task is fixed, complete, or ready to close in OpenCode, especially when success depends on test, build, or command output that must be checked fresh.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Arc Verify
|
|
7
|
+
|
|
8
|
+
Verify every completion claim with a fresh proof command and its full output.
|
|
9
|
+
|
|
10
|
+
## Core Rule
|
|
11
|
+
|
|
12
|
+
**No success claim without fresh verification evidence.**
|
|
13
|
+
|
|
14
|
+
## Gate Sequence
|
|
15
|
+
|
|
16
|
+
### 1. Identify the proof command
|
|
17
|
+
|
|
18
|
+
- Choose the command that proves the exact claim.
|
|
19
|
+
- Examples:
|
|
20
|
+
- "tests pass" -> the relevant test command
|
|
21
|
+
- "build succeeds" -> the project build command
|
|
22
|
+
- "issue is ready to close" -> the command or output that shows the acceptance condition is met
|
|
23
|
+
- If no command can prove the claim directly, say that and report the real state.
|
|
24
|
+
|
|
25
|
+
### 2. Run it
|
|
26
|
+
|
|
27
|
+
- Run the full command now.
|
|
28
|
+
- Prefer the broadest meaningful check over a hand-picked subset.
|
|
29
|
+
- Do not rely on memory, cached output, or another agent's report.
|
|
30
|
+
|
|
31
|
+
### 3. Read the full output
|
|
32
|
+
|
|
33
|
+
- Read the complete output, not just the last line.
|
|
34
|
+
- Check the exit status, failures, warnings, skipped work, and anything that weakens the claim.
|
|
35
|
+
- If output is long, inspect it fully before summarizing it.
|
|
36
|
+
|
|
37
|
+
### 4. Decide what the output proves
|
|
38
|
+
|
|
39
|
+
- Confirm whether the output supports the exact statement you want to make.
|
|
40
|
+
- Separate partial evidence from complete proof.
|
|
41
|
+
|
|
42
|
+
### 5. Only then make the claim
|
|
43
|
+
|
|
44
|
+
- State the result together with the evidence.
|
|
45
|
+
- Example: `npm test` exited 0 and reported 128 passed, 0 failed.
|
|
46
|
+
- If verification failed, report that directly and return to implementation or debugging.
|
|
47
|
+
|
|
48
|
+
## Red Flags
|
|
49
|
+
|
|
50
|
+
- "Should pass"
|
|
51
|
+
- "Looks good"
|
|
52
|
+
- Claiming success before running the proof command
|
|
53
|
+
- Reading only a summary line
|
|
54
|
+
- Treating partial output as complete evidence
|
|
55
|
+
|
|
56
|
+
## Arc Notes
|
|
57
|
+
|
|
58
|
+
- Close or update arc issues only after verification matches reality.
|
|
59
|
+
- Keep issue comments factual and tied to command output.
|
|
60
|
+
- Format any arc notes per `skills/arc/_formatting.md`.
|
package/version.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1
|