Repository navigation
[#47] Show each spec document as its path and a summary - #49
Merged
Merged
Conversation
…ethinking/specs start-task shows requirements, design and tasks as a path and a summary in a fixed shape per document, so the author can confirm the right summary is produced at the right time instead of reading six full documents in the conversation. Specs live in .freethinking/specs/<task>/, since the eval sandbox refuses writes under .claude/ and the plugin will be forked for tools with their own folders. Plugin 0.14.0. Closes #47 and #48. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Both cases were rerun after the spec folder move and pass; the tick was seen in a sandbox. The open follow-up is a grader on tasks.md, not a rerun. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
works-one-wave checks tasks.md has task 1 ticked and task 2 not; works-all-waves checks both are ticked. Both cases pass at three runs with the graders. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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 #47
Closes #48
On every spec written with
start-task, each of the three documents was printed in full into the conversation before its approval question, and again after every change-request round. A mid-sized design runs to a couple of hundred lines, so a three-document spec with one revision each put six full documents into the conversation. The author reads the file in an editor anyway, so the print added bulk without adding trust. In the author's words: it is important to make sure we are able to explain what the summary is for explicitly, so we can confirm the right summaries are being produced at the right time.Specs also move out of
.claude/: the eval sandbox refuses every write under that folder, so no case could grade a spec being written or ticked, and the plugin will be forked for tools with.cursor/and.codex/folders, so the spec folder should name the plugin rather than one tool.What
On the spec route,
start-tasknow shows each document as its path plus a summary in a fixed shape per document, and after "Changes needed" shows the path plus what changed per section. Specs live in.freethinking/specs/<task>/instead of.claude/specs/<task>/, in the plugin text, the evals and this repository's own records. The plugin is 0.14.0.Changes
start-taskshows a path and a summary instead of the full text.plugins/freethinking/skills/start-task/SKILL.mdgains a "Showing a document" section, the Hand-backs bullet changes to match, and steps 1, 4, 5 and 6 each set their summary's shape: requirements as one entry per requirement with its user story quoted, then open questions; design as each key decision quoted, then the rest summarised; tasks as a table of leaf tasks by wave; a revision as one line per changed section. Author: "we're basically highlighting important parts of the docs and then summarizing the rest", and the summary's purpose is stated explicitly so the right summary at the right time can be confirmed. Step 3 also names the route by its token, Bug_Route, Executor_Route or Spec_Route: the start-task evalnames-task-and-asksgreps for the token and one run of three had left it implicit.start-taskrow says the skill shows each document as its path and a short summary. Requirement 6.3 of the spec: the README describes what the skill does.evals/skills/start-task/summarises-requirements/, eight graders: the requirements file is written under.freethinking/specs/, the reply names its path, no heading of the document is reprinted, noSHALLcriterion is reproduced, a user story is quoted, every entry quotes a story, the Approve question is offered, and no code is written. Requirement 7: the behaviour is proved by an eval, not a check that greps the skill..freethinking/specs/in the plugin text: both skills, the task-executor agent, the workflow rule's record bullet, the root README and the plugin README, which gains a sentence under "Tune the plugin for a repository" and an upgrade note under "Stay up to date". Version 0.14.0. Author: "we can store the specs not in .claude/ that works well since we will fork and have .cursor/ .codex/ ... later", and.freethinking/because at a barespecs/"it's unclear who the author is".files/.claude/specsfixtures renamed withgit mv, every prompt, grader, scaffold and case README repathed, and the sandbox note inevals/README.mdrewritten to say that writes under.claude/are refused even when granted and that specs under.freethinking/specs/can be graded. Requirement 8.3..freethinking/:works-one-wavecheckstasks.mdhas- [x] 1.and still- [ ] 2.,works-all-waveschecks both are ticked. Each case's README lists them and says the one thing left unchecked is whether a tick came after its wave review. Author: "lets keep the stuff accurate".git mv .claude/specs .freethinking/specs, 42 renames at 100% similarity, content untouched, and this task's own spec is added at.freethinking/specs/spec-approval-summary/. Author: "Move them, content untouched".Testing
make validatepasses: 23 checks and the three strict validators.Eval targets, three runs per case, on the final text:
start-task ($2.72)
The
wrong-repo-asks-fitmiss wasnames-the-task, which greps forlink-shortener; the rerun passed all three.implement-spec ($7.53)
The
invalid-graph-stopsmiss was a run that returned after three turns; the rerun passed all three.With the tick graders added,
works-one-waveandworks-all-waveswere run again at three runs: 1.00 each, every tick grader matched in every run ($4.66).workflow rule ($2.37)
bug-routes-to-bugfixfails the same grader,states-symptom, three of three on origin/main as well, so it is pre-existing and not changed by this branch.Risk and rollout
A repository with specs under
.claude/specs/must rungit mv .claude/specs .freethinking/specsonce after upgrading:start-taskandimplement-speclook only in the new folder. The README's upgrade note says so. A session still on 0.13.0 looks in the old folder until the plugin is updated.Notes for reviewers
Look at
plugins/freethinking/skills/start-task/SKILL.mdfirst: the "Showing a document" section and the closing paragraphs of steps 4, 5 and 6 are the behaviour change. Follow-up: thebug-routes-to-bugfixeval fails on main on a grader that wants the word "symptom" in the trace.🤖 Generated with Claude Code