Repository navigation
[#1] start-task triages every request: executor, bugfix or spec - #21
Merged
Merged
Conversation
…low rule cascade The spec for issue #1: start-task triages every request after reading the code, routing a named bug to bugfix, one contained change to task-executor in standalone mode, and the rest to a spec, asking before the first two. Wave 0: rules/collaboration.md with the six defaults for working with the author; rules/workflow.md rewritten so every bullet routes on what the author said or a file on disk, first match wins, with start-task as the default; the contributing guide's routing passage brought into line. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Waves 1 to 3 of the standalone-task-routing spec (issue #1). start-task is now the front door for a change. After reading the code it states a route and, for a contained change or a defect, asks with the AskUserQuestion tool before launching task-executor in standalone mode or handing off to bugfix; everything else goes to the spec as before. Its "Working with the author" block lists its stops, how each asks, what each hand-back shows and what it hands off to, and step 1 proposes a branch name without creating it. rules/collaboration.md gains the headless fallback (prose with the options on separate lines). The README rows, the executor's description, the three issue forms and the contributing guide follow. A free check caps the rules' size; the start-task eval target may write so its no-write graders can fail. Version 0.6.0. Evals, two runs each, all 100%: the three start-task cases, the five workflow rule cases and the new collaboration rule case. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Found in the manual session: asked for a link shortener in a two-function arithmetic package, start-task noted that nothing there would be extended and then went straight to the spec questions. Triage now has a fit check: when the request builds on no module, pattern or test in the codebase, the skill says so and asks, before any spec question, whether to spec it here anyway or stop because this is the wrong repository. New eval case wrong-repo-asks-fit; all four start-task cases pass two runs. Spec records the eval and manual runs, and the spec is complete. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
dansabin
approved these changes
Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Closes #1. The workflow rule had one out for small work, a typo-sized change, and sent everything else to
start-task, which always wrote three spec documents. Work in the middle, one contained change, got a spec it did not need, while thetask-executoragent built for exactly that size was reachable only fromimplement-spec. There are different kinds of code edits and some don't need the heavy approach. The logic could live in multiple places, but a skill is best, rather than rules trying to size the request, because it can do some research before inference and get better data. The goal is to make the next right choice with some additional context.What
start-taskis now the front door for any change. After reading the code the request touches it states a route and asks before taking the cheap ones: a named defect goes tobugfix, one contained change goes totask-executorin standalone mode, and everything else goes on to a spec as before. A request that would extend nothing in the repository gets a fit question first. The workflow rule routes only on what the author said or a file on disk, a new collaboration rule sets how every skill asks and hands back, and the plugin moves to 0.6.0.Changes
start-tasktriages every request (skills/start-task/SKILL.md): a "Working with the author" block lists its stops, step 1 proposes a branch name without creating it, a new triage step states the route in two or three sentences naming the code and offers Bug_Route or Executor_Route with the AskUserQuestion tool, a fit question fires when the request extends nothing in the repository, the Bug_Route body hands off tobugfix, the Executor_Route body launches the executor and shows its Summary, status and diff with failures first before recommendingpr, and document approvals ask with the tool. There are different kinds of code edits and some don't need the heavy approach; a skill is the best place to decide because it can do some research before inference and get better data, and make the next right choice with that context.rules/workflow.md,.github/CONTRIBUTING.md): the first matching bullet wins; bug named, spec exists, pull request, small change, then anything else starts the task; the bug bullet fires only when the author calls it a bug or hands over a ticket filed as one, and the rule no longer judges size. The contributing guide's routing passage follows. Similar to the skill: the supporting change in the rule to avoid conflicting evidence.rules/collaboration.md, the three issue forms,checks/test_rules_size.py): six defaults for how any skill or agent asks, batches, states its plan, takes approval, reports failures and hands off, with the prose fallback when the question tool is absent; the issue forms gaincollaboration (rule)for the existing dropdown check, and a new free check caps the hook output at 10,000 characters and the new file at 1,600. Collaboration is the CX of the plugin: it explains how to consistently interact with users so that we don't need to repeat it in all skills. The supporting files are for allowing issue filings and testing.agents/task-executor.md,README.md,.claude-plugin/plugin.json): the executor's description namesstart-taskbesideimplement-spec; the README'sstart-task, workflow, collaboration and agents entries follow, the rules paragraph saysmake validatefails past the limit, and the Testing section describes the checks underchecks/instead of listing them; version 0.6.0. The README and version are for context and onboarding. The second launcher is the natural order, since the executor can be launched directly in standalone mode or viaimplement-spec; it could always be launched directly by the user, but now more formally, if the user was unclear,start-taskcan do it.evals/skills/start-task/{contained-change-offers-executor,bug-offers-bugfix,wrong-repo-asks-fit},evals/rules/collaboration/short-list-asks-with-tool, two adjusted prompts, one Makefile line): three newstart-taskcases on the calc fixture grading the route options offered as list items and nothing written or launched, one collaboration case grading a short-list question with no choice made, the existingnames-task-and-asksexpected outcome updated,bug-routes-to-bugfixnow says "Bug ticket" since the rule routes on the author's word, and thestart-taskeval target grants Write and Edit. The evals needed to give the agent the ability to make mistakes by granting write outright. The rest are important tests to cover edge cases and make sure the agent, when allowed to make mistakes, doesn't and stays disciplined..claude/specs/standalone-task-routing/): requirements, design and the ticked task list, with the wave-review fixes and the eval and manual runs recorded. These represent the new spec for the changes.Testing
make validate: 11 checks OK, both plugin validations pass.Evals, two runs each, after fixing two graders that used an inline
(?i)flag the harness rejects and dropping a\?grader the prose fallback did not always satisfy:Manual, headless with
claude -p --plugin-diragainst the calc fixture: the contained change answered Executor_Route ran the executor and ended with the Summary, the diff, the branch-and-commit line and theprrecommendation; the same change answered Spec_Route went to task-sized spec questions; the unnamed defect offered Bug_Route and after the answerbugfixreproduced it and stopped to confirm the cause; the link shortener exposed the missing fit check, which was then added with its eval case. Interactively, the Fit form rendered and Wrong repository stopped with nothing written, and the Route form rendered and Executor_Route ran through to theprrecommendation.Risk and rollout
Version 0.6.0. The slash command keeps its name, so nothing changes for anyone on 0.5.1 until they update, at which point
start-taskstarts triaging and asking. The installed plugin shadows a--plugin-dircopy of the same name, so to try the branch before it ships, disablefreethinking@freethinkingitin/pluginfor the session. Roll back by installing 0.5.1.Notes for reviewers
Look hardest at the markdown changes: they are agent instructions. The eval tables and numbers are the proof that the instructions work, but there is always room to improve if reviewers have input. Follow-ups filed: #20 (pr offers to branch and commit instead of stopping, which shortens the executor route's hand-off), #16, #17 and #18 (CX blocks for the other three skills), #15 (a plugin-development skill).
🤖 Generated with Claude Code