@linimin/pi-letscook 0.1.35 → 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 +10 -0
- package/README.md +42 -87
- 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,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.37
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
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
|
|
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
|
|
12
|
+
|
|
3
13
|
## 0.1.35
|
|
4
14
|
|
|
5
15
|
### Changed
|
package/README.md
CHANGED
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
# @linimin/pi-letscook
|
|
2
2
|
|
|
3
|
-
A Pi extension that
|
|
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
|
|
|
7
|
-
-
|
|
8
|
-
- resume later from repo-local workflow state
|
|
9
|
-
- refocus an active workflow without losing control of the mission
|
|
10
|
-
- drive implementation through isolated completion roles
|
|
11
|
-
- keep verification, review, audit, and stop checks tied to the repo
|
|
7
|
+
Normal chat is good for one-off tasks. It is much worse for work that needs to:
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
- continue across sessions
|
|
10
|
+
- stay anchored to one mission
|
|
11
|
+
- resume from repo state instead of chat memory
|
|
12
|
+
- keep review, audit, and verification tied to the repo
|
|
14
13
|
|
|
15
|
-
|
|
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.
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
## What you get
|
|
18
17
|
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
- **deterministic verification** through repo-local scripts and regression checks
|
|
18
|
+
- one command: `/cook`
|
|
19
|
+
- repo-local canonical state in `.agent/**`
|
|
20
|
+
- resumable long-running workflows
|
|
21
|
+
- discussion-first startup, continue, refocus, and next-round routing
|
|
22
|
+
- temporary `/cook <text>` compatibility input when you need to anchor the mission explicitly
|
|
23
|
+
- deterministic verification, review, audit, and stop checks
|
|
26
24
|
|
|
27
25
|
## Install
|
|
28
26
|
|
|
@@ -34,99 +32,56 @@ Then run `/reload` in Pi.
|
|
|
34
32
|
|
|
35
33
|
## Quick start
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
/cook build feature X end-to-end with tests and docs
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Resume an active workflow:
|
|
35
|
+
Primary entrypoint:
|
|
44
36
|
|
|
45
37
|
```text
|
|
46
38
|
/cook
|
|
47
39
|
```
|
|
48
40
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```text
|
|
52
|
-
/cook fix onboarding crash first, with regression tests
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Start the next round after the previous workflow is already done:
|
|
56
|
-
|
|
57
|
-
```text
|
|
58
|
-
/cook improve startup proposal confirmation UX
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## How `/cook` behaves
|
|
41
|
+
Use bare `/cook` after you discuss the mission in the main chat. The same command can:
|
|
62
42
|
|
|
63
|
-
|
|
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`
|
|
64
47
|
|
|
65
|
-
|
|
66
|
-
|---|---|---|
|
|
67
|
-
| No canonical workflow yet | Uses the proposal analyst to summarize recent discussion into a startup proposal, then asks for confirmation | Builds a startup proposal anchored on the explicit goal, optionally enriching it from recent discussion, then asks for confirmation |
|
|
68
|
-
| Active workflow exists | Resumes the active workflow from canonical `.agent/**` state | First asks whether to continue the current workflow or replace it, then uses a final Start/Cancel approval gate before any replacement state is written |
|
|
69
|
-
| Previous workflow is already `done` | Uses the proposal analyst to summarize recent discussion into the next workflow round, then asks for confirmation | Starts the next workflow round directly from the explicit goal |
|
|
70
|
-
|
|
71
|
-
## Startup proposal behavior
|
|
72
|
-
|
|
73
|
-
### `/cook <goal>`
|
|
74
|
-
|
|
75
|
-
When you provide an explicit goal:
|
|
76
|
-
|
|
77
|
-
- the explicit goal stays the mission anchor
|
|
78
|
-
- recent discussion is supplemental only
|
|
79
|
-
- recent discussion may enrich scope, constraints, and acceptance details when analyst output is available
|
|
80
|
-
|
|
81
|
-
Example:
|
|
48
|
+
Temporary compatibility shim when you need to anchor the mission explicitly:
|
|
82
49
|
|
|
83
50
|
```text
|
|
84
|
-
/cook
|
|
51
|
+
/cook build feature X end-to-end with tests and docs
|
|
85
52
|
```
|
|
86
53
|
|
|
87
|
-
|
|
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.
|
|
88
55
|
|
|
89
|
-
|
|
56
|
+
## How `/cook` works
|
|
90
57
|
|
|
91
|
-
|
|
92
|
-
- the proposal is shown in a custom approval-only confirmation UI before canonical state is written
|
|
93
|
-
- if analyst output is unavailable, provide an explicit goal with `/cook <goal>`
|
|
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.
|
|
94
59
|
|
|
95
|
-
|
|
60
|
+
| Repo state | Bare `/cook` (primary) | Temporary `/cook <text>` compatibility shim |
|
|
61
|
+
|---|---|---|
|
|
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. |
|
|
96
65
|
|
|
97
|
-
|
|
98
|
-
/cook
|
|
99
|
-
```
|
|
66
|
+
## Approval-only confirmation and fail-closed behavior
|
|
100
67
|
|
|
101
|
-
|
|
68
|
+
All startup, next-round, and replacement proposals are **approval-only**:
|
|
102
69
|
|
|
103
|
-
|
|
70
|
+
- the proposal body is shown separately from actions
|
|
71
|
+
- actions are only **Start** and **Cancel**
|
|
72
|
+
- **Cancel** is side-effect free: discuss changes in the main chat and rerun `/cook`
|
|
104
73
|
|
|
105
|
-
-
|
|
106
|
-
- keeps Mission / Scope / Constraints / Acceptance readable as a content area
|
|
107
|
-
- renders analyst-derived **Critique and risks** separately from the non-editable proposal body
|
|
108
|
-
- renders recommended `task_type` / `evaluation_profile` routing hints separately from both the proposal body and the action list
|
|
109
|
-
- presents explicit actions for:
|
|
110
|
-
- **Start**
|
|
111
|
-
- **Cancel**
|
|
112
|
-
- treats the proposal as approval-only: if it needs changes, Cancel, discuss them in the main chat, and rerun `/cook`
|
|
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>`.
|
|
113
75
|
|
|
114
|
-
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:
|
|
115
77
|
|
|
116
78
|
- **Continue current workflow**
|
|
117
|
-
- **
|
|
79
|
+
- **Start new workflow from recent discussion**
|
|
118
80
|
- **Cancel**
|
|
119
81
|
|
|
120
|
-
Only the follow-on startup/replacement proposal uses the approval-only Start/Cancel gate.
|
|
121
|
-
|
|
122
|
-
When you accept startup or refocus from that flow, `/cook` now 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.
|
|
123
|
-
|
|
124
|
-
The same approval-only confirmation flow is reused across:
|
|
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.
|
|
125
83
|
|
|
126
|
-
-
|
|
127
|
-
- explicit-goal startup
|
|
128
|
-
- next-round startup after completion
|
|
129
|
-
- replacement-workflow startup
|
|
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.
|
|
130
85
|
|
|
131
86
|
## Observability
|
|
132
87
|
|
|
@@ -269,7 +224,7 @@ npm run rubric-contract-test
|
|
|
269
224
|
npm run release-check
|
|
270
225
|
```
|
|
271
226
|
|
|
272
|
-
`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`.
|
|
273
228
|
|
|
274
229
|
## Release
|
|
275
230
|
|