gentle-pi 0.3.4 → 0.3.6
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 +14 -15
- package/assets/agents/sdd-apply.md +4 -5
- package/assets/agents/sdd-archive.md +2 -3
- package/assets/agents/sdd-design.md +2 -4
- package/assets/agents/sdd-explore.md +2 -4
- package/assets/agents/sdd-init.md +2 -4
- package/assets/agents/sdd-onboard.md +2 -4
- package/assets/agents/sdd-proposal.md +2 -4
- package/assets/agents/sdd-spec.md +2 -3
- package/assets/agents/sdd-sync.md +2 -3
- package/assets/agents/sdd-tasks.md +2 -3
- package/assets/agents/sdd-verify.md +4 -5
- package/assets/orchestrator.md +22 -14
- package/extensions/gentle-ai.ts +83 -27
- package/extensions/skill-registry.ts +62 -103
- package/lib/sdd-preflight.ts +36 -7
- package/package.json +1 -1
- package/skills/gentle-ai/SKILL.md +1 -1
- package/skills/judgment-day/SKILL.md +1 -1
- package/skills/judgment-day/references/prompts-and-formats.md +6 -6
- package/skills/skill-registry/SKILL.md +51 -0
- package/tests/runtime-harness.mjs +125 -22
- package/tests/skill-registry.test.ts +93 -55
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ Then start Pi in a project:
|
|
|
82
82
|
pi
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
`gentle-pi`
|
|
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
|
|
|
@@ -213,13 +213,12 @@ Engram-only mode is different by design: Engram is working memory and does not m
|
|
|
213
213
|
|
|
214
214
|
## SDD preflight and project files
|
|
215
215
|
|
|
216
|
-
`gentle-pi` does not
|
|
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.
|
|
217
217
|
|
|
218
218
|
```text
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
.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
|
|
223
222
|
```
|
|
224
223
|
|
|
225
224
|
The preflight choices are reused for later SDD flows in the same session:
|
|
@@ -229,7 +228,7 @@ The preflight choices are reused for later SDD flows in the same session:
|
|
|
229
228
|
- PR chaining strategy: `auto-forecast`, `ask-always`, `single-pr-default`, or `force-chained`;
|
|
230
229
|
- review budget line threshold.
|
|
231
230
|
|
|
232
|
-
It does **not** overwrite existing
|
|
231
|
+
It does **not** overwrite existing global assets unless you explicitly run:
|
|
233
232
|
|
|
234
233
|
```text
|
|
235
234
|
/gentle-ai:install-sdd --force
|
|
@@ -294,15 +293,15 @@ Behavior:
|
|
|
294
293
|
- startup refresh is skipped when Pi starts with `--no-skills` / `-ns`, `--no-skill-registry`, or `GENTLE_PI_NO_SKILL_REGISTRY=1`;
|
|
295
294
|
- `/skill-registry:refresh` forces regeneration;
|
|
296
295
|
- a best-effort watcher refreshes when skill files change;
|
|
297
|
-
-
|
|
296
|
+
- the registry indexes skill names, full descriptions, scope, and exact `SKILL.md` paths without copying skill body rules.
|
|
298
297
|
|
|
299
298
|
Skill discovery is a guardrail, not a workflow router: it helps Pi load the right skill without forcing extra ceremony.
|
|
300
299
|
|
|
301
300
|
Delegation contract:
|
|
302
301
|
|
|
303
|
-
- parent/orchestrator resolves project/user skills from the registry and
|
|
302
|
+
- parent/orchestrator resolves project/user skills from the registry and passes matching paths under `## Skills to load before work`;
|
|
304
303
|
- SDD subagents still use their assigned executor/phase skill;
|
|
305
|
-
- during normal runtime, subagents should not independently discover
|
|
304
|
+
- during normal runtime, subagents should not independently discover additional project/user `SKILL.md` files or the registry;
|
|
306
305
|
- fallback loading is degraded self-healing and must be reported via `skill_resolution` as `fallback-registry`, `fallback-path`, or `none`.
|
|
307
306
|
|
|
308
307
|
## Persona modes
|
|
@@ -378,8 +377,8 @@ Legacy string entries are still accepted and treated as `model`-only config.
|
|
|
378
377
|
| `/gentle:models` | Opens global model + effort assignment UI. |
|
|
379
378
|
| `/gentle:persona` | Switches persona mode. |
|
|
380
379
|
| `/sdd-init` | Initializes or refreshes `openspec/config.yaml`. |
|
|
381
|
-
| `/gentle-ai:install-sdd` |
|
|
382
|
-
| `/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. |
|
|
383
382
|
| `/skill-registry:refresh` | Regenerates `.atl/skill-registry.md`. |
|
|
384
383
|
|
|
385
384
|
Startup flag:
|
|
@@ -433,13 +432,13 @@ Memory contract for SDD delegation:
|
|
|
433
432
|
|
|
434
433
|
| Path | Purpose |
|
|
435
434
|
| ------------------------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
436
|
-
| `extensions/gentle-ai.ts` | Injects identity,
|
|
435
|
+
| `extensions/gentle-ai.ts` | Injects identity, ensures global SDD assets, registers commands, applies model config, and protects shell execution. |
|
|
437
436
|
| `extensions/startup-banner.ts` | Shows the rose startup intro, compact runtime panel, and collaboration credit. |
|
|
438
437
|
| `extensions/sdd-init.ts` | Registers `/sdd-init` for OpenSpec initialization. |
|
|
439
438
|
| `extensions/skill-registry.ts` | Maintains `.atl/skill-registry.md` from project/user skills. |
|
|
440
439
|
| `assets/orchestrator.md` | Parent-session orchestration contract. |
|
|
441
|
-
| `assets/agents/` | SDD agents
|
|
442
|
-
| `assets/chains/` | SDD chains
|
|
440
|
+
| `assets/agents/` | SDD agents installed as global Pi runtime assets. |
|
|
441
|
+
| `assets/chains/` | SDD chains installed as global Pi runtime assets. |
|
|
443
442
|
| `assets/support/` | Strict TDD support docs for apply/verify phases. |
|
|
444
443
|
| `skills/` | Gentle AI delivery and collaboration skills. |
|
|
445
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
|
|
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
|
|
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`
|
|
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
|
|
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,16 +2,15 @@
|
|
|
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
|
|
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
|
|
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
|
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
name: sdd-spec
|
|
3
3
|
description: Write SDD delta specs with requirements and scenarios.
|
|
4
4
|
tools: read, grep, glob, write, edit
|
|
5
|
-
inheritProjectContext: true
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
You are the SDD spec 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
|
|
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
|
|
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
|
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
name: sdd-sync
|
|
3
3
|
description: Sync verified SDD delta specs into OpenSpec canonical specs without archiving the change.
|
|
4
4
|
tools: read, grep, glob, write, edit, bash
|
|
5
|
-
inheritProjectContext: true
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
You are the SDD sync 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
|
|
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
|
|
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
|
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
name: sdd-tasks
|
|
3
3
|
description: Break SDD design/specs into implementation tasks with review workload forecast.
|
|
4
4
|
tools: read, grep, glob, write, edit
|
|
5
|
-
inheritProjectContext: true
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
You are the SDD tasks 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
|
|
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
|
|
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
|
|
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
name: sdd-verify
|
|
3
3
|
description: Verify implementation against SDD specs, tasks, strict TDD evidence, and review workload boundaries.
|
|
4
4
|
tools: read, grep, glob, bash, write, edit
|
|
5
|
-
inheritProjectContext: true
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
You are the SDD verify 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
|
|
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
|
|
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
|
|
|
@@ -32,14 +31,14 @@ Run required focused and full verification commands when available. Report comma
|
|
|
32
31
|
|
|
33
32
|
If strict TDD is active in `openspec/config.yaml`, parent prompt, or `apply-progress.md`:
|
|
34
33
|
|
|
35
|
-
1. Read `.pi/gentle-ai/support/strict-tdd-verify.md`
|
|
34
|
+
1. Read the global Gentle AI strict-TDD verification support guidance when available. If a project-local `.pi/gentle-ai/support/strict-tdd-verify.md` exists, treat it as an override.
|
|
36
35
|
2. Verify `apply-progress.md` contains a `TDD Cycle Evidence` table.
|
|
37
36
|
3. Cross-reference reported test files against the actual codebase.
|
|
38
37
|
4. Run the relevant tests and confirm GREEN is still true.
|
|
39
38
|
5. Audit assertion quality in changed/created tests: no tautologies, ghost loops, type-only assertions alone, smoke-only tests, or implementation-detail CSS assertions.
|
|
40
39
|
6. Flag missing or incomplete TDD evidence as CRITICAL.
|
|
41
40
|
|
|
42
|
-
If strict TDD is active and
|
|
41
|
+
If strict TDD is active and no external support file is available, perform the checks above. Do not skip TDD compliance.
|
|
43
42
|
|
|
44
43
|
## Review Workload Verification
|
|
45
44
|
|
package/assets/orchestrator.md
CHANGED
|
@@ -181,6 +181,13 @@ proposal → design ┘
|
|
|
181
181
|
|
|
182
182
|
Do not ask SDD setup questions on session start. The first time the user initiates an SDD process in a Pi session, run the SDD preflight once and keep those choices for the rest of that session. Runtime trigger detection is intentionally deterministic: slash SDD flows and `/sdd-init` run preflight automatically; for natural-language requests, the parent/orchestrator decides semantically whether SDD is needed and must run/reuse `/gentle-ai:sdd-preflight` before continuing.
|
|
183
183
|
|
|
184
|
+
**Hard gate:** `openspec/config.yaml`, existing SDD changes, installed `.pi`/global SDD assets, or a todo named "preflight" are not session preflight. They are project context only. Do not mark SDD preflight complete, start `sdd-init`, launch SDD subagents/chains, or move to explore/proposal/spec/design/tasks until this session has either:
|
|
185
|
+
|
|
186
|
+
1. an injected `## SDD Session Preflight` block, or
|
|
187
|
+
2. an explicit user answer in the current conversation covering all four preflight choices below.
|
|
188
|
+
|
|
189
|
+
If neither exists and `/gentle-ai:sdd-preflight` cannot be invoked from the current context, ask the four choices manually with `ask_user_question` before any SDD phase work. Treat missing Engram availability as a reason to ask/confirm artifact store, not as permission to assume defaults.
|
|
190
|
+
|
|
184
191
|
The preflight captures:
|
|
185
192
|
|
|
186
193
|
- execution mode: `interactive` or `auto`;
|
|
@@ -188,11 +195,11 @@ The preflight captures:
|
|
|
188
195
|
- chained PR strategy: `auto-forecast`, `ask-always`, `single-pr-default`, or `force-chained`;
|
|
189
196
|
- review budget in changed lines.
|
|
190
197
|
|
|
191
|
-
|
|
198
|
+
The package should ensure SDD assets are present as global Pi runtime assets without the user needing to remember per-project setup commands. If assets are missing, install them non-destructively into:
|
|
192
199
|
|
|
193
200
|
```text
|
|
194
|
-
|
|
195
|
-
|
|
201
|
+
~/.pi/agent/agents/sdd-*.md
|
|
202
|
+
~/.pi/agent/chains/sdd-*.chain.md
|
|
196
203
|
```
|
|
197
204
|
|
|
198
205
|
Manual install commands are recovery/debug paths, not the happy path. `/gentle-ai:sdd-preflight` and `/gentle:sdd-preflight` are the explicit preflight commands for agent/orchestrator use. If the user explicitly changes SDD preferences later in the same session, follow the new instruction.
|
|
@@ -207,7 +214,7 @@ In this Pi package, the default local artifact is:
|
|
|
207
214
|
openspec/config.yaml
|
|
208
215
|
```
|
|
209
216
|
|
|
210
|
-
If it is missing, ask the user for the minimal information needed or run `/sdd-init` if available. Do not proceed with a substantial SDD flow while pretending project context
|
|
217
|
+
If it is missing, ask the user for the minimal information needed or run `/sdd-init` if available. This init guard runs after the session preflight gate above; project config presence or absence never substitutes for session preflight choices. Do not proceed with a substantial SDD flow while pretending project context, testing capability, or session preflight choices are known.
|
|
211
218
|
|
|
212
219
|
## Artifact Store Policy
|
|
213
220
|
|
|
@@ -260,22 +267,23 @@ The parent should synthesize these envelopes, not paste long raw reports unless
|
|
|
260
267
|
The parent resolves skills once per session or before first delegation:
|
|
261
268
|
|
|
262
269
|
1. Read `.atl/skill-registry.md` if present.
|
|
263
|
-
2.
|
|
264
|
-
3.
|
|
265
|
-
4.
|
|
270
|
+
2. Match task context and target files against the `Trigger / description` column.
|
|
271
|
+
3. Pass only matching `Path` values to subagents under `## Skills to load before work`.
|
|
272
|
+
4. Tell subagents to read those exact `SKILL.md` files before reading, writing, reviewing, testing, or creating artifacts.
|
|
273
|
+
5. If the registry is absent, continue but mention that project-specific skill paths were unavailable.
|
|
266
274
|
|
|
267
|
-
Subagents should receive
|
|
275
|
+
Subagents should receive exact indexed paths. They should not have to rediscover the registry.
|
|
268
276
|
|
|
269
|
-
Important distinction: SDD subagents still use their assigned executor/phase skill (for example `sdd-apply`, `sdd-design`, or `sdd-verify`). What they should not do during normal runtime is independently discover
|
|
277
|
+
Important distinction: SDD subagents still use their assigned executor/phase skill (for example `sdd-apply`, `sdd-design`, or `sdd-verify`). What they should not do during normal runtime is independently discover additional project/user `SKILL.md` files or the registry. The parent passes selected project/user skill paths explicitly.
|
|
270
278
|
|
|
271
279
|
If a subagent reports `skill_resolution`, interpret it as project/user skill resolution:
|
|
272
280
|
|
|
273
|
-
- `injected`: parent supplied `##
|
|
274
|
-
- `fallback-registry`: subagent self-loaded
|
|
275
|
-
- `fallback-path`: subagent loaded explicit
|
|
281
|
+
- `paths-injected`: parent supplied `## Skills to load before work` with exact `SKILL.md` paths.
|
|
282
|
+
- `fallback-registry`: subagent self-loaded skill paths from the registry because parent paths were missing; degraded but auditable.
|
|
283
|
+
- `fallback-path`: subagent loaded explicit skill paths because parent paths were missing; degraded but auditable.
|
|
276
284
|
- `none`: no project/user skills were loaded.
|
|
277
285
|
|
|
278
|
-
If any subagent reports a fallback instead of `injected`, treat it as an orchestration gap and correct future delegations by
|
|
286
|
+
If any subagent reports a fallback instead of `paths-injected`, treat it as an orchestration gap and correct future delegations by passing exact indexed paths directly.
|
|
279
287
|
|
|
280
288
|
## Intent-Driven Skill Discovery
|
|
281
289
|
|
|
@@ -284,7 +292,7 @@ For skill-shaped requests, do not treat injected `<available_skills>` as complet
|
|
|
284
292
|
Discovery order:
|
|
285
293
|
|
|
286
294
|
1. Read `.atl/skill-registry.md` when present.
|
|
287
|
-
2. If the registry suggests a specific skill, load
|
|
295
|
+
2. If the registry suggests a specific skill, load the indexed `SKILL.md` path before acting.
|
|
288
296
|
3. If the expected skill is absent from the registry but the request clearly names a known workflow, search common project/user skill dirs such as `./skills`, `.pi/skills`, `.agents/skills`, `~/.config/opencode/skills`, `~/.claude/skills`, and other configured skill roots.
|
|
289
297
|
4. Prefer the most specific project skill over a global skill with the same intent.
|
|
290
298
|
5. If no matching skill exists, continue with the smallest safe fallback and say which expected skill was unavailable.
|