aidd-lint rule: skill-frontmatter-name #106

Closed
opened 2026-07-23 11:31:23 +00:00 by jared · 4 comments
Owner

Problem

A name: key in SKILL.md frontmatter collapses the slash command to a bare unnamespaced form -- recorded standing convention in plugins/cc-architect/references/conventions/cc-os-naming.md ("never set a name: field in SKILL.md frontmatter"). Currently enforced only by authors remembering the doc. Must-fail shape:

---
name: mine-lints
description: ...
---

Detection

  • Inputs: files named SKILL.md; their YAML frontmatter.
  • Algorithm:
    1. Parse the frontmatter block (between leading --- pair).
    2. Top-level name: key present -> offense.
  • Failure message (verbatim contract): "<file>:<line>: SKILL.md frontmatter sets 'name:', which collapses the slash command to a bare unnamespaced form. Delete the key (see cc-os-naming.md)."
  • Autofix: delete the name: line.

Correction

 ---
-name: mine-lints
 description: Mine one or more files for candidate lint rules...
 ---

Pass/fail examples

  • Must fail: the frontmatter above.
  • Must pass: every current plugins/os-*/skills/*/SKILL.md; a name: key nested under another mapping; name: appearing in the body prose.

Provenance

cc-os naming convention (cc-os-naming.md); aidd-lint system 2026-07-23 (see mapping ticket).

Implementation plan

Same markdown-lint infra; trivial cop; TDD. Candidate first cop to implement (smallest end-to-end tracer through the new infra).

## Problem A `name:` key in SKILL.md frontmatter collapses the slash command to a bare unnamespaced form -- recorded standing convention in `plugins/cc-architect/references/conventions/cc-os-naming.md` ("never set a `name:` field in SKILL.md frontmatter"). Currently enforced only by authors remembering the doc. Must-fail shape: ``` --- name: mine-lints description: ... --- ``` ## Detection - **Inputs:** files named `SKILL.md`; their YAML frontmatter. - **Algorithm:** 1. Parse the frontmatter block (between leading `---` pair). 2. Top-level `name:` key present -> offense. - **Failure message (verbatim contract):** `"<file>:<line>: SKILL.md frontmatter sets 'name:', which collapses the slash command to a bare unnamespaced form. Delete the key (see cc-os-naming.md)."` - **Autofix:** delete the `name:` line. ## Correction ```diff --- -name: mine-lints description: Mine one or more files for candidate lint rules... --- ``` ## Pass/fail examples - **Must fail:** the frontmatter above. - **Must pass:** every current `plugins/os-*/skills/*/SKILL.md`; a `name:` key nested under another mapping; `name:` appearing in the body prose. ## Provenance cc-os naming convention (cc-os-naming.md); aidd-lint system 2026-07-23 (see mapping ticket). ## Implementation plan Same markdown-lint infra; trivial cop; TDD. Candidate first cop to implement (smallest end-to-end tracer through the new infra).
Author
Owner

Work started — Batch 0 tracer on branch aidd-lint/tier-1 (see plan on #109).

Work started — Batch 0 tracer on branch aidd-lint/tier-1 (see plan on #109).
Author
Owner

Implemented on branch aidd-lint/tier-1 (plugins/os-aidd-lint, cop: skill_frontmatter_name.rb). 55-test suite green; report-only corpus scan run. Awaiting human review — open items noted on #109.

Implemented on branch aidd-lint/tier-1 (plugins/os-aidd-lint, cop: skill_frontmatter_name.rb). 55-test suite green; report-only corpus scan run. Awaiting human review — open items noted on #109.
Author
Owner

Implemented on branch aidd-lint/tier-1 (plugins/os-aidd-lint, cop: skill_frontmatter_name.rb). 55-test suite green; report-only corpus scan run. Awaiting human review — open items noted on #109.

Implemented on branch aidd-lint/tier-1 (plugins/os-aidd-lint, cop: skill_frontmatter_name.rb). 55-test suite green; report-only corpus scan run. Awaiting human review — open items noted on #109.
Author
Owner

This was generated by AI during triage.

Implemented on main: lib/aidd_lint/cops/skill_frontmatter_name.rb, registered in registry.rb (SkillFrontmatterName), tests at tests/cops/skill_frontmatter_name_test.rb (7 runs, 14 assertions, 0 failures). Closing.

> *This was generated by AI during triage.* Implemented on main: `lib/aidd_lint/cops/skill_frontmatter_name.rb`, registered in `registry.rb` (SkillFrontmatterName), tests at `tests/cops/skill_frontmatter_name_test.rb` (7 runs, 14 assertions, 0 failures). Closing.
jared closed this issue 2026-08-01 16:43:35 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#106
No description provided.