opencode-swarm 7.122.1 → 7.123.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.
Files changed (23) hide show
  1. package/.opencode/skills/issue-tracer/SKILL.md +341 -0
  2. package/.opencode/skills/issue-tracer/assets/pr-template.md +59 -0
  3. package/.opencode/skills/issue-tracer/references/critic-gate.md +245 -0
  4. package/.opencode/skills/issue-tracer/references/evidence-artifacts.md +267 -0
  5. package/.opencode/skills/issue-tracer/references/install.md +63 -0
  6. package/.opencode/skills/issue-tracer/references/localization-playbook.md +95 -0
  7. package/.opencode/skills/issue-tracer/references/method-provenance.md +13 -0
  8. package/.opencode/skills/issue-tracer/references/untrusted-content.md +22 -0
  9. package/.opencode/skills/issue-tracer/scripts/scan-deferred.sh +103 -0
  10. package/.opencode/skills/issue-tracer/scripts/trace-init.sh +119 -0
  11. package/dist/cli/{curator-llm-factory-x769hn66.js → curator-llm-factory-mfvd4sqx.js} +2 -2
  12. package/dist/cli/{curator-qfh07497.js → curator-tkyn9bzz.js} +2 -2
  13. package/dist/cli/{guardrail-explain-kj0e9r25.js → guardrail-explain-4vytbchb.js} +3 -3
  14. package/dist/cli/{hive-promoter-00mktxkk.js → hive-promoter-y5wsztkc.js} +2 -2
  15. package/dist/cli/{index-6srk9a5q.js → index-6sgqnvpw.js} +1 -1
  16. package/dist/cli/{index-jm81nhks.js → index-7g91saha.js} +3 -3
  17. package/dist/cli/{index-kanrv3sv.js → index-jyrhy4ww.js} +13 -12
  18. package/dist/cli/{index-5he0kwnx.js → index-q00e4s1s.js} +2 -1
  19. package/dist/cli/index.js +2 -2
  20. package/dist/cli/{skill-generator-g6r52x94.js → skill-generator-63r20a9k.js} +1 -1
  21. package/dist/config/bundled-skills.d.ts +1 -1
  22. package/dist/index.js +2 -2
  23. package/package.json +2 -1
@@ -0,0 +1,245 @@
1
+ # Independent Critic Gate
2
+
3
+ This reference drives three independent gates: the Phase 3 plan critic, the Phase 4.5 implementation review, and the Phase 4.6 final critic. Each is adversarial and independent — it does not improve wording; it tries to prove the work is not done. None of them writes production code.
4
+
5
+ Every verdict artifact records the exact commit SHA it examined (or, for an uncommitted tree, a diff hash such as `git diff | git hash-object --stdin`). Closure requires the final-approval SHA/hash to equal the shipped HEAD; a later edit invalidates the approval and re-runs the affected gate. Freshness is checked by comparing hashes, never by recollection.
6
+
7
+ Before any fallback pass: attempt the delegation mechanism and record the verbatim tool-call error, or quote the user/session text forbidding subagents. If authorization is merely unclear and the session is interactive, ask the user. Non-interactive sessions may fall back only with the recorded failure output, stated in the artifact.
8
+
9
+ ## Plan Critic (Phase 3)
10
+
11
+ Use before presenting the plan to the user. The critic reviews only evidence and plan quality and tries to prove the plan would fail to fully close the issue and its defect class.
12
+
13
+ ### Preferred Invocation
14
+
15
+ If subagent delegation is available, launch a separate critic with this prompt:
16
+
17
+ ```markdown
18
+ You are an independent critic reviewing an issue-tracer fix plan before implementation.
19
+
20
+ Your task is to find gaps, unwired functionality, unsupported assumptions, missed edge cases, missing tests, unsafe scope, an under-scoped defect-class sweep, and root-cause errors.
21
+
22
+ Read these artifacts:
23
+ - 01-issue-summary.md
24
+ - 02-reproduction.md
25
+ - 03-localization-log.md
26
+ - 04-root-cause.md
27
+ - 05-fix-plan.md
28
+
29
+ Also inspect any files referenced in the plan. Do not trust summaries if the underlying code is available.
30
+
31
+ Return exactly:
32
+
33
+ # Critic Review
34
+
35
+ ## Reviewed SHA / diff hash
36
+ [The commit SHA or diff hash of the tree/plan you examined.]
37
+
38
+ ## Verdict
39
+ APPROVE / NEEDS_REVISION / BLOCKED
40
+
41
+ ## Evidence Sufficiency
42
+ [Is root cause proven? What evidence is missing?]
43
+
44
+ ## Plan Correctness
45
+ [Would the selected fix address the root cause?]
46
+
47
+ ## Unwired Functionality
48
+ [Any entry point, export, caller, config, route, UI path, CLI path, docs path, or test path not connected?]
49
+
50
+ ## Edge Cases
51
+ [Missed null/empty/error/concurrent/idempotent/security/backward-compat cases.]
52
+
53
+ ## Defect-Class Sweep
54
+ [Is the anticipated Phase 4.2 sweep scoped to the real class, or too narrow?]
55
+
56
+ ## Test Gaps
57
+ [Positive, negative, regression, integration, fixture, drift, and adversarial gaps.]
58
+
59
+ ## Scope Risk
60
+ [Overreach, underreach, public API, migration, external service, or rollout risks.]
61
+
62
+ ## Required Revisions
63
+ - [Required change or NONE]
64
+ ```
65
+
66
+ ### Fallback Invocation
67
+
68
+ If no independent subagent is available, create `06-critic-review.md` with the same headings (including `## Reviewed SHA / diff hash`) in one clean adversarial pass, prefixed with "Fallback self-critic: independent critic unavailable." Do not leave a stub artifact containing only the disclosure.
69
+
70
+ ### Required Critic Questions
71
+
72
+ The critic must answer:
73
+
74
+ 1. Does the reproduction actually match the issue, or did the tracer reproduce a nearby symptom?
75
+ 2. Is the claimed root cause necessary and sufficient?
76
+ 3. Could the fix make the test pass while leaving the real runtime path unwired?
77
+ 4. Are all callers/importers/entry points covered?
78
+ 5. Are config defaults, feature flags, docs, and generated code surfaces considered?
79
+ 6. Are both positive and negative tests included?
80
+ 7. Are boundary cases covered: null, empty, missing, malformed, duplicate, concurrent, retry, cancellation, timeout, permission denied, and partial failure?
81
+ 8. Does the patch preserve public API and backward compatibility?
82
+ 9. Does the plan avoid broad refactors and unrelated cleanup? (The Phase 4.2 defect-class sweep is in-scope by definition and is NOT "unrelated cleanup".)
83
+ 10. Is rollback straightforward?
84
+ 11. If the fix's exact invocation depends on subtle CLI/subprocess/flag semantics (git flags, gitignore anchoring, shell globs), was the exact candidate invocation empirically verified in an isolated environment — not just asserted as correct?
85
+ 12. If the fix scopes or restricts a destructive/broad-acting operation, was it checked against the real target's full blast radius (a dry-run against the actual environment), not only a minimal reproduction?
86
+
87
+ ### Verdict Semantics
88
+
89
+ - `APPROVE`: No blocker remains. Implementation can proceed after user approval.
90
+ - `NEEDS_REVISION`: The plan is probably fixable, but one or more revisions are required before user approval.
91
+ - `BLOCKED`: The plan lacks enough evidence, has a wrong root cause, requires a product decision, or needs unavailable context.
92
+
93
+ ### Revision Rules
94
+
95
+ If the critic returns `NEEDS_REVISION` or `BLOCKED`: revise `05-fix-plan.md`, record the response to every critic item, and re-run the critic. Do not present the plan as ready until blockers are resolved or explicitly escalated. **Loop bound:** after three revision cycles without convergence, stop and escalate to the user with both positions and the evidence. Never resolve a deadlock by rewording a blocker.
96
+
97
+ ## Implementation Review (Phase 4.5)
98
+
99
+ Use AFTER the fix is implemented and validated, to challenge the actual diff. It is independent of the Phase 3 plan critic: the plan critic challenges the plan; this reviewer challenges the real patch and its evidence. The context that wrote the patch must not be the only context that approves it.
100
+
101
+ ### Reviewer Mission
102
+
103
+ Find a concrete case where the implemented patch is wrong, incomplete, overfits the regression test, leaves a runtime path unwired, misses a defect-class sibling, or regresses an existing contract. Verify claims against the real code and captured command output — do not trust the implementer's narrative.
104
+
105
+ ### Reviewer Inputs (strict)
106
+
107
+ The reviewer receives ONLY: the full diff, `04-root-cause.md`, `07-approved-plan.md`, `08-test-results.md`, `08a-recurrence-sweep.md`, and the files the diff touches. It is NOT given the implementer's `05-fix-plan.md` reasoning or `06-critic-review.md` narrative — those can anchor the reviewer to the implementer's framing. Open the touched files; do not trust summaries.
108
+
109
+ ### Preferred Invocation
110
+
111
+ If subagent delegation is available, launch a separate reviewer with this prompt:
112
+
113
+ ```markdown
114
+ You are an independent implementation reviewer for an issue-tracer fix that has already been implemented and validated. Your job is to REFUTE it, not to agree with it.
115
+
116
+ Inputs (and only these):
117
+ - the full diff (e.g. `git diff origin/<default-branch>...HEAD`)
118
+ - 04-root-cause.md, 07-approved-plan.md, 08-test-results.md, 08a-recurrence-sweep.md
119
+ - the files the diff touches (open them; do not trust summaries)
120
+
121
+ Find, with concrete evidence:
122
+ - a specific input/environment/caller/sequence where the patch is wrong or incomplete
123
+ - whether the new test would still pass if the bug were only partially fixed (overfitting / plausible-not-correct)
124
+ - any changed path that is not wired into the real runtime path
125
+ - any defect-class sibling the Phase 4.2 sweep missed or misdispositioned
126
+ - any regressed public API, CLI, UI, config, persistence, or concurrency contract
127
+ - any "passed"/"validated" claim not backed by a shown command + output
128
+ - if the fix depends on CLI/subprocess/flag semantics, independently re-run the exact invocation yourself and confirm the observed behavior matches the claim
129
+ - if the fix scopes a destructive/broad-acting operation, independently re-check it against the real target's full blast radius
130
+
131
+ Return exactly:
132
+
133
+ # Implementation Review
134
+
135
+ ## Reviewed SHA / diff hash
136
+ [The commit SHA or diff hash you examined.]
137
+
138
+ ## Verdict
139
+ APPROVE / NEEDS_REVISION / BLOCKED
140
+
141
+ ## Correctness vs Root Cause
142
+ [Does the diff fix the documented root cause, or only the symptom/test?]
143
+
144
+ ## Overfitting Check
145
+ [Could the patch be wrong while still passing the new test? Show how or why not.]
146
+
147
+ ## Unwired / Runtime-Path Gaps
148
+ [Entry points, exports, callers, config, routes, CLI/UI paths not connected.]
149
+
150
+ ## Defect-Class Sweep Integrity
151
+ [Did Phase 4.2 characterize the class correctly, sweep completely, and install a guardrail that bites?]
152
+
153
+ ## Contract & Regression Risk
154
+ [Public API, backward-compat, migration, concurrency, security.]
155
+
156
+ ## Evidence Integrity
157
+ [Validation claims not backed by captured command output.]
158
+
159
+ ## Deferred / Scoped-Out / Unwired
160
+ [Any work silently deferred, scoped out, or left unwired. State NONE only if truly none.]
161
+
162
+ ## Required Revisions
163
+ - [Required change or NONE]
164
+ ```
165
+
166
+ ### Fallback Invocation
167
+
168
+ If no independent subagent is available, write `08b-implementation-review.md` using the same headings (including `## Reviewed SHA / diff hash` and `## Deferred / Scoped-Out / Unwired`) in one clean adversarial pass, prefixed with "Fallback self-review: independent reviewer unavailable." Do not leave a stub containing only the disclosure.
169
+
170
+ ### Verdict Semantics
171
+
172
+ - `APPROVE`: no blocker remains; closure may proceed.
173
+ - `NEEDS_REVISION`: one or more code or evidence changes are required before closure.
174
+ - `BLOCKED`: the patch does not address the root cause, overfits, or needs context/decision the reviewer lacks.
175
+
176
+ ### Revision Rules
177
+
178
+ Resolve every `NEEDS_REVISION`/`BLOCKED` item by changing code or capturing real evidence, then re-review. Do not downgrade a blocker by rewording it. Record the response to every reviewer item in `08b-implementation-review.md`. **Loop bound:** after three reviewer/critic revision cycles without convergence, stop and escalate to the user with both positions and evidence.
179
+
180
+ ## Final Critic (Phase 4.6)
181
+
182
+ Use after the implementation reviewer has approved the current diff. This critic challenges the entire completion claim, including code, tests, docs, release notes, package metadata, validation evidence, and the reviewer artifact.
183
+
184
+ ### Preferred Invocation
185
+
186
+ If subagent delegation is available, launch a separate critic with this prompt:
187
+
188
+ ```markdown
189
+ You are the final critic for an issue-tracer implementation that already passed implementation review. Your job is to prove the completion claim is still wrong.
190
+
191
+ Inputs:
192
+ - the current full diff
193
+ - 01-issue-summary.md through 08b-implementation-review.md, including 08a-recurrence-sweep.md
194
+ - 08-test-results.md with captured command output
195
+ - all changed files
196
+
197
+ Check:
198
+ - the reviewer approval is on the latest diff (matching SHA/hash), not an earlier state
199
+ - every NEEDS_REVISION/BLOCKED reviewer item was actually fixed and re-reviewed
200
+ - docs, release notes, package metadata, CLI/API claims, and tests match the implemented behavior
201
+ - the Phase 4.2 guardrail exists and demonstrably bites
202
+ - every acceptance criterion maps to concrete evidence
203
+ - validation claims are backed by commands and output
204
+ - no work was silently deferred, scoped out, or left unwired
205
+
206
+ Return exactly:
207
+
208
+ # Final Critic
209
+
210
+ ## Reviewed SHA / diff hash
211
+ [The commit SHA or diff hash you examined; confirm it equals the shipped HEAD.]
212
+
213
+ ## Verdict
214
+ APPROVE / NEEDS_REVISION / BLOCKED
215
+
216
+ ## Completion Integrity
217
+ [Does the current diff satisfy the issue, the Full-Resolution Contract, and the no-gap checklist?]
218
+
219
+ ## Review Freshness
220
+ [Did reviewer approval happen on this exact SHA/hash?]
221
+
222
+ ## Drift Check
223
+ [Any mismatch among code, tests, docs, release notes, package metadata, and final summary?]
224
+
225
+ ## Deferred / Scoped-Out / Unwired
226
+ [Any work silently deferred, scoped out, or left unwired. State NONE only if truly none.]
227
+
228
+ ## Evidence Integrity
229
+ [Any unbacked validation or correctness claim?]
230
+
231
+ ## Required Revisions
232
+ - [Required change or NONE]
233
+ ```
234
+
235
+ ### Fallback Invocation
236
+
237
+ If no independent critic is available, write `09-final-critic.md` with the same headings (including `## Reviewed SHA / diff hash` and `## Deferred / Scoped-Out / Unwired`) in one clean adversarial pass, prefixed with "Fallback final critic: independent critic unavailable." Do not leave a stub artifact containing only the disclosure.
238
+
239
+ ### Verdict Semantics
240
+
241
+ - `APPROVE`: no blocker remains; closure may proceed if no later edit happens.
242
+ - `NEEDS_REVISION`: one or more code, docs, tests, or evidence changes are required before closure.
243
+ - `BLOCKED`: the completion claim depends on missing context or an unresolved decision.
244
+
245
+ Any edit after final critic approval invalidates the approval. Re-run implementation review when the edit changes the diff, then re-run the final critic. **Loop bound:** after three reviewer/critic revision cycles without convergence, stop and escalate to the user with both positions and evidence.
@@ -0,0 +1,267 @@
1
+ # Evidence Artifacts
2
+
3
+ Use these templates to keep the investigation auditable and resumable. In compact mode each template may be a clearly-headed in-thread block with the identical required content — the storage changes, the required content does not.
4
+
5
+ ## `01-issue-summary.md`
6
+
7
+ ```markdown
8
+ # Issue Summary
9
+
10
+ ## Source
11
+ - Issue: [URL or user-provided text]
12
+ - Repo: [owner/repo or local path]
13
+ - Labels: [labels]
14
+ - State: [open/closed/unknown]
15
+
16
+ ## Observed Behavior
17
+ [What actually happens. Include exact errors and stack traces.]
18
+
19
+ ## Expected Behavior
20
+ [What should happen.]
21
+
22
+ ## Reproduction Steps
23
+ 1. [Step]
24
+ 2. [Step]
25
+
26
+ ## Environment
27
+ - Runtime:
28
+ - OS/platform:
29
+ - Browser/device:
30
+ - Feature flags/config:
31
+ - External services:
32
+
33
+ ## Acceptance Criteria
34
+ - [ ] [Measurable behavior]
35
+ - [ ] [Measurable behavior]
36
+
37
+ ## Ambiguities
38
+ - [Question or missing input]
39
+ ```
40
+
41
+ ## `02-reproduction.md`
42
+
43
+ ```markdown
44
+ # Reproduction Evidence
45
+
46
+ ## Commands Tried
47
+
48
+ ### Attempt 1
49
+ - Command:
50
+ - Exit code:
51
+ - Result: CONFIRMED / NOT REPRODUCED / BLOCKED
52
+
53
+ ```text
54
+ [Exact output]
55
+ ```
56
+
57
+ ## Minimal Reproduction
58
+ - Test/script/checklist:
59
+ - Why it matches the reported issue:
60
+
61
+ ## Reproduction Verdict
62
+ [Confirmed, blocked, or non-reproducible with reason.]
63
+ ```
64
+
65
+ ## `03-localization-log.md`
66
+
67
+ ```markdown
68
+ # Localization Log
69
+
70
+ ## Active Hypotheses
71
+
72
+ ### H1: [Hypothesis]
73
+ - Status: active / confirmed / ruled_out / inconclusive
74
+ - Suspected file/symbol:
75
+ - Evidence for:
76
+ - Evidence against:
77
+ - Commands/tests:
78
+ - Verdict:
79
+
80
+ ## Files Read
81
+ - `path/file.ext:lines` — [why read] — [what was learned]
82
+
83
+ ## Searches Run
84
+ - `<search pattern>` — [result]
85
+
86
+ ## Tests/Commands Run
87
+ - `command` — PASS/FAIL/BLOCKED — [meaning]
88
+
89
+ ## Ruled-Out Paths
90
+ - [Path] — [why ruled out]
91
+ ```
92
+
93
+ ## `04-root-cause.md`
94
+
95
+ ```markdown
96
+ # Root Cause
97
+
98
+ ## Summary
99
+ [What failed, where, and why.]
100
+
101
+ ## Exact Location
102
+ - File:
103
+ - Symbol:
104
+ - Lines:
105
+
106
+ ## Broken Contract
107
+ [Invariant or behavioral contract violated.]
108
+
109
+ ## Triggering Conditions
110
+ [Inputs/state/environment required.]
111
+
112
+ ## Evidence Chain
113
+ 1. [Symptom]
114
+ 2. [Code evidence]
115
+ 3. [Command/test evidence]
116
+ 4. [Ruled-out alternatives]
117
+
118
+ ## Confidence
119
+ [0–100% with reason. Below 90%, return to localization with a NAMED missing-evidence target instead of guessing. If two hypotheses remain equally supported after a second pass, escalate to the user.]
120
+ ```
121
+
122
+ ## `05-fix-plan.md`
123
+
124
+ ```markdown
125
+ # Fix Plan
126
+
127
+ ## Issue
128
+ [Short summary.]
129
+
130
+ ## Root Cause
131
+ [From 04-root-cause.md.]
132
+
133
+ ## Candidate Fixes
134
+ | Candidate | Approach | Files | Pros | Cons | Verdict |
135
+ |---|---|---|---|---|---|
136
+ | A | [Minimal guard/logic/config/state/API fix] | [files] | [pros] | [cons] | selected/rejected |
137
+
138
+ ## Selected Fix
139
+ [Exact behavioral change and why it is necessary and sufficient.]
140
+
141
+ ## Files Expected to Change
142
+ - `path/file.ext` — [exact reason]
143
+
144
+ ## Impact Analysis
145
+ - Callers/importers:
146
+ - Tests/fixtures:
147
+ - Config/docs:
148
+ - API/UI/CLI:
149
+ - Persistence/migrations:
150
+ - Security/privacy:
151
+ - Concurrency/idempotency:
152
+
153
+ ## Anticipated Defect-Class Sweep (Phase 4.2)
154
+ - Pattern statement (draft):
155
+ - Search predicates (draft):
156
+ - Guardrail rung intended:
157
+
158
+ ## Edge Cases
159
+ - [edge] — covered by [test/check]
160
+
161
+ ## Test Plan
162
+ 1. [Failing regression test]
163
+ 2. [Impacted suite]
164
+ 3. [Lint/type/build/security checks]
165
+
166
+ ## Unwired Functionality Checklist
167
+ - [ ] Entry point reaches new/changed logic.
168
+ - [ ] All callers use the updated contract correctly.
169
+ - [ ] Error path is observable and handled.
170
+ - [ ] No new branch lacks tests or manual verification.
171
+ - [ ] Documentation/comments match actual behavior.
172
+
173
+ ## Risk and Rollback
174
+ - Risk:
175
+ - Rollback:
176
+
177
+ ## Critic Status
178
+ - Critic verdict:
179
+ - Required revisions:
180
+ ```
181
+
182
+ ## `06-critic-review.md`
183
+
184
+ Use `references/critic-gate.md` (Plan Critic section). The artifact records the reviewed SHA/diff hash and a verdict.
185
+
186
+ ## `07-approved-plan.md`
187
+
188
+ ```markdown
189
+ # Reviewed Plan Awaiting Approval
190
+
191
+ [Copy final 05-fix-plan.md here.]
192
+
193
+ ## User Approval
194
+ - [ ] User explicitly approved implementation on [date/time/session note]
195
+ ```
196
+
197
+ ## `08-test-results.md`
198
+
199
+ ```markdown
200
+ # Test Results
201
+
202
+ ## Regression Test
203
+ - Command:
204
+ - Before fix: FAIL / not run with reason
205
+ - After fix: PASS / FAIL
206
+
207
+ ## Impacted Tests
208
+ - Command:
209
+ - Result:
210
+
211
+ ## Quality Checks
212
+ - Lint:
213
+ - Typecheck:
214
+ - Build:
215
+ - Format:
216
+ - Security/static checks:
217
+
218
+ ## Deferred-Work Scan
219
+ - Command: `.opencode/skills/issue-tracer/scripts/scan-deferred.sh`
220
+ - Result: [clean, or each hit + disposition]
221
+
222
+ ## Verification Reasoning
223
+ [Why the fix is correct beyond merely making tests pass.]
224
+
225
+ ## Test Drift Review
226
+ [Any stale tests found and how they were handled.]
227
+ ```
228
+
229
+ ## `08a-recurrence-sweep.md`
230
+
231
+ ```markdown
232
+ # Recurrence Sweep and Guardrail
233
+
234
+ (If the change corrects no incorrect behavior/data/docs — pure style/naming — record "no defect class" with a one-line justification and stop here.)
235
+
236
+ ## Defect Class
237
+ [One-sentence pattern statement: the shape of the mistake — API misused, guard omitted, contract assumed, encoding confused — not the site of it.]
238
+
239
+ ## Predicates and Results
240
+ - Predicate 1: `<rg/AST/type query>`
241
+
242
+ ```text
243
+ [Full result set. An empty result is evidence only if the predicate is shown.]
244
+ ```
245
+
246
+ ## Dispositions
247
+ | Hit (file:line) | Disposition | Justification |
248
+ |---|---|---|
249
+ | path:line | FIX / FALSE_POSITIVE / OUT_OF_CLASS / DEFERRED_WITH_USER_APPROVAL | [why; for DEFERRED: tracked issue link + quoted user acknowledgment] |
250
+
251
+ ## Guardrail
252
+ - Rung chosen: [lint/static rule > type constraint > runtime/trust-boundary assertion > CI check > documented invariant + regression family]
253
+ - Infeasibility reasons (required if landing on either of the two weakest rungs): [why each stronger rung is infeasible for this class — "faster" is not a reason]
254
+ - Demonstration: [revert-check / mutation / synthetic instance] — captured output showing it FAILS on the original defect and PASSES on the fixed code.
255
+ ```
256
+
257
+ ## `08b-implementation-review.md`
258
+
259
+ Use `references/critic-gate.md` (Implementation Review section). The artifact records the reviewed SHA/diff hash, a verdict, and the `## Deferred / Scoped-Out / Unwired` finding.
260
+
261
+ ## `09-final-critic.md`
262
+
263
+ Use `references/critic-gate.md` (Final Critic section). The artifact records the reviewed SHA/diff hash (confirmed equal to shipped HEAD), a verdict, and the `## Deferred / Scoped-Out / Unwired` finding.
264
+
265
+ ## `10-pr-body.md`
266
+
267
+ Use `assets/pr-template.md`, including the `## Acceptance Criteria → Evidence` map and the `## Waivers (or none)` section.
@@ -0,0 +1,63 @@
1
+ # Install and Version Reconciliation
2
+
3
+ This skill is distributed as ONE canonical source with thin per-agent adapters. This reference documents where each of the five supported agents discovers the skill, how user-level installs can shadow the project copy, and how to reconcile a stale copy against the canonical version stamp.
4
+
5
+ The canonical version is the `metadata.version` field in the canonical `SKILL.md` frontmatter. Treat that stamp as the source of truth: when two resolvable copies disagree on `metadata.version`, the lower one is stale and must be reconciled.
6
+
7
+ ## Discovery per agent (project-level)
8
+
9
+ | Agent | Loads (project-level) | Resolves to |
10
+ |---|---|---|
11
+ | OpenCode | `.opencode/skills/issue-tracer/SKILL.md` | canonical |
12
+ | Claude Code | `.claude/skills/issue-tracer/SKILL.md` | adapter shim → canonical |
13
+ | OpenAI Codex | `.agents/skills/issue-tracer/SKILL.md` | adapter shim → canonical |
14
+ | ZCode | `.agents/skills/issue-tracer/SKILL.md` | adapter shim → canonical |
15
+ | GitHub coding agent | repo-root `AGENTS.md` pointer | canonical |
16
+
17
+ The adapter shims are one-line pointers to `../../../.opencode/skills/issue-tracer/SKILL.md`; they carry no protocol of their own, so a project checkout always executes a single canonical body.
18
+
19
+ ### Agent Adapter table — how each row was filled
20
+
21
+ The canonical SKILL.md's Agent Adapter table maps each capability to a concrete tool per agent. Those rows were filled from each agent's current tool surface: OpenCode (`edit`/`write`, `todowrite`, `webfetch`, `task`), Claude Code (`Edit`/`Write`/`MultiEdit`, `TodoWrite`, `WebFetch`/`WebSearch`, `Agent`/`Task`), OpenAI Codex (`apply_patch`, `update_plan`, `web`), and the GitHub coding agent (`edit`, built-in task list, `web`). **ZCode** is mapped to the Codex-native tool surface (`apply_patch`/`update_plan`/`web`) because it is a Codex-family CLI that shares the project-level `.agents/skills/` discovery tree with Codex; if your ZCode build exposes different tool names, treat the table as capability-first and substitute your build's names.
22
+
23
+ ## User-level installs can SHADOW the project copy
24
+
25
+ Several CLIs also search a user-level (home-directory) skills root in addition to the project root, for example:
26
+
27
+ - Claude Code: `~/.claude/skills/issue-tracer/`
28
+ - ZCode: `~/.zcode/skills/issue-tracer/`
29
+ - Codex: `~/.codex/skills/issue-tracer/` (or the runtime's configured user skills root)
30
+ - OpenCode: the user-level OpenCode config skills root
31
+
32
+ Resolution precedence between the project copy and a same-named user-level copy **varies by CLI and CLI version**, and some resolve the user-level copy first. That makes a **stale user-level copy the dangerous case**: it can silently shadow the up-to-date project canonical, so the agent runs an old protocol (missing, e.g., the Full-Resolution Contract or the Phase 4.2 sweep) while the repository looks correct. Do not assume project-wins; verify with the version stamp.
33
+
34
+ ## Reconcile against `metadata.version`
35
+
36
+ Read the canonical stamp first:
37
+
38
+ ```sh
39
+ grep -A2 '^metadata:' .opencode/skills/issue-tracer/SKILL.md | grep 'version:'
40
+ ```
41
+
42
+ Then, for each CLI you use, compare the user-level copy's stamp to the project canonical and remove or refresh the user-level copy if it is older or absent-of-stamp (a legacy fork with no `metadata.version` is by definition stale):
43
+
44
+ ```sh
45
+ # Claude Code
46
+ diff <(grep 'version:' ~/.claude/skills/issue-tracer/SKILL.md 2>/dev/null || echo 'version: none') \
47
+ <(grep 'version:' .opencode/skills/issue-tracer/SKILL.md) \
48
+ && echo 'in sync' || echo 'STALE user-level copy — remove ~/.claude/skills/issue-tracer or re-sync it'
49
+
50
+ # ZCode
51
+ diff <(grep 'version:' ~/.zcode/skills/issue-tracer/SKILL.md 2>/dev/null || echo 'version: none') \
52
+ <(grep 'version:' .opencode/skills/issue-tracer/SKILL.md) \
53
+ && echo 'in sync' || echo 'STALE user-level copy — remove ~/.zcode/skills/issue-tracer or re-sync it'
54
+
55
+ # Codex
56
+ diff <(grep 'version:' ~/.codex/skills/issue-tracer/SKILL.md 2>/dev/null || echo 'version: none') \
57
+ <(grep 'version:' .opencode/skills/issue-tracer/SKILL.md) \
58
+ && echo 'in sync' || echo 'STALE user-level copy — remove ~/.codex/skills/issue-tracer or re-sync it'
59
+ ```
60
+
61
+ The safest default is to keep no user-level `issue-tracer` copy at all and let each project ship its own canonical, so version drift cannot occur. If you do keep a user-level copy, reconcile it whenever the project canonical's `metadata.version` changes.
62
+
63
+ GitHub coding agents load the repository's checked-in `AGENTS.md` and `.opencode/skills/issue-tracer/SKILL.md` directly, with no user-level home directory, so shadowing does not apply to that surface.
@@ -0,0 +1,95 @@
1
+ # Localization Playbook
2
+
3
+ Use this playbook during Phase 2. The goal is not to read the most code. The goal is to build the shortest evidence chain from symptom to root cause.
4
+
5
+ ## Tier 1: Trace-Driven Localization
6
+
7
+ Use when the issue includes a stack trace, failing test output, panic, exception, compiler error, log line, request ID, or command output.
8
+
9
+ 1. Extract file paths, symbols, line numbers, route names, command names, config keys, and exact error strings.
10
+ 2. Start from the first project-owned frame, not framework/library frames.
11
+ 3. Read the frame, its immediate caller, and any input validation or error-mapping code.
12
+ 4. Confirm whether the visible crash site is the cause or only the symptom.
13
+ 5. If the trace points to generic error handling, walk backward to the first domain-specific invariant break.
14
+
15
+ Common trace interpretations:
16
+
17
+ - Null/undefined/type errors often originate at a missing guard or wrong contract before the crash line.
18
+ - Index/bounds errors often originate in filtering, slicing, pagination, or off-by-one logic.
19
+ - Assertion failures often indicate an upstream invariant break.
20
+ - Timeout/deadlock symptoms require call-chain, lock, retry, cancellation, and external-service review.
21
+ - Serialization errors often require checking both producer and consumer schemas.
22
+
23
+ ## Tier 2: Semantic and Structural Localization
24
+
25
+ Use when the stack trace is missing, generic, misleading, or incomplete.
26
+
27
+ 1. Convert issue text into search terms:
28
+ - user-visible strings
29
+ - endpoint names
30
+ - component labels
31
+ - command flags
32
+ - config names
33
+ - domain nouns and verbs
34
+ 2. Search broadly, then narrow, using your repository search tool:
35
+ - the exact error string
36
+ - the route or command name
37
+ - domain terms, config keys, flags
38
+ - tracked-symbol confirmation
39
+ 3. Build a candidate file table: file, relevant symbol, why it could cause the symptom, confidence, next evidence needed.
40
+ 4. Inspect dependency direction: who calls this code, what this code calls, where state/config enters, where errors are transformed.
41
+ 5. Use git archaeology sparingly but deliberately:
42
+ - `git log --oneline -- <path>`
43
+ - `git show <commit> -- <path>`
44
+ - `git blame -L <start>,<end> -- <path>`
45
+
46
+ ## Tier 3: Hypothesis-Driven Localization
47
+
48
+ Use when multiple plausible locations remain.
49
+
50
+ 1. Generate 2–5 competing hypotheses.
51
+ 2. For each hypothesis, define the evidence that would confirm it and the evidence that would falsify it.
52
+ 3. Test hypotheses in likelihood order.
53
+ 4. Keep no more than three active hypotheses.
54
+ 5. Do not preserve weak hypotheses once evidence contradicts them.
55
+
56
+ Hypothesis format:
57
+
58
+ ```markdown
59
+ ### H[N]: [short name]
60
+ The bug is in `path:symbol` because [specific condition] violates [specific contract], causing [reported symptom] when [triggering input/state].
61
+
62
+ - Confirm if:
63
+ - Falsify if:
64
+ - Evidence:
65
+ - Verdict:
66
+ ```
67
+
68
+ ## Granularity Rules
69
+
70
+ Localize at multiple levels before planning a patch:
71
+
72
+ 1. File-level: which file owns the failing behavior.
73
+ 2. Element-level: which function/class/config/test helper is responsible.
74
+ 3. Line-level: which condition, call, assignment, invariant, or boundary check is wrong.
75
+
76
+ Function or element-level evidence is usually the most useful planning granularity. Line-level evidence is required before editing, but avoid overfitting the plan to one line if the issue is a broken contract across a whole function.
77
+
78
+ ## Call-Chain Exploration
79
+
80
+ When the failure propagates across components:
81
+
82
+ 1. Start at the failing entry point.
83
+ 2. Follow calls one layer at a time.
84
+ 3. At each layer, ask: what data enters, what contract is assumed, what state changes, what errors are swallowed/transformed, what output leaves.
85
+ 4. Backtrack when evidence weakens.
86
+ 5. Record pruned branches in `03-localization-log.md`.
87
+
88
+ ## Stop Conditions
89
+
90
+ Stop localization and escalate if:
91
+
92
+ - the root cause requires unavailable production-only data
93
+ - two hypotheses remain equally supported after a second pass
94
+ - the issue requires a product decision rather than a code correction
95
+ - the suspected fix crosses subsystem boundaries beyond the approved scope
@@ -0,0 +1,13 @@
1
+ # Method Provenance (state of the art)
2
+
3
+ The quality methods in this skill are grounded in current agentic-repair and agent-reliability research, adapted to a plan-first, evidence-first, full-resolution workflow:
4
+
5
+ - Hierarchical file → function → line localization, multi-sample candidate patches, and validate-then-select repair: Agentless (Xia et al. 2024, https://arxiv.org/abs/2407.01489).
6
+ - Reasoning-guided, explanation-ranked fault localization (a causal explanation per candidate, not surface similarity): RGFL (https://arxiv.org/pdf/2601.18044); structure/spectrum-aware search: AutoCodeRover (https://arxiv.org/abs/2404.05427).
7
+ - "Tests passing is plausible, not correct" / patch overfitting: patch-correctness survey (https://dl.acm.org/doi/10.1145/3702972).
8
+ - Self-consistency across independent passes: Wang et al. 2022 (https://arxiv.org/abs/2203.11171).
9
+ - A fresh independent context refutes the result (the doer is not the grader) and evidence-grounded reporting (show the command and its output, do not assert success): Anthropic, "Effective harnesses for long-running agents" (https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents).
10
+ - Plan → implement → review separation as explicit quality gates: Anthropic, "Building Effective Agents" (https://www.anthropic.com/research/building-effective-agents).
11
+ - Escalate when the issue lacks reproducible steps or acceptance criteria (issue clarity predicts resolution success): GitHub coding-agent best practices (https://docs.github.com/en/copilot/how-tos/agents/copilot-coding-agent/best-practices-for-using-copilot-to-work-on-tasks).
12
+
13
+ Recurrence-class eradication (Phase 4.2) generalizes the "fix the class, not the instance" principle: a single-site repair that leaves the defect class searchable and reintroducible has not closed the issue's real surface. The guardrail ladder (static rule → type constraint → runtime/trust-boundary assertion → CI check → documented invariant + regression family) prefers machine-enforced prevention over human vigilance.