Development record
prompt-quality brief self-contradiction: 05-prompt-quality.md states PQ001-PQ006 are shipped by spc-8, while 06-lint.md declares the PQ family a design target with no PromptLinter in internal/core/lint — the code sides with 06-lint. An instance of the iss-37 phantom-enforcement class, surfaced by the itd-100 docs-currency review when the crosswalk nearly repeated the phantom claim. Detector: enforcement-claims-are-facts sweep over the brief's Shipped-by annotations; acceptance corpus: the two contradicting lines.
issueresolvedminoriss-142
prompt-quality brief self-contradiction: 05-prompt-quality.md states PQ001-PQ006 are shipped by spc-8, while 06-lint.md declares the PQ family a design target with no PromptLinter in internal/core/lint — the code sides with 06-lint. An instance of the iss-37 phantom-enforcement class, surfaced by the itd-100 docs-currency review when the crosswalk nearly repeated the phantom claim. Detector: enforcement-claims-are-facts sweep over the brief's Shipped-by annotations; acceptance corpus: the two contradicting lines.
Frontmatter
| id | iss-142 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-142-prompt-quality-shipped-claim.md
open on GitHub ↗ · commit history ↗
mentions5
- iss-37Phantom enforcement claims: developer docs describe gates that do not run as described. Re-scoped by the 2026-08-03 maintainer disposition to three doc-claim instances, each a claim about the local pre-push gate or CI:
- iss-389the examples-use-reserved-identifiers principle still says a fixture-identifier lint would make it a discipline — the allowlist-inversion lint shipped (iss-154) and cites the principle by name, so the Promotion paragraph misdirects an agent to build an existing rule
- iss-2608260944055780Brief self-contradiction on abcd lint's exit grammar: 05-internals/06-lint.md:174 states "Exit code follows the standalone grammar (blocker -> 1, warn -> 2, clean -> 0)", which inverts the two non-zero codes. internal/core/repolint/repolint.go:147 exitCode() returns 2 on any blocker, 1 on warnings only, 0 clean, and its own comment names the Conftest tri-state; 04-surfaces/16-lint.md:41 agrees with the code. Observed: this tree at 19 errors and 3 warnings exits 2. The consequence is worse than count drift, because an exit code is a number a CI job branches on: a job written against 06-lint.md would treat 1 as its failure condition and pass green on a tree full of blockers, a gate that runs and never fires. Same class as iss-142 (the iss-37 phantom-enforcement class) and the same file, different line; iss-181 and iss-251 also sit on this file and cover neither. Brief-tier, so under adr-28 it ships in no release artefact and reaches no installed surface, which is the standing disposition for brief drift and the argument for a lower severity. Refines iss-2608261029074763, which records the wider defect this is one symptom of: 06-lint.md section 3 documents an architecture that was never built, verified as internal/core/lint having no package main so the documented invocation cannot run, --codes-filter, --promote-check, --touched-line and --display-path having zero hits across internal/ and cmd/, no .pre-commit-config.yaml, and IntentLinter, _classify_and_filter, _parse_hunk_lines and _detect_location present in no source file. That record cites this one for the exit grammar rather than restating it. Adjacent and distinct: iss-2608231000561060 covers the gates-CI claim and gate-readiness. Detector: enforcement-claims-are-facts sweep over the brief's exit-code and gating claims. Acceptance corpus: the three lines above.
- itd-100Alice Reads One Page and Knows Exactly Where abcd Stands in the Agentic-AI Landscape
- spc-8epic-to-spec-terminology