codex-orchestrator 2.0.3 → 2.0.5
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/CHANGELOG.md +51 -427
- package/README.md +161 -37
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.d.ts +5 -0
- package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
- package/dist/src/v2/acceptance-proof.js +10 -2
- package/dist/src/v2/acceptance-proof.js.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.d.ts.map +1 -1
- package/dist/src/v2/adapters/gh-issue-adapter.js +6 -7
- package/dist/src/v2/adapters/gh-issue-adapter.js.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts +7 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.d.ts.map +1 -1
- package/dist/src/v2/adapters/gh-pull-request-adapter.js +288 -0
- package/dist/src/v2/adapters/gh-pull-request-adapter.js.map +1 -1
- package/dist/src/v2/adapters/pull-requests.d.ts +69 -0
- package/dist/src/v2/adapters/pull-requests.d.ts.map +1 -1
- package/dist/src/v2/adapters/pull-requests.js +48 -0
- package/dist/src/v2/adapters/pull-requests.js.map +1 -1
- package/dist/src/v2/adapters/worktree.d.ts +1 -0
- package/dist/src/v2/adapters/worktree.d.ts.map +1 -1
- package/dist/src/v2/adapters/worktree.js +10 -1
- package/dist/src/v2/adapters/worktree.js.map +1 -1
- package/dist/src/v2/cli-contract.d.ts +3 -3
- package/dist/src/v2/cli-contract.d.ts.map +1 -1
- package/dist/src/v2/cli-contract.js +1 -3
- package/dist/src/v2/cli-contract.js.map +1 -1
- package/dist/src/v2/cli.d.ts +33 -0
- package/dist/src/v2/cli.d.ts.map +1 -0
- package/dist/src/v2/{candidate-cli.js → cli.js} +55 -39
- package/dist/src/v2/cli.js.map +1 -0
- package/dist/src/v2/code-review-report.d.ts +1 -1
- package/dist/src/v2/code-review-report.d.ts.map +1 -1
- package/dist/src/v2/code-review-report.js +2 -2
- package/dist/src/v2/code-review-report.js.map +1 -1
- package/dist/src/v2/codex-process.d.ts.map +1 -1
- package/dist/src/v2/codex-process.js +12 -1
- package/dist/src/v2/codex-process.js.map +1 -1
- package/dist/src/v2/config.d.ts +2 -3
- package/dist/src/v2/config.d.ts.map +1 -1
- package/dist/src/v2/config.js +0 -3
- package/dist/src/v2/config.js.map +1 -1
- package/dist/src/v2/contained-report-operation.d.ts +2 -2
- package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
- package/dist/src/v2/contained-report-operation.js +1 -1
- package/dist/src/v2/contained-report-operation.js.map +1 -1
- package/dist/src/v2/containment.d.ts +15 -2
- package/dist/src/v2/containment.d.ts.map +1 -1
- package/dist/src/v2/containment.js +43 -6
- package/dist/src/v2/containment.js.map +1 -1
- package/dist/src/v2/direct-delivery.d.ts +5 -10
- package/dist/src/v2/direct-delivery.d.ts.map +1 -1
- package/dist/src/v2/direct-delivery.js +32 -91
- package/dist/src/v2/direct-delivery.js.map +1 -1
- package/dist/src/v2/proof-report.d.ts.map +1 -1
- package/dist/src/v2/proof-report.js +55 -29
- package/dist/src/v2/proof-report.js.map +1 -1
- package/dist/src/v2/review-feedback-coordinator.d.ts +54 -0
- package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -0
- package/dist/src/v2/review-feedback-coordinator.js +245 -0
- package/dist/src/v2/review-feedback-coordinator.js.map +1 -0
- package/dist/src/v2/review-feedback.d.ts +127 -0
- package/dist/src/v2/review-feedback.d.ts.map +1 -0
- package/dist/src/v2/review-feedback.js +436 -0
- package/dist/src/v2/review-feedback.js.map +1 -0
- package/dist/src/v2/run-issue.d.ts +63 -9
- package/dist/src/v2/run-issue.d.ts.map +1 -1
- package/dist/src/v2/run-issue.js +798 -78
- package/dist/src/v2/run-issue.js.map +1 -1
- package/dist/src/v2/run-store.d.ts +49 -5
- package/dist/src/v2/run-store.d.ts.map +1 -1
- package/dist/src/v2/run-store.js +138 -44
- package/dist/src/v2/run-store.js.map +1 -1
- package/dist/src/v2/runtime.d.ts +40 -3
- package/dist/src/v2/runtime.d.ts.map +1 -1
- package/dist/src/v2/runtime.js +245 -52
- package/dist/src/v2/runtime.js.map +1 -1
- package/dist/src/v2/setup-cli.d.ts.map +1 -1
- package/dist/src/v2/setup-cli.js +4 -11
- package/dist/src/v2/setup-cli.js.map +1 -1
- package/dist/src/v2/setup-runtime.d.ts.map +1 -1
- package/dist/src/v2/setup-runtime.js +1 -61
- package/dist/src/v2/setup-runtime.js.map +1 -1
- package/dist/src/v2/setup-store.d.ts +0 -5
- package/dist/src/v2/setup-store.d.ts.map +1 -1
- package/dist/src/v2/setup-store.js +3 -106
- package/dist/src/v2/setup-store.js.map +1 -1
- package/dist/src/v2/setup.d.ts +6 -46
- package/dist/src/v2/setup.d.ts.map +1 -1
- package/dist/src/v2/setup.js +12 -294
- package/dist/src/v2/setup.js.map +1 -1
- package/dist/src/v2/workflow-assets.d.ts +19 -11
- package/dist/src/v2/workflow-assets.d.ts.map +1 -1
- package/dist/src/v2/workflow-assets.js +132 -40
- package/dist/src/v2/workflow-assets.js.map +1 -1
- package/docs/deep-dive.md +328 -56
- package/internal-workflow/docs/agents/bugfix-quality-gate.md +11 -0
- package/internal-workflow/docs/agents/coding-skill-routing.md +116 -196
- package/internal-workflow/docs/agents/contract-test-ledger.md +11 -1
- package/internal-workflow/docs/agents/review-gates.md +32 -39
- package/internal-workflow/docs/agents/review-protocol.md +75 -147
- package/internal-workflow/evals/coding-skill-evals.json +84 -0
- package/internal-workflow/manifest.json +1 -1
- package/internal-workflow/operations/acceptance-proof/SKILL.md +7 -1
- package/internal-workflow/operations/ambiguity-review/SKILL.md +2 -0
- package/internal-workflow/operations/code-review/SKILL.md +21 -1
- package/internal-workflow/operations/implementation/SKILL.md +22 -1
- package/internal-workflow/operations/spec-author/SKILL.md +10 -1
- package/internal-workflow/operations/spec-review/SKILL.md +10 -1
- package/internal-workflow/operations/triage/SKILL.md +10 -1
- package/internal-workflow/schemas/code-review-v1.json +1 -1
- package/internal-workflow/schemas/proof-report-v1.json +1 -1
- package/internal-workflow/skills/agent-auto/SKILL.md +6 -1
- package/internal-workflow/skills/code-debugger/SKILL.md +122 -0
- package/internal-workflow/skills/code-debugger/agents/openai.yaml +7 -0
- package/internal-workflow/skills/code-review/SKILL.md +51 -17
- package/internal-workflow/skills/code-review/references/cleanup-lens.md +52 -0
- package/internal-workflow/skills/implementation-spec-maker/SKILL.md +15 -6
- package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +1 -1
- package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +2 -2
- package/internal-workflow/skills/implementation-spec-review/SKILL.md +108 -204
- package/internal-workflow/skills/implementation-spec-review/evals/evals.json +24 -0
- package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +93 -0
- package/internal-workflow/skills/small-task-implementer/SKILL.md +15 -8
- package/internal-workflow/skills/spec-implementer/SKILL.md +101 -172
- package/internal-workflow/skills/spec-implementer/evals/evals.json +30 -0
- package/internal-workflow/skills/spec-implementer/references/review-loop.md +100 -0
- package/internal-workflow/skills/tdd/SKILL.md +20 -6
- package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
- package/internal-workflow/skills/tdd/evals/evals.json +18 -0
- package/internal-workflow/skills/tdd/mocking.md +3 -42
- package/internal-workflow/skills/tdd/refactoring.md +6 -8
- package/package.json +9 -6
- package/dist/src/v2/adapters/target-activity-fence.d.ts +0 -23
- package/dist/src/v2/adapters/target-activity-fence.d.ts.map +0 -1
- package/dist/src/v2/adapters/target-activity-fence.js +0 -249
- package/dist/src/v2/adapters/target-activity-fence.js.map +0 -1
- package/dist/src/v2/candidate-cli.d.ts +0 -26
- package/dist/src/v2/candidate-cli.d.ts.map +0 -1
- package/dist/src/v2/candidate-cli.js.map +0 -1
- package/dist/src/v2/legacy-cutover.d.ts +0 -52
- package/dist/src/v2/legacy-cutover.d.ts.map +0 -1
- package/dist/src/v2/legacy-cutover.js +0 -87
- package/dist/src/v2/legacy-cutover.js.map +0 -1
- package/internal-workflow/docs/agents/artifact-review-loop.md +0 -267
- package/internal-workflow/docs/agents/implementation-review-loop.md +0 -302
- package/internal-workflow/operations/cleanup-review/SKILL.md +0 -3
- package/internal-workflow/operations/spec-implementation/SKILL.md +0 -3
- package/internal-workflow/profiles/implementer_deep.toml +0 -9
- package/internal-workflow/profiles/researcher_standard.toml +0 -9
- package/internal-workflow/profiles/reviewer_fast.toml +0 -9
- package/internal-workflow/skills/cleanup-review/SKILL.md +0 -84
- package/internal-workflow/skills/cleanup-review/agents/openai.yaml +0 -6
- package/internal-workflow/skills/codebase-design/DEEPENING.md +0 -35
- package/internal-workflow/skills/codebase-design/DESIGN-IT-TWICE.md +0 -50
- package/internal-workflow/skills/codebase-design/SKILL.md +0 -82
- package/internal-workflow/skills/codebase-design/agents/openai.yaml +0 -6
- package/internal-workflow/skills/research/SKILL.md +0 -107
- package/internal-workflow/skills/research/agents/openai.yaml +0 -6
- package/internal-workflow/skills/ui-evidence-proof/SKILL.md +0 -123
- package/internal-workflow/skills/ui-evidence-proof/agents/openai.yaml +0 -6
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
# Triage Operation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Inspect the supplied issue and repository evidence without edits or external
|
|
4
|
+
writes. Use the packaged
|
|
5
|
+
[coding routing](../../docs/agents/coding-skill-routing.md) for the distinction
|
|
6
|
+
between a direct deterministic implementation and a real execution gap. Use
|
|
7
|
+
the packaged [Triage skill](../../skills/triage/SKILL.md) only for evidence
|
|
8
|
+
discipline; its labels and tracker mutations are outside this operation.
|
|
9
|
+
|
|
10
|
+
Return exactly one package route in `schemas/triage-route-v1.json`: direct,
|
|
11
|
+
spec-required, awaiting-user for material product ambiguity, or a typed
|
|
12
|
+
blocker. Technical implementation choices never require awaiting-user.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["version","operation","targetRevision","targetFingerprint","verdict","mode","coverage","defects","residualRisks","reviewerSessionId","closureRequestSha256","repairFindingOutcomes"],"properties":{"version":{"type":"integer","const":1},"operation":{"type":"string","
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["version","operation","targetRevision","targetFingerprint","verdict","mode","coverage","defects","residualRisks","reviewerSessionId","closureRequestSha256","repairFindingOutcomes"],"properties":{"version":{"type":"integer","const":1},"operation":{"type":"string","const":"code-review"},"targetRevision":{"type":"integer","minimum":1},"targetFingerprint":{"type":"string","pattern":"^[0-9a-f]{64}$"},"verdict":{"type":"string","enum":["approved","needs-work","rejected"]},"mode":{"type":"string","enum":["full","closure"]},"coverage":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"defects":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","class","severity","confidence","status","invariant","failure","evidence","repair","affectedTargets","introducedTargetRevision","statusTargetRevision","supersededBy"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"class":{"type":"string","enum":["blocker","execution-risk","improvement"]},"severity":{"type":"string","enum":["critical","high","medium","low"]},"confidence":{"type":"string","enum":["high","medium","low"]},"status":{"type":"string","enum":["open","fixed","verified","reopened","superseded"]},"invariant":{"type":"string","minLength":1,"maxLength":16384},"failure":{"type":"string","minLength":1,"maxLength":16384},"evidence":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"repair":{"type":"string","minLength":1,"maxLength":16384},"affectedTargets":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"introducedTargetRevision":{"type":"integer","minimum":1},"statusTargetRevision":{"type":"integer","minimum":1},"supersededBy":{"anyOf":[{"type":"string","minLength":1,"maxLength":16384},{"type":"null"}]}}}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"reviewerSessionId":{"type":"string","minLength":1,"maxLength":16384},"closureRequestSha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"repairFindingOutcomes":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["verified","reopened"]}}}}}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","enum":["passed","needs-rework","external-block"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","enum":["browser","android","ios"]}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed","unknown"]},"confidence":{"type":"string","enum":["high","medium","low"]},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","generated-file","screenshot","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}}},"visualEvidence":{"anyOf":[{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"null"}]},"findings":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"anyOf":[{"type":"object","additionalProperties":false,"required":["kind","summary","attempted"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","product-decision"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}},{"type":"null"}]}}}}}
|
|
1
|
+
{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"anyOf":[{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","const":"passed"},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"confidence":{"type":"string","const":"high"},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","const":"passed"},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":0,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"type":"null"}}},{"type":"object","additionalProperties":false,"required":["version","status","decision","criteria","checks","artifacts","visualEvidence","findings","residualRisks","blocker"],"properties":{"version":{"type":"integer","const":1},"status":{"type":"string","enum":["needs-rework","external-block"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"non-visual"},"targets":{"type":"array","maxItems":0,"items":{"type":"string","enum":["browser","android","ios"]}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"browser"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"android"}}}},{"type":"object","additionalProperties":false,"required":["mode","targets"],"properties":{"mode":{"type":"string","const":"visual"},"targets":{"type":"array","minItems":1,"maxItems":1,"items":{"type":"string","const":"ios"}}}}]},"criteria":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","status","confidence","surfaces","evidenceRefs","analysis"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed","unknown"]},"confidence":{"type":"string","enum":["high","medium","low"]},"surfaces":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["non-visual","browser","android","ios"]}},"evidenceRefs":{"type":"array","minItems":0,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"analysis":{"type":"string","minLength":1,"maxLength":4096}}}},"checks":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["id","command","status","summary","outputSha256"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"command":{"type":"string","minLength":1,"maxLength":16384},"status":{"type":"string","enum":["passed","failed"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"outputSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}}},"artifacts":{"type":"array","maxItems":256,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["generated-file","screenshot"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean"},"description":{"type":"string","minLength":1,"maxLength":4096}}},{"type":"object","additionalProperties":false,"required":["id","kind","relativePath","sha256","publishable","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":16384},"kind":{"type":"string","enum":["command-output","static-inspection","dom-snapshot","console-log","network-log","ui-hierarchy","device-log","lease-record"]},"relativePath":{"type":"string","minLength":1,"maxLength":16384,"pattern":"^[^/\\\\]$|^[^/\\\\][^\\\\]*[^/\\\\]$"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"publishable":{"type":"boolean","const":false},"description":{"type":"string","minLength":1,"maxLength":4096}}}]}},"visualEvidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":2,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"browser"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["consoleRef","networkRef"],"properties":{"consoleRef":{"type":"string","minLength":1,"maxLength":16384},"networkRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"android"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}},{"type":"object","additionalProperties":false,"required":["workflow","captures","diagnostics","lease","freshness","layoutReview","copyReview"],"properties":{"workflow":{"type":"object","additionalProperties":false,"required":["entrypoint","steps","finalState"],"properties":{"entrypoint":{"type":"string","minLength":1,"maxLength":16384},"steps":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"finalState":{"type":"string","minLength":1,"maxLength":4096}}},"captures":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["target","name","width","height","criteriaRefs","screenshotRef","stateRef"],"properties":{"target":{"type":"string","const":"ios"},"name":{"type":"string","minLength":1,"maxLength":16384},"width":{"type":"integer"},"height":{"type":"integer"},"criteriaRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"screenshotRef":{"type":"string","minLength":1,"maxLength":16384},"stateRef":{"type":"string","minLength":1,"maxLength":16384}}}},"diagnostics":{"type":"object","additionalProperties":false,"required":["deviceLogRef"],"properties":{"deviceLogRef":{"type":"string","minLength":1,"maxLength":16384}}},"lease":{"type":"object","additionalProperties":false,"required":["leaseRef"],"properties":{"leaseRef":{"type":"string","minLength":1,"maxLength":16384}}},"freshness":{"type":"object","additionalProperties":false,"required":["capturedAfterFinalInteraction"],"properties":{"capturedAfterFinalInteraction":{"type":"boolean","const":true}}},"layoutReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}},"copyReview":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["summary","evidenceRefs"],"properties":{"summary":{"type":"string","minLength":1,"maxLength":4096},"evidenceRefs":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}}}}]},"findings":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"residualRisks":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}},"blocker":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["kind","summary","attempted"],"properties":{"kind":{"type":"string","enum":["credential","tool","service","product-decision"]},"summary":{"type":"string","minLength":1,"maxLength":4096},"attempted":{"type":"array","maxItems":256,"items":{"type":"string","minLength":1,"maxLength":16384}}}}]}}}]}}}
|
|
@@ -7,7 +7,12 @@ description: Implement one prepared GitHub issue inside the runner-owned worktre
|
|
|
7
7
|
|
|
8
8
|
Implement one issue end to end inside the prepared worktree. Treat the supplied issue snapshot, frozen acceptance criteria, repository instructions, and runner-provided output schema as authoritative.
|
|
9
9
|
|
|
10
|
-
Inspect the repository, choose the smallest complete strategy, and
|
|
10
|
+
Inspect the repository, choose the smallest complete strategy, and follow the
|
|
11
|
+
operation-provided package routing resources. Apply the packaged TDD skill for
|
|
12
|
+
behavior changes, run focused affected validation, repair failures that are
|
|
13
|
+
within the issue scope, and leave the worktree ready for Runner-owned review
|
|
14
|
+
and independent acceptance proof. Do not invoke planning or review workflows:
|
|
15
|
+
the Runner has already selected and persisted this implementation operation.
|
|
11
16
|
|
|
12
17
|
The runner owns authorization and every external effect. Do not commit, push, open or edit a pull request, mutate GitHub labels/comments, publish packages, deploy, or use external credentials. Do not copy or print credential bytes or auth/secret paths. If completion depends on a credential, unavailable tool/service, or product decision, return the typed external blocker instead of widening authority.
|
|
13
18
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-debugger
|
|
3
|
+
description: Implement and verify an explicit or approved bug fix end-to-end. Use for fix requests or after diagnosis; not for explanation-only work, which uses `bug-root-cause-explainer`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Debugger
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Treat every bug report as an engineering investigation, not a prompt to guess. Start by proving whether each reported problem is valid and still current, then narrow the failing path, patch the root cause with the smallest correct change, and verify the result before closing the task. Always plan your actions explicitly before executing them.
|
|
11
|
+
|
|
12
|
+
For confirmed contract defects, apply the shared Contract Test Ledger gate at `../../docs/agents/contract-test-ledger.md`.
|
|
13
|
+
|
|
14
|
+
## Activation Rule
|
|
15
|
+
|
|
16
|
+
Use this skill only when the user wants implementation.
|
|
17
|
+
|
|
18
|
+
For routing between bug diagnosis, feedback-loop construction, and implementation, use `../../docs/agents/bug-workflow-routing.md`.
|
|
19
|
+
|
|
20
|
+
- If the user wants diagnosis, explanation, or options first, use `bug-root-cause-explainer`.
|
|
21
|
+
- If the user reports a hard, flaky, performance-related, or unclear bug without a reliable feedback loop, use `diagnosing-bugs`.
|
|
22
|
+
- If the user already chose a fix path, implement that path here.
|
|
23
|
+
- Reviewer repairs already owned by an active authorized TDD flow stay in that flow under `bug-workflow-routing.md`; use this skill for separate fixes or ambiguous reproduction/cause/repair.
|
|
24
|
+
|
|
25
|
+
## Debugging Workflow
|
|
26
|
+
|
|
27
|
+
Default execution mode is inline; use `analyst_deep` only while causal or contract ambiguity remains unresolved.
|
|
28
|
+
|
|
29
|
+
1. Triage every reported issue before accepting it as a bug.
|
|
30
|
+
- Do not assume a reported problem is correct, current, or reproducible.
|
|
31
|
+
- Check whether the report refers to code that has already changed, a misunderstanding of intended behavior, a stale environment, or a non-issue.
|
|
32
|
+
- Classify each item explicitly: confirmed bug, not reproducible yet, outdated, expected behavior, duplicate, or blocked.
|
|
33
|
+
- Only move to implementation once there is evidence that the issue is real.
|
|
34
|
+
|
|
35
|
+
2. Define the failure precisely.
|
|
36
|
+
- Extract the actual symptom, expected behavior, affected surface, and reproduction hints from the user request, logs, screenshots, tests, or commands.
|
|
37
|
+
- Convert vague reports into a concrete statement: what is broken, where it happens, and under which input.
|
|
38
|
+
|
|
39
|
+
3. Build a complete issue ledger when multiple bugs are reported.
|
|
40
|
+
- Enumerate every reported item before fixing anything.
|
|
41
|
+
- Track status for each entry (triage, reproduced, fixing, verified, invalid, blocked).
|
|
42
|
+
- Process items one by one, but keep the full ledger visible.
|
|
43
|
+
|
|
44
|
+
4. Reproduce or recover a failing signal.
|
|
45
|
+
- Prefer the narrowest reliable proof: a failing test, local command, runtime log, or API response.
|
|
46
|
+
- Inspect existing running processes before starting duplicate services.
|
|
47
|
+
- If full reproduction is impossible, establish the strongest available failing signal and state what is missing.
|
|
48
|
+
- If no red-capable signal can be built for an unclear or flaky bug, switch to `diagnosing-bugs` before patching.
|
|
49
|
+
|
|
50
|
+
5. Create a regression contract row only when the ledger gate passes.
|
|
51
|
+
- Record the invariant, concrete missed failure, and first regression test/proof before patching.
|
|
52
|
+
- The preferred sequence is `planned -> red -> green`: show the regression signal fails, apply the fix, then verify it passes.
|
|
53
|
+
- If no correct public seam exists, mark the ledger row `blocked` with the missing seam or fixture instead of writing an implementation-detail test by default.
|
|
54
|
+
|
|
55
|
+
6. Build context before editing.
|
|
56
|
+
- Read local docs, runbooks, or feature notes first.
|
|
57
|
+
- Trace the execution path through entrypoints, callers, state writes, async boundaries, DTOs, and external integrations.
|
|
58
|
+
- Inspect nearby modules that can invalidate assumptions.
|
|
59
|
+
- If a prior `bug-root-cause-explainer` diagnosis exists, treat it as the starting point, then verify the key claim in code before changing anything.
|
|
60
|
+
|
|
61
|
+
7. Identify the root cause.
|
|
62
|
+
- Separate the symptom from the defect that causes it.
|
|
63
|
+
- **Environment Check:** Always verify the versions of relevant dependencies (`package.json`, `requirements.txt`, `go.mod`, etc.). A bug might be a known issue in a specific library version.
|
|
64
|
+
- When framework or library behavior is material to the fix, consult official documentation or your knowledge base tools.
|
|
65
|
+
|
|
66
|
+
8. Implement the smallest correct fix.
|
|
67
|
+
- Before editing a confirmed bug, apply `../../docs/agents/bugfix-quality-gate.md`.
|
|
68
|
+
- Fix the root cause instead of masking the symptom.
|
|
69
|
+
- Preserve existing architecture and local code patterns.
|
|
70
|
+
- Avoid unrelated refactors while debugging.
|
|
71
|
+
- Add or update a regression test when feasible.
|
|
72
|
+
|
|
73
|
+
9. Verify the outcome.
|
|
74
|
+
- Run the narrowest meaningful checks: targeted tests, lint, build, or log inspection.
|
|
75
|
+
- Verify the final observable outcome, not only an intermediate flag, event, queue item, callback, or response.
|
|
76
|
+
- Compare the signal before and after the fix.
|
|
77
|
+
|
|
78
|
+
10. Report with evidence.
|
|
79
|
+
- State the root cause, the fix, and exactly how it was verified.
|
|
80
|
+
- Call out anything that could not be verified and why.
|
|
81
|
+
- If the fix follows a user-approved path from `bug-root-cause-explainer`, say which path was implemented.
|
|
82
|
+
|
|
83
|
+
## Operating Rules
|
|
84
|
+
|
|
85
|
+
- **Chain of Thought:** Before executing any commands, reading files, or modifying code, write a `<thinking>` block outlining your immediate next steps and hypotheses.
|
|
86
|
+
- **Safety Rails:** NEVER run destructive commands (e.g., `rm -rf`, `DROP TABLE`, destructive Git resets) without explicit user confirmation. For database debugging, strictly use `SELECT` or read-only transactions.
|
|
87
|
+
- **Anti-Loop Mechanism:** If you fail to reproduce a bug or pass a test after 3 consecutive attempts, STOP making blind changes. Output a summary of what you tried, identify the current blocker, and explicitly ask the user for guidance or missing context.
|
|
88
|
+
- Prefer repository evidence over speculation.
|
|
89
|
+
- Prefer validating a report before treating it as ground truth.
|
|
90
|
+
- Prefer fast text searches (like `rg` or `grep`) over broad file reads.
|
|
91
|
+
- Prefer exact commands and exact failing conditions over summaries.
|
|
92
|
+
- If a user report is underspecified, infer from code, tests, logs, and docs first; ask questions only when a safe next step cannot be discovered.
|
|
93
|
+
- If the bug is intermittent or flaky, look for race conditions, shared mutable state, retries, timing assumptions, and missing cleanup.
|
|
94
|
+
|
|
95
|
+
## Failure Modes To Check Aggressively
|
|
96
|
+
|
|
97
|
+
- Wrong branch or inverted condition
|
|
98
|
+
- Missing `await` or broken async ordering
|
|
99
|
+
- Null, undefined, or empty-state handling
|
|
100
|
+
- DTO or schema drift across module boundaries
|
|
101
|
+
- Cache invalidation or stale state
|
|
102
|
+
- Timezone, locale, or unit conversion errors
|
|
103
|
+
- Partial writes and inconsistent side effects
|
|
104
|
+
- Retry duplication or non-idempotent background work
|
|
105
|
+
- Broken loading, error, or optimistic UI states
|
|
106
|
+
- Incorrect assumptions about framework defaults or recent library behavior
|
|
107
|
+
|
|
108
|
+
## Output Contract & Multi-Issue Response Template
|
|
109
|
+
|
|
110
|
+
When the user reports multiple bugs or findings at once, present and maintain a ledger in this streamlined shape before and after implementation. Keep the table compact to prevent formatting errors, and place detailed plans below it.
|
|
111
|
+
|
|
112
|
+
```md
|
|
113
|
+
## Issue Ledger
|
|
114
|
+
|
|
115
|
+
| # | Issue | Verdict | Status | Verification |
|
|
116
|
+
|---|---|---|---|---|
|
|
117
|
+
| 1 | <short restatement> | confirmed bug / outdated / duplicate / blocked | triage / reproduced / fixing / verified / blocked | <test, log, command, or n/a> |
|
|
118
|
+
| 2 | <short restatement> | ... | ... | ... |
|
|
119
|
+
|
|
120
|
+
### Details & Plans
|
|
121
|
+
* **Issue 1:** <Plan, root cause, and next action>
|
|
122
|
+
* **Issue 2:** <Plan, root cause, and next action>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Code Debugger"
|
|
3
|
+
short_description: "Implement and verify an approved bug fix"
|
|
4
|
+
default_prompt: "Use $code-debugger to implement the user-approved bug fix path and verify the result. If the user wants diagnosis first, use $bug-root-cause-explainer."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -7,6 +7,13 @@ description: "Evidence-first review of code, PRs, commits, regressions, or revie
|
|
|
7
7
|
|
|
8
8
|
This skill performs evidence-based code review. It is not a style pass and not a summary. Treat the change as potentially wrong until independent review tracks fail to break it.
|
|
9
9
|
|
|
10
|
+
Passing tests, test names, checklists, and implementation reports are inputs,
|
|
11
|
+
not proof. For each material behavior, trace the production path before reading
|
|
12
|
+
its tests, attempt one concrete violating sequence, then verify that the exact
|
|
13
|
+
setup, actions, and assertions reject it. If a fake bypasses the claimed
|
|
14
|
+
boundary or the test stays green, report a finding or verification gap; do not
|
|
15
|
+
approve nominal coverage.
|
|
16
|
+
|
|
10
17
|
The review always covers two lenses:
|
|
11
18
|
|
|
12
19
|
- **Correctness reviewer**: bugs, regressions, runtime behavior, security, contracts, caches, concurrency, framework rules, and failure paths.
|
|
@@ -17,6 +24,12 @@ lenses to one reviewer for `simple` and `medium`, and splits them across two
|
|
|
17
24
|
independent reviewers only for `high`. It verifies the strongest findings,
|
|
18
25
|
applies only safe fixes, and returns a concise findings-first report.
|
|
19
26
|
|
|
27
|
+
Full review is bounded to the settled diff, its authority, changed owners, and
|
|
28
|
+
callers or contracts with plausible fan-out. `Full` means complete coverage of
|
|
29
|
+
that assigned scope once; it does not mean a repository-wide audit. Do not load
|
|
30
|
+
unrelated modules or activate optional lenses without a diff signal or mandatory
|
|
31
|
+
Review Focus.
|
|
32
|
+
|
|
20
33
|
## When To Use
|
|
21
34
|
|
|
22
35
|
Use this skill when the user asks for:
|
|
@@ -29,25 +42,29 @@ Use this skill when the user asks for:
|
|
|
29
42
|
For every implementation profile, the spec/standards lens includes bounded
|
|
30
43
|
cleanup for duplication, obsolete paths, workaround branches, and unjustified
|
|
31
44
|
abstractions. High-risk work assigns that lens to its own reviewer in the same
|
|
32
|
-
parallel final wave.
|
|
33
|
-
|
|
45
|
+
parallel final wave. A concrete evidenced simplification risk named by the
|
|
46
|
+
user, approved source, or repo policy amplifies this lens inside the same review
|
|
47
|
+
activation; it never creates a separate cleanup gate.
|
|
34
48
|
|
|
35
49
|
Exception for approved spec execution: follow
|
|
36
|
-
|
|
37
|
-
checkpoints
|
|
38
|
-
|
|
50
|
+
`../spec-implementer/references/review-loop.md`. Intermediate code-review
|
|
51
|
+
checkpoints activate only their assigned Review Focus; final cleanup coverage
|
|
52
|
+
uses the durable Review Plan and canonical Defect Ledger.
|
|
39
53
|
|
|
40
54
|
## Implementation Review Adapter
|
|
41
55
|
|
|
42
56
|
When this skill is called from `$spec-implementer`:
|
|
43
57
|
|
|
44
|
-
- read
|
|
45
|
-
|
|
46
|
-
-
|
|
58
|
+
- read `../spec-implementer/references/review-loop.md` and the persisted
|
|
59
|
+
`## Implementation Review State`
|
|
60
|
+
- recheck the scheduled profile against the settled diff; return an
|
|
61
|
+
underclassified profile to the executor before launching reviewers
|
|
62
|
+
- accept the scheduled mode, session, revision, and lenses after that check
|
|
63
|
+
- pin the target and give reviewers the owner-defined capsule
|
|
47
64
|
- return the usable result and stable defect updates to the executor
|
|
48
|
-
-
|
|
65
|
+
- keep cleanup findings in the spec/standards lineage and canonical Defect Ledger
|
|
49
66
|
|
|
50
|
-
Do not infer a fresh review loop, choose another mode, or make the
|
|
67
|
+
Do not infer a fresh review loop, choose another mode, or make the owner's
|
|
51
68
|
terminal decision inside this Adapter.
|
|
52
69
|
|
|
53
70
|
## Progressive References
|
|
@@ -55,12 +72,16 @@ terminal decision inside this Adapter.
|
|
|
55
72
|
Read only the references the current review needs:
|
|
56
73
|
|
|
57
74
|
- Detailed bug classes: `references/bug-classes.md`
|
|
75
|
+
- Cleanup lens method: `references/cleanup-lens.md`
|
|
58
76
|
- Framework lenses for Next.js, NestJS, Flutter, and Dart: `references/framework-lenses.md`
|
|
59
77
|
- Targeted recipes for recurring diff shapes: `references/targeted-recipes.md`
|
|
60
78
|
- Contract test ledger: `../../docs/agents/contract-test-ledger.md`
|
|
61
79
|
- Shared confidence rubric: `../../docs/agents/confidence-rubric.md`
|
|
62
80
|
|
|
63
|
-
Load `references/framework-lenses.md` when the user names a framework or files/configs strongly imply one. Load `references/targeted-recipes.md`
|
|
81
|
+
Load `references/framework-lenses.md` when the user names a framework or files/configs strongly imply one. Load `references/targeted-recipes.md` when the diff shape matches them. Load `../../docs/agents/contract-test-ledger.md` only for a material contract delta with a named failure ordinary targeted proof could miss. Load `references/bug-classes.md` for substantial reviews or broad bug hunts.
|
|
82
|
+
Load `references/cleanup-lens.md` when the spec/standards lens is assigned. Use
|
|
83
|
+
its bounded method by default and its amplified method only for a concrete
|
|
84
|
+
evidenced simplification risk supplied as mandatory Review Focus.
|
|
64
85
|
|
|
65
86
|
## Coordinator Workflow
|
|
66
87
|
|
|
@@ -111,6 +132,8 @@ Machine-enforced config matters as context, but do not spend review findings on
|
|
|
111
132
|
Before deep review, decide which lenses apply.
|
|
112
133
|
|
|
113
134
|
- Always activate the general correctness and spec/standards lenses.
|
|
135
|
+
- Always apply bounded cleanup inside spec/standards; amplify it only for a
|
|
136
|
+
concrete evidenced Review Focus, never from size or risk labels alone.
|
|
114
137
|
- Add framework lenses when explicit or strongly implied by files/configs.
|
|
115
138
|
- Add targeted recipes when the diff shape matches them.
|
|
116
139
|
- If the user, plan, or implementation spec provides `Review Focus`, treat each listed lens, targeted recipe, invariant, and risk as mandatory. Do not replace it with a generic review; report any focus item that cannot be verified as a verification gap.
|
|
@@ -141,6 +164,10 @@ revert unrelated work.
|
|
|
141
164
|
For spec-driven checkpoints, obey the track assignment in the persisted Review
|
|
142
165
|
Plan instead of automatically launching both default tracks.
|
|
143
166
|
|
|
167
|
+
Medium is the normal review profile. API, persistence, multiple files, or a
|
|
168
|
+
shared-looking name do not select `high` unless evidence proves both a material
|
|
169
|
+
failure consequence and an uncertainty amplifier.
|
|
170
|
+
|
|
144
171
|
When already inside an assigned reviewer child, execute its assigned lens set
|
|
145
172
|
inline and return it to root; do not spawn a grandchild.
|
|
146
173
|
If the user forbids delegation, report the independent review gate as waived or
|
|
@@ -159,6 +186,7 @@ Include the exact diff command or commit under review, changed file list, commit
|
|
|
159
186
|
Include the exact diff command or commit under review, spec source path/content or "no spec found", standards source list, changed file list, commit list, any `Review Focus`, and an instruction to cite the spec or standard behind each finding.
|
|
160
187
|
|
|
161
188
|
> Review the change against the requested work and repo standards. Check missing requirements, partial behavior, scope creep, undocumented contract changes, architecture drift, duplicate source-of-truth logic, dead/legacy branches, and workaround-shaped implementation. If a Review Focus is provided, explicitly verify each named ownership, scope, validation, and invariant risk against the spec. Cite the spec or standard when available. If there is no spec, skip requirement claims and focus on documented standards and architecture evidence.
|
|
189
|
+
> Apply `references/cleanup-lens.md`: use bounded cleanup by default, or the amplified method when a concrete evidenced simplification risk is mandatory Review Focus. Keep cleanup findings in this review's normal Defect Ledger. Do not create a cleanup-only verdict or separate pass.
|
|
162
190
|
|
|
163
191
|
### 5. Aggregate And Verify
|
|
164
192
|
|
|
@@ -168,15 +196,21 @@ The coordinator must not blindly relay reviewer output.
|
|
|
168
196
|
2. Re-read the relevant code for the strongest findings.
|
|
169
197
|
3. Drop findings that lack a concrete trigger path.
|
|
170
198
|
4. Reclassify severity/confidence using `../../docs/agents/confidence-rubric.md` if evidence does not support the label.
|
|
171
|
-
5. For real contract defects, identify the missing or inadequate
|
|
199
|
+
5. For real contract defects that pass the ledger gate, identify the missing or inadequate invariant when TDD/spec evidence is available.
|
|
172
200
|
6. Confirm every mandatory `Review Focus` item and mandatory delta lens was reviewed; if not, report the unverified item as a verification gap.
|
|
173
|
-
7.
|
|
174
|
-
|
|
201
|
+
7. Confirm that mandatory behavior evidence rejects the concrete violating
|
|
202
|
+
sequence attempted by the reviewer. Evidence that bypasses its claimed
|
|
203
|
+
production boundary invalidates that Full coverage.
|
|
204
|
+
8. Decide whether auto-fix is allowed.
|
|
205
|
+
9. Run the narrowest meaningful verification after any fix.
|
|
175
206
|
|
|
176
207
|
Keep the two axes visible in your own notes, but present the final report by severity unless the user explicitly asked for side-by-side Standards/Spec output.
|
|
177
208
|
|
|
178
|
-
|
|
179
|
-
|
|
209
|
+
After repairs, verify medium or low findings through the coordinator's direct
|
|
210
|
+
failure-path check plus affected validation. Launch Closure only for the
|
|
211
|
+
severity, protected-contract, or invalidated-coverage triggers owned by
|
|
212
|
+
`review-protocol.md`. For a scheduled Closure, send the bounded capsule to the
|
|
213
|
+
selected reviewer lineage and return its defect updates.
|
|
180
214
|
|
|
181
215
|
## Evidence Standard
|
|
182
216
|
|
|
@@ -211,7 +245,7 @@ Automatically fix only when all are true:
|
|
|
211
245
|
When auto-fixing:
|
|
212
246
|
|
|
213
247
|
- patch only the bug
|
|
214
|
-
- add/update behavior tests when regression risk is meaningful and the codebase supports it;
|
|
248
|
+
- add/update behavior tests when regression risk is meaningful and the codebase supports it; update a ledger only when its gate passes
|
|
215
249
|
- rerun relevant verification
|
|
216
250
|
- never revert unrelated user changes
|
|
217
251
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Cleanup Lens
|
|
2
|
+
|
|
3
|
+
Use this method inside the code-review spec/standards lens. Its job is to reduce
|
|
4
|
+
maintenance surface without changing required observable behavior. It is never
|
|
5
|
+
a standalone gate, activation, verdict, or coverage class.
|
|
6
|
+
|
|
7
|
+
## Depth
|
|
8
|
+
|
|
9
|
+
- **Bounded:** inspect material additions and replacements for obvious duplicate
|
|
10
|
+
owners, obsolete paths, workaround branches, dead code, and unjustified
|
|
11
|
+
abstractions.
|
|
12
|
+
- **Amplified:** when mandatory Review Focus names a concrete evidenced
|
|
13
|
+
simplification risk, inventory every material addition, replacement,
|
|
14
|
+
compatibility path, and runtime owner related to that risk. Do not amplify
|
|
15
|
+
from file count, implementation size, or review profile alone.
|
|
16
|
+
|
|
17
|
+
## In Scope
|
|
18
|
+
|
|
19
|
+
- duplicated logic, sources of truth, registrations, or old/new paths kept in parallel
|
|
20
|
+
- dead helpers, flags, adapters, branches, comments, tests, or documentation left by the change
|
|
21
|
+
- workaround-shaped conditionals, magic ordering, symptom patches, and unnecessary state
|
|
22
|
+
- compatibility or fallback behavior without current repository, source-authority, or production evidence
|
|
23
|
+
- new services, events/listeners, adapters, or indirection with one current consumer and only speculative reuse
|
|
24
|
+
- ownership placement when moving or deleting code restores an existing owner without redesigning the system
|
|
25
|
+
|
|
26
|
+
Do not turn functional correctness, security, performance, product decisions,
|
|
27
|
+
missing regression proof, broad architecture redesign, or style preferences
|
|
28
|
+
into cleanup findings. Route them to the applicable code-review lens.
|
|
29
|
+
|
|
30
|
+
## Method
|
|
31
|
+
|
|
32
|
+
Classify each material complexity decision:
|
|
33
|
+
|
|
34
|
+
- `KEEP`: a current invariant requires it and evidence or a boundary proof supports it.
|
|
35
|
+
- `SIMPLIFY`: required behavior can use a smaller existing seam or fewer states or branches.
|
|
36
|
+
- `REMOVE`: no current behavior, authority, consumer, or compatibility evidence requires it.
|
|
37
|
+
|
|
38
|
+
A one-producer/one-consumer abstraction defaults to `SIMPLIFY` unless a concrete
|
|
39
|
+
lifecycle, transaction, dependency-direction, or fanout invariant requires the
|
|
40
|
+
boundary. Do not request a new abstraction unless it reduces current
|
|
41
|
+
duplication or restores an existing owner now.
|
|
42
|
+
|
|
43
|
+
Report a finding only with exact evidence, concrete maintenance cost, and a
|
|
44
|
+
behavior-preserving fix. Uncertain removal is a non-blocking follow-up. In
|
|
45
|
+
amplified mode, include concise `KEEP | SIMPLIFY | REMOVE` decisions in the
|
|
46
|
+
spec/standards handoff; bounded mode needs decisions only when they explain a
|
|
47
|
+
finding or protected invariant.
|
|
48
|
+
|
|
49
|
+
Cleanup repairs retain the same defect IDs. Medium or low cleanup repairs use coordinator verification plus affected validation. Launch affected-lens Closure
|
|
50
|
+
only when the shared review protocol requires it for severity, protected
|
|
51
|
+
contract impact, or invalidated mandatory coverage; add correctness whenever
|
|
52
|
+
that Closure repair may alter observable behavior.
|
|
@@ -23,7 +23,8 @@ Create or revise an execution-ready specification for a downstream coding agent.
|
|
|
23
23
|
4. Classify and record these independent facts:
|
|
24
24
|
- `spec_mode`: `compact | full` — document and coordination density.
|
|
25
25
|
- `implementation_size`: `small | medium | large` — expected delivery shape.
|
|
26
|
-
- `review_profile`: `simple | medium | high` — consequence and uncertainty,
|
|
26
|
+
- `review_profile`: `simple | medium | high` — consequence and uncertainty,
|
|
27
|
+
resolved through the review loop owned by `$implementation-spec-review`.
|
|
27
28
|
- `expected_repositories`: exact positive integer from approved scope.
|
|
28
29
|
|
|
29
30
|
Do not infer one classification from another. For ticket work, `direct` returns
|
|
@@ -63,16 +64,24 @@ Read [the spec template](references/spec-template.md) before drafting, then remo
|
|
|
63
64
|
- State exact manual/live proof when automation is not applicable.
|
|
64
65
|
- Name one source of truth when behavior or data can drift. Reuse existing owners and public seams; invoke `$codebase-design` only when ownership or a public seam changes.
|
|
65
66
|
- Add task-specific review checkpoints only when a risky slice becomes stable before later work. Otherwise assign its mandatory lenses, applicable targeted recipes, and concrete bug classes to final review coverage.
|
|
66
|
-
- For medium
|
|
67
|
+
- For medium-risk specs, rely on the normal concise `$spec-implementer` completion summary unless a task-specific deviation is needed. For high-risk specs, point `Final Handoff Requirements` to the extended `$spec-implementer` Final Risk Handoff and add only task-specific deviations; do not copy its field list.
|
|
67
68
|
- Keep optional cleanup, compatibility logic, feature flags, telemetry, rollout machinery, generic fallbacks, and speculative abstractions out of the spec unless source authority or a proven failure path requires them.
|
|
68
69
|
|
|
69
70
|
## Review And Save
|
|
70
71
|
|
|
71
72
|
1. Save the draft at `docs/implementation-specs/YYYY-MM-DD/HHMM-<slug>.md` with temporary `status: "draft"` and `review_outcome: "Pending"` so review applies to a stable artifact path without presenting it as approved.
|
|
72
|
-
2.
|
|
73
|
-
|
|
73
|
+
2. Read `../implementation-spec-review/references/review-loop.md` and invoke
|
|
74
|
+
`$implementation-spec-review` as its Adapter. Supply the saved spec, source
|
|
75
|
+
authority, approved decisions, and evidence; do not restate its topology or
|
|
76
|
+
defect lifecycle.
|
|
77
|
+
3. Apply one consolidated, scope-preserving repair batch, then follow the owner
|
|
78
|
+
loop until it returns `Approved`, `Blocked`, or an eligible user-authorized
|
|
79
|
+
`Waived` outcome.
|
|
74
80
|
4. A preflight-blocked spec may be saved with zero reviews and `review_verdict: "Not run"`. Never fabricate approval or use `Not required`.
|
|
75
|
-
5. Replace temporary lifecycle metadata with
|
|
81
|
+
5. Replace temporary lifecycle metadata with outcome, last Adapter verdict,
|
|
82
|
+
mandatory coverage, accepted risks, and open stable IDs. Keep pass/session
|
|
83
|
+
counts only for high, Closure, or interrupted review. Any substantive
|
|
84
|
+
post-approval edit invalidates approval until reviewed again.
|
|
76
85
|
|
|
77
86
|
## Final Response
|
|
78
87
|
|
|
@@ -82,7 +91,7 @@ Return only:
|
|
|
82
91
|
Spec Status: Ready | Blocked
|
|
83
92
|
Saved Path: <path>
|
|
84
93
|
Execution: <single-agent | multi-agent>; <compact | full>; <small | medium | large>; <n> repository/repositories
|
|
85
|
-
Review: <Approved | Blocked | Waived>; <simple | medium | high>; <
|
|
94
|
+
Review: <Approved | Blocked | Waived>; <simple | medium | high>; <coverage or gaps>
|
|
86
95
|
Adapter Verdict: <Approved | Needs Work | Rejected | Not run>
|
|
87
96
|
Verified Defects: <stable IDs or None>
|
|
88
97
|
Accepted Risks: <stable IDs, authority, and reason or None>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Implementation Spec Maker"
|
|
3
3
|
short_description: "Create lean deterministic implementation specs"
|
|
4
|
-
default_prompt: "Use $implementation-spec-maker
|
|
4
|
+
default_prompt: "Use $implementation-spec-maker only for a named execution decision or coordination gap; otherwise keep the direct route. Create the smallest deterministic spec and classify mode, size, repository count, and review risk independently."
|
|
5
5
|
policy:
|
|
6
6
|
allow_implicit_invocation: true
|
|
@@ -62,7 +62,7 @@ review_passes: "0"
|
|
|
62
62
|
- [ ] **Live/Manual Proof:** <exact flow or Not applicable with reason>
|
|
63
63
|
- [ ] **Behavior Proof:** <observable acceptance proof>
|
|
64
64
|
- [ ] **Reconciliation:** every unchecked item is unfinished, blocked with evidence, or intentionally not applicable.
|
|
65
|
-
- [ ] **Final Handoff Requirements:** <
|
|
65
|
+
- [ ] **Final Handoff Requirements:** <high only: extended `$spec-implementer` Final Risk Handoff plus task-specific deviations; omit for ordinary medium work>
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
## Conditional Blocks
|
|
@@ -136,7 +136,7 @@ Add only when review returns defects:
|
|
|
136
136
|
|
|
137
137
|
## Terminal Review Metadata
|
|
138
138
|
|
|
139
|
-
Replace the temporary frontmatter values after the
|
|
139
|
+
Replace the temporary frontmatter values after the owner review loop returns a real terminal outcome:
|
|
140
140
|
|
|
141
141
|
```yaml
|
|
142
142
|
review_outcome: "Approved | Blocked | Waived"
|