Thanks for your interest in improving this skill. Small, focused PRs are easier to review than big refactors.
- Read
CLAUDE.md. It captures the editorial invariants that keep the skill's output quality consistent. - Skim
skills/c4-model/SKILL.mdso you understand the router and common-contract pattern. - Open
tests/test-prompts.mdto see the prompts that validate the skill.
Welcome:
- Tightening existing guidance with a clearer example.
- Fixing an inconsistency between files (e.g. a rule in
SKILL.mdnot mirrored inreview-checklist.md). - Re-grounding a normative claim with a source URL.
- Adding a genuinely new mode that covers a use case not addressed by the existing five.
- Translating the skill to another language (keep the English version as the authoritative source).
- Improving example deliverables in
skills/c4-model/examples/.
Be careful with:
- Adding new prose to
SKILL.mdor amode-*.mdwithout a specific failure it addresses. Prefer "I watched Claude do X without this skill, the new sentence prevents it" over "this feels like it should be said."
Not accepted:
- Sections without a clear trigger. Skills that drift into general advice lose signal.
- Removing editorial invariants from
CLAUDE.mdwithout a discussed replacement. - Making a specific MCP server a hard dependency of a flow. MCP destinations are optional.
- Fork the repo.
- Create a focused branch (
fix/<short-slug>,feat/<short-slug>, ordocs/<short-slug>). - Make your change.
- Validate manually: walk through
tests/test-prompts.mdwith a fresh Claude Code session. Every prompt should still route and flow as documented. If your change breaks a prompt, update the test first or reconsider the change. - Update
CHANGELOG.mdunder## [Unreleased], describing what changed. - Open a PR with:
- A one-line summary.
- Before / after for the user-visible behavior.
- Which test prompt(s) you re-validated against.
New modes are significant additions. Before writing code:
- Open an issue describing the use case and why the existing five modes don't cover it.
- Agree on the mode name and file path (
mode-<name>.md). - Add the mode to the router table in
SKILL.mdand to the "Bundled references" section. - Write the mode file following the structure of the existing ones: When to use, Steps, Tools to use, Links.
- Add a test prompt for it in
tests/test-prompts.md. - Update
CLAUDE.md's tree.
mermaid-c4-syntax.md and review-checklist.md are grounded in external authoritative sources (mermaid.js.org, c4model.com). When you update them:
- Re-fetch the source to see what changed upstream.
- Keep the URL pointer at the top of the file.
- Keep our editorial additions clearly labeled ("Editorial advice", "Additions specific to this skill") and separate from the sourced content.
- Do not paraphrase sourced content in a way that could change its meaning.
Releases are cut manually and published automatically by .github/workflows/release.yml. The workflow fires on any tag matching v*, extracts the matching section from CHANGELOG.md, and creates a GitHub Release with those notes as the body.
This project follows Semantic Versioning:
- MAJOR: incompatible changes to the skill's contract (a mode is removed, an editorial invariant is dropped, the required output structure changes).
- MINOR: a new mode, a new reference file, a new feature that doesn't break existing usage.
- PATCH: bug fixes, wording improvements, link fixes, clarifications that don't change behavior.
Pre-release suffixes are supported: v1.1.0-rc.1, v1.1.0-beta.1, v1.1.0-alpha.1. The release workflow marks any tag containing - as a pre-release on GitHub.
- Update
CHANGELOG.md: move entries from## [Unreleased]into a new dated section## [X.Y.Z] - YYYY-MM-DD. Add a fresh empty## [Unreleased]section at the top. - Commit on
mainwith a message likechore: prepare vX.Y.Z release. Push to origin. - Tag:
git tag -a vX.Y.Z -m "vX.Y.Z". Annotated tags are required; lightweight tags won't trigger the workflow reliably. - Push the tag:
git push origin vX.Y.Z. - Watch the workflow. It should appear under the Actions tab within a few seconds. On success, a Release is created under the Releases tab with the extracted notes as the body.
If the workflow fails because the CHANGELOG section is missing, delete the tag (git tag -d vX.Y.Z && git push --delete origin vX.Y.Z), fix the CHANGELOG, and redo steps 3 and 4.
This project follows the Contributor Covenant Code of Conduct. Be respectful, assume good faith, and prefer concrete proposals over hot takes.
Open an issue and tag it question.