---
name: public-help-no-internal-codes-gate
description: "xtask check now bans internal codes (REQ-*/F-###/M#-W#/ADR-####) from clap /// public help; future CLI doc-comments must stay plain."
metadata: 
  node_type: memory
  type: project
  originSessionId: 1ced1cef-197e-4383-a870-ed2d15fe12eb
---

v0.13.2 W6 added **REQ-DOCS-NO-INTERNAL-CODES** (commit 7c377f0): a forbidden-token scan in `cargo run -p xtask -- check` (`forbidden_codes_in` + `scan_cli_reference_for_internal_codes` in crates/xtask/src/main.rs) over the GENERATED `docs-site/src/cli/reference.md`. It fails CI on any `REQ-*`, `F-###`, `M#-W#`, or `ADR-####` token.

**Why:** clap `///` doc-comments ARE public `--help` → regenerated into reference.md → ship to GH-Pages. Internal tracker/decision codes are meaningless to end users (operator ruling: ban even ADR). Regen alone keeps drift==0 but republishes a leak — the scan is the teeth.

**How to apply:** when adding/editing a clap `///` (enum variant or `#[arg]` field doc) in `cli.rs` or `api/mod.rs`, keep it plain — NO REQ/ADR/F/M codes (substance yes, codes no). After clap doc edits run `xtask gen` then `xtask check`. The scan is scoped to the generated reference, so `// [impl->REQ-*]` line comments and fn/struct rustdoc `///` (not public help) KEEP their cross-refs — only clap `///` is in scope. Left-word-boundary rule means `UTF-8`/hyphenated prose won't false-positive. Related: [[redirect-folded-req-seeds]].
