+ 47 more resolved
CHANGELOG 1.2.0 link points to an unpushed rc tag (likely 404)
CHANGELOG.md
doc-drift
README uses emoji, violating BRAND.md 'no emoji in product copy'
README.md
brand-consistency
Two implementations of scratch->live promotion with no stated canonical engine
agents/consolidator.md
duplication
Internal milestone jargon (M2.2.c) leaks into user-facing command output
commands/board-install-permissions.md
jargon-leak
board-triage says 'five rules' but defines six
skills/board-triage/SKILL.md
doc-inconsistency
board-resolve contradicts itself on which steps are mandatory
skills/board-resolve/SKILL.md
doc-inconsistency
pattern recurrence threshold is inconsistent (2+ vs >=3) across three surfaces
skills/board-intake/SKILL.md
doc-inconsistency
board-index-check invariant is defeated by the resolve-in-place convention
hooks/scripts/board-index-check.sh
invariant-mismatchdogfooding-pain
MCP path traversal via project name writes files outside the repo root
mcp-server/engineering_board_mcp.py
path-traversalmcp-security
Reject filter bypassed by a polite/adverb lead-in before the imperative verb
hooks/scripts/board_reject_check.py
injection-filter-bypassuntrusted-input
MCP-captured scratch findings are silently destroyed on consolidate
mcp-server/engineering_board_mcp.py
silent-data-lossformat-mismatch
README Quickstart dead-ends at board-init; capture-promote-fix path is undiscoverable
README.md
onboardingtime-to-first-value
MCP serialize_frontmatter does not escape newlines; field values can inject keys
mcp-server/engineering_board_mcp.py
frontmatter-injectionuntrusted-input
claim-acquire self-deletes its lock on a session_id containing whitespace
hooks/scripts/board-claim-acquire.sh
input-validationsilent-failure
Permission-install delivery is a 6-step copy-paste loop, undiscoverable from onboarding
commands/board-install-permissions.md
onboardingdelivery-friction
Stale suite/file counts across README and ARCHITECTURE after C1
README.md
doc-driftcount-mismatch
CHANGELOG Unreleased fixture arithmetic reads as a contradiction (50 vs 36+24)
CHANGELOG.md
doc-drift
worker-start unsupported-discipline error leaks a version number to the user
commands/worker-start.md
jargon-leakversion-drift
MCP entry_id path traversal in board_claim/board_release (arbitrary create + rm -rf)
mcp-server/engineering_board_mcp.py
path-traversalmcp-security
MCP bulk tools bypass router-row containment (arbitrary BOARD.md overwrite + cross-root read)
mcp-server/engineering_board_mcp.py
path-traversalmcp-security
MCP append_section heading/body not newline-flattened
mcp-server/engineering_board_mcp.py
input-hygiene
Reject filter bypassed by markdown list/blockquote markers before the verb
hooks/scripts/board_reject_check.py
injection-filter-bypass
MCP affects_prefix injects a BOARD-ROUTER row (control-file corruption + bulk DoS + project spoof)
mcp-server/engineering_board_mcp.py
router-injectionmcp-security
MCP board_init follows symlinks to write scaffold outside root
mcp-server/engineering_board_mcp.py
path-traversalmcp-security
MCP board_capture_finding title/kind not flattened (scratch header injection + count spoof)
mcp-server/engineering_board_mcp.py
input-hygienemcp-security
RFC 0002 stale command count + missing /board-view verdict
docs/rfcs/0002-surface-product-review.md
doc-drift
Landing page did not surface /board-view and still conceded the visualization gap it closed
docs/index.html
marketing-coherence
Reject filter bypassed by Unicode bullets, markdown headings, line separators
hooks/scripts/board_reject_check.py
injection-filter-bypass
MCP board_capture_finding evidence field injects scratch headers (count spoof)
mcp-server/engineering_board_mcp.py
input-hygienemcp-security
CHANGELOG Unreleased reject-filter fixture counts stale + self-contradictory
CHANGELOG.md
doc-driftcount-mismatch
Permission rules emitted without Tool(...) wrapper; self-check reports a false green
commands/board-install-permissions.md
permissionsfalse-negative-selfcheck
worker->pm refusal hint points to a dead-end (/board-resume no-ops from worker mode)
hooks/scripts/board-mode-guard.sh
error-messagewrong-recovery-hint
Reject filter bypassed by adverb-fronted imperatives
hooks/scripts/board_reject_check.py
injection-filter-bypass
CHANGELOG never records run-all reaching 14 suites; a "13 suites" line is stale
CHANGELOG.md
stale-countcoherence
/board-view (flagship visual viewer) absent from the Quickstart first-value path
README.md
onboardingdiscoverability
Reject filter line-separator folding incomplete (CR/VT/FF/FS/GS/RS)
hooks/scripts/board_reject_check.py
injection-filter-bypass
consolidate promotion writer flattens only evidence_quote, not title/affects/tags
hooks/scripts/board-consolidate.sh
frontmatter-injection
Reject filter misses non-ASCII sentence terminators as clause boundaries
hooks/scripts/board_reject_check.py
injection-filter-bypass
MCP board_capture_finding evidence blockquote splits on \n only (CR/FF/NEL forge a header)
mcp-server/engineering_board_mcp.py
frontmatter-injection
README "rendered live by /board-view" link points at a raw .html blob (GitHub shows source)
README.md
docslink-degradation
Reject terminator fold incomplete (Arabic comma/semicolon, Armenian, Tibetan, Khmer, Mongolian, ...)
hooks/scripts/board_reject_check.py
injection-filter-bypass
Reject filter invisible-char strip is a hand-list; the Cf/default-ignorable class splits verbs
hooks/scripts/board_reject_check.py
injection-filter-bypass
Reject filter skip-run misses ordered/lettered/checkbox list markers
hooks/scripts/board_reject_check.py
injection-filter-bypass
Slash-directive regex misses a slash abutting a marker/quote/paren
hooks/scripts/board_reject_check.py
injection-filter-bypass
Reject filter strips Unicode tag chars for its scan but promotes them raw (ASCII smuggling)
hooks/scripts/board_reject_check.py
injection-filter-bypass
Zero-dep HTML board viewer (/board-view -> committed board.html)
commands/board-view.md
board-visibility
Onboarding wizard (/board-setup) that collapses install->value to one step
commands/board-setup.md
onboarding