Skip to content

Releases: bufferBrew/craftsman

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 16:55

Added

  • /craftsman:discover <vague idea>: a requirements-discovery interview that turns an
    underspecified request into a numbered, testable spec. It exists because the shallow end of
    ideation-first was the only option — 3–5 questions and a three-line brief, with no way to invoke
    it deliberately, so a substantially open request ("build a notifications system") got the same
    treatment as a merely fuzzy one.

    The work is split across two surfaces because of a hard constraint: a subagent cannot conduct an
    interview.
    It receives one cold prompt and returns one result, which is why orchestrator already
    has to bounce underspecified features back to its caller. So the interview runs in the main thread
    as a command, and only the half a subagent is genuinely good at — reading the codebase — is
    delegated.

  • requirements-analyst agent (read-only: Read/Glob/Grep, Opus): drafts the clarifying questions a
    request leaves unanswered, grounded in prior art and existing abstractions rather than a generic
    checklist. Every question carries a file:line or an explicit "gap" label, plus an assumption
    default so the interview never stalls on a declined question; questions the code already settles
    come back as constraints instead. Capped at 10–20 questions — past that, it is asking things the
    codebase already answers. It never asks the user anything itself and never writes files.

Changed

  • ideation-first: now runs at two depths. Quick is unchanged and still the default (3–5
    questions, one per turn, Scope brief). Deep grounds 10–20 questions in the analyst's dossier and
    asks them in 3–4 sequenced rounds of 2–4 questions via AskUserQuestion — a deliberate
    divergence from the one-question-per-turn rule, which is right for five questions and punishing for
    fifteen. What the rule actually protects is that later questions adapt to earlier answers, and
    sequenced rounds preserve that; batching all fifteen at once does not.

    Deep mode ends by writing a numbered requirements spec (R1, R2, … each with an acceptance
    criterion, so tester and reviewer can trace coverage back to a requirement) at
    docs/requirements/<slug>.md — proposed, shown in full, and written only on confirmation, per the
    same ask-before-writing rule /craftsman:init follows. The Scope brief is still emitted inline
    at both depths and remains the machine handoff the planner and the orchestrator's ideation gate
    consume; the spec file is additive, and the brief gained a Spec: line pointing at it.

    New explicit rule: expand the questions, bound the scope. Deep mode raises error states, empty
    states, migration, and offline behavior — then still recommends the smallest build that satisfies
    the request, with everything surfaced but unagreed recorded under Out of scope. A deep interview
    that ends with a bigger scope than a quick one has failed; it should end with the same scope, held
    with more confidence and a longer out-of-scope list. Without this, deep mode would have quietly
    contradicted smallest-change-first.

  • orchestrator: the ideation gate now accepts either an inline Scope brief or a path to a
    requirements spec, and instructs the planner to read the spec when one is named. Availability table
    gains requirements-analyst.

  • /craftsman:orchestrate: the ideation-gate step routes substantially open requests to deep mode
    rather than a three-line brief.

  • userpromptsubmit-task-router: the feature-shaped nudge names /craftsman:discover for
    substantially open requests. Still one nudge per prompt; no new case branch.

Fixed

  • session-start announced "Seven skills" and "Five commands" — both already wrong before this
    release (8 and 6), and both invisible to CI: the count validator skips any line containing
    "commands" when checking skills, and only matches the literal phrase "N slash commands" for
    commands. The whole reminder is a single line, so both slipped through every check. The skill list
    was also missing ui-craft and the command list was missing /craftsman:orchestrate — a session
    therefore started without being told two components existed.

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 25 Jul 09:14

Added

  • /craftsman:orchestrate <task>: a slash command for the full pipeline. The orchestrator was the
    only major entry point without one, so it never appeared in the / menu — every other command
    (init, quick, doctor, review, security) did. It runs the orchestrator's discipline in
    the main thread rather than dispatching the agent as a subagent, for two reasons:
    orchestration is subagent dispatch and nesting that is unreliable, and the ideation gate needs
    interactive Q&A that a subagent cannot hold (as a subagent, orchestrator must bounce
    underspecified features back to its caller). @craftsman:orchestrator still works for running
    the pipeline in its own context.

Fixed

  • Agent invocation is documented as @craftsman:<name> throughout. Plugin agents are namespaced,
    so the bare @<name> form the docs taught — @orchestrator in both READMEs, docs/use-cases.md,
    and the ideation-first skill — matches nothing in the agent picker, making the orchestrator look
    like it wasn't installed. Note: craftsman-demo.svg still shows @orchestrator in its rendered
    terminal text; correcting it requires regenerating the asset.

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 20:06

Added

  • Automatic skill-routing hooks so craftsman skills surface from task shape instead of a manual
    check. Four new event-driven hooks, all self-contained (they reference only craftsman:* skills
    and this plugin's own agents, never another plugin) and quiet by default (a nudge fires only on a
    real signal): userpromptsubmit-task-router (routes the prompt to the matching agent/skill by
    task shape — bug, feature, refactor, security, release, CI, testing, docs, version-control),
    pretooluse-git-guard (commit-craft hint on git commit/push/tag & gh pr),
    pretooluse-edit-guard (file-pattern skill hints for KNOWN_ISSUES.md/test/workflow files, and
    drops the session marker the close-out hook reads), and stop-closeout (nudges
    caveats-and-status once after real edits, then self-deletes its marker — loop-safe via both the
    marker and stop_hook_active).
  • New hook events wired in hooks.json: UserPromptSubmit and Stop (previously only
    SessionStart + PreToolUse).

Changed

  • orchestrator: gate and repair hardening. Adds a handoff contract — every dispatched agent
    must close with STATUS/FILES CHANGED/VERIFIED BY/EVIDENCE/CAVEATS, and gates are checked
    against that block rather than the agent's prose, so a missing evidence line now fails the gate
    instead of passing on confidence. The repair loop escalates rather than retrying: attempt 2
    routes to a different agent (debugger for build/test failures, planner for review findings)
    before re-implementing. The parallelism rule now forbids two file-writing agents running
    concurrently (the old "different output artifacts" wording permitted it) and states that parallel
    dispatch means multiple Agent calls in one message. Also: one-sentence scope restatement and a
    new-dependency stop before pipeline selection, a bugfix requirement that the regression test fail
    before the fix and pass after, Files changed / Verification run lines on the report, and an
    explicit "never commit, push, branch, or open a PR unless asked" constraint.
  • session-start: added a proactive lead-in to check environment-quirks.md before retrying a
    failed command, and to prefer graphify for navigation when graphify-out/graph.json exists.
  • run-hook.cmd: reworded to drop the superpowers-plugin attribution — the dispatcher and the
    whole plugin depend on no other plugin being installed.
  • README: new "Automatic skill routing (hooks)" section documenting the six hooks, plus the four
    routing ideas (skill chaining, parallel analysis, negative filtering, contextual caching) that
    are intentionally model/orchestrator behaviors rather than hooks.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 09:41

Added

  • /craftsman:doctor --fix: opt-in remediation for the three detected silent-failure conditions.
    Default (no-arg) behavior is unchanged — diagnostic only. With --fix, each repair is shown and
    confirmed (y/n) before it runs, then the check is re-run to verify: Git Bash via
    winget install Git.Git (lands on the standard path the hook dispatcher already probes, so no
    PATH edit), graphify graph via graphify ., and the Windows python3 Store-stub via
    winget install Python.Python.3.12 (flagged as a partial fix — the Store app-execution alias may
    still need disabling). Falls back to manual install links where winget is unavailable.

v0.5.1

Choose a tag to compare

@bufferBrew bufferBrew released this 14 Jul 16:20

Added

  • Terminal-style demo image (craftsman-demo.svg) on the root README showing an orchestrator
    bugfix run end to end.
  • CONTRIBUTING.md: local testing via --plugin-dir, validation requirements, component
    conventions, run-hook.cmd polyglot editing rules, and versioning/changelog process.
  • docs/use-cases.md: four worked scenarios (minimal diffs, recurring-bug recall via graphify,
    ask-first scaffolding, honest completion).
  • GitHub issue templates (bug report, feature request) and a Discussions contact link.

Changed

  • Restructured both READMEs to lead with the value proposition: a "Why craftsman" problem/solution
    table, a 30-second start, and status badges (CI, version, license). Reference content unchanged;
    the plugin README's Quick start section merged into the new 30-second start.

Full changelog: https://github.com/bufferBrew/craftsman/blob/main/CHANGELOG.md