This repository contains skills for Guided Coding. The root package supports the Agent Plugins standard and generates a dedicated Claude Code marketplace adapter.
- Keep canonical skill instructions under
skills/<skill-name>/SKILL.md. - Use only
name,description, andlicenseinSKILL.mdfrontmatter. - Keep the skill directory and frontmatter name identical.
- State in every description that the skill runs only when explicitly requested.
- Put Codex-specific interface and invocation policy in
agents/openai.yaml. - Configure Claude-specific names and frontmatter in
tools/GuidedCoding.ClaudeGenerator/claude-skills.json. - Do not edit
claude-plugin/claude-skillsdirectly. Regenerate it withdotnet run --project tools/GuidedCoding.ClaudeGenerator. - Keep the generated directory named
claude-skills. A standardclaude-plugin/skillsdirectory is also discovered by GitHub CLI and would duplicate the portable skills during publication.
- Keep the version synchronized across
plugin.json,claude-plugin/.claude-plugin/plugin.json,.claude-plugin/marketplace.json, andMAJOR.MINOR.PATCHrelease tags without avprefix. Every tag is a release tag: the release tool refuses to run while any tag has another form. - Do not bump versions manually. Between releases, the manifests hold the last released version. Release with
dotnet run --project tools/GuidedCoding.Releaseor the manually triggered Release workflow in GitHub Actions. The tool derives the next version from the commits since the last release tag, updates the manifests andCHANGELOG.md, validates, commits, tags, pushes, and creates the GitHub release withgh release create, using the version'sCHANGELOG.mdentries as notes.gh skill publish --tagcannot publish a tag that already exists, so the tool only runsgh skill publish --dry-run. - Describe user-facing changes under
## [Unreleased]inCHANGELOG.md.
Use Conventional Commits messages. The commit type decides the next version:
featreleases a minor version,fixandperfrelease a patch version.!after the type or aBREAKING CHANGE:footer releases a major version. Removing or renaming a skill is a breaking change.- Other types, such as
docs,test,refactor, andchore, do not trigger a release. Changes to shipped skill content are thereforefeatorfix, neverdocsorchore. - Dependency updates do not reach users, so Dependabot commits as
build(deps). Keep this prefix in.github/dependabot.yml. - Pin third-party actions in workflows to a commit SHA with a version comment. Dependabot keeps both up to date.
- Regenerate the Claude adapter and run
dotnet testafter changing skills or manifests. - Run
dotnet run --project tools/GuidedCoding.ClaudeGenerator -- --checkto detect drift. - Run
claude plugin validate . --strictwhen Claude Code is installed. - Run
gh skill publish --dry-runbefore publishing a release. The release tool runs it for you.
If you find something noteworthy while working in this repository, add it here for discussion.