Motivation
Real projects contain several kinds of spec markdown, and one rule set doesn't fit all:
- CLAUDE.md — all rules apply, including S001 required-sections.
- Product specs (e.g.
finance-app-spec.md) — S003/S004/S005/S006 are valuable, but S001's required sections (Project Overview / Constraints / Acceptance Criteria) don't fit and currently produce 3 errors per file.
- GSD planning artifacts (
.planning/PLAN.md, ROADMAP.md, SPEC.md) — same story: secrets, file-size (context bloat!), wildcard-permission and duplicate-header checks are all useful in CI/hooks, but S001 makes the tool unusable on them.
This blocks the natural integration: a Claude Code PostToolUse hook (or spec-ci-plugin run) that lints every spec file an agent writes.
Proposal
A .speclintrc (or spec-linter key in package.json) mapping glob patterns to rule sets:
{
"profiles": {
"**/CLAUDE.md": ["all"],
"**/.planning/**/*.md": ["S003", "S004", "S005", "S006"],
"*-spec.md": ["S003", "S004", "S005", "S006"]
}
}
A simpler stopgap would be CLI flags: --only S003,S004 / --skip S001.
🤖 Filed via Claude Code while dogfooding v0.0.1
Motivation
Real projects contain several kinds of spec markdown, and one rule set doesn't fit all:
finance-app-spec.md) — S003/S004/S005/S006 are valuable, but S001's required sections (Project Overview / Constraints / Acceptance Criteria) don't fit and currently produce 3 errors per file..planning/PLAN.md,ROADMAP.md,SPEC.md) — same story: secrets, file-size (context bloat!), wildcard-permission and duplicate-header checks are all useful in CI/hooks, but S001 makes the tool unusable on them.This blocks the natural integration: a Claude Code PostToolUse hook (or spec-ci-plugin run) that lints every spec file an agent writes.
Proposal
A
.speclintrc(orspec-linterkey in package.json) mapping glob patterns to rule sets:{ "profiles": { "**/CLAUDE.md": ["all"], "**/.planning/**/*.md": ["S003", "S004", "S005", "S006"], "*-spec.md": ["S003", "S004", "S005", "S006"] } }A simpler stopgap would be CLI flags:
--only S003,S004/--skip S001.🤖 Filed via Claude Code while dogfooding v0.0.1