@flumecode/runner 0.12.0 → 0.12.1

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
@@ -863,8 +863,14 @@ var acVerdictSchema = z3.object({
863
863
  });
864
864
  var reportInputSchema = {
865
865
  summary: z3.string().min(1).describe("One or two sentences on what was implemented."),
866
- prose: z3.string().min(1).describe(
867
- "Markdown for the remaining report sections \u2014 Files changed, Build / tests, and Caveats / follow-ups. Use ## headings. Do NOT include the acceptance-criteria section here (that goes in acceptanceCriteria) and do NOT include the PR link (the runner appends it)."
866
+ filesChanged: z3.string().min(1).describe(
867
+ "Markdown: the list of files changed (from the diff). Rendered under '## Files changed'."
868
+ ),
869
+ codeQuality: z3.string().min(1).describe(
870
+ "Markdown: the code-quality review outcome and anything left as nice-to-have. Rendered under '## Code quality'."
871
+ ),
872
+ caveats: z3.string().min(1).describe(
873
+ "Markdown: anything deferred, unmet, or worth a human's eyes, incl. diff hunks that map to no plan AC. Write 'None.' if nothing. Rendered under '## Caveats / follow-ups'."
868
874
  ),
869
875
  acceptanceCriteria: z3.array(acVerdictSchema).min(1).describe(
870
876
  "One entry per acceptance criterion from the plan, in plan order, each with a verdict and the diff evidence behind it."
@@ -874,10 +880,8 @@ var reportSchema = z3.object(reportInputSchema);
874
880
  function renderReport(report) {
875
881
  const lines2 = [];
876
882
  lines2.push(report.summary.trim());
877
- lines2.push("");
878
- lines2.push(report.prose.trim());
879
- lines2.push("");
880
- lines2.push("## Acceptance criteria");
883
+ lines2.push("", "## Files changed", "", report.filesChanged.trim());
884
+ lines2.push("", "## Acceptance criteria");
881
885
  for (const ac of report.acceptanceCriteria) {
882
886
  lines2.push("");
883
887
  lines2.push(`### ${STATUS_ICON[ac.status]} ${ac.criterion}`);
@@ -892,13 +896,15 @@ function renderReport(report) {
892
896
  lines2.push("```");
893
897
  }
894
898
  }
899
+ lines2.push("", "## Code quality", "", report.codeQuality.trim());
900
+ lines2.push("", "## Caveats / follow-ups", "", report.caveats.trim());
895
901
  return lines2.join("\n");
896
902
  }
897
903
  function createReportTooling() {
898
904
  let submittedReport = null;
899
905
  const submitReport = tool3(
900
906
  SUBMIT_REPORT,
901
- "Submit the final implementation report as structured data. Call this exactly once, at the end of the run. `acceptanceCriteria` must contain one entry per plan criterion, each with a met / not_met / unclear verdict and the diff hunk(s) that prove it. `summary` + `prose` are markdown for the rest of the report. Do NOT include a PR link \u2014 the runner appends it.",
907
+ "Submit the final implementation report as structured data. Call this exactly once, at the end of the run. `acceptanceCriteria` must contain one entry per plan criterion, each with a met / not_met / unclear verdict and the diff hunk(s) that prove it. `summary`, `filesChanged`, `codeQuality`, and `caveats` are the four named markdown sections. Do NOT include a PR link \u2014 the runner appends it.",
902
908
  reportInputSchema,
903
909
  async (args) => {
904
910
  submittedReport = reportSchema.parse(args);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flumecode/runner",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
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": {
@@ -149,14 +149,9 @@ the next step.
149
149
  The report subagent calls `submit_report` with these fields:
150
150
 
151
151
  - **`summary`** — one or two sentences on what was implemented.
152
- - **`prose`** — markdown for the remaining sections, using `##` headings:
153
- **Code quality** (the quality-review outcome and anything left as
154
- nice-to-have), **Files changed** (the list from the diff), **Build / tests** (lists
155
- each verification command and its final pass/fail result, or explains that no
156
- build/test setup was found), and **Caveats / follow-ups** (anything deferred,
157
- unmet, or worth a human's eyes — including any diff hunks that map to no plan AC,
158
- listed explicitly as unattributed changes). Do **not** put the acceptance-criteria
159
- section in `prose`, and do **not** include a PR link — the runner adds it.
152
+ - **`filesChanged`** — markdown list of files changed (from the diff). Rendered under `## Files changed`.
153
+ - **`codeQuality`** the code-quality review outcome and anything left as nice-to-have. Rendered under `## Code quality`.
154
+ - **`caveats`** — anything deferred, unmet, or worth a human's eyes, including diff hunks that map to no plan AC. Write 'None.' if nothing. Rendered under `## Caveats / follow-ups`.
160
155
  - **`acceptanceCriteria`** — one entry per AC from the plan, in plan order, each:
161
156
  - `criterion` — the AC text verbatim.
162
157
  - `status` — `"met"` / `"not_met"` / `"unclear"`, mirroring the AC review.