gentle-pi 0.3.3 → 0.3.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/README.md CHANGED
@@ -82,7 +82,7 @@ Then start Pi in a project:
82
82
  pi
83
83
  ```
84
84
 
85
- `gentle-pi` waits until the first SDD flow in a session, then runs a one-time SDD preflight and installs local SDD assets without overwriting your edits. Slash SDD commands trigger this automatically; for natural-language requests, el Gentleman decides when SDD is needed and runs the explicit preflight first.
85
+ `gentle-pi` provides SDD agents as global Pi runtime assets, not per-project setup. The first SDD flow in a session still runs a one-time SDD preflight for preferences; for natural-language requests, el Gentleman decides when SDD is needed and runs the explicit preflight first.
86
86
 
87
87
  ## Quick start
88
88
 
@@ -137,7 +137,18 @@ Fresh reviewers are intentionally not token-saving devices; they buy independent
137
137
  ## SDD/OpenSpec flow
138
138
 
139
139
  ```text
140
- init → explore → proposal → spec → design → tasks → apply → verify → archive
140
+ init
141
+
142
+ explore → proposal → spec ─┬→ design ─┐
143
+ └─────────┴→ tasks → apply → verify → sync → archive
144
+ ```
145
+
146
+ The main loop is intentionally file-backed when you choose `openspec` or `both`:
147
+
148
+ ```text
149
+ planning artifacts implementation evidence canonical update
150
+ ────────────────── ─────────────────────── ────────────────
151
+ proposal/spec/design/tasks → apply-progress/verify-report → sync-report → archive-report
141
152
  ```
142
153
 
143
154
  For substantial work, the parent session coordinates the flow and each phase writes artifacts. That gives you:
@@ -147,17 +158,67 @@ For substantial work, the parent session coordinates the flow and each phase wri
147
158
  - task plans reviewers can reason about;
148
159
  - implementation evidence;
149
160
  - verification reports;
161
+ - sync reports that update canonical specs while keeping the change active;
150
162
  - archive notes for future agents.
151
163
 
164
+ ### OpenSpec artifact model
165
+
166
+ `gentle-pi` treats OpenSpec-compatible behavior as part of the harness. You do not need to install the external OpenSpec CLI/package for SDD.
167
+
168
+ In file-backed modes, canonical accepted behavior lives in `openspec/specs/`, while active changes carry deltas under `openspec/changes/`:
169
+
170
+ ```text
171
+ openspec/
172
+ ├── specs/ # accepted source of truth
173
+ │ └── {domain}/spec.md
174
+ └── changes/
175
+ ├── {change}/ # active work
176
+ │ ├── proposal.md
177
+ │ ├── specs/{domain}/spec.md # full spec or delta spec
178
+ │ ├── design.md
179
+ │ ├── tasks.md
180
+ │ ├── apply-progress.md
181
+ │ ├── verify-report.md
182
+ │ └── sync-report.md
183
+ └── archive/YYYY-MM-DD-{change}/ # immutable audit trail
184
+ ```
185
+
186
+ Delta flow:
187
+
188
+ ```text
189
+ openspec/changes/{change}/specs/{domain}/spec.md
190
+
191
+ │ sdd-sync applies ADDED / MODIFIED / REMOVED
192
+
193
+ openspec/specs/{domain}/spec.md
194
+
195
+ │ sdd-archive moves the completed change folder
196
+
197
+ openspec/changes/archive/YYYY-MM-DD-{change}/
198
+ ```
199
+
200
+ When a canonical spec already exists, change specs use requirement operation sections:
201
+
202
+ ```markdown
203
+ ## ADDED Requirements
204
+
205
+ ## MODIFIED Requirements
206
+
207
+ ## REMOVED Requirements
208
+ ```
209
+
210
+ `MODIFIED` requirements must include the full requirement block, including still-valid scenarios, because sync replaces the canonical block by requirement name. `sdd-sync` syncs file-backed deltas into `openspec/specs/{domain}/spec.md` while keeping the change active; `sdd-archive` then moves the synced change to `openspec/changes/archive/YYYY-MM-DD-{change}/`.
211
+
212
+ Engram-only mode is different by design: Engram is working memory and does not maintain a canonical spec merge layer. Use `openspec` or `both` (hybrid file + memory persistence) when you need canonical spec evolution.
213
+
152
214
  ## SDD preflight and project files
153
215
 
154
- `gentle-pi` does not interrupt every new session. Slash SDD flows such as `/sdd-*`, `/sdd-init`, and the explicit `/gentle-ai:sdd-preflight` command run a lazy preflight, ask for session-scoped SDD preferences, and then copy these assets if they are missing. For natural-language requests, the parent agent decides whether the work should use SDD and must run/reuse `/gentle-ai:sdd-preflight` before continuing.
216
+ `gentle-pi` does not require SDD agents to be copied into every project. The package ensures global Pi SDD assets exist under the Pi agent home and treats project-local files only as overrides/debug copies. Slash SDD flows such as `/sdd-*`, `/sdd-init`, and the explicit `/gentle-ai:sdd-preflight` command run a lazy preflight and ask for session-scoped SDD preferences. For natural-language requests, the parent agent decides whether the work should use SDD and must run/reuse `/gentle-ai:sdd-preflight` before continuing.
155
217
 
156
218
  ```text
157
- .pi/agents/sdd-*.md
158
- .pi/chains/sdd-*.chain.md
159
- .pi/gentle-ai/support/strict-tdd.md
160
- .pi/gentle-ai/support/strict-tdd-verify.md
219
+ ~/.pi/agent/agents/sdd-*.md
220
+ ~/.pi/agent/chains/sdd-*.chain.md
221
+ ~/.pi/agent/gentle-ai/support/strict-tdd*.md
161
222
  ```
162
223
 
163
224
  The preflight choices are reused for later SDD flows in the same session:
@@ -167,7 +228,7 @@ The preflight choices are reused for later SDD flows in the same session:
167
228
  - PR chaining strategy: `auto-forecast`, `ask-always`, `single-pr-default`, or `force-chained`;
168
229
  - review budget line threshold.
169
230
 
170
- It does **not** overwrite existing files unless you explicitly run:
231
+ It does **not** overwrite existing global assets unless you explicitly run:
171
232
 
172
233
  ```text
173
234
  /gentle-ai:install-sdd --force
@@ -232,15 +293,15 @@ Behavior:
232
293
  - startup refresh is skipped when Pi starts with `--no-skills` / `-ns`, `--no-skill-registry`, or `GENTLE_PI_NO_SKILL_REGISTRY=1`;
233
294
  - `/skill-registry:refresh` forces regeneration;
234
295
  - a best-effort watcher refreshes when skill files change;
235
- - `## Compact Rules` wins when present; otherwise the registry extracts compact rules from `## Hard Rules`, `## Critical Rules`, `## Critical Patterns`, `## Voice Rules`, and `## Decision Gates` using bullets, numbered lists, or simple tables.
296
+ - the registry indexes skill names, full descriptions, scope, and exact `SKILL.md` paths without copying skill body rules.
236
297
 
237
298
  Skill discovery is a guardrail, not a workflow router: it helps Pi load the right skill without forcing extra ceremony.
238
299
 
239
300
  Delegation contract:
240
301
 
241
- - parent/orchestrator resolves project/user skills from the registry and injects compact rule text under `## Project Standards (auto-resolved)`;
302
+ - parent/orchestrator resolves project/user skills from the registry and passes matching paths under `## Skills to load before work`;
242
303
  - SDD subagents still use their assigned executor/phase skill;
243
- - during normal runtime, subagents should not independently discover or load additional project/user `SKILL.md` files or the registry;
304
+ - during normal runtime, subagents should not independently discover additional project/user `SKILL.md` files or the registry;
244
305
  - fallback loading is degraded self-healing and must be reported via `skill_resolution` as `fallback-registry`, `fallback-path`, or `none`.
245
306
 
246
307
  ## Persona modes
@@ -316,8 +377,8 @@ Legacy string entries are still accepted and treated as `model`-only config.
316
377
  | `/gentle:models` | Opens global model + effort assignment UI. |
317
378
  | `/gentle:persona` | Switches persona mode. |
318
379
  | `/sdd-init` | Initializes or refreshes `openspec/config.yaml`. |
319
- | `/gentle-ai:install-sdd` | Reinstalls SDD assets without overwriting local files. |
320
- | `/gentle-ai:install-sdd --force` | Force-refreshes installed SDD assets. |
380
+ | `/gentle-ai:install-sdd` | Repairs missing global SDD runtime assets without overwriting files. |
381
+ | `/gentle-ai:install-sdd --force` | Force-refreshes installed global SDD assets. |
321
382
  | `/skill-registry:refresh` | Regenerates `.atl/skill-registry.md`. |
322
383
 
323
384
  Startup flag:
@@ -371,13 +432,13 @@ Memory contract for SDD delegation:
371
432
 
372
433
  | Path | Purpose |
373
434
  | ------------------------------ | ---------------------------------------------------------------------------------------------------------- |
374
- | `extensions/gentle-ai.ts` | Injects identity, installs assets, registers commands, applies model config, and protects shell execution. |
435
+ | `extensions/gentle-ai.ts` | Injects identity, ensures global SDD assets, registers commands, applies model config, and protects shell execution. |
375
436
  | `extensions/startup-banner.ts` | Shows the rose startup intro, compact runtime panel, and collaboration credit. |
376
437
  | `extensions/sdd-init.ts` | Registers `/sdd-init` for OpenSpec initialization. |
377
438
  | `extensions/skill-registry.ts` | Maintains `.atl/skill-registry.md` from project/user skills. |
378
439
  | `assets/orchestrator.md` | Parent-session orchestration contract. |
379
- | `assets/agents/` | SDD agents copied into `.pi/agents/`. |
380
- | `assets/chains/` | SDD chains copied into `.pi/chains/`. |
440
+ | `assets/agents/` | SDD agents installed as global Pi runtime assets. |
441
+ | `assets/chains/` | SDD chains installed as global Pi runtime assets. |
381
442
  | `assets/support/` | Strict TDD support docs for apply/verify phases. |
382
443
  | `skills/` | Gentle AI delivery and collaboration skills. |
383
444
  | `prompts/` | Gentle-prefixed prompt templates. |
@@ -2,16 +2,15 @@
2
2
  name: sdd-apply
3
3
  description: Implement SDD tasks with strict TDD evidence and review workload guard.
4
4
  tools: read, grep, glob, edit, write, bash
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD apply executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
15
  ## Memory Contract
17
16
 
@@ -53,13 +52,13 @@ If no delivery decision is provided, STOP before writing code and return `blocke
53
52
 
54
53
  If `openspec/config.yaml` declares strict TDD and a test runner, or the parent prompt says strict TDD is active:
55
54
 
56
- 1. Read `.pi/gentle-ai/support/strict-tdd.md` if present.
55
+ 1. Read the global Gentle AI strict-TDD support guidance when available. If a project-local `.pi/gentle-ai/support/strict-tdd.md` exists, treat it as an override.
57
56
  2. Follow RED → GREEN → TRIANGULATE → REFACTOR for every assigned task.
58
57
  3. Do not write production code before a failing test or equivalent RED test is written.
59
58
  4. Run relevant focused tests during GREEN and after refactors.
60
59
  5. Write a `TDD Cycle Evidence` table in `apply-progress.md`.
61
60
 
62
- If strict TDD is active and `.pi/gentle-ai/support/strict-tdd.md` is missing, follow the RED/GREEN/TRIANGULATE/REFACTOR contract from this prompt and report the missing support file as a risk. Do not silently fall back to standard mode.
61
+ If strict TDD is active and no external support file is available, follow the RED/GREEN/TRIANGULATE/REFACTOR contract from this prompt. Do not silently fall back to standard mode.
63
62
 
64
63
  ## Standard Mode
65
64
 
@@ -2,25 +2,143 @@
2
2
  name: sdd-archive
3
3
  description: Archive a verified SDD change into OpenSpec source specs.
4
4
  tools: read, grep, glob, write, edit, bash
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD archive executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
- - Read verify report before archiving.
17
- - Merge accepted deltas into `openspec/specs/` and move the change to archive.
18
- - Preserve audit trail; never delete active artifacts silently.
19
- - Do NOT launch child subagents. Parent/orchestrator owns delegation.
20
- - Return archived paths and any migration risks.
21
15
  ## Memory Contract
22
16
 
23
17
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
24
18
 
25
- When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
19
+ When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory-backed modes (`engram` or `both` / `hybrid`), use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, `sdd/<change>/verify-report`, or `sdd/<change>/archive-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
20
+
21
+ ## Purpose
22
+
23
+ Archive a completed SDD change. In file-backed modes, this requires canonical spec sync to be complete (normally via `sdd-sync`), then moves the active change folder to the dated archive. In Engram-only mode, this records traceability without creating a canonical merge layer.
24
+
25
+ ## Archive Preconditions
26
+
27
+ Before archiving, read:
28
+
29
+ - `openspec/changes/{change}/proposal.md`
30
+ - `openspec/changes/{change}/specs/` or memory artifact `sdd/{change}/spec`
31
+ - `openspec/changes/{change}/design.md`
32
+ - `openspec/changes/{change}/tasks.md`
33
+ - `openspec/changes/{change}/verify-report.md`
34
+ - `openspec/changes/{change}/sync-report.md` when file-backed sync was run
35
+ - `openspec/config.yaml` when present
36
+
37
+ Stop with `blocked` if:
38
+
39
+ - the verification report is missing;
40
+ - the verification report is not clearly passing, or contains unresolved `FAIL`, `BLOCKED`, `CRITICAL`, or verification blockers;
41
+ - required artifacts are missing;
42
+ - tasks are incomplete and no explicit archive exception is recorded;
43
+ - file-backed mode has no successful `sync-report.md` and the parent prompt does not explicitly approve archive-time sync fallback;
44
+ - a legacy flat `openspec/changes/{change}/spec.md` is the only spec artifact in file-backed mode;
45
+ - the merge would be destructive and the parent prompt does not include explicit confirmation.
46
+
47
+ ## Artifact Store Modes
48
+
49
+ - `openspec`: require completed filesystem sync, then perform archive move.
50
+ - `both` / `hybrid`: require completed filesystem sync, move the archive, and save the archive report to memory when tools are available.
51
+ - `engram`: skip filesystem sync/archive. Engram is working memory; do not create or require `sdd/canonical/<domain>/spec` topics. Record proposal/spec/design/tasks/verify observation IDs in the archive report.
52
+ - `none`: return a closure summary only.
53
+
54
+ ## Archive-Time Sync Fallback
55
+
56
+ Prefer `sdd-sync` before `sdd-archive`. If no successful `sync-report.md` exists, archive may perform the same file-backed sync only when the parent prompt explicitly approves archive-time sync fallback.
57
+
58
+ For each domain spec in:
59
+
60
+ ```text
61
+ openspec/changes/{change}/specs/{domain}/spec.md
62
+ ```
63
+
64
+ sync into:
65
+
66
+ ```text
67
+ openspec/specs/{domain}/spec.md
68
+ ```
69
+
70
+ ### New canonical spec
71
+
72
+ If `openspec/specs/{domain}/spec.md` does not exist, treat the change spec as a full domain spec and copy it to the canonical path.
73
+
74
+ ### Existing canonical spec
75
+
76
+ If the canonical spec exists, apply operation sections by requirement name:
77
+
78
+ ```text
79
+ ## ADDED Requirements -> append each requirement to the canonical Requirements section
80
+ ## MODIFIED Requirements -> replace the full matching canonical requirement block
81
+ ## REMOVED Requirements -> delete the full matching canonical requirement block
82
+ ```
83
+
84
+ Merge rules:
85
+
86
+ - Match requirements by exact `### Requirement: {Name}` heading.
87
+ - Preserve every canonical requirement not mentioned by the delta.
88
+ - Preserve heading hierarchy and Markdown formatting.
89
+ - Fail or block if a MODIFIED or REMOVED requirement does not exist in the canonical spec.
90
+ - Warn if another active change under `openspec/changes/*/specs/{domain}/spec.md` touches the same domain.
91
+ - Report all ADDED/MODIFIED/REMOVED requirement names in the archive report.
92
+
93
+ ## Destructive Merge Guard
94
+
95
+ Before applying REMOVED requirements or large MODIFIED blocks:
96
+
97
+ - list affected requirement names;
98
+ - summarize the approximate removed/replaced line count;
99
+ - warn the parent/orchestrator;
100
+ - continue only if the parent prompt records explicit approval for the destructive sync.
101
+
102
+ Verification alone is not approval for destructive canonical spec changes.
103
+
104
+ Never silently drop scenarios from a MODIFIED requirement. If a MODIFIED delta appears partial, block and ask for a corrected full requirement block.
105
+
106
+ ## Move to Archive
107
+
108
+ After successful file-backed sync, move:
109
+
110
+ ```text
111
+ openspec/changes/{change}/
112
+ -> openspec/changes/archive/YYYY-MM-DD-{change}/
113
+ ```
114
+
115
+ Use today's ISO date. Create `openspec/changes/archive/` if missing. The archive is an audit trail; never delete or modify archived changes silently.
116
+
117
+ ## Archive Report
118
+
119
+ Archive report handling depends on mode:
120
+
121
+ - `openspec`: write `openspec/changes/{change}/archive-report.md` before moving the change.
122
+ - `both` / `hybrid`: write the file report before moving the change and save `sdd/{change}/archive-report` to memory when tools are available.
123
+ - `engram`: save or return the archive report with observation-ID traceability only; do not perform filesystem sync/archive.
124
+
125
+ Include:
126
+
127
+ - pass/fail archive status;
128
+ - artifacts read;
129
+ - domains synced;
130
+ - ADDED/MODIFIED/REMOVED requirement names;
131
+ - active same-domain change warnings;
132
+ - destructive merge approvals or blockers;
133
+ - archived path;
134
+ - memory observation IDs when using Engram or `both` / `hybrid` mode.
135
+
136
+ ## Rules
137
+
138
+ - Read verify report before archiving.
139
+ - Require file-backed specs to be synced before moving the change to archive; use archive-time sync fallback only with explicit parent approval.
140
+ - Preserve audit trail; never delete active artifacts silently.
141
+ - Apply `rules.archive` from `openspec/config.yaml` when present.
142
+ - Do NOT launch child subagents. Parent/orchestrator owns delegation.
26
143
 
144
+ Return the standard phase envelope with status, executive_summary, artifacts, next_recommended, risks, and skill_resolution.
@@ -2,16 +2,15 @@
2
2
  name: sdd-design
3
3
  description: Design the technical approach for an SDD change.
4
4
  tools: read, grep, glob, write, edit
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD design executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
15
  - Read proposal, specs, and relevant code before designing.
17
16
  - Document decisions, data flow, file changes, contracts, tests, and rollout.
@@ -23,4 +22,3 @@ If Project Standards are missing, explicit fallback loading is allowed only as d
23
22
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
24
23
 
25
24
  When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
26
-
@@ -2,16 +2,15 @@
2
2
  name: sdd-explore
3
3
  description: Explore an SDD change idea before proposal.
4
4
  tools: read, grep, glob, webfetch
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD explore executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
15
  - Read OpenSpec/project context before conclusions.
17
16
  - Produce exploration notes only; do not implement.
@@ -23,4 +22,3 @@ If Project Standards are missing, explicit fallback loading is allowed only as d
23
22
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
24
23
 
25
24
  When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
26
-
@@ -3,16 +3,15 @@ name: sdd-init
3
3
  description: Initialize project SDD context, testing capabilities, and skill registry.
4
4
  model: openai-codex/gpt-5.3-codex
5
5
  tools: read, grep, glob, write, bash
6
- inheritProjectContext: true
7
6
  ---
8
7
 
9
8
  You are the SDD init executor for Gentle AI.
10
9
 
11
10
  ## Skill Resolution Contract
12
11
 
13
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
12
+ 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.
14
13
 
15
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
14
+ 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.
16
15
 
17
16
  - Inspect the project stack, test runner, conventions, and existing docs.
18
17
  - If `openspec/config.yaml` is missing, create it automatically with project context, `strict_tdd`, phase rules, and testing runner details.
@@ -25,4 +24,3 @@ If Project Standards are missing, explicit fallback loading is allowed only as d
25
24
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
26
25
 
27
26
  When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
28
-
@@ -2,16 +2,15 @@
2
2
  name: sdd-onboard
3
3
  description: Guide a user through a complete SDD cycle on a small real project change.
4
4
  tools: read, grep, glob, write, edit, bash
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD onboard executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
15
  - Pick or ask for a small, real, low-risk improvement that can demonstrate the full SDD lifecycle.
17
16
  - Teach by doing: create real artifacts for explore, proposal, spec, design, tasks, apply, verify, and archive where appropriate.
@@ -24,4 +23,3 @@ If Project Standards are missing, explicit fallback loading is allowed only as d
24
23
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
25
24
 
26
25
  When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
27
-
@@ -2,16 +2,15 @@
2
2
  name: sdd-proposal
3
3
  description: Write an SDD proposal for an approved change idea.
4
4
  tools: read, grep, glob, write, edit
5
- inheritProjectContext: true
6
5
  ---
7
6
 
8
7
  You are the SDD proposal executor for Gentle AI.
9
8
 
10
9
  ## Skill Resolution Contract
11
10
 
12
- Use your assigned executor/phase skill for this SDD phase. For project/user skills, prefer the parent-injected `## Project Standards (auto-resolved)` block; do not independently discover or load additional project/user `SKILL.md` files or the registry during normal runtime.
11
+ 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.
13
12
 
14
- If Project Standards are missing, explicit fallback loading is allowed only as degraded self-healing. Report `skill_resolution` as `injected`, `fallback-registry`, `fallback-path`, or `none`; fallbacks mean the parent should inject compact rules next time.
13
+ 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.
15
14
 
16
15
  - Read exploration and project standards before writing.
17
16
  - Write `openspec/changes/{change}/proposal.md`.
@@ -23,4 +22,3 @@ If Project Standards are missing, explicit fallback loading is allowed only as d
23
22
  The parent/orchestrator owns memory retrieval: use memory context passed in the prompt and do not independently search Engram/memory during normal runtime unless explicitly instructed to retrieve a specific artifact or observation.
24
23
 
25
24
  When callable memory tools are available, save significant discoveries, decisions, bug fixes, and completed SDD phase artifacts before returning. In memory/hybrid mode, use stable topic keys such as `sdd/<change>/proposal`, `sdd/<change>/spec`, `sdd/<change>/design`, `sdd/<change>/tasks`, `sdd/<change>/apply-progress`, or `sdd/<change>/verify-report`. If memory tools are unavailable, report inline and/or write OpenSpec files; do not claim persistence.
26
-