@flumecode/runner 0.14.0 → 0.15.0
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/dist/cli.js
CHANGED
|
@@ -746,7 +746,9 @@ var pseudoCodeEntrySchema = z2.object({
|
|
|
746
746
|
});
|
|
747
747
|
var stepSchema = z2.object({
|
|
748
748
|
title: z2.string().min(1).describe("A concise imperative title for this step."),
|
|
749
|
-
description: z2.string().min(1).describe(
|
|
749
|
+
description: z2.array(z2.string().min(1)).min(1).describe(
|
|
750
|
+
"Bullet points that explain this step's change so a reviewer can judge whether the design is correct. Each array item is one short, self-contained bullet \u2014 not a single paragraph, and not a restatement of the pseudo code. " + INLINE_CODE_HINT
|
|
751
|
+
),
|
|
750
752
|
pseudoCode: z2.array(pseudoCodeEntrySchema).optional().describe(
|
|
751
753
|
"Per-file pseudo code. Provide an entry for every non-documentation file this step touches. Each entry contains the file path and pseudo code describing the changes to that file."
|
|
752
754
|
)
|
|
@@ -786,7 +788,9 @@ function renderPlan(plan) {
|
|
|
786
788
|
lines2.push("");
|
|
787
789
|
lines2.push(`### ${i + 1}. ${step.title}`);
|
|
788
790
|
lines2.push("");
|
|
789
|
-
|
|
791
|
+
for (const bullet of step.description) {
|
|
792
|
+
lines2.push(`- ${bullet}`);
|
|
793
|
+
}
|
|
790
794
|
if (step.pseudoCode && step.pseudoCode.length > 0) {
|
|
791
795
|
for (const entry of step.pseudoCode) {
|
|
792
796
|
lines2.push("");
|
package/package.json
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: format-code-plugin-generator
|
|
3
|
+
description: >-
|
|
4
|
+
Generate a concrete plan to install the FlumeCode Format plugin for THIS repo —
|
|
5
|
+
a .flumecode/plugins/format-code/ manifest wired to the pre-commit socket that
|
|
6
|
+
auto-formats code (prettier --write) so changes ride into the commit.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# format-code-plugin-generator
|
|
10
|
+
|
|
11
|
+
You generate a concrete, repo-specific plan to install the FlumeCode Format
|
|
12
|
+
plugin. You work **read-only**: inspect the repo and produce a plan via
|
|
13
|
+
`submit_plan`; never edit files.
|
|
14
|
+
|
|
15
|
+
## Orient yourself first
|
|
16
|
+
|
|
17
|
+
Before producing the plan, inspect:
|
|
18
|
+
|
|
19
|
+
1. `.flumecode/wiki/README.md` and `components/plugins.md` (if present) for context.
|
|
20
|
+
2. `package.json` `scripts` — look for `format`, `format:write`, `prettier` references.
|
|
21
|
+
3. `.prettierrc*` — confirm Prettier is configured.
|
|
22
|
+
4. `.husky/pre-commit` — find the existing formatting step this plugin replaces.
|
|
23
|
+
|
|
24
|
+
From this, determine the **exact shell command** the `run` script should execute
|
|
25
|
+
(e.g. `pnpm format`). Do not hard-code — derive from the repo.
|
|
26
|
+
|
|
27
|
+
## Produce the plan
|
|
28
|
+
|
|
29
|
+
Call `submit_plan` **once**, passing a `plans` array with one entry whose steps
|
|
30
|
+
instruct the implementer to create:
|
|
31
|
+
|
|
32
|
+
### Artifact — `.flumecode/plugins/format-code/plugin.json`
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"key": "format-code",
|
|
37
|
+
"socket": "pre-commit",
|
|
38
|
+
"run": "<detected format write command>"
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Derive `run` from the repo's detected commands (e.g. `pnpm format`). Do not hard-code — include the actual commands discovered in the Orient step.
|
|
43
|
+
|
|
44
|
+
### Manifest shape
|
|
45
|
+
|
|
46
|
+
The manifest `plugin.json` must have exactly these fields:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
{ key, socket, run }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This is the shape the FlumeCode plugin loader expects.
|
|
53
|
+
|
|
54
|
+
### Acceptance criteria the plan must include
|
|
55
|
+
|
|
56
|
+
- `.flumecode/plugins/format-code/plugin.json` exists with `key: "format-code"`, `socket: "pre-commit"`, and `run` set to the detected write-format command.
|
|
57
|
+
- The `run` command reformats files in place and exits 0; reformatted files are staged and included in the commit.
|
|
58
|
+
|
|
59
|
+
## Always
|
|
60
|
+
|
|
61
|
+
- Stay read-only. Produce the plan via `submit_plan`; never edit files.
|
|
62
|
+
- The plan must be specific enough for an `implement-plan` run to execute
|
|
63
|
+
without re-deriving the commands — include the actual detected commands in
|
|
64
|
+
the step descriptions and artifact content.
|
|
@@ -68,7 +68,7 @@ Field-by-field guidance:
|
|
|
68
68
|
unanswered defaults from Phase 1).
|
|
69
69
|
- **`steps`** — an ordered list. For each step provide:
|
|
70
70
|
- **`title`** — a concise imperative phrase naming the step (e.g. "Add submit_plan schema to plan.ts").
|
|
71
|
-
- **`description`** — what
|
|
71
|
+
- **`description`** — an array of bullet points that help the reviewer understand the upcoming `pseudoCode` and decide whether the plan and design are correct. Each item is a distinct, self-contained point about what is changing and why — not a single paragraph, and not a line-by-line restatement of the pseudo code. Use concrete file references (`path/to/file.ts`) and name the functions/symbols involved. Apply inline-code formatting to all identifiers.
|
|
72
72
|
- **`pseudoCode`** — an array of `{ file, pseudoCode }` entries. Provide an entry for every file the step touches **except** documentation files (SKILL.md, README.md, wiki pages, etc.). `pseudoCode` is optional in the schema but expected for all non-documentation files. Each entry names the file path and contains pseudo code that precisely describes the changes to make in that file.
|
|
73
73
|
- **`acceptanceCriteria`** — **required; at least 2 items.** Each criterion must
|
|
74
74
|
be a concrete, deterministically-checkable condition that a third party can verify
|