text-parserslisted
Install: claude install-skill adamw7/tools
# Text Parsers Skill
The `claude-code-enforcer` rules and the `adopt` conformer read Markdown, YAML
front matter, `@path` imports and shell hook commands with small readers of their
own. Those readers carry the largest share of this repository's shipped defects:
`FrontMatter` and `CommandTokens` have each been fixed in six or seven separate
commits, `MarkdownDocument` in four or five — several of those twice over, once
in the reader and once in the copy `ClaudeMdConformer` used to carry, which is
why the Markdown reader now lives in `markdown-common` with a single caller-facing
copy.
Every one of those fixes was the same thing — real input the reader had not been
written for. This skill is the accumulated list, so the next change starts from
it instead of rediscovering it.
## The one rule that matters most
**Change the shared reader, never the caller.** `MarkdownDocument`,
`FrontMatter`, `MarkdownText` and `CommandTokens` exist so every rule agrees on
what a fence, a key, a code span and a token are. A rule that re-derives one of
those locally is how the readers drifted in the first place — a fix landed in one
place and the other two callers kept the bug.
Concretely: commit #560 fixed *three* rules at once (`memoryImports`,
`validateFileReferences`, `forbiddenTokens`) because the comment mask they all
share was only being consulted by heading detection. The fix was one method
exposed on `MarkdownDocument`, not three patches.
## The readers and their invariants
### `Mar