← ClaudeAtlas

claude-markdown-proposelisted

Reviews a named markdown surface against a named concern, drafts a per-file proposal under `.canon/proposals/<slug>/` carrying a diff and a reason for each change, and stops without editing a source file. Takes the concern and the surface as inputs, such as a claim stated stronger than the record, a fact gone stale, two files disagreeing, or a passage duplicated without derivation. A later invocation applies what the operator answered. Use when asked to "propose a change to CLAUDE.md", "draft a rewrite of this standard", "propose fixes to this doc", "draft alternatives for this passage", or "apply the answered proposals". Do NOT use to report without drafting a replacement (`claude-standards-audit` or `canon markdown audit`), to review a diff already made (`claude-review`), or to file a raw brain dump as findings (`claude-intake`).
erclx/canon · ★ 2 · Data & Documents · score 68
Install: claude install-skill erclx/canon
# Claude markdown propose Reviews what a markdown surface says against a named concern and proposes what it should say instead. Writes proposals and stops. The operator answers per change, and a later invocation applies the answered set. The value is the gate. A rewrite delivered in chat gets applied from memory across files nobody reopened, and nothing records what was approved. ## Guards - No concern named and none derivable from the conversation. Stop: `❌ No concern to screen for. Name what looks wrong, or the surface to review.` - No surface named and none derivable. Stop: `❌ No surface to review. Name the files, or the folder, to screen.` - The concern resolves to one file only. Stop and say so: a single-file change needs no proposal folder. - A named file cannot be read. Stop and name it. Do not screen what resolved and report a partial result. ## Phase detection Two phases share this body, picked by whether a proposal folder already exists for the request's slug. Derive `<slug>` from the concern and the surface, kebab-case, naming the subject rather than the activity. List `.canon/proposals/` at the main worktree root and match the topic against the folders already there before deriving a fresh one, the same way `claude-intake` matches its own folder. Never match against `.claude/` itself. - No matching folder, or the operator names a concern and a surface: **Propose**. - A matching folder exists and the operator says apply, ship, or commit the answers: **Apply