@linimin/pi-letscook 0.1.36 → 0.1.37
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/CHANGELOG.md +5 -1
- package/README.md +29 -23
- package/extensions/completion/index.ts +395 -73
- package/package.json +1 -1
- package/scripts/context-proposal-test.sh +153 -13
- package/scripts/refocus-test.sh +197 -10
- package/scripts/release-check.sh +35 -1
- package/scripts/smoke-test.sh +15 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.37
|
|
4
4
|
|
|
5
5
|
### Changed
|
|
6
6
|
|
|
7
|
+
- documented `/cook` as the single public discussion-first workflow command for startup, active-workflow continue/refocus, and done-workflow next-round flows
|
|
8
|
+
- reframed `/cook <text>` in public docs/help copy as a temporary compatibility shim instead of the primary workflow entrypoint, without removing it from the shipped runtime
|
|
9
|
+
- documented the fail-closed ambiguous-discussion behavior and approval-only Start/Cancel gate before canonical-state writes
|
|
10
|
+
- added release-gated public-parity assertions for README/help/changelog `/cook` single-command copy so docs drift fails closed before packaging
|
|
7
11
|
- simplified the README opening so first-time users can understand the problem `/cook` solves, what the extension provides, and how to start using it without reading the full control-plane details first
|
|
8
12
|
|
|
9
13
|
## 0.1.35
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @linimin/pi-letscook
|
|
2
2
|
|
|
3
|
-
A Pi extension that turns `/cook` into a repo-local workflow command for long-running coding work.
|
|
3
|
+
A Pi extension that turns `/cook` into a discussion-driven repo-local workflow command for long-running coding work.
|
|
4
4
|
|
|
5
5
|
## Why this exists
|
|
6
6
|
|
|
@@ -11,14 +11,15 @@ Normal chat is good for one-off tasks. It is much worse for work that needs to:
|
|
|
11
11
|
- resume from repo state instead of chat memory
|
|
12
12
|
- keep review, audit, and verification tied to the repo
|
|
13
13
|
|
|
14
|
-
`@linimin/pi-letscook` solves that by storing canonical workflow state in `.agent/**` and using `/cook` to start,
|
|
14
|
+
`@linimin/pi-letscook` solves that by storing canonical workflow state in `.agent/**` and using `/cook` as one discussion-first command to start, continue, refocus, or advance the workflow.
|
|
15
15
|
|
|
16
16
|
## What you get
|
|
17
17
|
|
|
18
18
|
- one command: `/cook`
|
|
19
19
|
- repo-local canonical state in `.agent/**`
|
|
20
20
|
- resumable long-running workflows
|
|
21
|
-
- startup
|
|
21
|
+
- discussion-first startup, continue, refocus, and next-round routing
|
|
22
|
+
- temporary `/cook <text>` compatibility input when you need to anchor the mission explicitly
|
|
22
23
|
- deterministic verification, review, audit, and stop checks
|
|
23
24
|
|
|
24
25
|
## Install
|
|
@@ -31,49 +32,54 @@ Then run `/reload` in Pi.
|
|
|
31
32
|
|
|
32
33
|
## Quick start
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
Primary entrypoint:
|
|
35
36
|
|
|
36
37
|
```text
|
|
37
|
-
/cook
|
|
38
|
+
/cook
|
|
38
39
|
```
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
Use bare `/cook` after you discuss the mission in the main chat. The same command can:
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
- start a brand-new workflow from recent discussion
|
|
44
|
+
- continue the current workflow when recent discussion still matches it, or when discussion is too weak or ambiguous to justify a refocus
|
|
45
|
+
- surface a conservative refocus chooser when recent discussion clearly points to a different workflow
|
|
46
|
+
- start the next workflow round after the previous one is `done`
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
Temporary compatibility shim when you need to anchor the mission explicitly:
|
|
47
49
|
|
|
48
50
|
```text
|
|
49
|
-
/cook
|
|
51
|
+
/cook build feature X end-to-end with tests and docs
|
|
50
52
|
```
|
|
51
53
|
|
|
54
|
+
On startup and next-round flows, if recent discussion is missing, weak, or ambiguous, bare `/cook` fails closed and leaves canonical `.agent/**` state unchanged until the discussion is clarified.
|
|
55
|
+
|
|
52
56
|
## How `/cook` works
|
|
53
57
|
|
|
54
|
-
`/cook` is the
|
|
58
|
+
Bare `/cook` is now the primary workflow entrypoint. `/cook <text>` is still supported as a temporary compatibility shim, and it uses the same proposal/routing pipeline while treating the explicit text as the mission anchor when provided.
|
|
55
59
|
|
|
56
|
-
| Repo state | `/cook` | `/cook <
|
|
60
|
+
| Repo state | Bare `/cook` (primary) | Temporary `/cook <text>` compatibility shim |
|
|
57
61
|
|---|---|---|
|
|
58
|
-
| No workflow yet | Summarizes recent discussion into a startup proposal, then asks for approval |
|
|
59
|
-
| Active workflow exists |
|
|
60
|
-
| Previous workflow is `done` | Starts the next round from recent discussion |
|
|
62
|
+
| No workflow yet | Summarizes recent discussion into a startup proposal, then asks for approval with **Start** or **Cancel**. If the discussion is weak or ambiguous, `/cook` fails closed without writing `.agent/**` state. | Uses the same startup proposal and approval-only **Start**/**Cancel** gate, but the explicit text anchors the proposed mission. |
|
|
63
|
+
| Active workflow exists | Reads the current mission plus recent non-command discussion. Matching or unclear discussion resumes from canonical `.agent/**` state. Clear replacement discussion opens a chooser first, then only rewrites canonical state after the follow-on **Start** confirmation. | Uses the same discussion-first routing pipeline. The explicit text is only a temporary compatibility anchor; `/cook` can still continue unchanged or route through the chooser plus final **Start**/**Cancel** replacement confirmation. |
|
|
64
|
+
| Previous workflow is `done` | Starts the next round from recent discussion, then asks for approval with **Start** or **Cancel**. Ambiguous discussion fails closed without rewriting canonical state. | Uses the same next-round proposal and approval-only gate, but the explicit text anchors the next mission. |
|
|
61
65
|
|
|
62
|
-
##
|
|
66
|
+
## Approval-only confirmation and fail-closed behavior
|
|
63
67
|
|
|
64
|
-
|
|
68
|
+
All startup, next-round, and replacement proposals are **approval-only**:
|
|
65
69
|
|
|
66
70
|
- the proposal body is shown separately from actions
|
|
67
71
|
- actions are only **Start** and **Cancel**
|
|
68
|
-
-
|
|
72
|
+
- **Cancel** is side-effect free: discuss changes in the main chat and rerun `/cook`
|
|
73
|
+
|
|
74
|
+
When bare `/cook` cannot derive a clear startup, next-round, or replacement proposal from recent discussion, it fails closed instead of guessing. That means no canonical `.agent/**` state is created or rewritten until the discussion is clarified or you temporarily pass `/cook <text>`.
|
|
69
75
|
|
|
70
|
-
When an active workflow already exists and
|
|
76
|
+
When an active workflow already exists and recent discussion clearly suggests a different workflow, `/cook` shows a separate chooser first:
|
|
71
77
|
|
|
72
78
|
- **Continue current workflow**
|
|
73
|
-
- **
|
|
79
|
+
- **Start new workflow from recent discussion**
|
|
74
80
|
- **Cancel**
|
|
75
81
|
|
|
76
|
-
Only the follow-on startup/replacement proposal uses the approval-only Start/Cancel gate.
|
|
82
|
+
Only the follow-on startup/replacement proposal uses the approval-only Start/Cancel gate, and canonical `.agent/**` state changes happen only after **Start** is accepted.
|
|
77
83
|
|
|
78
84
|
When you accept startup or refocus from that flow, `/cook` persists the chosen `task_type` and `evaluation_profile` across `.agent/profile.json`, `.agent/state.json`, `.agent/plan.json`, and `.agent/active-slice.json`, and records the accepted critique outcome in canonical continuation state before the re-ground round begins.
|
|
79
85
|
|
|
@@ -218,7 +224,7 @@ npm run rubric-contract-test
|
|
|
218
224
|
npm run release-check
|
|
219
225
|
```
|
|
220
226
|
|
|
221
|
-
`npm run release-check` is the broad packaged-release verifier. It begins with `bash .agent/verify_completion_control_plane.sh`, so missing or stale `.agent/verification-evidence.json` parity fails closed before the broader suite runs, then reruns the startup/refocus/context checks — including the critique-aware `/cook` confirmation regression and the smoke auto-resume prompt path — includes deterministic canonical evidence artifact coverage and includes deterministic active-slice contract coverage plus observability coverage, evaluator calibration, and the rubric-contract regression, and finishes with `npm pack --dry-run`.
|
|
227
|
+
`npm run release-check` is the broad packaged-release verifier. It begins with `bash .agent/verify_completion_control_plane.sh`, so missing or stale `.agent/verification-evidence.json` parity fails closed before the broader suite runs, then asserts the shipped single-command `/cook` public parity surfaces in `README.md`, `CHANGELOG.md`, and the `/cook` help/fail-closed copy in `extensions/completion/index.ts`, reruns the startup/refocus/context checks — including the critique-aware `/cook` confirmation regression and the smoke auto-resume prompt path — includes deterministic canonical evidence artifact coverage and includes deterministic active-slice contract coverage plus observability coverage, evaluator calibration, and the rubric-contract regression, and finishes with `npm pack --dry-run`.
|
|
222
228
|
|
|
223
229
|
## Release
|
|
224
230
|
|