fix(skill): repair the agent-facing structure of SKILL.md, add a doc gate + CI - #3
Merged
Merged
Conversation
…gate + CI The doctrine was fine; the wrapper around it was not. Fixed - SKILL.md cited design-rules.md §10.5, §12 and §9 for the production modes, the QA rule list and the slop check. That file stops at §9, and §9 is the platform-dimensions table — so the mandatory QA step in the workflow pointed at nothing. Now §4, §8 and §6, each quoted by title so a renumber is visible. - The QA step ran `python scripts/qa.py`, which resolves against the user's project once the skill is installed to ~/.claude/skills/. It now resolves the skill's own directory and names the dependency install. - `visual-advertising-engine.md §25` is a rule ID: cited as `R25`. Changed - "Load first (in order)" pulled the engine, the charter and the chat inject (~730 lines) before the brief was taken. Replaced with a load-when table: SKILL.md runs the brief, everything else opens at the step that needs it. core.md is marked as the paste-in for loader-less chat hosts and taken off the agent's path. - The table routes to all seven references; five of them previously appeared only inside the repo-structure tree, with no cue for when to open them. - Frontmatter is a valid Agent Skills header — version/author/url moved under `metadata`; the description leads with what the skill does and its trigger. - The 17 quick rules carry their canonical R-IDs, so summary and standard diff. Added - scripts/check_docs.py: dead links, §-pointers to missing sections, undefined rule IDs, invalid frontmatter, version drift. Against the previous commit it reports 8 problems, including every pointer fixed here. - .github/workflows/ci.yml running check_docs.py + test_qa.py. test_qa.py has shipped since 5.4.0 with nothing running it. - requirements.txt (pillow, numpy) and .claude-plugin/plugin.json. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011vYy2C92BdEun9DxDbWQ63
aievolutionpl
marked this pull request as ready for review
August 19, 2026 08:29
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
A structure pass over the skill wrapper. The doctrine is untouched —
visual-advertising-engine.md,design-rules.md,core.mdand everyreferences/file are byte-identical. What changed is how an agent finds its way through them.Fixed
SKILL.mdpointed at three sections that don't exist.design-rules.md §10.5(two production modes) and§12(the QA rule list) — that file stops at §9 — and the slop check was cited as§9, which is the platform-dimensions table. The mandatory QA step in the workflow sent the agent to nothing. Now §4, §8 and §6, each quoted by title so a renumber is visible instead of silent.python scripts/qa.py. Installed to~/.claude/skills/meta-ads-designer, that resolves against the user's project, where it doesn't exist. The step now resolves the skill's own directory and names the dependency install.visual-advertising-engine.md §25is a rule ID, cited asR25now, like everywhere else.Changed
SKILL.mdno longer front-loads the doctrine. "Load first (in order)" asked for the engine + charter + chat inject — ~730 lines — before the brief was even taken. Replaced with a load-when table: this file runs the brief end to end, everything else opens at the step that needs it.core.mdis off the agent's path, marked as what it is: the paste-in for chat hosts with no skill loader.layout-system.md,headline-system.md,qa-gate.md,anti-slop-registry.mdandniche-playbooks.mdpreviously appeared only in the repo-structure tree, with no cue for when to open them.version,authorandurlare not spec keys and a strict loader rejects them — moved undermetadata. The description now leads with what the skill does and states its trigger.R02,R03, …), so the summary and the standard can be diffed rather than trusted.Added
scripts/check_docs.py— dead relative links,§-pointers to missing sections, cited rule IDs no rule defines, invalidSKILL.mdfrontmatter, and version drift between the frontmatter, the README badges and the changelog. Run againstmainit reports 8 problems, including every pointer fixed here..github/workflows/ci.yml—check_docs.py+test_qa.pyon every push and PR.test_qa.pyhas shipped since 5.4.0 with nothing running it.requirements.txt(pillow,numpy) and.claude-plugin/plugin.json, so the skill installs through a marketplace and not only bycp -r.Version bumped to 5.5.0 across frontmatter, both README badges and
CHANGELOG.md.Verification
Not in this PR
The doctrine still lives in four places —
R01–R34in the engine, the prose summary indesign-rules.md, the full inject incore.md, and the 17 quick rules inSKILL.md— which is whatCONTRIBUTING.md's "one fact, one home" exists to prevent, and what the 5.4.0 changelog is largely a record of (16:9 dimensions, headline budgets, the version itself). The R-IDs added here make the drift detectable; collapsing it is a separate, larger editorial call, sincecore.mdis what people paste into ChatGPT.Generated by Claude Code