The capsule-render banner embeds counts URL-encoded in the image URL,
where no marker comment can live, so it stayed at 66 skills through the
v0.4.16 release. update-docs.py now rewrites the banner's desc=
parameter from computed counts, matching the existing marker-less
version-badge treatment.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
The constraints said never to deploy to production without explicit
approval, but the workflow's deploy step proceeded straight to rollout.
The workflow now determines the target environment and, for production
or customer-facing targets, requires presenting the deployment summary
and rollback plan and receiving explicit approval first. Mirrors the
terraform-engineer gate added in #213. Closes#196, closes#212.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
Post-merge patch for #219: kaniko is archived and unmaintained, so the
flagship build example now uses moby/buildkit:rootless with registry
cache, and principle 8 notes the migration. Also syncs reference-file
counts (366 -> 367) via update-docs.py, fixing the CI failure on the
merge commit. Social preview PNG regen deferred to next release.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
Follow-up to #220: reduces audit findings from 9 to 5. The remaining
five require a semver-major Astro 7 upgrade and are tracked separately.
Site builds clean (98 pages) with the updated lockfile.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
CI caught a contributor-machine absolute path in nestjs-expert that the
local run missed: joining an absolute ref onto a base dir returns it
unchanged, so it "resolved" against a stale clone outside the repo.
The checker now flags absolute paths unconditionally, keeping the check
hermetic across environments.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
A strict path audit following #225 found one more broken reference:
fastapi-expert's migration-from-django.md cited an absolute-style path
that resolves nowhere. To guard this recurring bug class, add
ReferencePathChecker to validate-skills.py: every backtick or
markdown-link .md path in skill files must resolve relative to the
containing file or the skill root. Runs by default, so CI and
make validate exercise it on every push.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6LA4sndtVGyvoXqwYeHoB
- vue-expert-js/SKILL.md pointed to vue-expert/references/*.md, which does
not exist relative to the skill directory; the shared references live in
the sibling skill, so the paths need a ../ prefix.
- react-expert/references/migration-class-to-modern.md pointed to
react-expert/references/server-components.md from inside that same
directory; corrected to references/server-components.md to match the
path convention used elsewhere in the skill.
Without these, an agent following the 'defer to vue-expert' instruction
fails to Read the referenced files.
The frontmatter in commands/project/execution/complete-ticket.md had two
strict-YAML errors that broke parsing in oh-my-pi and the GitHub renderer:
- Line 3: unquoted double quotes mid-scalar (`"In Review"`) were
interpreted as a quoted-string opener with trailing junk.
- Line 4: `argument-hint: [ticket-key] (optional...)` led with `[`,
which opens a flow-style sequence and then failed on the prose tail.
Wrap both values in matching outer quotes.
Also add CommandFrontmatterChecker to scripts/validate-skills.py. It
strict-parses the YAML frontmatter of every commands/**/*.md with
PyYAML (no fallback to the lenient simple_yaml_parse, which had been
masking these bugs), and runs as part of the workflow validation pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a privacy policy at /privacy/ on the docs site, required for the
Anthropic plugin marketplace submission. Discloses the docs site's
third-party services (GA4, jsDelivr, GitHub Pages), clarifies that the
plugin itself collects nothing and runs locally, and notes that user-
configured MCP server integrations (e.g., Atlassian) follow the vendor's
own privacy policy. Contact channel is the maintainer's existing
Formspree contact form on jeffallan.github.io.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Patch release crediting @sobstel for fixing invalid pg_stat_* column
references in postgres-pro reference docs (#191).
Also clarifies the release checklist: only regenerate the social preview
when skill/workflow/reference counts change (the image embeds counts, not
the version), and use `npx -p puppeteer` instead of `npm install --no-save`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Append a [Documentation](docs-site-url) line as the last content line of
every SKILL.md (66 files). Skill aggregators that consume raw source
markdown (skills.sh, etc.) will render this as a real <a href> backlink
to the docs site, providing free SEO link equity from each aggregator.
The strip rule in syncSkillPages (commit 3385184) suppresses the line in
the docs site's own rendered output, so the docs site, public markdown
mirrors, llms.txt, and llms-full.txt remain free of self-references.
URL formula: https://jeffallan.github.io/claude-skills/skills/{domain}/{skill-name}/
where {domain} comes from metadata.domain in the frontmatter (defaulting
to "specialized" if absent, matching the sync-content.mjs fallback) and
{skill-name} is the skill's directory name.
Documented the convention in CLAUDE.md so future skill additions follow
the same pattern.
Release: v0.4.13 (patch). No skill count changes (66 skills, 9 workflows,
366 reference files).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The bulk SKILL.md update appends a [Documentation](docs-site-url) line so
that aggregators (skills.sh, etc.) consuming raw source markdown render
a real <a href> backlink to the docs site for SEO. On the docs site itself
that URL points at the page rendering it — a self-link with no value and
visual redundancy. syncSkillPages now strips that exact line at build time
so the docs site, public markdown mirrors, llms.txt, and llms-full.txt
all render clean while the source files retain the line for downstream
syndication.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Moves the merged README link fix and command frontmatter additions
into the Unreleased section: #180 and #186 under Fixed, #182-#185
under Changed (explicit-over-implicit, since filename-derived naming
was already working). Credits @modir and @xiaolai under Contributors.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Commands execute-ticket and complete-ticket were missing the required
name field in their YAML frontmatter, preventing registration by name
in Claude Code.
Co-authored-by: claude[bot] <claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Commands create-epic-plan and create-implementation-plan were missing
the required name field in their YAML frontmatter, preventing registration
by name in Claude Code.
Co-authored-by: claude[bot] <claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Commands approve-synthesis, synthesize-discovery, and create-epic-discovery
were missing the required name field in their YAML frontmatter, preventing
registration by name in Claude Code.
Co-authored-by: claude[bot] <claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Commands complete-sprint and complete-epic were missing the required
name field in their YAML frontmatter, preventing registration by name
in Claude Code.
Co-authored-by: claude[bot] <claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
COMMAND.md was missing the required name field in its YAML frontmatter,
preventing registration as the common-ground command in Claude Code.
The name common-ground is confirmed by common-ground.yaml which declares
command: "common-ground" for this file.
Co-authored-by: claude[bot] <claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
A small hack because the link to the workflow commands docs is not correctly rendered because the beginning of the line started with a comment sign. Hence I added the word "The" on the front.
Signed-off-by: Raffael <r.luthiger@huanga.com>
Add performance/security testing (#55) and regression test suite (#54)
requirements to planning and retrospective command rewrites. Update
GitHub Issues table to reflect current status.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add prettier-markdown pre-commit hook for skills/, docs/, and root .md
files (excludes commands/ prompt templates). Add markdown check to CI
validate workflow and Makefile lint/format/validate targets. Document
all linting and formatting conventions in CONTRIBUTING.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 22 back-references across devops-engineer, fullstack-guardian,
test-master, database-optimizer, security-reviewer, architecture-designer,
and kubernetes-specialist. Each back-reference was evaluated for genuine
agent routing value — framework/language skills that merely consume hub
capabilities were excluded (15% acceptance rate from 145 candidates).
Bump skill versions 1.1.0 → 1.1.1.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Bump 65 skill versions from 1.0.0 to 1.1.0 (PR #172 changes)
- Update changelog for v0.4.10
- Update version.json and docs to 0.4.10
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The original Description Trap (from obra/superpowers research) warned
specifically about process steps leaking into descriptions. The project
over-generalized this into a trigger-only rule that also excluded
capability verbs. This aligns the guidance with the AgentSkills.io spec
which recommends describing both what a skill does and when to use it.
- CLAUDE.md: narrow Description Trap, update format template and examples
- MODELCLAUDE.md: matching update to Description Trap section
- validate-skills.py: change startswith to contains check for "Use when"
- CHANGELOG.md: document changes under [Unreleased]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The docs site landing page still showed 65 skills and 357 references.
Updated to 66/365 and added both astro site files to update-docs.py
so they stay in sync on future releases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>