aidd-lint: tier-2 prose-smell charter #107
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#107
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Tier 2 of the aidd-lint system (see mapping ticket): prose smells with no structural signature that deterministic cops can reach. Closed catalog of three, each with name / definition / exemplar / prescribed fix:
c6a4177.Judge: single-shot haiku/sonnet pass over a changed file, charter file supplied verbatim in the prompt, output in the same offense format as the deterministic cops. The judge may NOT invent smells outside the catalog. Also serves as the anti-gaming backstop for step-bulk (fat step split into thin steps that are still gate logic).
Acceptance criteria
file:line: <smell-name>: <one-line finding>lines.mine-lints/SKILL.md(git show5ea6bbf) flags at least 2 of the 3 smells; against current HEAD is clean or advisory-only.Non-goals
Verify
The two-commit A/B in acceptance criteria, plus one run on a file outside os-sdlc to confirm no os-sdlc-specific assumptions.
Implemented on branch aidd-lint/tier-2 (uncommitted, pending review). Tier2::Judge behind
bin/aidd-lint --tier2, charter at references/tier2-charter.md, judge prompt asset, shared PathReferenceScanner (dead-reference cop refactored onto it), injectable claude -p invoker with visible invoker_failed + logged catalog/range discards, single-run eval harness. ADR-0060.Acceptance amendment (evidence-driven): a catalog-validation mining pass over 3 files unrelated to
c6a4177confirmed only duplicated-authority recurs (at 3 scales: cross-plugin, within-file paraphrase, frontmatter-vs-body); rationale-in-the-imperative and misplaced-pre-emption found no clean instances and are marked status: provisional in the charter. Live haiku A/B: pre-c6a4177 fixture flagged duplicated-authority on the template consistency-check restatement (the ticket's exemplar); HEAD clean on run 1; closed catalog held in all runs; pinned counter-example never flagged. Original >=2-of-3 bar therefore amended to 1-of-3 — recorded in ADR-0060 and the charter. Cross-file authority resolution shipped (validation showed it's where the confirmed smell lives); unreferenced-Ruby-gate blind spot recorded as accepted limit.Open: queue-drain wiring (nothing consumes the Tier-2 queue yet; --tier2 is manual). Full suite 151 runs / 316 assertions green incl. #108's tests + opus review fixes.
Reviewed and merged to main in
41240a8(2026-07-23).