Rewrite the Grill Me tool metadata to the STE rule categories #294

Closed
opened 2026-10-09 21:19:56 +00:00 by david · 1 comment
Owner

Summary

Rewrite every model-facing and user-facing authored string in the grillme extension's tool metadata to the STE rule categories: the six registered tools' description, promptSnippet, promptGuidelines, and parameter descriptions, plus the output-destination catalog and the GitHub permission-guidance string that feed the prompt.

Background

Depends on: #291

#291 defines the rule categories in extensions/grillme/ste-style.ts as STE_RULE_CATEGORIES. They are the specification for this rewrite:

  1. Keep sentences short. Aim for about 20 words or fewer when you give an instruction. Aim for about 25 words or fewer when you describe something.
  2. Put one idea in each sentence.
  3. Use the active voice.
  4. Use simple tenses: past, present, future, and the imperative.
  5. Do not use an -ing verb form when a simple tense works.
  6. Use one word for one meaning. Do not trade between synonyms.
  7. Do not use a phrasal verb when one verb does the work.
  8. Keep a group of nouns to three words or fewer.
  9. Use short, common words.
  10. Keep the articles (a, an, the).

Three categories of text are exempt and must be left byte-identical: code, file paths, identifiers, tool names, and commands; text quoted from the user; probing questions and their alternatives. The identifiers in this file are exempt, so nothing in the rewrite may change them.

#293 moved the prompt constants and helpers into extensions/grillme/prompt.ts, so the catalog and guidance strings may live there now. Check both index.ts and prompt.ts before you start and rewrite whichever file holds each string.

Implementation Details

Strings to rewrite:

  • pi.registerTool(...) for each of the six tools — grill_update_checkpoint, grill_set_alternatives, grill_enter_output_selection_phase, grill_finish_output_selection_phase, grill_enter_output_phase, grill_finish_output_phase:
    • description;
    • promptSnippet;
    • every promptGuidelines entry;
    • every parameter description inside parameters: Type.Object({ ... }), including nested object properties (for example the alternative value, label, and description fields) and the Type.Array item descriptions.
  • label values on the tool registrations (visible UI text) — keep them short and apply the same rules.
  • OUTPUT_DESTINATION_OPTIONS — the label and description of each of the eleven entries. Keep every value byte-identical: github-issues, design-doc, readme, adr, prd, implementation-plan, research-brief, summary, content-outline, test-plan, release-notes.
  • GITHUB_REPO_PERMISSION_GUIDANCE.
  • describeOutputPreference output text.
  • The thoroughGrillingGuidance lines and the researchGuidance map entries if they live in prompt.ts — these are instructions to the model and are covered by the same rules. If #293 left them in index.ts, rewrite them there.

Do not change:

  • any name value (the six tool names), any parameter key, any enum literal (auto, plan, learn, research, content, decide, off, ask, interview, output-selection, output, continue-grilling, stop-without-output), any output-destination value, and any /grill or /checkpoint command syntax;
  • any logic, control flow, or type — this is a prose-only change.

Rewrite in place. Keep each string's meaning, but split long sentences, remove -ing forms where a simple tense works, prefer the active voice, and keep the articles.

Acceptance Criteria

  • All six tools' description, promptSnippet, promptGuidelines, and parameter description strings follow the rule categories.
  • Every OUTPUT_DESTINATION_OPTIONS label and description, GITHUB_REPO_PERMISSION_GUIDANCE, and describeOutputPreference text follows the rule categories.
  • No rewritten sentence is longer than 20 words (instruction) or 25 words (description).
  • Tool names, parameter keys, enum literals, output-destination values, and command syntax are byte-identical; a git diff shows changes only in prose.
  • No logic or type changed.
  • The extension still registers all six tools, and cd extensions/grillme && npm test passes.

Test Plan

cd extensions/grillme
npm test

Expected: all test files pass.

# the identifiers must not have moved
grep -n 'name: "grill_' extensions/grillme/index.ts

Expected: the same six names as before the change.

# the enum/command literals must not have moved
grep -n 'value: "' extensions/grillme/index.ts extensions/grillme/prompt.ts 2>/dev/null

Expected: the same eleven output-destination values as before the change (in whichever file holds them).

git diff --stat extensions/grillme/

Expected: only index.ts and prompt.ts changed, and every hunk is inside a string literal.

Manual: start pi in this repo and run /grill a small topic, then check the tool list and one tool's description in the session.

## Summary Rewrite every model-facing and user-facing authored string in the `grillme` extension's tool metadata to the STE rule categories: the six registered tools' `description`, `promptSnippet`, `promptGuidelines`, and parameter `description`s, plus the output-destination catalog and the GitHub permission-guidance string that feed the prompt. ## Background **Depends on:** #291 `#291` defines the rule categories in `extensions/grillme/ste-style.ts` as `STE_RULE_CATEGORIES`. They are the specification for this rewrite: 1. Keep sentences short. Aim for about 20 words or fewer when you give an instruction. Aim for about 25 words or fewer when you describe something. 2. Put one idea in each sentence. 3. Use the active voice. 4. Use simple tenses: past, present, future, and the imperative. 5. Do not use an `-ing` verb form when a simple tense works. 6. Use one word for one meaning. Do not trade between synonyms. 7. Do not use a phrasal verb when one verb does the work. 8. Keep a group of nouns to three words or fewer. 9. Use short, common words. 10. Keep the articles (`a`, `an`, `the`). Three categories of text are **exempt** and must be left byte-identical: code, file paths, identifiers, tool names, and commands; text quoted from the user; probing questions and their alternatives. The identifiers in this file are exempt, so nothing in the rewrite may change them. `#293` moved the prompt constants and helpers into `extensions/grillme/prompt.ts`, so the catalog and guidance strings may live there now. Check both `index.ts` and `prompt.ts` before you start and rewrite whichever file holds each string. ## Implementation Details Strings to rewrite: - `pi.registerTool(...)` for each of the six tools — `grill_update_checkpoint`, `grill_set_alternatives`, `grill_enter_output_selection_phase`, `grill_finish_output_selection_phase`, `grill_enter_output_phase`, `grill_finish_output_phase`: - `description`; - `promptSnippet`; - every `promptGuidelines` entry; - every parameter `description` inside `parameters: Type.Object({ ... })`, including nested object properties (for example the alternative `value`, `label`, and `description` fields) and the `Type.Array` item descriptions. - `label` values on the tool registrations (visible UI text) — keep them short and apply the same rules. - `OUTPUT_DESTINATION_OPTIONS` — the `label` and `description` of each of the eleven entries. Keep every `value` byte-identical: `github-issues`, `design-doc`, `readme`, `adr`, `prd`, `implementation-plan`, `research-brief`, `summary`, `content-outline`, `test-plan`, `release-notes`. - `GITHUB_REPO_PERMISSION_GUIDANCE`. - `describeOutputPreference` output text. - The `thoroughGrillingGuidance` lines and the `researchGuidance` map entries if they live in `prompt.ts` — these are instructions to the model and are covered by the same rules. If `#293` left them in `index.ts`, rewrite them there. Do not change: - any `name` value (the six tool names), any parameter key, any enum literal (`auto`, `plan`, `learn`, `research`, `content`, `decide`, `off`, `ask`, `interview`, `output-selection`, `output`, `continue-grilling`, `stop-without-output`), any output-destination `value`, and any `/grill` or `/checkpoint` command syntax; - any logic, control flow, or type — this is a prose-only change. Rewrite in place. Keep each string's meaning, but split long sentences, remove `-ing` forms where a simple tense works, prefer the active voice, and keep the articles. ## Acceptance Criteria - [ ] All six tools' `description`, `promptSnippet`, `promptGuidelines`, and parameter `description` strings follow the rule categories. - [ ] Every `OUTPUT_DESTINATION_OPTIONS` `label` and `description`, `GITHUB_REPO_PERMISSION_GUIDANCE`, and `describeOutputPreference` text follows the rule categories. - [ ] No rewritten sentence is longer than 20 words (instruction) or 25 words (description). - [ ] Tool names, parameter keys, enum literals, output-destination `value`s, and command syntax are byte-identical; a `git diff` shows changes only in prose. - [ ] No logic or type changed. - [ ] The extension still registers all six tools, and `cd extensions/grillme && npm test` passes. ## Test Plan ```bash cd extensions/grillme npm test ``` Expected: all test files pass. ```bash # the identifiers must not have moved grep -n 'name: "grill_' extensions/grillme/index.ts ``` Expected: the same six names as before the change. ```bash # the enum/command literals must not have moved grep -n 'value: "' extensions/grillme/index.ts extensions/grillme/prompt.ts 2>/dev/null ``` Expected: the same eleven output-destination values as before the change (in whichever file holds them). ```bash git diff --stat extensions/grillme/ ``` Expected: only `index.ts` and `prompt.ts` changed, and every hunk is inside a string literal. Manual: start pi in this repo and run `/grill a small topic`, then check the tool list and one tool's description in the session.
david self-assigned this 2026-10-09 21:19:56 +00:00
david closed this issue 2026-10-09 22:00:22 +00:00
Author
Owner

pi-loop opened and merged a pull request for this issue: #304

pi-loop opened and merged a pull request for this issue: https://git.excelera.net/david/pi-extensions-and-skills/pulls/304
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
david/pi-extensions-and-skills#294
No description provided.