Thanks for considering a contribution. This package is a scaffolder for personal LLM wikis on the Karpathy pattern. Keep contributions aligned with that pattern — simple, composable, no surprises — and the semver-stable surface in STABILITY.md.
git clone https://github.com/MackDing/create-opc-wiki
cd create-opc-wiki
npm install
npm run build
npm run test:smoke # 60+ assertions, no network required
npm run test:e2e # real npm install + MCP boot + site build (needs network)Node 20+ required (engines.node >= 20).
Say you want to add support for a new agent, e.g. foo-agent which reads
.foo/rules.md.
src/agents.ts— add an entry toAGENT_TARGETSand extendAgentKey.templates/scripts/sync-agent-rules.sh— add acasebranch that writes the file.docs/INSTALL-FOR-AGENTS.md— add a section with the paste-in one-liner.README.md— add a row to the "Install in any AI agent" table.agents.json— addfootosupported_agents.scripts/smoke-scaffold.mjs— add an assertion that the agent's file is written when requested.
Run npm run test:smoke and npm run test:e2e. Both must pass.
templates/recipes/<source>.md— new recipe file. Follow the shape of existing recipes (arXiv, X, YouTube, RSS, podcast).templates/recipes/_index.md— add a row.templates/agent-rules/main.md.tpl— add an example/wiki-ingestline under "## Recipes".
npm run build
node dist/cli.js /tmp/test --yes --agents=claudeOr symlink for repeated runs:
npm link
create-opc-wiki /tmp/test --yes
npm unlink -g create-opc-wikiBefore changing any of the following, check STABILITY.md — they are under semver and breaking changes need a major bump and a deprecation window:
- CLI flag names, types, behavior
- Generated file paths in the scaffolded vault
- Frontmatter schema (required fields on wiki pages)
- MCP tool names, parameter schemas, return shapes
--jsonoutput shape
Template prose, skill prose, recipe prose, visual design of the generated
site, and internal dist/api.js are not under semver.
npm run test:smoke— fast (no network), runs in every CI job.npm run test:e2e— slow (realnpm install), runs in one CI job on Ubuntu. Skipped ifOFFLINE=1.
New code should be covered by at least the smoke test. If you add a user-facing flag or a generated file path, add an assertion for it.
- Fork, branch off
main. - Keep the PR focused — one concern per PR.
- Include a line in
CHANGELOG.mdunder## [Unreleased](create the section if missing). - Fill out the PR template.
- CI must be green (3 OSes × 2 Node versions for smoke; Ubuntu for e2e).
- Prettier-ish default. No config opinions beyond what the existing code uses.
- TypeScript strict. No
anyunless genuinely unavoidable. - Small files. If a source file passes ~300 lines, split it.
Open a GitHub issue. For security concerns, see SECURITY.md.