distill
Turn a raw record (meeting transcript, message, email, notes) into ranked, color-coded candidate requirement statements appended to one HTML file, `docs/incoming.html`, for people to read, discuss and
SKILL.mdskills/distill/SKILL.md
GitHubdistill
Turn a raw record (meeting transcript, message, email, notes, stored in the owner's notes and never in a repository) into candidate requirement statements, each ranked against the repository's specification for congruency and for complexity, and append them as one dated batch to docs/incoming.html. People read, discuss and edit that file by hand. When a person decides a candidate is worth acting on, they copy its block and paste it into an intake session, and intake does what it already does. Nothing else reads the file: the loop, workers and hooks never reference it. The skill files no issue, edits no specification and opens nothing.
Procedure
- Source. Any raw record. It stays in the owner's notes; it is never copied into a repository.
The HTML receives derived statements and a source reference by date and type only, for example
stakeholder call, 2026-09-17. No raw quotes and no names of private individuals. - Extract candidate statements. Each is one sentence in
MUST,MUST NOTorSHOULDform, with a kind:bug,amendment,featureorquestion. - Resolve the specification and evidence. Use the project's configured specification reader
or project-local spec tool first, preserving its native section IDs and output format. If no
configured reader exists, fall back to
docs/spec/SDD.md,docs/spec/TDD.md, the other documents underdocs/, and the code the TDDcode:comments name. Read the files underdocs/tasks/(orloop tasks list) for local task state andgh issue listfor GitHub-backed task state when task status matters. When a configured reader or fallback file is absent or empty, say so in the report. Every candidate isbrand newexcept one that cannot be acted on at all, which is stillnonsense. - Rank each candidate on two axes.
- Congruency:
already satisfied,clarifies,amends,contradicts,brand newornonsense. Cite the specification item ids it touches (SDD-XX-nn,TDD-x.y.z); abrand newcandidate may cite none. - Complexity:
S,M,LorXL, judged from the specification items touched, the files likely in scope, external provider effects and data migrations. One line of rationale that names what drove the size.
- Congruency:
- Append the candidates to
docs/incoming.htmlas one dated batch, creating the file from theincoming.template.htmlthat sits beside this skill file when it is absent. Copy the example batch in the template, place the new batch directly under thebatches below, newest firstmarker, and never rewrite, reorder or delete an existing block: people edit them by hand. Escape&,<and>in every statement and rationale. Candidate ids areC-YYYY-MM-DD-n; n starts at 1 and continues within the day across batches, so search the existing file for the day's highest n before writing. Set theclassof each block to the congruency class:satisfied,clarifies,amends,contradicts,newornonsense. - Stop. Report the batch as a short table: id, statement, kind, congruency, complexity. Do not
file issues, edit the specification or open anything. Promotion is a person pasting a block
into
intake.
Plain reading
An easy patch is clarifies or amends at S. A hard change is amends or contradicts at L
or XL. already satisfied and nonsense need no work; they stay in the file so the discussion
can confirm that.