@flumecode/runner 0.6.0 → 0.7.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
@@ -225,10 +225,16 @@ var SERVER_NAME2 = "flume_plan";
225
225
  var SUBMIT_PLAN = "submit_plan";
226
226
  var PLAN_TOOL_NAME = `mcp__${SERVER_NAME2}__${SUBMIT_PLAN}`;
227
227
  var PLAN_MARKER = "<!-- flumecode:end-of-plan -->";
228
+ var pseudoCodeEntrySchema = z2.object({
229
+ file: z2.string().min(1),
230
+ pseudoCode: z2.string().min(1)
231
+ });
228
232
  var stepSchema = z2.object({
229
- change: z2.string().min(1).describe("What changes, with concrete file references."),
230
- why: z2.string().min(1).describe("The reason for this step."),
231
- files: z2.array(z2.string()).optional().describe("Affected file paths.")
233
+ title: z2.string().min(1).describe("A concise imperative title for this step."),
234
+ description: z2.string().min(1).describe("What changes and why \u2014 the rationale for this step."),
235
+ pseudoCode: z2.array(pseudoCodeEntrySchema).optional().describe(
236
+ "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."
237
+ )
232
238
  });
233
239
  var planInputSchema = {
234
240
  title: z2.string().min(1).max(120).describe(
@@ -260,12 +266,20 @@ function renderPlan(plan) {
260
266
  }
261
267
  }
262
268
  lines.push("");
263
- lines.push("**Steps**");
269
+ lines.push("## Steps");
264
270
  for (const [i, step] of plan.steps.entries()) {
265
- lines.push(`${i + 1}. **${step.change}** \u2014 ${step.why}`);
266
- if (step.files && step.files.length > 0) {
267
- for (const file of step.files) {
268
- lines.push(` - \`${file}\``);
271
+ lines.push("");
272
+ lines.push(`### ${i + 1}. ${step.title}`);
273
+ lines.push("");
274
+ lines.push(step.description);
275
+ if (step.pseudoCode && step.pseudoCode.length > 0) {
276
+ for (const entry of step.pseudoCode) {
277
+ lines.push("");
278
+ lines.push(`\`${entry.file}\``);
279
+ lines.push("");
280
+ lines.push("```");
281
+ lines.push(entry.pseudoCode);
282
+ lines.push("```");
269
283
  }
270
284
  }
271
285
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flumecode/runner",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "FlumeCode local runner — claims jobs and drives your local Claude Code against a real checkout.",
6
6
  "bin": {
@@ -66,9 +66,10 @@ Field-by-field guidance:
66
66
  and nothing more.
67
67
  - **`assumptions`** — anything you decided during investigation (including
68
68
  unanswered defaults from Phase 1).
69
- - **`steps`** — an ordered list. For each step: what changes (`change`), why
70
- (`why`), and optionally which files are affected (`files`). Use concrete file
71
- references (`path/to/file.ts`) and name the functions/symbols involved.
69
+ - **`steps`** — an ordered list. For each step provide:
70
+ - **`title`** a concise imperative phrase naming the step (e.g. "Add submit_plan schema to plan.ts").
71
+ - **`description`** — what changes and why: the concrete change being made and the rationale for it. Use concrete file references (`path/to/file.ts`) and name the functions/symbols involved.
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.
72
73
  - **`acceptanceCriteria`** — **required; at least 2 items.** Each criterion must
73
74
  be an observable condition you could check after the work is done: a behavior,
74
75
  a test result, or a verifiable state. Together they must fully define "done" —