Skip to main content

0.15.1

Patch release with workflow renames, data-flow fixes, a type inference improvement, and a schema-retry bug fix.

Breaking changes

  • implement is now the base validation-loop workflow — The old ticket-implement workflow has been renamed to implement. It runs a straight ValidationLoop (implement → validate → review, up to 3 iterations) with no research or planning phases.
  • research-plan-implement replaces the old implement — The full research → plan → implement pipeline is now called research-plan-implement. It feeds research findings into the plan task and the plan into the implementation task, just like the old implement did. A new tdd boolean input flag forces the planner to write tests first.
  • test-first removed — Use research-plan-implement with tdd: true instead.
  • ticket-kanban renamed to kanban — Same workflow, shorter name.

Fixes

  • research-plan-implement passes context between stages — Research findings feed into the plan task and both feed into the implementation task. Previously each stage received only the raw user prompt, discarding earlier work.
  • research-plan-implement uses a validation loop — The review step is now a full ValidationLoop (implement → validate → review, up to 3 iterations) instead of a single-shot review pass. Validation failures and reviewer rejections are fed back as actionable context on the next iteration.
  • Schema retry propagates --max-output-byteslegacyExecuteTask schema-retry attempts now execute inside runWithToolContext, matching the primary attempt. Previously the retry called agent.generate() outside the tool context, so getToolContext() returned undefined and maxOutputBytes silently fell back to the 200 KB default — causing truncation and repeated validation failures for tasks with large tool outputs. (#123)
  • SmithersCtx.input infers the correct type — When the input schema slot is a ZodTypeAny, ctx.input now resolves to z.infer<T> instead of the raw Zod type. Fixes incorrect autocompletion and type errors in workflow callbacks.
  • tickets-create JSX text fix — Replaced a template-literal string child with proper JSX text interpolation.
  • Seeded audit and feature-enum workflows now use grouped feature arrays — The workflow-pack schemas emitted by smithers init now use Record<string, string[]> for grouped feature inputs, matching the shared ForEachFeature and FeatureEnum components and fixing seeded TS2322 assignment errors.
  • Workflows consistently use .mdx prompt files — Inline prompt strings in kanban, tickets-create, sync-features, sweep, and audit workflows (and the ForEachFeature component) have been extracted to .smithers/prompts/*.mdx files. All workflow tasks now import and render prompt templates instead of embedding raw strings, matching the pattern already used by research-plan-implement, plan, research, and ValidationLoop. The smithers init codegen has been updated to emit the new .mdx files and reference them in the generated workflows and components.
  • Replace deprecated .passthrough() with z.looseObject() — All Zod schemas that used .passthrough() now use z.looseObject() (Zod v4) or .catchall(z.unknown()) (v3 compat layer). The smithers init scaffold templates in workflow-pack.ts were updated to match. .passthrough() was deprecated in Zod v4 in favour of explicit top-level constructors.

Docs

  • Improved crosslinking and added external reference links across 36 documentation pages.
  • Fixed CLI command examples to use bunx smithers-orchestrator.
  • Fixed bare smithers reference in the gateway page.
  • Regenerated docs/llms-full.txt with internal cross-links to match the current docs manifest.