Contributing
Contributions are welcome — whether it’s a bug fix, a new feature, or an improvement to the documentation. This guide covers everything you need to get started.
Local development setup
Section titled “Local development setup”-
Clone the repository
Terminal window git clone https://github.com/senivel/domain-context-claude.gitcd domain-context-claude -
Link skills and hooks for development
Terminal window node bin/install.js --linkCreates symlinks from
~/.claude/to your local source files. Edits to skills, hooks, and templates are immediately live — no re-install needed. Use--link --localfor project-scoped installs. -
Run the context validator
Terminal window bash tools/validate-templates.sh .Checks that
.context/MANIFEST.mdis in sync with the files on disk — catches broken links, orphans, and stale entries. -
Test the full npm package flow
Terminal window npm pack && npx ./domain-context-cc-*.tgzBuilds a tarball and installs from it, simulating what users experience with
npx domain-context-cc.
Project structure
Section titled “Project structure”commands/dc/ Six slash commands (/dc:init, /dc:explore, etc.)hooks/ Session-start and edit-time lifecycle hooksagents/ Domain validator subagentrules/ Path-specific editing guidance for .context/ filestemplates/ Scaffolding files copied by /dc:inittools/ Standalone validation scriptbin/ npm installer entry pointdocs/ Documentation site (Astro/Starlight)This project produces configuration files only — markdown skills, Node.js hooks, and shell scripts. There is no runtime library code.
Code conventions
Section titled “Code conventions”Skills
Section titled “Skills”Markdown files with YAML frontmatter (name, description, allowed-tools) followed by <objective>, <execution_context>, and <process> sections. All skill names use the dc: prefix.
Node.js scripts that read JSON from stdin and write JSON to stdout. Hooks must be timeout-safe and must always exit 0 on error — they should never block the user’s workflow.
Templates
Section titled “Templates”Plain markdown with {placeholder} tokens. Templates are copied to the target project by /dc:init and filled in during scaffolding.
Markdown files in .claude/rules/ with a globs frontmatter field for path matching. Rules provide editing guidance when Claude Code modifies files inside .context/.
Naming and dependencies
Section titled “Naming and dependencies”- kebab-case for all file names
dc:prefix for all skill names- No runtime dependencies — Node.js built-ins only
Pull request process
Section titled “Pull request process”- Fork the repository and branch from
main - Use imperative mood in commit messages (e.g., “add freshness check hook”, not “added” or “adding”)
- Context changes (
.context/files) go through the same review process as code - Open a PR with a clear description of what changed and why
Further reading
Section titled “Further reading”- Architecture and Concepts — understanding the system design and integration model
- CLI Reference — full details on every command