docs(skills): adopt the factory skill front-matter contract - #991
Merged
Conversation
Expand every docs/skills/*/SKILL.md to the 14-key front matter used by projectbluefin/common (name, version, last_updated, id, one_line_purpose, entry_point, category, mcp_compliance_level, optimization_status, status, dependencies, tags, description, metadata.type), preserving the existing metadata.source-of-truth entries. Enforce the contract in validate-docs.py: required-key presence, id and entry_point agreement with the directory, category/status/metadata.type enums, and the 256/120 character caps on description and one_line_purpose. The front-matter reader is a dependency-free subset parser that understands folded >- blocks, so the validate job needs no extra packages. Also fix link checking inside linked worktrees: the exclusion list matched absolute path parts, so every Markdown file was skipped when the repository was checked out under .worktrees/. Add docs/skills/write-a-skill covering the authoring contract and this repository's deliberate variances from common: per-skill directories only, a hard 180-line cap per SKILL.md, and a hand-curated index instead of common's generated index.json tooling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings this repository's skill docs up to
projectbluefin/common's front-matter contract and enforces it locally.What changed
docs/skills/*/SKILL.mdnow carries the full 14-key front matter (name,version,last_updated,id,one_line_purpose,entry_point,category,mcp_compliance_level,optimization_status,status,dependencies,tags,description,metadata.type). Existingmetadata.source-of-truthblocks are preserved verbatim..github/scripts/validate-docs.pyenforces the contract: required keys,id/entry_pointagreement with the directory,category/status/metadata.typeenums, and the 256/120 char caps. The parser is a dependency-free YAML subset reader (folded>-aware), so thevalidatejob needs no extra packages..worktreesby matching absolute path parts, so it skipped every file when the repo was checked out under.worktrees/. Now0 Markdown files→39 Markdown files.docs/skills/write-a-skill/SKILL.mddocumenting the authoring contract and this repo's deliberate variances from common: per-skill directories only, hard 180-line cap perSKILL.md, hand-curated index (no generatedindex.json/index.schema.json/generate_skill_index.py).Enforcement proof
Each violation was introduced temporarily and reverted; the validator failed with exit 1 in every case:
category: bogusinvalid category 'bogus'id: bulidid does not match directoryentry_point: docs/skills/build.mdentry_point must be docs/skills/build/SKILL.mdstatus: retiredinvalid status 'retired'metadata.type: essayinvalid metadata.type 'essay'version:/tags:missing version metadata/missing tags metadataone_line_purposeone_line_purpose exceeds 120 charactersdescriptiondescription exceeds 256 charactersname: buildsname does not match directory(exit 1)Validation
just check,python3 .github/scripts/validate-docs.py(13 skills, 39 Markdown files),pre-commit run --all-files,bats tests/unit/(148 tests) all pass. Line budgets:AGENTS.md128/150,docs/skills/index.md27/80, largestSKILL.md118/180.