os-aidd-lint: Tier-1 advisory cop — extract trigger clauses from description into when_to_use #190
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#190
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?
Approved 2026-07-31: amend the Tier-2
duplicated-authoritycharter entry with a fourth structural scale — frontmatter field-vs-field duplication (descriptionvswhen_to_use, which Claude Code concatenates under one shared 1,536-char routing cap; see skill_description_budget.rb header). Amendment draft exists (see session context / issue #189's sibling work). BLOCKED: catalog discipline requires a verbatim in-repo exemplar, and a full scan (2026-07-31) found zero other SKILL.md files usingwhen_to_useat all — the only instance (cc-architect) was already fixed. Unblock when a real when_to_use-bearing skill exhibits the duplication; then: amending ADR (precedent 0062/0063/0068), charter edit per its change-control banner, update charter_test/judge_test pins. Alternative noted by the scan: description-internal trigger-clause duplication (os-vault/os-adr/os-backlog skills) is a different smell shape and would need its own decision.os-aidd-lint: duplicated-authority fourth scale (description vs when_to_use) — approved, blocked on exemplarto os-aidd-lint: Tier-1 advisory cop — extract trigger clauses from description into when_to_useReframed 2026-07-31 after owner review. The original premise (Tier-2 duplicated-authority fourth scale, blocked on an exemplar) is retired: cc-architect was simply the first when_to_use adopter, and description-vs-when_to_use duplication is an artifact, not the smell. The actual rule wanted: a Tier-1 ADVISORY cop that detects trigger phrasing inside the
descriptionfrontmatter field (patterns like 'Use unprompted WHEN', 'Use when', 'Trigger on', 'Triggers:', 'Invoked by' trigger clauses) and recommends extracting it intowhen_to_use, leaving description as the capability sentence. Rationale: both fields concatenate for routing (shared 1,536-char cap), so placement is style — but the normalized style is capability in description, triggers in when_to_use; body placement remains a true defect and is already covered by skill-trigger-in-body. Exemplar corpus is abundant: os-vault query/write, os-adr create/find, os-backlog capture/route SKILL.md descriptions all embed 'Use unprompted WHEN…' clauses. No Tier-2 catalog change and no ADR-0060 amendment needed. Implementation should follow the existing cop pattern (see MissingArgumentsFrontmatter for a recent example) with minitest coverage, and be self-tested against the exemplar corpus.Already implemented: DescriptionTriggerPhrasing cop (advisory severity) in plugins/os-aidd-lint/lib/aidd_lint/cops/description_trigger_phrasing.rb — verified firing via bin/aidd-lint. Closing as done.