Repository navigation
[#26] Add the report skill and the communication rule - #31
Merged
Merged
Conversation
A report skill writes the message to the author in one of four shapes, each from a template a repository can replace, and edits nothing. A communication rule names the habits in every session and routes hand-backs, decisions, status and answers to the skill. implement-spec, bugfix and start-task hand off to it; implement-spec runs it in a fork of the conversation so the orchestrator stays lean. Evals, checks, the README and the spec record the change. Closes #26. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sabind
pushed a commit
that referenced
this pull request
Oct 16, 2026
…eport skill Takes PR #31 (report skill, communication rule) and PR #25 into the branch. Step 7 of the bugfix skill now invokes freethinking:report in handback mode and puts its Message to the author as the hand-off question's text; the three exits stay. The collaboration rule keeps the new bullet where "Bad news first" was. Version 0.10.0 on top of 0.9.0. The hands-off-to-pr case gains graders on the report call and its Message. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Oct 16, 2026
report skill and communication rule: write every message for a reader who did not watch the work
#26
Closed
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 #26
Every message the agent writes to the author, in any skill or none, should be written for a reader who did not watch the work. Eight sessions between 2026-10-06 and 2026-10-15 showed the author asking the agent to decode its own previous message once in every fifteen turns: labels coined during the work in place of explanations, decisions asked for without the material to decide them, failures listed under what was done, tool calls narrated. The only fix so far was a personal memory file that reaches no teammate, sub-agent or eval run.
What
A new
reportskill writes the message to the author in one of four shapes, handback, decision, status or answer, each from a template that a repository can replace under.freethinking/report/, and edits nothing. A newcommunicationrule names the habits in every session and sub-agent and routes hand-backs, decisions, status and answers to the skill. implement-spec, bugfix and start-task hand off to the skill instead of carrying their own report wording.Changes
skills/report/withSKILL.md, four templates andchecks/test_report_skill.py. The report skill helps us have consistent output without overloading rules or the context window until needed. It does not cover how information is collected: it relies on the thread it forks from to have done the aggregation first.rules/communication.md, trim the "bad news first" bullet out ofrules/collaboration.mdand its README row, and givechecks/test_rules_size.pya per-rule limit table. The communication rule guides how to give the user information so that it is not hard to interpret and does not rely on context the user cannot see, such as internal names the agents came up with on their own; the collaboration rule is trimmed to account for this. The rules guide the what, not the how.skills/implement-spec/SKILL.md,skills/bugfix/SKILL.mdandskills/start-task/SKILL.mdwith an invocation of the report skill; implement-spec runs it in a foreground fork of the conversation and pastes the result, with an inline fallback when there is no fork. The pr skill is left out because it does not report, since it has no agents in the same sense. A report is about the best way to communicate something and the functional skill simply chooses that; since it is a fork it does not need to be given context and can generate independently.README.md(rows for the skill and the rule, the agent protocol paragraph, the "Tune the plugin for a repository" section),.github/CONTRIBUTING.md, the four issue forms,agents/task-executor.md(quotes are copied exactly) and bump the version to 0.9.0. Documentation.evals/rules/communication/, three skill cases underevals/skills/report/, graders and a no-fork line toworks-one-waveandworks-all-waves, two Makefile targets, and fix a path inevals/README.md. These are tests for the prior changes..claude/specs/report-skill/with every task ticked. These are the thinking done on the incoming ticket and the plan used to solve it.Testing
make validatepasses: 19 unit tests and both plugin validations.Evals, run on 2026-10-16 at list price. The rule cases ran with the no-plugin baseline:
The "+ 1" runs confirmed the skill cases and works-one-wave after the final compaction of the skill, the rule and implement-spec's step 6.
A throwaway probe plugin, run three times, showed that the headless eval sandbox has no
forkagent type ("Agent type 'fork' not found"), so the evals exercise implement-spec's inline fallback; the fork path was exercised by hand in a live session, where the report skill was also invoked three times with no override, a two-section override under.freethinking/report/handback.md, and an empty override, and behaved as the skill text says.Risk and rollout
Minor: the change improves details of the skills without changing them fundamentally. The version is 0.9.0, a minor bump for a new skill and a new rule; teammates pick it up with
claude plugin update freethinking@freethinkingit. The new rule adds about 1,400 characters to what the hooks load into every session and sub-agent; the total is 7,353 of the 10,000 allowed.Notes for reviewers
report.force-for-pluginoutput style and aSubagentStophook that rejects a malformed Summary. Also a follow-up: the start-task spec templates and the pr default template are candidates to move under.freethinking/.^and$without themflag are the string anchors, and\A,\zand(?s)are not available; the review caught five Python forms before any run.🤖 Generated with Claude Code