issue-295: Rewrite the Grill Me command output and read-only block reasons #305
No reviewers
Labels
No labels
bug
chore
documentation
enhancement
feature
ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
david/pi-extensions-and-skills!305
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/issue-295/rewrite-the-grill-me-command-output-and-read-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
295: Rewrite the Grill Me command output and read-only block reasons
Closes #295 — 295.
Generated in 10m 12s.
Review findings
Now let me create the shared helper module:Now update
command-output.test.ts:Now updatetool-metadata.test.ts:Now updateste-style.test.ts:Now theindex.tsfixes:Let me empirically verify the Medium 1 fix now catches a regression, on a throwaway copy:All findings fixed and the full suite is green (npm test: 1469 tests, 1468 pass, 1 pre-existing skip, 0 fail;cd extensions/grillme && node --test: 466 pass).Review Findings — 295
Summary
All six findings are resolved in one pass. Medium: the AC1 check now asserts against
HELP_CONTENT(verified on a scratch copy that deleting the- /grill <topic>help line now fails the suite), the/grill <topic>start message was rewritten to short simple-tense sentences and the suite now scanspi.sendUserMessage(...), and the duplicated parsing/STE helpers were moved into a new dependency-freeextensions/grillme/ste-rule-checks.tsimported by all three suites. Low: the bash refusal reason now uses the same approval clause as the edit/write reason, the status overlay shows- Style: thorough defaultagain, and the seeded checkpoint prose uses simple tense. No findings remain.Critical
High
Medium
extensions/grillme/command-output.test.ts:256 — The AC1 check ("every documented command form byte-identical") asserts each form against the whole source file (
INDEX_SOURCE.includes(form)) instead of the help text it guards. Verified on a scratch copy: deleting the- /grill <topic>line from the/grill helpcontent leaves the suite fully green, because the same string still occurs in three tool-result messages (index.ts:534,index.ts:581,index.ts:635). The help list can therefore lose a documented form while AC1 still "passes". Suggested fix: assertHELP_CONTENT.includes(form)(the helper already exists atcommand-output.test.ts:171), keeping a whole-source check only where a form legitimately appears elsewhere.extensions/grillme/index.ts:300 — The
/grill <topic>start message is authored command output the user reads, and it was not rewritten: it still carries a 31-word sentence ("Begin by updating the checkpoint if needed, … ask the first focused Socratic question."), a 23-word sentence withproducing, and the-ingformupdating— rules 1, 4 and 5 of the same rule categories the issue calls the specification. The new suite scans onlyctx.ui.notify(, so nothing fails. Suggested fix: split the message into short sentences ("Call grill_set_alternatives. Show 2-5 concrete answer choices in chat. Then ask the first question.") and extendnotifyStrings()/authoredStrings()to also collect the first argument of eachpi.sendUserMessage(call.extensions/grillme/command-output.test.ts:68 — The parsing/STE helpers (
SENTENCE_WORD_LIMIT,skipStringLiteral,balancedBlock,readLiteralAfter,splitIntoSentences,countWords,wordsIn) are now the third near-verbatim copy, alongsidetool-metadata.test.ts:29andste-style.test.ts:29. A rule or splitter change (e.g. teaching the splitter to skip an abbreviation) must be applied in three places, and the suites can silently drift from each other. Suggested fix: move them into one dependency-free helper module, e.g.extensions/grillme/ste-rule-checks.ts, named so it does not match the*.test.ts/test-*run patterns, and import it from all three suites.Low
extensions/grillme/index.ts:823 — The bash reason names the approval step "Get output approval", while the edit/write reason at
index.ts:814says "Wait for the user to approve a concrete output plan". Two terms for one meaning contradicts rule 6 ("Use one word for one meaning"), and the two reasons are meant to teach the same recovery path. Suggested fix: use the identical clause in both, e.g. "Wait for the user to approve a concrete output plan." in the bash reason too.extensions/grillme/index.ts:150 —
- Style: thoroughdrops the word "default", so the status overlay now disagrees with the prompt line for the same session (prompt.ts:182renders- Grilling style: thorough default) and withREADME.md:40/DESIGN.md:15("one thorough default grilling style"). The removal is not required by any rule category, and "thorough default" is a two-word group (rule 8 permits up to three). Suggested fix: restore- Style: thorough default, or alignprompt.tsand the docs in the same change.extensions/grillme/index.ts:88 — The seeded checkpoint prose (user-facing via
/checkpoint) still uses continuous tense and-ingforms: "We are starting a grill-me session to reach shared understanding before producing outputs or implementation work." Rules 4 and 5 forbid both where a simple tense works. This string is outside the issue's enumerated list, so treat it as optional polish. Suggested fix: "We start this Grill Me session to reach shared understanding before we produce outputs or implementation work."