myco_winnow
Validate a craft proposal's structure against required rounds, sections, and frontmatter keys. Returns pass/fail verdict and violation details.
Instructions
Gate a docs/primordia/ craft proposal against the craft protocol shape: 3 (or 5) rounds present, required sections (Claim / Self-Rebuttal / Revision / Counter-Rebuttal / Reflection) populated, frontmatter keys complete, body is not mostly template boilerplate (> 40% boilerplate triggers G6), etc. Returns pass/fail verdict and specific violations.
Use this: after fruit scaffolds a craft doc and the agent fills in the tensions and revisions — winnow tells whether the proposal has enough substance to land. Do NOT use winnow as a content quality check (it checks STRUCTURE, not whether the argument is good). For content review, human judgment still applies.
Side effects: none. Pure read.
Returns: { exit_code, proposal, verdict: 'pass'|'fail', round_count, body_chars, violations: [ { gate, message } ], frontmatter_keys }. exit_code 0 on pass, 1 on fail. Agents typically fix violations and re-winnow until pass before declaring a craft 'LANDED'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| proposal | Yes | Path to the craft proposal markdown under docs/primordia/ (relative to substrate root or absolute). Must exist and be a valid markdown file with a craft-shaped YAML frontmatter block. Winnow reads but does not modify the file; post-winnow, the agent edits to address violations and re-runs winnow. | |
| project_dir | No | Absolute path of the workspace / project whose Myco substrate this call targets. Overrides auto-discovery. When omitted, Myco resolves via MCP roots/list, then MYCO_PROJECT_DIR, then cwd — the substrate_pulse field in every response echoes which source answered. |