feat(validation): enforce 60K-char cap on skill reference files (#279)

* feat(validation): enforce 60K-char cap on skill reference files

Implements issue #277:

- validate-references.rb: new oversized_reference_errors check — every
  references/*.md must be <= 60,000 characters; error reports path, size,
  and the split-and-reindex remediation; wired into validate-skills.rb
- test-validate-skills.rb: 5 fixture tests (under-limit passes, over-limit
  fails with path+size, exactly-at-limit passes, remediation message,
  non-.md ignored); the suite now runs in validate.yml after the format
  check (it was previously untested in CI)
- Docs: agent-skills/SKILL.md, agent-skills/references/best-practices.md,
  and the AGENTS.md Format Compliance table document the cap and the
  split-and-reindex procedure
- Compliance: split remote-systems-administration/references/ansible.md
  and programming-principles/references/refactoring-guru.full.md into an
  index + focused parts (content moved verbatim); SKILL.md routing,
  README, and source-index references updated; pre-existing stale
  refactoring-guru-smells.md reference repointed to the index
- Fix pre-existing quality-gate violations in the programming-principles
  and remote-systems-administration descriptions (imperative verb +
  negative boundary) so this PR's CI quality step passes; regenerated
  llms.txt and marketplace artifacts

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* test(evals): add eval manifests to modified skills for ratchet

The eval-coverage ratchet requires schema-valid eval manifests for any
skill modified once coverage is past 50%. This PR modifies
programming-principles and remote-systems-administration (splitting
their oversized references), so add evals/evals.json to both:

- programming-principles: 6 output-quality cases (task-to-book mapping,
  principled code review, refactor-vs-rewrite, no-op detection, rule
  distillation, principle conflicts)
- remote-systems-administration: 6 output-quality cases (discovery
  before change, smallest control plane, rollback planning, platform
  identification, verification evidence, escalation on missing
  authority)

Coverage: 87/145 (60.0%) schema-valid; ratchet clean.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
Magnus Hedemark
2026-08-04 22:39:14 -04:00
committed by GitHub
co-authored by factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
parent c312b36166
commit 3eb7bd4096
21 changed files with 2020 additions and 1677 deletions
+9 -4
View File
@@ -1,6 +1,6 @@
---
name: programming-principles
description: Distilled coding principles from 14 classic software books.
description: Apply distilled coding principles from 14 classic software books to code review, refactoring, design, and implementation decisions. Do not use for language- or framework-specific tutorials, tool manuals, or tasks already governed by a project's established conventions.
license: MIT
compatibility: Platform-agnostic. Works with any agent that supports the Agent Skills
directory format. No external dependencies.
@@ -256,7 +256,7 @@ Smell catalog and technique catalog. Corrects: "pattern = always the answer."
- Diagnose the smell before choosing the technique
- Prefer the simplest treatment: rename before extract, extract before redesign
- Each smell has a specific root cause and treatment path
- See `references/refactoring-guru-smells.md` for the full catalog
- See `references/refactoring-guru.full.md` for the full catalog
## Compatibility Guide
@@ -300,13 +300,18 @@ skill_view(name='programming-principles', file_path='references/{book-dir}.mini.
| `references/working-effectively-with-legacy-code.mini.md` | Working Effectively with Legacy Code |
| `references/code-assessment-workflow.md` | Assessment methodology — not a book, but the workflow for combining all books against a real repo |
Each book also has a **full** version (11-63 KB) for deep reference when you need
Each book also has a **full** version (11-42 KB) for deep reference when you need
the complete rule catalog. Load on demand:
```
skill_view(name='programming-principles', file_path='references/{name}.full.md')
```
Note: `references/refactoring-guru.full.md` is an index that routes to two part
files (`refactoring-guru.full-smells-and-priorities.md` and
`refactoring-guru.full-technique-playbook-and-safety.md`). Loading the index
shows the "Parts of this reference" table; then load the specific part you need.
| Full File | Book | Size |
|-----------|------|------|
| `references/a-philosophy-of-software-design.full.md` | A Philosophy of Software Design | 13 KB |
@@ -319,7 +324,7 @@ skill_view(name='programming-principles', file_path='references/{name}.full.md')
| `references/implementing-domain-driven-design.full.md` | Implementing DDD | 12 KB |
| `references/patterns-of-eaa.full.md` | Patterns of Enterprise App Architecture | 15 KB |
| `references/refactoring.full.md` | Refactoring | 17 KB |
| `references/refactoring-guru.full.md` | Refactoring.Guru | 62 KB |
| `references/refactoring-guru.full.md` | Refactoring.Guru | index + 2 parts |
| `references/release-it.full.md` | Release It! | 13 KB |
| `references/the-pragmatic-programmer.full.md` | The Pragmatic Programmer | 13 KB |
| `references/working-effectively-with-legacy-code.full.md` | Working Effectively with Legacy Code | 13 KB |