gentle-pi 2.1.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -79
- package/assets/agents/gentle-ai-worker.md +7 -3
- package/assets/agents/jd-fix-agent.md +1 -1
- package/assets/agents/jd-judge-a.md +3 -1
- package/assets/agents/jd-judge-b.md +3 -1
- package/assets/agents/review-readability.md +4 -3
- package/assets/agents/review-reliability.md +4 -3
- package/assets/agents/review-resilience.md +4 -3
- package/assets/agents/review-risk.md +4 -3
- package/assets/agents/sdd-apply.md +11 -4
- package/assets/agents/sdd-archive.md +6 -1
- package/assets/agents/sdd-design.md +6 -1
- package/assets/agents/sdd-explore.md +6 -2
- package/assets/agents/sdd-init.md +10 -2
- package/assets/agents/sdd-onboard.md +6 -1
- package/assets/agents/sdd-proposal.md +8 -1
- package/assets/agents/sdd-research.md +54 -0
- package/assets/agents/sdd-spec.md +6 -1
- package/assets/agents/sdd-status.md +10 -5
- package/assets/agents/sdd-sync.md +6 -1
- package/assets/agents/sdd-tasks.md +8 -4
- package/assets/agents/sdd-verify.md +27 -2
- package/assets/chains/4r-review.chain.md +2 -0
- package/assets/chains/sdd-full.chain.md +2 -2
- package/assets/chains/sdd-plan.chain.md +1 -1
- package/assets/chains/sdd-verify.chain.md +2 -2
- package/assets/orchestrator-delegation.md +145 -160
- package/assets/orchestrator-memory.md +2 -0
- package/assets/orchestrator.md +25 -48
- package/assets/sdd-orchestrator-workflow.md +163 -25
- package/assets/support/sdd-status-contract.md +24 -6
- package/contracts/review-integration/v1/fixtures/consent.fixture.json +3 -3
- package/contracts/review-integration/v1/fixtures/start-v2.fixture.json +19 -28
- package/contracts/review-integration/v1/fixtures/start.fixture.json +1 -10
- package/contracts/review-integration/v1/fixtures/status-v2.fixture.json +12 -21
- package/contracts/review-integration/v1/schemas/correction-plan-request.schema.json +49 -0
- package/contracts/review-integration/v1/schemas/operation.schema.json +76 -0
- package/contracts/review-integration/v1/schemas/repair.schema.json +39 -0
- package/contracts/review-integration/v1/schemas/status-v2.schema.json +4 -2
- package/contracts/review-integration/v1/schemas/status.schema.json +4 -2
- package/contracts/review-integration/v1/schemas/transition-execution.schema.json +42 -0
- package/contracts/review-integration/v2/fixtures/consent.fixture.json +1 -1
- package/contracts/review-integration/v2/fixtures/start.fixture.json +1 -10
- package/contracts/review-integration/v2/fixtures/status.fixture.json +1 -10
- package/contracts/review-integration/v2/schemas/failure.schema.json +5 -1
- package/contracts/review-integration/v2/schemas/last-event-closure.schema.json +66 -0
- package/contracts/review-integration/v2/schemas/opencode-provider-role.schema.json +14 -0
- package/contracts/review-integration/v2/schemas/operation.schema.json +6 -1
- package/contracts/review-integration/v2/schemas/repair.schema.json +4 -2
- package/contracts/review-integration/v2/schemas/start.schema.json +5 -2
- package/contracts/review-integration/v2/schemas/status.schema.json +4 -2
- package/contracts/review-provider-contract-mirror/provider-contract.lock.json +30 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/README.md +12 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/manifest.json +65 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/lens.schema.json +16 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/refuter.schema.json +1 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/targeted-validator.schema.json +1 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/lens.json +1 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/refuter.json +1 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/targeted-validator.json +1 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/generated/provider-capabilities.baseline.json +15 -0
- package/contracts/review-provider-contract-mirror/v1.1.0/generated/provider-roles.baseline.json +42 -0
- package/docs/native-authority-architecture.md +14 -16
- package/docs/review-integration.md +27 -353
- package/extensions/ask-user-choice.ts +151 -0
- package/extensions/gentle-ai.ts +2710 -3211
- package/extensions/quiet-tools.ts +515 -32
- package/extensions/sdd-init.ts +21 -12
- package/extensions/skill-registry.ts +10 -2
- package/extensions/startup-banner.ts +10 -4
- package/lib/gentle-ai-binary.ts +173 -2
- package/lib/gentle-ai-renderer.ts +70 -0
- package/lib/model-routing-authority.ts +133 -0
- package/lib/native-review-cli.ts +676 -781
- package/lib/opaque-pi-reviewer-adapter.ts +284 -0
- package/lib/provider-contract-bundle.ts +704 -0
- package/lib/review-candidate-view.ts +836 -118
- package/lib/review-compact-contract.ts +59 -248
- package/lib/review-host-relay.ts +578 -0
- package/lib/review-integration-v2.ts +1254 -221
- package/lib/review-last-event-controller.ts +35 -0
- package/lib/review-relay-contract.ts +16 -0
- package/lib/sdd-preflight.ts +230 -67
- package/lib/sdd-status.ts +66 -111
- package/lib/terminal-theme.ts +1 -1
- package/package.json +83 -79
- package/runtime/gentle-ai-binary.mjs +174 -3
- package/runtime/native-review-cli.mjs +610 -715
- package/runtime/review-integration-v2.mjs +1223 -190
- package/runtime/review-relay-contract.mjs +17 -0
- package/scripts/{build-git-commit-transaction-runner.mjs → build-runtime-modules.mjs} +5 -5
- package/scripts/check-provider-contract.mjs +138 -0
- package/scripts/gentle-ai-installer.mjs +85 -22
- package/scripts/maintainer/provider-relay-matrix.mjs +403 -0
- package/scripts/mirror-provider-contract.mjs +143 -0
- package/scripts/test-packed-runner.mjs +20 -9
- package/scripts/verify-package-files.mjs +119 -43
- package/skills/_shared/review-ledger-contract.md +11 -19
- package/skills/chained-pr/SKILL.md +3 -0
- package/skills/cognitive-doc-design/SKILL.md +1 -1
- package/skills/comment-writer/SKILL.md +1 -1
- package/skills/gentle-ai/SKILL.md +7 -74
- package/skills/issue-creation/SKILL.md +94 -168
- package/skills/judgment-day/SKILL.md +9 -5
- package/skills/judgment-day/references/prompts-and-formats.md +2 -0
- package/skills/rdd-defect-workflow/SKILL.md +54 -0
- package/skills/release/SKILL.md +3 -3
- package/skills/skill-registry/SKILL.md +1 -1
- package/skills/work-unit-commits/SKILL.md +3 -1
- package/tests/artifact-language.test.ts +24 -11
- package/tests/ask-user-choice.test.ts +264 -0
- package/tests/background-subagents.test.ts +771 -0
- package/tests/codegraph-tools.test.ts +3 -3
- package/tests/crosslane/cross-lane.mjs +16 -0
- package/tests/delegated-key-learnings-contract.test.ts +240 -0
- package/tests/devbinary/native-review-parity.devtest.ts +167 -250
- package/tests/devbinary/pi-host-relay.devtest.ts +867 -0
- package/tests/fixtures/devbinary/capabilities-v2.1.derived.json +331 -0
- package/tests/fixtures/devbinary/capabilities-v2.2.captured.json +340 -0
- package/tests/fixtures/devbinary/consent-v3.captured.json +37 -0
- package/tests/fixtures/devbinary/failure-v2-capture-evidence.captured.json +16 -0
- package/tests/fixtures/devbinary/last-event-capture-correction-plan.captured.json +10 -0
- package/tests/fixtures/devbinary/last-event-capture-refuter-approved.captured.json +20 -0
- package/tests/fixtures/devbinary/last-event-capture-refuter-correction-required.captured.json +26 -0
- package/tests/fixtures/devbinary/last-event-capture-result-approved.captured.json +8 -0
- package/tests/fixtures/devbinary/last-event-capture-result-correction-required.captured.json +26 -0
- package/tests/fixtures/devbinary/last-event-capture-validation-approved.captured.json +8 -0
- package/tests/fixtures/devbinary/last-event-closure.provenance.md +13 -0
- package/tests/fixtures/devbinary/result-artifact-v2-path.captured.json +12 -0
- package/tests/fixtures/devbinary/result-artifact-v2.captured.json +12 -0
- package/tests/fixtures/devbinary/review-acknowledged-v1.captured.json +9 -0
- package/tests/fixtures/devbinary/review-acknowledged.provenance.md +31 -0
- package/tests/fixtures/devbinary/start-v3-consent-declined.captured.json +19 -0
- package/tests/fixtures/devbinary/start-v3-consent-granted.captured.json +109 -0
- package/tests/fixtures/devbinary/start-v3-zero-lens-closed.captured.json +21 -0
- package/tests/fixtures/devbinary/status-v5-capture-result-submission.captured.json +184 -0
- package/tests/fixtures/devbinary/status-v5-repository-context.captured.json +138 -0
- package/tests/fixtures/devbinary/status-v5.captured.json +88 -0
- package/tests/fixtures/native-review-cli/v2.5.0-rc.1/PROVENANCE.txt +15 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/README.md +12 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/manifest.json +65 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/lens.schema.json +16 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/refuter.schema.json +1 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/targeted-validator.schema.json +1 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/lens.json +1 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/refuter.json +1 -0
- package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/targeted-validator.json +1 -0
- package/tests/gentle-ai-binary.test.ts +83 -13
- package/tests/gentle-ai-dev-binary-surfacing.test.ts +195 -0
- package/tests/gentle-ai-dev-binary.test.ts +159 -0
- package/tests/gentle-ai-installer.test.ts +138 -48
- package/tests/gentle-ai.test.ts +820 -131
- package/tests/gentle-theme.test.ts +133 -0
- package/tests/maintainer/provider-relay.maintest.ts +601 -0
- package/tests/model-routing-authority.test.ts +257 -0
- package/tests/native-review-capability-contract.test.ts +75 -2
- package/tests/native-review-cli.test.ts +588 -908
- package/tests/native-review-consent.test.ts +283 -38
- package/tests/native-review-parity-runtime.test.ts +108 -350
- package/tests/native-review-parity.test.ts +684 -732
- package/tests/native-sdd-attempt-authority.test.ts +235 -0
- package/tests/opaque-pi-reviewer-adapter.test.ts +266 -0
- package/tests/orchestrator-budget.test.ts +158 -89
- package/tests/orchestrator-rdd-ownership.test.ts +103 -0
- package/tests/package-manifest.test.ts +128 -100
- package/tests/provider-contract-bundle.test.ts +385 -0
- package/tests/provider-contract-mirror.test.ts +206 -0
- package/tests/provider-defect-handoff.test.ts +252 -0
- package/tests/quiet-tool-rendering.test.ts +1055 -28
- package/tests/review-actor-tool-deny.test.ts +12 -13
- package/tests/review-authority-recovery-docs.test.ts +1 -2
- package/tests/review-candidate-view.test.ts +898 -12
- package/tests/review-compact-contract.test.ts +29 -122
- package/tests/review-controller-lock-status.test.ts +2 -2
- package/tests/review-controller-native-recovery.test.ts +366 -857
- package/tests/review-controller-native-routing.test.ts +1253 -4199
- package/tests/review-controller-retired-ops.test.ts +1 -1
- package/tests/review-controller-workspace-root.test.ts +236 -70
- package/tests/review-controller.test.ts +26 -816
- package/tests/review-corrected-finalize-binding.test.ts +134 -0
- package/tests/review-dispatch-hydration-gap.test.ts +145 -0
- package/tests/review-gate.test.ts +0 -45
- package/tests/review-host-relay-restart-parity.test.ts +360 -0
- package/tests/review-host-relay-routing.test.ts +352 -0
- package/tests/review-host-relay.test.ts +754 -0
- package/tests/review-integration-v2-forward.test.ts +654 -0
- package/tests/review-integration-v2.test.ts +317 -129
- package/tests/review-last-event-closure.test.ts +408 -0
- package/tests/review-ledger-contract.test.ts +106 -60
- package/tests/review-recovered-lineage-routing.test.ts +199 -0
- package/tests/review-relay-transport-agent.test.ts +322 -0
- package/tests/review-snapshot.test.ts +3 -2
- package/tests/runtime-harness.mjs +573 -180
- package/tests/sdd-agent-tools.test.ts +53 -32
- package/tests/sdd-preflight.test.ts +81 -15
- package/tests/sdd-status.test.ts +109 -110
- package/tests/skill-collision-prefixes.test.ts +6 -8
- package/tests/skill-registry.test.ts +50 -1
- package/tests/verify-package-files.test.ts +62 -0
- package/tests/writer-edit-surface-scope.test.ts +230 -0
- package/themes/Gentleman-Cute.json +94 -0
- package/themes/Gentleman-Sexy.json +92 -0
- package/assets/agents/review-refuter.md +0 -40
- package/assets/agents/review-validator.md +0 -23
- package/lib/git-commit-transaction.ts +0 -801
- package/lib/native-review-remediation.ts +0 -49
- package/lib/review-compact.ts +0 -947
- package/lib/review-refuter-adapter.ts +0 -129
- package/lib/review-runtime-contract.ts +0 -68
- package/prompts/gcl.md +0 -54
- package/prompts/gis.md +0 -25
- package/prompts/gpr.md +0 -41
- package/prompts/gwr.md +0 -31
- package/runtime/git-commit-transaction.mjs +0 -802
- package/scripts/run-git-commit-transaction.mjs +0 -35
- package/tests/fixtures/native-review-cli/v2.1.2/bind-sdd.json +0 -25
- package/tests/fixtures/native-review-cli/v2.1.2/finalize.json +0 -8
- package/tests/fixtures/native-review-cli/v2.1.2/sdd-status-engram.json +0 -139
- package/tests/fixtures/native-review-cli/v2.1.2/sdd-status.json +0 -200
- package/tests/fixtures/native-review-cli/v2.1.2/start.json +0 -12
- package/tests/fixtures/native-review-cli/v2.1.2/validate-allow.json +0 -24
- package/tests/fixtures/native-review-cli/v2.1.2/validate-deny-empty-context.json +0 -20
- package/tests/fixtures/native-review-cli/v2.1.2/validate-deny.json +0 -28
- package/tests/fixtures/native-review-cli/v2.1.3/sdd-status-engram.json +0 -139
- package/tests/fixtures/native-review-cli/v2.1.3/sdd-status.json +0 -200
- package/tests/git-commit-transaction.test.ts +0 -302
- package/tests/review-compact.test.ts +0 -243
- package/tests/review-refuter-adapter.test.ts +0 -89
|
@@ -4,7 +4,7 @@ description: Implement SDD tasks with strict TDD evidence and review workload gu
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- edit
|
|
9
9
|
- write
|
|
10
10
|
- bash
|
|
@@ -56,7 +56,7 @@ Stop with `blocked` before editing if:
|
|
|
56
56
|
- `actionContext.mode: workspace-planning` and no `allowedEditRoots` are provided;
|
|
57
57
|
- any target file is outside the authoritative workspace or allowed edit roots.
|
|
58
58
|
|
|
59
|
-
If status says `applyState: all_done`, do not edit. Report that implementation is complete and return `next_recommended: "
|
|
59
|
+
If status says `applyState: all_done`, do not edit. Report that implementation is complete and return `next_recommended: "sdd-verify"`. Do not recommend apply again after all implementation tasks are complete.
|
|
60
60
|
|
|
61
61
|
## Before Writing Code
|
|
62
62
|
|
|
@@ -87,6 +87,8 @@ then continue only when the parent prompt gives a resolved delivery path:
|
|
|
87
87
|
|
|
88
88
|
If no delivery decision is provided, STOP before writing code and return `blocked` with the exact decision needed.
|
|
89
89
|
|
|
90
|
+
The budget constrains how work is sliced, never the code itself. Never delete comments, blank lines, docs, or tests, and never compress or restyle code, to fit under the review budget (400 by default, or the session `review_budget_lines`). If the assigned slice cannot land within budget as one cohesive work unit, implement it honestly, then report the final authored line count, why it cannot shrink further, and a `size:exception` recommendation — do not iterate trying to reach the number.
|
|
91
|
+
|
|
90
92
|
## Strict TDD Gate
|
|
91
93
|
|
|
92
94
|
If `openspec/config.yaml` declares strict TDD and a test runner, or the parent prompt says strict TDD is active:
|
|
@@ -101,9 +103,9 @@ If strict TDD is active and no external support file is available, follow the RE
|
|
|
101
103
|
|
|
102
104
|
## Task Ownership Boundary
|
|
103
105
|
|
|
104
|
-
Read ownership markers on every checkbox: absent markers are legacy `implementation`; only terminal `<!-- sdd-owner: implementation -->`
|
|
106
|
+
Read ownership markers on every checkbox: absent markers are legacy `implementation`; only terminal `<!-- sdd-owner: implementation -->` markers are generated for new tasks. For existing task artifacts, follow the structured status for legacy non-implementation rows. A line containing an unsupported, duplicate, or non-terminal `sdd-owner` marker is malformed: stop with `fix-task-ownership-marker` and leave it unchanged. Select, check, and report only implementation-owned rows. Legacy non-implementation rows are informational and never block the SDD route.
|
|
105
107
|
|
|
106
|
-
`sdd-apply`
|
|
108
|
+
After implementation completion, `sdd-apply` returns `sdd-verify`. SDD verification, sync, archive, and delivery follow their local contracts without an RDD authority dependency.
|
|
107
109
|
|
|
108
110
|
## Persisted Task Checkbox Contract
|
|
109
111
|
|
|
@@ -146,3 +148,8 @@ Rules:
|
|
|
146
148
|
- Before returning, re-read the persisted tasks artifact and ensure completed tasks are visibly marked `- [x]`; internal todos are not completion evidence.
|
|
147
149
|
|
|
148
150
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## Key Learnings Closing
|
|
154
|
+
|
|
155
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Archive a verified SDD change into OpenSpec source specs.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- bash
|
|
@@ -200,3 +200,8 @@ Include:
|
|
|
200
200
|
- Do NOT launch child subagents. Parent/orchestrator owns delegation.
|
|
201
201
|
|
|
202
202
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## Key Learnings Closing
|
|
206
|
+
|
|
207
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Design the technical approach for an SDD change.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- mem_search
|
|
@@ -38,3 +38,8 @@ Persist this phase's artifact to the active backend before returning (mandatory)
|
|
|
38
38
|
- `none`: return the design inline.
|
|
39
39
|
|
|
40
40
|
Never claim persistence you did not perform.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## Key Learnings Closing
|
|
44
|
+
|
|
45
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,10 +4,9 @@ description: Explore an SDD change idea before proposal.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- edit
|
|
9
9
|
- write
|
|
10
|
-
- webfetch
|
|
11
10
|
- mem_save
|
|
12
11
|
---
|
|
13
12
|
|
|
@@ -37,3 +36,8 @@ Persist this phase's artifact to the active backend before returning (mandatory)
|
|
|
37
36
|
- `none`: return the exploration inline.
|
|
38
37
|
|
|
39
38
|
Never claim persistence you did not perform.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Key Learnings Closing
|
|
42
|
+
|
|
43
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -5,7 +5,7 @@ model: openai-codex/gpt-5.3-codex
|
|
|
5
5
|
tools:
|
|
6
6
|
- read
|
|
7
7
|
- grep
|
|
8
|
-
-
|
|
8
|
+
- find
|
|
9
9
|
- write
|
|
10
10
|
- edit
|
|
11
11
|
- bash
|
|
@@ -24,21 +24,29 @@ Use your assigned executor/phase skill for this SDD phase. For project/user skil
|
|
|
24
24
|
If skill paths are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `paths-injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should pass indexed paths next time.
|
|
25
25
|
|
|
26
26
|
- Inspect the project stack, test runner, conventions, and existing docs.
|
|
27
|
-
- If `openspec/config.yaml` is missing, create it automatically with project context, `strict_tdd`, phase rules, and testing runner details.
|
|
27
|
+
- If the artifact store is `openspec` or `both` and `openspec/config.yaml` is missing, create it automatically with project context, `strict_tdd`, phase rules, and testing runner details. If the artifact store is `engram` or `none`, do not create `openspec/` files.
|
|
28
28
|
- If `openspec/config.yaml` already exists, read it, summarize the current SDD/testing configuration, and do not block the caller. Update only safe derived context when explicitly necessary; never destructively rewrite user-maintained SDD configuration.
|
|
29
29
|
- Ensure `.atl/skill-registry.md` exists when skill registry data is available, or report that it is missing.
|
|
30
30
|
- Do NOT launch child subagents. Parent/orchestrator owns delegation.
|
|
31
31
|
- Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
32
|
+
|
|
32
33
|
## Memory Contract
|
|
33
34
|
|
|
34
35
|
Read any existing project context directly from the active backend before bootstrapping; do not wait for the parent to inline it. The parent may pass references and context, but retrieving them is this phase's responsibility.
|
|
35
36
|
|
|
36
37
|
Inputs to read (`engram`/`both`: use the injected Engram memory read tools for the topic key, then fetch the full observation; `openspec`: read the file under `openspec/`):
|
|
38
|
+
|
|
37
39
|
- Existing project context (if re-initializing): `sdd-init/{project}`
|
|
38
40
|
|
|
39
41
|
Persist this phase's artifact to the active backend before returning (mandatory):
|
|
42
|
+
|
|
40
43
|
- `engram`/`both`: call the injected Engram save tool with title and `topic_key` `"sdd-init/{project}"`, `type: "architecture"`, `project` from context, and `capture_prompt: false` when the tool schema supports it (omit the field if an older schema rejects it).
|
|
41
44
|
- `openspec`: write the project context file under `openspec/`.
|
|
42
45
|
- `none`: return the project context inline.
|
|
43
46
|
|
|
44
47
|
Never claim persistence you did not perform.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Key Learnings Closing
|
|
51
|
+
|
|
52
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Guide a user through a complete SDD cycle on a small real project c
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- bash
|
|
@@ -41,3 +41,8 @@ Persist each demonstrated artifact to the active backend before moving on (manda
|
|
|
41
41
|
- `none`: walk through the artifacts inline.
|
|
42
42
|
|
|
43
43
|
Never claim persistence you did not perform.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Key Learnings Closing
|
|
47
|
+
|
|
48
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Write an SDD proposal for an approved change idea.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- mem_search
|
|
@@ -44,6 +44,8 @@ Read your own input artifacts directly from the active backend before doing the
|
|
|
44
44
|
|
|
45
45
|
Inputs to read (`engram`/`both`: use the injected Engram memory read tools for the topic key, then fetch the full observation; `openspec`: read the file under `openspec/changes/{change}/`):
|
|
46
46
|
- Exploration (optional): `sdd/{change}/explore`
|
|
47
|
+
- Research + pre-proposal state (optional, present only when research was selected): `sdd/{change}/research` and `sdd/{change}/preproposal` (openspec: `openspec/changes/{change}/research.md`)
|
|
48
|
+
- The proposer receives the confirmed pre-proposal handoff from the orchestrator and MUST NOT interview the user about those confirmed product decisions or infer consent; the orchestrator owns product discovery.
|
|
47
49
|
|
|
48
50
|
Persist this phase's artifact to the active backend before returning (mandatory):
|
|
49
51
|
- `engram`/`both`: call the injected Engram save tool with title and `topic_key` `"sdd/{change}/proposal"`, `type: "architecture"`, `project` from context, and `capture_prompt: false` when the tool schema supports it (omit the field if an older schema rejects it).
|
|
@@ -51,3 +53,8 @@ Persist this phase's artifact to the active backend before returning (mandatory)
|
|
|
51
53
|
- `none`: return the proposal inline.
|
|
52
54
|
|
|
53
55
|
Never claim persistence you did not perform.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Key Learnings Closing
|
|
59
|
+
|
|
60
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd-research
|
|
3
|
+
description: Collect auditable external evidence for a selected SDD research lane.
|
|
4
|
+
tools:
|
|
5
|
+
- read
|
|
6
|
+
- grep
|
|
7
|
+
- find
|
|
8
|
+
- edit
|
|
9
|
+
- write
|
|
10
|
+
- mem_search
|
|
11
|
+
- mem_get_observation
|
|
12
|
+
- mem_save
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
You are the SDD research executor for Gentle AI.
|
|
16
|
+
|
|
17
|
+
## Skill Resolution Contract
|
|
18
|
+
|
|
19
|
+
Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer parent-injected `## Skills to load before work` paths; read those exact `SKILL.md` files before work. Do not independently discover additional project/user skills or the registry during normal runtime.
|
|
20
|
+
|
|
21
|
+
If skill paths are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `paths-injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should pass indexed paths next time.
|
|
22
|
+
|
|
23
|
+
- Run only when the orchestrator selects `sdd-research` and supplies the persisted research intent: the change name, the questions, the requested source classes, and the artifact store. Treat that intent as immutable; if it is absent, return `blocked` with no claims.
|
|
24
|
+
- Evidence grants for this runtime are `documentation=[]; open-web=[]`. Never infer evidence capability from bash, persistence tools, or any inherited tool; persistence tools are not evidence grants. Unsupported or undeclared classes deny admission and emit no claims.
|
|
25
|
+
- Because this runtime declares no evidence grants, retain the selected request, persist a `blocked` outcome with no claims, and stop.
|
|
26
|
+
- Admission denial, partial evidence, invalid sources, or persistence divergence emits no unvalidated claim and blocks proposal readiness.
|
|
27
|
+
- Keep evidence claims separate from non-authoritative product choices; the orchestrator owns product decisions and proposal admission.
|
|
28
|
+
- Do NOT launch child subagents. Parent/orchestrator owns delegation.
|
|
29
|
+
- Persist the research and pre-proposal artifacts per the Memory Contract below; never claim persistence you did not perform.
|
|
30
|
+
- Keep output concise and return the SDD result contract.
|
|
31
|
+
## Memory Contract
|
|
32
|
+
|
|
33
|
+
Read any input artifacts directly from the active backend before doing the phase work; do not wait for the parent to inline them. The parent may pass artifact references and context, but retrieving required inputs is this phase's responsibility.
|
|
34
|
+
|
|
35
|
+
Inputs to read (`engram`/`both`: use the injected Engram memory read tools for the topic key, then fetch the full observation; `openspec`: read the file under `openspec/changes/{change}/`):
|
|
36
|
+
- Exploration (when it exists): `sdd/{change}/explore` (openspec: the exploration file under `openspec/changes/{change}/`).
|
|
37
|
+
|
|
38
|
+
Persist this phase's artifact to the active backend before returning (mandatory):
|
|
39
|
+
- `engram`/`both`: call the injected Engram save tool with title and `topic_key` `"sdd/{change}/research"`, `type: "architecture"`, `project` from context, and `capture_prompt: false` when the tool schema supports it (omit the field if an older schema rejects it).
|
|
40
|
+
- `openspec`: write/update `openspec/changes/{change}/research.md`.
|
|
41
|
+
- `none`: return the research record inline.
|
|
42
|
+
|
|
43
|
+
The research artifact uses schema `gentle-ai.sdd-research/v1`: a positive `revision`, an explicit `done | partial | blocked` outcome, the questions, admission and the observed exact grants, sources, and validated claims where each claim maps to source IDs. For this runtime the outcome is `blocked` with an admission denial and no claims.
|
|
44
|
+
|
|
45
|
+
Also update the pre-proposal state (`engram`/`both`: topic `"sdd/{change}/preproposal"`; same save conventions) using schema `gentle-ai.sdd-preproposal/v1`: a positive `revision`, the exploration reference, the research request and classes, the admission outcome, evidence references, product decisions (`pending | confirmed`), and `proposal_ready`.
|
|
46
|
+
|
|
47
|
+
Hybrid (`both`) persistence means identical bytes in both stores. On hybrid mismatch or a one-sided write failure, never prefer one store: recover from the retained intent, not from a surviving store, and keep proposal readiness false for recovery.
|
|
48
|
+
|
|
49
|
+
Never claim persistence you did not perform.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Key Learnings Closing
|
|
53
|
+
|
|
54
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Write SDD delta specs with requirements and scenarios.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- mem_search
|
|
@@ -181,3 +181,8 @@ Archive will copy this new domain spec into `openspec/specs/{domain}/spec.md`.
|
|
|
181
181
|
- Do NOT launch child subagents. Parent/orchestrator owns delegation.
|
|
182
182
|
|
|
183
183
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
## Key Learnings Closing
|
|
187
|
+
|
|
188
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Show read-only structured SDD status for an active change.
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- bash
|
|
9
9
|
- mem_search
|
|
10
10
|
- mem_get_observation
|
|
@@ -88,10 +88,10 @@ Parse ownership on each task checkbox in `tasks.md`:
|
|
|
88
88
|
|
|
89
89
|
- no `sdd-owner` token: legacy `implementation`;
|
|
90
90
|
- exactly one terminal `<!-- sdd-owner: implementation -->`: implementation;
|
|
91
|
-
-
|
|
92
|
-
- any
|
|
91
|
+
- supported legacy non-implementation rows: informational only;
|
|
92
|
+
- any unsupported, duplicate, or non-terminal `sdd-owner` occurrence: malformed, fail closed as unresolved implementation work and report the exact line in `taskArtifactErrors`.
|
|
93
93
|
|
|
94
|
-
Return implementation counters in `taskProgress
|
|
94
|
+
Return implementation counters in `taskProgress` and exact unchecked implementation lines in `taskProgress.unchecked`. Informational legacy rows never make apply incomplete or block the SDD route.
|
|
95
95
|
|
|
96
96
|
## Action Context
|
|
97
97
|
|
|
@@ -103,7 +103,7 @@ If parent context reports `workspace-planning` and no `allowedEditRoots`, mark a
|
|
|
103
103
|
|
|
104
104
|
- `apply` is `ready` only when specs, design, and tasks are present, at least one task is unchecked, and action context is safe.
|
|
105
105
|
- `apply` is `all_done` when tasks exist and no unchecked implementation tasks remain.
|
|
106
|
-
- Completed implementation
|
|
106
|
+
- Completed implementation routes directly to `sdd-verify`; an RDD receipt or authority never gates verification, sync, archive, or delivery.
|
|
107
107
|
- `verify` is `ready` when tasks exist and apply-progress exists or tasks are all done; unchecked implementation tasks are still CRITICAL archive blockers.
|
|
108
108
|
- `sync` is `ready` when verify-report exists and has no unresolved `FAIL`, `BLOCKED`, `CRITICAL`, or verification blockers; it is `not_applicable` for `engram`/`none` modes.
|
|
109
109
|
- `archive` is `ready` only when verify-report is passing, sync-report exists or sync is not applicable, and no unchecked implementation tasks remain. CRITICAL verification issues have no override. Explicit recorded exceptions are limited to non-critical partial archives or stale-checkbox reconciliation when apply-progress/verify-report prove completion.
|
|
@@ -113,3 +113,8 @@ If parent context reports `workspace-planning` and no `allowedEditRoots`, mark a
|
|
|
113
113
|
## Output
|
|
114
114
|
|
|
115
115
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution. Include the structured status block in `artifacts` or `executive_summary`.
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
## Key Learnings Closing
|
|
119
|
+
|
|
120
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Sync verified SDD delta specs into OpenSpec canonical specs without
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- bash
|
|
@@ -135,3 +135,8 @@ Include:
|
|
|
135
135
|
- Apply `rules.sync` from `openspec/config.yaml` when present.
|
|
136
136
|
|
|
137
137
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
## Key Learnings Closing
|
|
141
|
+
|
|
142
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Break SDD design/specs into implementation tasks with review worklo
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- write
|
|
9
9
|
- edit
|
|
10
10
|
- mem_search
|
|
@@ -79,14 +79,13 @@ Chain strategy: stacked-to-main|feature-branch-chain|size-exception|pending
|
|
|
79
79
|
|
|
80
80
|
## Task Ownership
|
|
81
81
|
|
|
82
|
-
Every generated Markdown checkbox MUST end with
|
|
82
|
+
Every generated Markdown checkbox MUST end with this terminal ownership marker:
|
|
83
83
|
|
|
84
84
|
```markdown
|
|
85
85
|
- [ ] Implement and verify the behavior. <!-- sdd-owner: implementation -->
|
|
86
|
-
- [ ] Start or reuse bounded review. <!-- sdd-owner: parent -->
|
|
87
86
|
```
|
|
88
87
|
|
|
89
|
-
Use `implementation` for RED/GREEN/TRIANGULATE/REFACTOR, code, tests, and apply-owned verification.
|
|
88
|
+
Use `implementation` for RED/GREEN/TRIANGULATE/REFACTOR, code, tests, and apply-owned verification. Do not generate RDD authority, receipt, or delivery-gate tasks. Do not add owner values or infer ownership from headings.
|
|
90
89
|
|
|
91
90
|
## Task Rules
|
|
92
91
|
|
|
@@ -98,3 +97,8 @@ Use `implementation` for RED/GREEN/TRIANGULATE/REFACTOR, code, tests, and apply-
|
|
|
98
97
|
- Do NOT launch child subagents. Parent/orchestrator owns delegation.
|
|
99
98
|
|
|
100
99
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## Key Learnings Closing
|
|
103
|
+
|
|
104
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -4,7 +4,7 @@ description: Verify implementation against SDD specs, tasks, strict TDD evidence
|
|
|
4
4
|
tools:
|
|
5
5
|
- read
|
|
6
6
|
- grep
|
|
7
|
-
-
|
|
7
|
+
- find
|
|
8
8
|
- bash
|
|
9
9
|
- write
|
|
10
10
|
- edit
|
|
@@ -102,7 +102,27 @@ If a partial slice is approved, report unchecked lines as remaining scope and st
|
|
|
102
102
|
|
|
103
103
|
## Report
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
The report's first non-empty content MUST be this exact fenced YAML envelope, with every field exactly once and counts taken from the actual retrieved specs (no front matter, `~~~` fences, untagged fences, or any content before the fence):
|
|
106
|
+
|
|
107
|
+
```yaml
|
|
108
|
+
schema: gentle-ai.verify-result/v1
|
|
109
|
+
evidence_revision: sha256:{current-evidence-digest}
|
|
110
|
+
verdict: pass
|
|
111
|
+
blockers: 0
|
|
112
|
+
critical_findings: 0
|
|
113
|
+
requirements: {complete}/{actual-total}
|
|
114
|
+
scenarios: {complete}/{actual-total}
|
|
115
|
+
test_command: {exact command}
|
|
116
|
+
test_exit_code: 0
|
|
117
|
+
test_output_hash: sha256:{exact-output-digest}
|
|
118
|
+
build_command: {exact command}
|
|
119
|
+
build_exit_code: 0
|
|
120
|
+
build_output_hash: sha256:{exact-output-digest}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Before the first persistence attempt, hold the complete report as exact candidate bytes and run `gentle-ai sdd-verify-validate --input <path|-> --requirements <n> --scenarios <n>` before any OpenSpec or Engram write. If the validator is unavailable or denies admission, make zero writes and preserve the prior report; otherwise persist the same bytes, including a valid `fail`.
|
|
124
|
+
|
|
125
|
+
The report is `openspec/changes/{change}/verify-report.md`. After the envelope, it continues with:
|
|
106
126
|
|
|
107
127
|
- pass/fail status;
|
|
108
128
|
- spec coverage;
|
|
@@ -117,3 +137,8 @@ Write `openspec/changes/{change}/verify-report.md` with:
|
|
|
117
137
|
Do NOT launch child subagents. Parent/orchestrator owns delegation. Do NOT fix issues; report them.
|
|
118
138
|
|
|
119
139
|
Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## Key Learnings Closing
|
|
143
|
+
|
|
144
|
+
Close your final report text with a `## Key Learnings` block (no trailing colon). Use 1–5 numbered items, each a standalone factual sentence of at least 20 characters and at least 4 words. This applies to final report text only — not intermediate tool output or saved artifact content. The Engram memory provider automatically extracts and persists these items as passive capture; you do not parse the block or invoke passive-capture tools yourself. Omit the block when there is genuinely no reusable learning; no filler or speculation. This closing block is separate from explicit `mem_save` artifact/decision persistence.
|
|
@@ -3,6 +3,8 @@ name: 4r-review
|
|
|
3
3
|
description: One-shot lens-only 4R discovery against a supplied initial review tree; the controller owns all authority.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
> Manual/compat-lane only: the provider host-relay capture path never loads this chain; it exists solely for explicit manual 4R invocation.
|
|
7
|
+
|
|
6
8
|
## review-risk
|
|
7
9
|
|
|
8
10
|
output: review-risk-report.md
|
|
@@ -13,7 +13,7 @@ output: init.md
|
|
|
13
13
|
outputMode: file-only
|
|
14
14
|
progress: true
|
|
15
15
|
|
|
16
|
-
Initialize SDD context for {task} before any planning or implementation. If `openspec/config.yaml` is missing, inspect the project and create it automatically. If
|
|
16
|
+
Initialize SDD context for {task} before any planning or implementation. If the artifact store is `openspec` or `both` and `openspec/config.yaml` is missing, inspect the project and create it automatically. If the artifact store is `engram` or `none`, skip OpenSpec file creation. If `openspec/config.yaml` already exists, read it, refresh only safe derived context when appropriate, and report the current SDD/testing configuration without blocking the chain.
|
|
17
17
|
|
|
18
18
|
## sdd-explore
|
|
19
19
|
|
|
@@ -67,7 +67,7 @@ output: apply-progress.md
|
|
|
67
67
|
outputMode: file-only
|
|
68
68
|
progress: true
|
|
69
69
|
|
|
70
|
-
Implement only approved implementation-owned tasks for {task}; enforce strict TDD when active and stop before writing if workload decisions are unresolved. Update OpenSpec tasks and apply-progress with evidence. When implementation completes,
|
|
70
|
+
Implement only approved implementation-owned tasks for {task}; enforce strict TDD when active and stop before writing if workload decisions are unresolved. Update OpenSpec tasks and apply-progress with evidence. When implementation completes, continue directly to independent verification. The SDD route is apply -> verify -> sync -> archive; no RDD authority, receipt, or delivery gate is required between phases.
|
|
71
71
|
|
|
72
72
|
## sdd-verify
|
|
73
73
|
|
|
@@ -13,7 +13,7 @@ output: init.md
|
|
|
13
13
|
outputMode: file-only
|
|
14
14
|
progress: true
|
|
15
15
|
|
|
16
|
-
Initialize SDD context for {task} before planning. If `openspec/config.yaml` is missing, inspect the project and create it automatically. If
|
|
16
|
+
Initialize SDD context for {task} before planning. If the artifact store is `openspec` or `both` and `openspec/config.yaml` is missing, inspect the project and create it automatically. If the artifact store is `engram` or `none`, skip OpenSpec file creation. If `openspec/config.yaml` already exists, read it and report the current SDD/testing configuration without blocking the chain.
|
|
17
17
|
|
|
18
18
|
## sdd-proposal
|
|
19
19
|
|
|
@@ -9,7 +9,7 @@ output: init.md
|
|
|
9
9
|
outputMode: file-only
|
|
10
10
|
progress: true
|
|
11
11
|
|
|
12
|
-
Initialize SDD context for {task} before apply/verify. If `openspec/config.yaml` is missing, inspect the project and create it automatically. If
|
|
12
|
+
Initialize SDD context for {task} before apply/verify. If the artifact store is `openspec` or `both` and `openspec/config.yaml` is missing, inspect the project and create it automatically. If the artifact store is `engram` or `none`, skip OpenSpec file creation. If `openspec/config.yaml` already exists, read it and report the current SDD/testing configuration without blocking the chain.
|
|
13
13
|
|
|
14
14
|
## sdd-apply
|
|
15
15
|
|
|
@@ -27,7 +27,7 @@ output: verify-report.md
|
|
|
27
27
|
outputMode: file-only
|
|
28
28
|
progress: true
|
|
29
29
|
|
|
30
|
-
Run focused and full verification for {task} using the apply-progress and project artifacts. Include review/judgment blockers.
|
|
30
|
+
Run focused and full verification for {task} using the apply-progress and project artifacts. Include review/judgment blockers. Start `verify-report.md` with the mandatory fenced `gentle-ai.verify-result/v1` YAML envelope as the first non-empty content, and run `gentle-ai sdd-verify-validate` on the exact report bytes before persisting; on denial or unavailable validator, persist nothing.
|
|
31
31
|
|
|
32
32
|
## sdd-sync
|
|
33
33
|
|