gentle-pi 0.11.0 → 0.11.2
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 +17 -29
- package/assets/agents/sdd-init.md +1 -0
- package/assets/orchestrator.md +6 -1
- package/assets/sdd-orchestrator-workflow.md +7 -3
- package/extensions/gentle-ai.ts +197 -180
- package/extensions/startup-banner.ts +4 -6
- package/package.json +1 -1
- package/skills/gentle-ai/SKILL.md +1 -1
- package/tests/runtime-harness.mjs +237 -84
- package/tests/sdd-agent-tools.test.ts +70 -0
package/README.md
CHANGED
|
@@ -88,9 +88,9 @@ pi
|
|
|
88
88
|
## Quick start
|
|
89
89
|
|
|
90
90
|
```text
|
|
91
|
-
/gentle
|
|
92
|
-
/gentle
|
|
93
|
-
/gentle
|
|
91
|
+
/gentle:status Check package, SDD assets, OpenSpec, and global model config.
|
|
92
|
+
/gentle:doctor Run read-only diagnostics for SDD assets, config, tools, and guards.
|
|
93
|
+
/gentle:sdd-preflight Run or reuse the session SDD preflight explicitly.
|
|
94
94
|
/sdd-init Create or refresh openspec/config.yaml.
|
|
95
95
|
/gentle:models Assign global model/effort routing to SDD/custom agents.
|
|
96
96
|
/gentle:persona Switch between gentleman and neutral persona modes.
|
|
@@ -100,7 +100,7 @@ pi
|
|
|
100
100
|
Typical flow:
|
|
101
101
|
|
|
102
102
|
1. Open Pi in your repo.
|
|
103
|
-
2. Run `/gentle
|
|
103
|
+
2. Run `/gentle:status`.
|
|
104
104
|
3. Run `/sdd-init` once per project, or when test/project capabilities change. This also runs the session SDD preflight.
|
|
105
105
|
4. For a substantial change, ask Pi to use SDD. Natural-language requests are classified by the parent agent, not by brittle runtime regexes.
|
|
106
106
|
5. Review the phase artifacts instead of trusting floating chat context.
|
|
@@ -119,7 +119,7 @@ The goal is not ceremony. The goal is to avoid accidental chaos. Once a task sto
|
|
|
119
119
|
|
|
120
120
|
### Delegation triggers
|
|
121
121
|
|
|
122
|
-
`gentle-pi` keeps the parent session thin and delegates at the narrowest useful point. When the Pi Subagents extension is installed, the preferred runtime is the `subagent_*` tool family because it runs the user's configured project/global subagent definitions and preserves history/background behavior. If those tools are unavailable, the parent should fall back to Pi's native `Agent` tool or another available delegation mechanism. The requirement is delegation; the runtime is capability-dependent.
|
|
122
|
+
`gentle-pi` keeps the parent session thin and delegates at the narrowest useful point. When the Pi Subagents extension is installed, the preferred runtime is the `subagent_*` tool family because it runs the user's configured project/global subagent definitions and preserves history/background behavior. Use waiting/task mode when the parent must consume the result and continue the workflow; use background mode only for independent work where parent continuation is not required. If those tools are unavailable, the parent should fall back to Pi's native `Agent` tool or another available delegation mechanism. The requirement is delegation; the runtime is capability-dependent.
|
|
123
123
|
|
|
124
124
|
| Trigger | Required behavior |
|
|
125
125
|
| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
|
@@ -228,7 +228,7 @@ Engram-only mode is different by design: Engram is working memory and does not m
|
|
|
228
228
|
|
|
229
229
|
## SDD preflight and project files
|
|
230
230
|
|
|
231
|
-
`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
|
|
231
|
+
`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: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:sdd-preflight` before continuing.
|
|
232
232
|
|
|
233
233
|
```text
|
|
234
234
|
~/.pi/agent/agents/sdd-*.md
|
|
@@ -246,13 +246,12 @@ The preflight choices are reused for later SDD flows in the same session:
|
|
|
246
246
|
It does **not** overwrite existing global assets unless you explicitly run:
|
|
247
247
|
|
|
248
248
|
```text
|
|
249
|
-
/gentle
|
|
249
|
+
/gentle:install-sdd --force
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
-
Manual preflight
|
|
252
|
+
Manual preflight command:
|
|
253
253
|
|
|
254
254
|
```text
|
|
255
|
-
/gentle-ai:sdd-preflight
|
|
256
255
|
/gentle:sdd-preflight
|
|
257
256
|
```
|
|
258
257
|
|
|
@@ -356,10 +355,12 @@ A project can still override the global default with:
|
|
|
356
355
|
|
|
357
356
|
The modal discovers:
|
|
358
357
|
|
|
359
|
-
- project agents in `.pi/agents
|
|
360
|
-
- user agents in `~/.pi/agent/agents
|
|
358
|
+
- project agents in `.pi/subagents/`, `.pi/agents/`, and `.agents/`;
|
|
359
|
+
- user agents in `~/.pi/agent/subagents/`, `~/.pi/agent/agents/`, and `~/.agents/`;
|
|
361
360
|
- built-in agents from `pi-subagents-j0k3r` when present.
|
|
362
361
|
|
|
362
|
+
When applying routing, project agents write runtime profiles to `.pi/subagents.json`; global and built-in agents write profiles to `~/.pi/agent/subagents.json`.
|
|
363
|
+
|
|
363
364
|
Recommended model/effort shape:
|
|
364
365
|
|
|
365
366
|
| Agent kind | Recommended model | Recommended effort (`thinking`) |
|
|
@@ -400,8 +401,8 @@ Legacy string entries are still accepted and treated as `model`-only config.
|
|
|
400
401
|
|
|
401
402
|
| Command | What it does |
|
|
402
403
|
| -------------------------------- | ------------------------------------------------------------------- |
|
|
403
|
-
| `/gentle
|
|
404
|
-
| `/gentle
|
|
404
|
+
| `/gentle:status` | Shows package, SDD asset, OpenSpec, and global model config status. |
|
|
405
|
+
| `/gentle:doctor` | Runs read-only diagnostics for SDD assets, model/persona config, memory tools, and safety guards. |
|
|
405
406
|
| `/gentle:models` | Opens global model + effort assignment UI. Press `x` to export and `r` to restore saved routing. |
|
|
406
407
|
| `/gentle:persona` | Switches global persona mode, with project override support. |
|
|
407
408
|
| `/gentle:banner` | Configures startup banner rose, text logo, and color preset. |
|
|
@@ -409,14 +410,14 @@ Legacy string entries are still accepted and treated as `model`-only config.
|
|
|
409
410
|
| `/gentle:toggle-text-logo` | Toggles the startup text logo. |
|
|
410
411
|
| `/gentle:banner-color` | Selects a startup banner color preset. |
|
|
411
412
|
| `/sdd-init` | Initializes or refreshes `openspec/config.yaml`. |
|
|
412
|
-
| `/gentle
|
|
413
|
-
| `/gentle
|
|
413
|
+
| `/gentle:install-sdd` | Repairs missing global SDD runtime assets without overwriting files. |
|
|
414
|
+
| `/gentle:install-sdd --force` | Force-refreshes installed global SDD assets. |
|
|
414
415
|
| `/skill-registry:refresh` | Regenerates `.atl/skill-registry.md`. |
|
|
415
416
|
| `/skill-creation` | Creates or updates an LLM-first skill using the packaged `skill-creator` contract and style guide. |
|
|
416
417
|
|
|
417
418
|
Package-owned global SDD runtime assets are also refreshed automatically on session start when `gentle-pi` changes. Project-local `.pi/agents` and `.pi/chains` remain manual overrides and are never overwritten by startup refresh.
|
|
418
419
|
|
|
419
|
-
Startup banner settings are global and default to the current pink rose + text logo. Supported color presets are `pink`, `cyan`, `yellow`, and `green`.
|
|
420
|
+
Startup banner settings are global and default to the current pink rose + text logo. Supported color presets are `pink`, `cyan`, `yellow`, and `green`.
|
|
420
421
|
|
|
421
422
|
Startup flag:
|
|
422
423
|
|
|
@@ -426,19 +427,6 @@ pi --no-skill-registry
|
|
|
426
427
|
|
|
427
428
|
Use it when you want skills available normally but do not want Gentle AI to refresh/watch `.atl/skill-registry.md` on startup. `pi -ns` / `pi --no-skills` also skip the registry startup work because Pi is already disabling skill loading.
|
|
428
429
|
|
|
429
|
-
Compatibility aliases:
|
|
430
|
-
|
|
431
|
-
```text
|
|
432
|
-
/gentle-ai:models
|
|
433
|
-
/gentleman:models
|
|
434
|
-
/gentle-ai:persona
|
|
435
|
-
/gentleman:persona
|
|
436
|
-
/gentle-ai:banner
|
|
437
|
-
/gentle-ai:toggle-rose
|
|
438
|
-
/gentle-ai:toggle-text-logo
|
|
439
|
-
/gentle-ai:banner-color
|
|
440
|
-
```
|
|
441
|
-
|
|
442
430
|
## Included skills
|
|
443
431
|
|
|
444
432
|
- `gentle-ai` — harness discipline for controlled Pi work.
|
package/assets/orchestrator.md
CHANGED
|
@@ -82,7 +82,12 @@ Examples:
|
|
|
82
82
|
- run tests/builds and summarize results;
|
|
83
83
|
- fresh-context review.
|
|
84
84
|
|
|
85
|
-
Use the configured subagent runtime when available. Prefer the `subagent_*` tools (`subagent_run`, status/result helpers) when the Pi Subagents extension is installed, because they run the user's configured project/global subagent definitions and preserve history/background behavior.
|
|
85
|
+
Use the configured subagent runtime when available. Prefer the `subagent_*` tools (`subagent_run`, status/result helpers) when the Pi Subagents extension is installed, because they run the user's configured project/global subagent definitions and preserve history/background behavior.
|
|
86
|
+
|
|
87
|
+
Choose subagent mode by orchestration dependency, not by task length:
|
|
88
|
+
|
|
89
|
+
- Use `mode: "task"` when the parent must consume the result and continue the workflow, including SDD phases, implementation batches, verification, review gates, and any delegated work whose output determines the next action.
|
|
90
|
+
- Use `mode: "background"` only for independent work where automatic parent continuation is not required. Background completion may notify the user and preserve history, but it is not a guarantee that the parent model will resume orchestration.
|
|
86
91
|
|
|
87
92
|
If `subagent_*` tools are unavailable, fall back to Pi's native `Agent` tool or another available delegation mechanism. The delegation trigger remains mandatory; the fallback changes the runtime, not the requirement to delegate. If no delegation mechanism is available, stop the complex work and explain the blocker instead of silently continuing inline.
|
|
88
93
|
|
|
@@ -55,14 +55,14 @@ Do not guess the active change. If change selection is ambiguous, ask the user a
|
|
|
55
55
|
|
|
56
56
|
## Lazy SDD Preflight
|
|
57
57
|
|
|
58
|
-
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
|
|
58
|
+
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:sdd-preflight` before continuing.
|
|
59
59
|
|
|
60
60
|
**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:
|
|
61
61
|
|
|
62
62
|
1. an injected `## SDD Session Preflight` block, or
|
|
63
63
|
2. an explicit user answer in the current conversation covering all four preflight choices below.
|
|
64
64
|
|
|
65
|
-
If neither exists and `/gentle
|
|
65
|
+
If neither exists and `/gentle: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.
|
|
66
66
|
|
|
67
67
|
The preflight captures:
|
|
68
68
|
|
|
@@ -78,7 +78,7 @@ The package should ensure SDD assets are present as global Pi runtime assets wit
|
|
|
78
78
|
~/.pi/agent/chains/sdd-*.chain.md
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Manual install commands are recovery/debug paths, not the happy path. `/gentle
|
|
81
|
+
Manual install commands are recovery/debug paths, not the happy path. `/gentle:sdd-preflight` is the explicit preflight command for agent/orchestrator use. If the user explicitly changes SDD preferences later in the same session, follow the new instruction.
|
|
82
82
|
|
|
83
83
|
## Init Guard
|
|
84
84
|
|
|
@@ -132,6 +132,10 @@ skill_resolution
|
|
|
132
132
|
|
|
133
133
|
The parent should synthesize these envelopes, not paste long raw reports unless needed.
|
|
134
134
|
|
|
135
|
+
## SDD Phase Delegation Mode
|
|
136
|
+
|
|
137
|
+
Launch SDD phase subagents with `subagent_run` `mode: "task"` when the parent needs the phase result to route the next step. Do not use `mode: "background"` for SDD phases that must feed continuation; background completion is a notification/history mechanism, not an orchestration resume guarantee.
|
|
138
|
+
|
|
135
139
|
## Strict TDD Forwarding
|
|
136
140
|
|
|
137
141
|
For `sdd-apply` and `sdd-verify`, read `openspec/config.yaml` when present.
|