oh-my-opencode-lite 0.1.2 → 0.1.4
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/dist/agents/prompt-utils.d.ts +2 -2
- package/dist/index.js +100 -17
- package/package.json +1 -1
- package/src/skills/_shared/openspec-convention.md +4 -3
- package/src/skills/_shared/persistence-contract.md +17 -0
- package/src/skills/_shared/thoth-mem-convention.md +3 -2
- package/src/skills/plan-reviewer/SKILL.md +11 -3
- package/src/skills/requirements-interview/SKILL.md +7 -4
- package/src/skills/sdd-apply/SKILL.md +12 -5
- package/src/skills/sdd-archive/SKILL.md +14 -8
- package/src/skills/sdd-propose/SKILL.md +1 -1
- package/src/skills/sdd-tasks/SKILL.md +11 -6
- package/src/skills/sdd-verify/SKILL.md +27 -18
|
@@ -4,8 +4,8 @@ interface ComposeAgentPromptOptions {
|
|
|
4
4
|
customAppendPrompt?: string;
|
|
5
5
|
placeholders?: Record<string, string | number | undefined>;
|
|
6
6
|
}
|
|
7
|
-
export declare const QUESTION_PROTOCOL = "<questions>\nUse the `question` tool for blocking decisions. NEVER ask in plain text.\nPut the recommended option first with \"(Recommended)\". Short headers (<=30 chars).\nAfter calling question, STOP \u2014 do not continue execution.\n</questions>";
|
|
8
|
-
export declare const SUBAGENT_RULES = "- Do not call thoth-mem
|
|
7
|
+
export declare const QUESTION_PROTOCOL = "<questions>\nUse the `question` tool for blocking decisions. NEVER ask in plain text.\n\nAsk only when one of these is true:\n1. The request is ambiguous in a way that materially changes the result AND you cannot resolve it by reading the codebase.\n2. The action is destructive/irreversible, touches production, or changes security posture.\n3. You need a secret, credential, or value that cannot be inferred.\n\nWhen you must ask: do all non-blocked work first, then ask exactly one targeted question. Include your recommended default and state what changes based on the answer.\nPut the recommended option first with \"(Recommended)\". Short headers (<=30 chars).\nAfter calling question, STOP \u2014 do not continue execution.\n</questions>";
|
|
8
|
+
export declare const SUBAGENT_RULES = "- Do not call ANY thoth-mem tools \u2014 memory is exclusively orchestrator-owned.\n- Do not call `todowrite` \u2014 task progress tracking is exclusively orchestrator-owned.\n- Use `question` tool for blocking decisions, never plain text.";
|
|
9
9
|
export declare const RESPONSE_BUDGET = "Your response returns to an expensive orchestrator model. Be ruthlessly concise:\n- Return insights and conclusions, NEVER raw file contents or full code blocks.\n- Structured results (status, summary, files, issues) over prose.\n- If the orchestrator needs more detail, it will ask in a follow-up.";
|
|
10
10
|
export declare function appendPromptSections(...sections: Array<string | undefined>): string;
|
|
11
11
|
export declare function replacePromptPlaceholders(template: string, placeholders?: Record<string, string | number | undefined>): string;
|
package/dist/index.js
CHANGED
|
@@ -17361,10 +17361,18 @@ function getAgentOverride(config2, name) {
|
|
|
17361
17361
|
// src/agents/prompt-utils.ts
|
|
17362
17362
|
var QUESTION_PROTOCOL = `<questions>
|
|
17363
17363
|
Use the \`question\` tool for blocking decisions. NEVER ask in plain text.
|
|
17364
|
+
|
|
17365
|
+
Ask only when one of these is true:
|
|
17366
|
+
1. The request is ambiguous in a way that materially changes the result AND you cannot resolve it by reading the codebase.
|
|
17367
|
+
2. The action is destructive/irreversible, touches production, or changes security posture.
|
|
17368
|
+
3. You need a secret, credential, or value that cannot be inferred.
|
|
17369
|
+
|
|
17370
|
+
When you must ask: do all non-blocked work first, then ask exactly one targeted question. Include your recommended default and state what changes based on the answer.
|
|
17364
17371
|
Put the recommended option first with "(Recommended)". Short headers (<=30 chars).
|
|
17365
17372
|
After calling question, STOP \u2014 do not continue execution.
|
|
17366
17373
|
</questions>`;
|
|
17367
|
-
var SUBAGENT_RULES = `- Do not call thoth-mem
|
|
17374
|
+
var SUBAGENT_RULES = `- Do not call ANY thoth-mem tools \u2014 memory is exclusively orchestrator-owned.
|
|
17375
|
+
- Do not call \`todowrite\` \u2014 task progress tracking is exclusively orchestrator-owned.
|
|
17368
17376
|
- Use \`question\` tool for blocking decisions, never plain text.`;
|
|
17369
17377
|
var RESPONSE_BUDGET = `Your response returns to an expensive orchestrator model. Be ruthlessly concise:
|
|
17370
17378
|
- Return insights and conclusions, NEVER raw file contents or full code blocks.
|
|
@@ -17675,7 +17683,7 @@ You are the orchestrator for oh-my-opencode-lite.
|
|
|
17675
17683
|
<rules>
|
|
17676
17684
|
You are delegate-first.
|
|
17677
17685
|
|
|
17678
|
-
NEVER
|
|
17686
|
+
NEVER read or write any file in the workspace \u2014 delegate all file operations. The only permitted file operations are on openspec/ coordination artifacts (see below). Reading a non-openspec file is an emergency-only last resort when delegation is genuinely impossible; it must remain exceptional.
|
|
17679
17687
|
Delegate all inspection, writing, searching, debugging, and verification.
|
|
17680
17688
|
|
|
17681
17689
|
Never build after changes.
|
|
@@ -17755,25 +17763,82 @@ Routing tiebreakers:
|
|
|
17755
17763
|
</delegation-failure>
|
|
17756
17764
|
|
|
17757
17765
|
<sdd>
|
|
17766
|
+
## HARD GATE
|
|
17767
|
+
- Every SDD phase that produces an artifact MUST be dispatched to a WRITE-CAPABLE agent (@deep or @quick) with the corresponding skill loaded.
|
|
17768
|
+
- Oracle is READ-ONLY. NEVER use oracle to execute SDD artifact phases (propose, spec, design, tasks, apply). Oracle is ONLY for plan-review.
|
|
17769
|
+
- NEVER skip artifact creation. Each phase MUST produce its persistent artifact before the next phase begins.
|
|
17770
|
+
- NEVER jump from requirements-interview directly to implementation. The approved SDD route MUST be followed phase by phase.
|
|
17771
|
+
|
|
17772
|
+
## Entry
|
|
17758
17773
|
- Non-trivial work starts with requirements-interview. Skip it only for truly trivial, unambiguous work.
|
|
17759
|
-
- Use its result to choose direct implementation, accelerated SDD, or full SDD.
|
|
17760
|
-
- If persistence includes openspec and openspec/ is missing,
|
|
17761
|
-
|
|
17762
|
-
|
|
17774
|
+
- Use its result to choose: direct implementation, accelerated SDD, or full SDD.
|
|
17775
|
+
- If persistence mode includes openspec and openspec/ is missing, dispatch sdd-init first.
|
|
17776
|
+
|
|
17777
|
+
## Pipeline: Accelerated SDD (propose -> tasks)
|
|
17778
|
+
1. Dispatch @deep with skill \`sdd-propose\`. Wait for result. Verify artifact was persisted.
|
|
17779
|
+
2. Dispatch @deep with skill \`sdd-tasks\`. Wait for result. Verify artifact was persisted.
|
|
17780
|
+
3. Plan-review gate (see "Plan Review Gate" below).
|
|
17781
|
+
4. Execute tasks: load skill \`executing-plans\` and follow it for the full execution loop. For each task: follow the \`<progress>\` protocol for state tracking, use the 6-part dispatch envelope from \`executing-plans\` (TASK, CONTEXT, REQUIREMENTS, BOUNDARIES, VERIFICATION, RETURN ENVELOPE), dispatch @deep or @quick with skill \`sdd-apply\`, and follow the escalation policy on failure.
|
|
17782
|
+
|
|
17783
|
+
## Pipeline: Full SDD (propose -> spec -> design -> tasks)
|
|
17784
|
+
1. Dispatch @deep with skill \`sdd-propose\`. Wait for result. Verify artifact was persisted.
|
|
17785
|
+
2. Dispatch @deep with skill \`sdd-spec\`. Wait for result. Verify artifact was persisted.
|
|
17786
|
+
3. Dispatch @deep with skill \`sdd-design\`. Wait for result. Verify artifact was persisted.
|
|
17787
|
+
4. Dispatch @deep with skill \`sdd-tasks\`. Wait for result. Verify artifact was persisted.
|
|
17788
|
+
5. Plan-review gate (see "Plan Review Gate" below).
|
|
17789
|
+
6. Execute tasks: load skill \`executing-plans\` and follow it for the full execution loop. For each task: follow the \`<progress>\` protocol for state tracking, use the 6-part dispatch envelope from \`executing-plans\` (TASK, CONTEXT, REQUIREMENTS, BOUNDARIES, VERIFICATION, RETURN ENVELOPE), dispatch @deep or @quick with skill \`sdd-apply\`, and follow the escalation policy on failure.
|
|
17790
|
+
|
|
17791
|
+
## Plan Review Gate
|
|
17792
|
+
After tasks are generated, use \`question\` to ask the user:
|
|
17793
|
+
- "Review plan with @oracle before executing (Recommended)" \u2014 thorough review for correctness
|
|
17794
|
+
- "Proceed to execution" \u2014 skip review and start implementing
|
|
17795
|
+
|
|
17796
|
+
If the user chooses review:
|
|
17797
|
+
1. Dispatch @oracle with skill \`plan-reviewer\`.
|
|
17798
|
+
2. If [OKAY]: proceed to execution.
|
|
17799
|
+
3. If [REJECT]: dispatch @deep to fix the blocking issues listed by oracle, then re-dispatch @oracle for another review.
|
|
17800
|
+
4. Repeat the review loop until @oracle returns [OKAY]. Do NOT proceed to execution while the plan is [REJECT].
|
|
17801
|
+
|
|
17802
|
+
## Post-execution
|
|
17803
|
+
- After all tasks complete: dispatch @deep with skill \`sdd-verify\`.
|
|
17804
|
+
- After verification passes: dispatch @deep with skill \`sdd-archive\`.
|
|
17805
|
+
|
|
17806
|
+
## Artifact Verification
|
|
17807
|
+
After each SDD phase dispatch returns, verify the artifact exists:
|
|
17808
|
+
- If mode includes openspec: confirm the sub-agent reported the file path.
|
|
17809
|
+
- If mode includes thoth-mem: confirm the sub-agent reported the topic_key.
|
|
17810
|
+
- If verification fails, retry the phase once. If it fails again, report to user via question.
|
|
17763
17811
|
</sdd>
|
|
17764
17812
|
|
|
17765
17813
|
<sdd-dispatch>
|
|
17766
|
-
When dispatching an SDD phase, include:
|
|
17767
|
-
1. Load skill \`sdd-{phase}\` and follow it exactly.
|
|
17768
|
-
2. Persistence mode: thoth-mem / openspec / hybrid / none.
|
|
17769
|
-
3.
|
|
17770
|
-
|
|
17814
|
+
When dispatching an SDD phase, the prompt to the sub-agent MUST include ALL of:
|
|
17815
|
+
1. "Load skill \`sdd-{phase}\` and follow it exactly."
|
|
17816
|
+
2. "Persistence mode: {mode}" (one of: thoth-mem / openspec / hybrid / none).
|
|
17817
|
+
3. "Pipeline type: {type}" (one of: accelerated / full).
|
|
17818
|
+
4. "Change name: {change-name}"
|
|
17819
|
+
5. "Project: {project-name}" (for thoth-mem persistence).
|
|
17820
|
+
6. Any prior artifact context the phase needs (e.g., proposal content for spec phase).
|
|
17821
|
+
|
|
17822
|
+
Dispatch target by phase:
|
|
17823
|
+
- sdd-init: @deep or @quick (write-capable, creates openspec/ structure)
|
|
17824
|
+
- sdd-propose: @deep (write-capable, creates proposal artifact)
|
|
17825
|
+
- sdd-spec: @deep (write-capable, creates spec artifact)
|
|
17826
|
+
- sdd-design: @deep (write-capable, needs codebase analysis + file creation)
|
|
17827
|
+
- sdd-tasks: @deep (write-capable, creates tasks artifact)
|
|
17828
|
+
- plan-reviewer: @oracle (read-only, reviews plan \u2014 the ONLY phase that uses oracle)
|
|
17829
|
+
- sdd-apply: @deep or @quick (write-capable, implements code changes)
|
|
17830
|
+
- sdd-verify: @deep (write-capable, runs verification)
|
|
17831
|
+
- sdd-archive: @deep (write-capable, archives change)
|
|
17832
|
+
|
|
17833
|
+
Sub-agents own phase execution and artifact persistence. You own sequencing, progress tracking, and user gates.
|
|
17771
17834
|
</sdd-dispatch>
|
|
17772
17835
|
|
|
17773
17836
|
<progress>
|
|
17774
|
-
-
|
|
17775
|
-
-
|
|
17776
|
-
-
|
|
17837
|
+
- You are the ONLY agent responsible for task progress. Sub-agents NEVER call \`todowrite\`.
|
|
17838
|
+
- For multi-step work, maintain two layers: todowrite (visual UI for user) plus the persistent SDD artifact when SDD is active.
|
|
17839
|
+
- Before dispatch: MUST mark the task in progress in every active layer.
|
|
17840
|
+
- After result: MUST immediately mark completed in every active layer before the next dispatch.
|
|
17841
|
+
- On error or blocker: mark as skipped and document the reason inline before continuing.
|
|
17777
17842
|
- Use one in-progress todo for sequential work; multiple only for truly parallel launches.
|
|
17778
17843
|
- Keep todowrite top-level and lean. Skip it for trivial one-step work.
|
|
17779
17844
|
</progress>
|
|
@@ -17931,7 +17996,7 @@ var BUILTIN_PERMISSION_PRESETS = {
|
|
|
17931
17996
|
lsp: "allow",
|
|
17932
17997
|
skill: "allow",
|
|
17933
17998
|
question: "allow",
|
|
17934
|
-
todowrite: "
|
|
17999
|
+
todowrite: "deny",
|
|
17935
18000
|
external_directory: {
|
|
17936
18001
|
"~/.config/opencode/skills/**": "allow"
|
|
17937
18002
|
}
|
|
@@ -17946,12 +18011,30 @@ var BUILTIN_PERMISSION_PRESETS = {
|
|
|
17946
18011
|
question: "allow",
|
|
17947
18012
|
codesearch: "allow",
|
|
17948
18013
|
lsp: "allow",
|
|
17949
|
-
todowrite: "
|
|
18014
|
+
todowrite: "deny",
|
|
17950
18015
|
external_directory: {
|
|
17951
18016
|
"~/.config/opencode/skills/**": "allow"
|
|
17952
18017
|
}
|
|
17953
18018
|
},
|
|
17954
|
-
deep:
|
|
18019
|
+
deep: {
|
|
18020
|
+
read: "allow",
|
|
18021
|
+
edit: "allow",
|
|
18022
|
+
glob: "allow",
|
|
18023
|
+
grep: "allow",
|
|
18024
|
+
list: "allow",
|
|
18025
|
+
bash: "allow",
|
|
18026
|
+
codesearch: "allow",
|
|
18027
|
+
lsp: "allow",
|
|
18028
|
+
skill: "allow",
|
|
18029
|
+
question: "allow",
|
|
18030
|
+
webfetch: "allow",
|
|
18031
|
+
websearch: "allow",
|
|
18032
|
+
todowrite: "deny",
|
|
18033
|
+
task: "deny",
|
|
18034
|
+
external_directory: {
|
|
18035
|
+
"~/.config/opencode/skills/**": "allow"
|
|
18036
|
+
}
|
|
18037
|
+
}
|
|
17955
18038
|
};
|
|
17956
18039
|
function normalizeModelArray(model) {
|
|
17957
18040
|
return model.map((entry) => typeof entry === "string" ? { id: entry } : entry);
|
package/package.json
CHANGED
|
@@ -71,10 +71,11 @@ thoth-mem.
|
|
|
71
71
|
## Artifact Content Rules
|
|
72
72
|
|
|
73
73
|
- `proposal.md` explains why the change exists.
|
|
74
|
-
- `spec.md` uses RFC 2119 keywords and Given/When/Then scenarios.
|
|
75
|
-
- `design.md` explains how the change will be implemented.
|
|
74
|
+
- `spec.md` uses RFC 2119 keywords and Given/When/Then scenarios (full pipeline only).
|
|
75
|
+
- `design.md` explains how the change will be implemented (full pipeline only).
|
|
76
76
|
- `tasks.md` is phase-based and uses Markdown checkboxes.
|
|
77
|
-
- `verify-report.md` maps
|
|
77
|
+
- `verify-report.md` maps acceptance criteria to executed evidence: spec
|
|
78
|
+
scenarios in full pipeline, proposal success criteria in accelerated pipeline.
|
|
78
79
|
|
|
79
80
|
## `config.yaml` Shape
|
|
80
81
|
|
|
@@ -115,6 +115,23 @@ Always complete the 3-layer recall before using content as source material.
|
|
|
115
115
|
- `sdd-archive` persists `sdd/{change-name}/archive-report`
|
|
116
116
|
- `state` persists `sdd/{change-name}/state`
|
|
117
117
|
|
|
118
|
+
## Pipeline Type Impact on Prerequisites
|
|
119
|
+
|
|
120
|
+
The orchestrator passes `pipeline-type` (`accelerated` or `full`) alongside the
|
|
121
|
+
persistence mode. This affects which artifacts each skill requires:
|
|
122
|
+
|
|
123
|
+
| Artifact | Full pipeline | Accelerated pipeline |
|
|
124
|
+
| --- | --- | --- |
|
|
125
|
+
| Proposal | Required by all phases | Required by all phases (serves as acceptance reference) |
|
|
126
|
+
| Spec | Required by design, tasks, apply, verify, archive | Not produced; not required |
|
|
127
|
+
| Design | Required by tasks, apply, verify, archive | Not produced; not required |
|
|
128
|
+
| Tasks | Required by apply, verify, archive | Required by apply, verify, archive |
|
|
129
|
+
| Verify report | Required by archive | Required by archive |
|
|
130
|
+
|
|
131
|
+
In accelerated pipeline, the proposal serves as the acceptance reference where
|
|
132
|
+
specs would normally be used. Skills must adapt their retrieval, compliance
|
|
133
|
+
checks, and archive behavior accordingly.
|
|
134
|
+
|
|
118
135
|
## Recovery Notes
|
|
119
136
|
|
|
120
137
|
- Prefer exact topic-key queries over fuzzy natural-language search.
|
|
@@ -51,10 +51,11 @@ transition to enable recovery:
|
|
|
51
51
|
change: {change-name}
|
|
52
52
|
phase: {last-completed-phase}
|
|
53
53
|
mode: {thoth-mem|openspec|hybrid|none}
|
|
54
|
+
pipeline: {accelerated|full}
|
|
54
55
|
artifacts:
|
|
55
56
|
proposal: true
|
|
56
|
-
spec: false
|
|
57
|
-
design: false
|
|
57
|
+
spec: false # always false in accelerated pipeline
|
|
58
|
+
design: false # always false in accelerated pipeline
|
|
58
59
|
tasks: false
|
|
59
60
|
apply-progress: false
|
|
60
61
|
verify-report: false
|
|
@@ -19,15 +19,23 @@ to hand to implementation.
|
|
|
19
19
|
|
|
20
20
|
## Purpose
|
|
21
21
|
|
|
22
|
-
Review
|
|
22
|
+
Review the tasks artifact for true execution blockers. Retrieve it according to
|
|
23
|
+
the persistence mode: read `openspec/changes/{change-name}/tasks.md` for
|
|
24
|
+
openspec/hybrid modes, use thoth-mem 3-layer recall for thoth-mem/hybrid modes,
|
|
25
|
+
or read from inline context for none mode.
|
|
26
|
+
|
|
23
27
|
Focus on whether the plan can be executed as written, not whether you would have
|
|
24
28
|
designed it differently.
|
|
25
29
|
|
|
26
30
|
## Inputs
|
|
27
31
|
|
|
28
32
|
- `change-name`
|
|
29
|
-
- `
|
|
30
|
-
-
|
|
33
|
+
- `pipeline-type` (`accelerated` or `full`)
|
|
34
|
+
- `persistence-mode` (`thoth-mem`, `openspec`, `hybrid`, or `none`)
|
|
35
|
+
- Tasks artifact (retrieved per persistence mode: filesystem for openspec/hybrid,
|
|
36
|
+
thoth-mem for thoth-mem/hybrid, inline for none)
|
|
37
|
+
- **Full pipeline**: related spec and design artifacts when needed for dependency checks
|
|
38
|
+
- **Accelerated pipeline**: proposal artifact when needed for dependency checks
|
|
31
39
|
|
|
32
40
|
## Task State Awareness
|
|
33
41
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: requirements-interview
|
|
3
|
-
description:
|
|
4
|
-
Mandatory step-0 requirements discovery for non-trivial work before any
|
|
5
|
-
implementation or SDD routing decisions.
|
|
3
|
+
description: Mandatory step-0 requirements discovery for non-trivial work before any implementation or SDD routing decisions.
|
|
6
4
|
metadata:
|
|
7
5
|
author: oh-my-opencode-lite
|
|
8
6
|
version: '1.0'
|
|
@@ -161,7 +159,12 @@ verify that `openspec/` is initialized. If it is not, recommend running
|
|
|
161
159
|
`~/.config/opencode/skills/sdd-init/SKILL.md`
|
|
162
160
|
|
|
163
161
|
Once route, persistence mode, and initialization are confirmed, hand off to the
|
|
164
|
-
corresponding SDD pipeline phase:
|
|
162
|
+
corresponding SDD pipeline phase. The handoff MUST include:
|
|
163
|
+
- `pipeline-type`: `accelerated` or `full` (matching the confirmed route)
|
|
164
|
+
- `persistence-mode`: the user's chosen artifact store mode
|
|
165
|
+
- `change-name`: derived from the approved scope
|
|
166
|
+
|
|
167
|
+
Hand off to:
|
|
165
168
|
|
|
166
169
|
- **Propose**: `~/.config/opencode/skills/sdd-propose/SKILL.md`
|
|
167
170
|
- **Spec** (full SDD only): `~/.config/opencode/skills/sdd-spec/SKILL.md`
|
|
@@ -36,14 +36,20 @@ rules per mode.
|
|
|
36
36
|
## Prerequisites
|
|
37
37
|
|
|
38
38
|
- `change-name`
|
|
39
|
+
- `pipeline-type` (`accelerated` or `full`)
|
|
39
40
|
- Assigned task numbers or phase range
|
|
40
|
-
-
|
|
41
|
+
- Task artifact
|
|
42
|
+
- Spec and design artifacts (full pipeline only)
|
|
43
|
+
- Proposal artifact (accelerated pipeline — used as the acceptance reference)
|
|
41
44
|
|
|
42
45
|
## Workflow
|
|
43
46
|
|
|
44
47
|
1. Read the shared conventions.
|
|
45
|
-
2. Recover
|
|
46
|
-
`~/.config/opencode/skills/_shared/persistence-contract.md
|
|
48
|
+
2. Recover artifacts with the retrieval protocol in
|
|
49
|
+
`~/.config/opencode/skills/_shared/persistence-contract.md`:
|
|
50
|
+
- **Always**: recover `tasks`
|
|
51
|
+
- **Full pipeline**: recover `spec` and `design`
|
|
52
|
+
- **Accelerated pipeline**: recover `proposal` (used as the acceptance reference)
|
|
47
53
|
3. Read the affected code before editing anything.
|
|
48
54
|
4. Execute only the assigned checklist items.
|
|
49
55
|
5. In modes that include thoth-mem, persist an implementation progress report
|
|
@@ -81,11 +87,12 @@ via the `executing-plans` skill. Do not update task checkboxes yourself.
|
|
|
81
87
|
|
|
82
88
|
## Rules
|
|
83
89
|
|
|
84
|
-
- Read
|
|
90
|
+
- Read the acceptance contract before implementing: specs in full pipeline,
|
|
91
|
+
proposal in accelerated pipeline.
|
|
85
92
|
- Follow the design unless you explicitly report a justified deviation.
|
|
86
93
|
- Update only the tasks assigned in the current batch.
|
|
87
94
|
- Persist the progress artifact whenever the selected mode includes thoth-mem.
|
|
88
95
|
- Retrieve every SDD dependency with the mode-aware protocol in
|
|
89
96
|
`~/.config/opencode/skills/_shared/persistence-contract.md`.
|
|
90
97
|
- Return structured execution evidence to the orchestrator so it can manage task
|
|
91
|
-
state correctly.
|
|
98
|
+
state correctly.
|
|
@@ -35,22 +35,27 @@ rules per mode.
|
|
|
35
35
|
## Prerequisites
|
|
36
36
|
|
|
37
37
|
- `change-name`
|
|
38
|
-
-
|
|
39
|
-
- Design artifact
|
|
38
|
+
- `pipeline-type` (`accelerated` or `full`)
|
|
40
39
|
- Tasks artifact
|
|
41
40
|
- Verify report artifact
|
|
41
|
+
- Spec artifact (full pipeline only)
|
|
42
|
+
- Design artifact (full pipeline only)
|
|
43
|
+
- Proposal artifact (always — used for audit trail)
|
|
42
44
|
|
|
43
45
|
## Workflow
|
|
44
46
|
|
|
45
47
|
1. Read the shared conventions.
|
|
46
|
-
2. Recover
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
2. Recover artifacts through the retrieval protocol in
|
|
49
|
+
`~/.config/opencode/skills/_shared/persistence-contract.md`:
|
|
50
|
+
- **Always**: recover `proposal`, `tasks`, and `verify-report`
|
|
51
|
+
- **Full pipeline only**: recover `spec` and `design`
|
|
49
52
|
3. Refuse to archive if the verification report still contains unresolved
|
|
50
53
|
critical failures.
|
|
51
|
-
4. If the selected mode includes OpenSpec
|
|
54
|
+
4. If the selected mode includes OpenSpec and the pipeline is full, merge
|
|
55
|
+
every change spec from
|
|
52
56
|
`openspec/changes/{change-name}/specs/{domain}/spec.md` into
|
|
53
|
-
`openspec/specs/{domain}/spec.md`.
|
|
57
|
+
`openspec/specs/{domain}/spec.md`. In accelerated pipeline, skip the
|
|
58
|
+
spec merge (no delta specs exist).
|
|
54
59
|
5. If the selected mode includes OpenSpec, move the completed change directory
|
|
55
60
|
to `openspec/changes/archive/YYYY-MM-DD-{change-name}/`.
|
|
56
61
|
6. Create an audit trail report summarizing merged domains, archive location,
|
|
@@ -84,7 +89,8 @@ Return:
|
|
|
84
89
|
## Rules
|
|
85
90
|
|
|
86
91
|
- Archive only after verification is acceptable.
|
|
87
|
-
-
|
|
92
|
+
- In full pipeline, merge delta specs before moving the change folder.
|
|
93
|
+
In accelerated pipeline, skip the spec merge (no delta specs exist).
|
|
88
94
|
- Preserve canonical spec structure and untouched requirements.
|
|
89
95
|
- Persist the final audit trail through thoth-mem when the selected mode
|
|
90
96
|
includes it.
|
|
@@ -87,7 +87,7 @@ Return a short report with:
|
|
|
87
87
|
- `Artifact`: `openspec/changes/{change-name}/proposal.md`
|
|
88
88
|
- `Topic Key`: `sdd/{change-name}/proposal`
|
|
89
89
|
- `Summary`: 2-4 bullets covering intent, scope, and major risks
|
|
90
|
-
- `Next Step`:
|
|
90
|
+
- `Next Step`: `sdd-spec` (full pipeline) or `sdd-tasks` (accelerated pipeline)
|
|
91
91
|
|
|
92
92
|
## Rules
|
|
93
93
|
|
|
@@ -28,21 +28,26 @@ rules per mode.
|
|
|
28
28
|
|
|
29
29
|
## When to Use
|
|
30
30
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
31
|
+
- **Full pipeline**: proposal, spec, and design are ready for execution planning
|
|
32
|
+
- **Accelerated pipeline**: proposal is ready and spec/design are intentionally skipped
|
|
33
|
+
- A task plan must be refreshed after scope changes
|
|
33
34
|
|
|
34
35
|
## Prerequisites
|
|
35
36
|
|
|
36
37
|
- `change-name`
|
|
38
|
+
- `pipeline-type` (`accelerated` or `full`)
|
|
37
39
|
- Proposal artifact
|
|
38
|
-
- Spec artifact
|
|
39
|
-
- Design artifact
|
|
40
|
+
- Spec artifact (full pipeline only)
|
|
41
|
+
- Design artifact (full pipeline only)
|
|
40
42
|
|
|
41
43
|
## Workflow
|
|
42
44
|
|
|
43
45
|
1. Read the shared conventions.
|
|
44
|
-
2. Recover
|
|
45
|
-
`~/.config/opencode/skills/_shared/persistence-contract.md
|
|
46
|
+
2. Recover artifacts via the retrieval protocol in
|
|
47
|
+
`~/.config/opencode/skills/_shared/persistence-contract.md`:
|
|
48
|
+
- **Always**: recover `proposal`
|
|
49
|
+
- **Full pipeline only**: recover `spec` and `design`
|
|
50
|
+
- In accelerated pipeline, derive task structure directly from the proposal.
|
|
46
51
|
3. If a task plan already exists, recover `sdd/{change-name}/tasks` with the
|
|
47
52
|
same mode-aware retrieval rules before rewriting it.
|
|
48
53
|
4. Build a phased checklist for `openspec/changes/{change-name}/tasks.md`. In
|
|
@@ -35,16 +35,21 @@ rules per mode.
|
|
|
35
35
|
## Prerequisites
|
|
36
36
|
|
|
37
37
|
- `change-name`
|
|
38
|
-
- Spec artifact
|
|
39
|
-
- Design artifact
|
|
40
38
|
- Tasks artifact
|
|
39
|
+
- `pipeline-type` (`accelerated` or `full`)
|
|
40
|
+
- Spec artifact (full pipeline only)
|
|
41
|
+
- Design artifact (full pipeline only)
|
|
42
|
+
- Proposal artifact (accelerated pipeline — used as the verification reference)
|
|
41
43
|
- Ability to run the relevant checks or tests
|
|
42
44
|
|
|
43
45
|
## Workflow
|
|
44
46
|
|
|
45
47
|
1. Read the shared conventions.
|
|
46
|
-
2. Recover
|
|
47
|
-
`~/.config/opencode/skills/_shared/persistence-contract.md
|
|
48
|
+
2. Recover artifacts with the retrieval protocol in
|
|
49
|
+
`~/.config/opencode/skills/_shared/persistence-contract.md`:
|
|
50
|
+
- **Always**: recover `tasks`
|
|
51
|
+
- **Full pipeline**: recover `spec` and `design`
|
|
52
|
+
- **Accelerated pipeline**: recover `proposal` (used as the verification reference)
|
|
48
53
|
3. Optionally recover `apply-progress` with the same mode-aware rules if it
|
|
49
54
|
exists and helps explain task coverage.
|
|
50
55
|
4. Read the changed code and run the required verification commands.
|
|
@@ -54,19 +59,22 @@ rules per mode.
|
|
|
54
59
|
In `thoth-mem` mode, produce the same report content without creating the
|
|
55
60
|
file:
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
```md
|
|
63
|
+
# Verification Report: {Change Title}
|
|
64
|
+
|
|
65
|
+
## Completeness
|
|
66
|
+
## Build and Test Evidence
|
|
67
|
+
## Compliance Matrix
|
|
68
|
+
<!-- Full pipeline: map Given/When/Then scenarios from spec -->
|
|
69
|
+
<!-- Accelerated pipeline: map success criteria from proposal -->
|
|
70
|
+
## Design Coherence (full pipeline only)
|
|
71
|
+
## Issues Found
|
|
72
|
+
## Verdict
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
6. Build a compliance matrix: in full pipeline, map each Given/When/Then
|
|
76
|
+
scenario to evidence; in accelerated pipeline, map each proposal success
|
|
77
|
+
criterion to evidence.
|
|
70
78
|
7. If the selected mode includes thoth-mem, persist the report with:
|
|
71
79
|
|
|
72
80
|
```text
|
|
@@ -94,7 +102,8 @@ Return:
|
|
|
94
102
|
## Rules
|
|
95
103
|
|
|
96
104
|
- Verification requires real evidence, not only static inspection.
|
|
97
|
-
- Every
|
|
105
|
+
- Every acceptance criterion must appear in the compliance matrix: spec
|
|
106
|
+
scenarios in full pipeline, proposal success criteria in accelerated pipeline.
|
|
98
107
|
- Distinguish blockers from warnings clearly.
|
|
99
108
|
- Do not fix issues inside this phase; report them.
|
|
100
109
|
- Recover full artifacts with the protocol in
|