feat: add openwiki integration claude to scaffold Claude Code skills for keyless docs#350
feat: add openwiki integration claude to scaffold Claude Code skills for keyless docs#350Kowshik Padala (Kowshik4593) wants to merge 5 commits into
openwiki integration claude to scaffold Claude Code skills for keyless docs#350Conversation
- Introduced `openwiki integration claude` command to scaffold Claude Code skills into target repositories. - Implemented `writeClaudeIntegration` function to create `openwiki-init` and `openwiki-update` skills with appropriate templates. - Updated CLI command parsing to handle integration commands and validate agent support. - Added tests for integration command parsing and skill file generation. - Created templates for `openwiki-init` and `openwiki-update` skills with detailed instructions for usage. - Enhanced README with integration usage instructions and examples.
There was a problem hiding this comment.
The integration scaffolder (openwiki integration claude [path]) follows symlinks when writing SKILL.md files into a user-supplied target directory, enabling a symlink-based arbitrary file overwrite if a malicious repository has pre-placed a symlink at the expected destination path.
|
Colin Francis (@colifran) — could you review this PR? It implements a native openwiki integration claude [path] subcommand that scaffolds two Claude Code skills, so users can generate and maintain openwiki/ docs directly from Claude Code without an OpenWiki API key. Key points: The skill bodies are bundled templates derived from src/agent/prompt.ts's repository-mode instructions, with tool vocabulary remapped to Claude Code natives (Read/Write/Edit/Glob/Grep/Bash). |
just for understanding, this is in the same lines of speckit skills. |
|
Colin Francis (@colifran) any comments? |
Summary
Adds
openwiki integration claude [path]— a CLI subcommand that scaffolds twoClaude Code skills (
openwiki-init,openwiki-update) into a target repository,so Claude Code itself generates and maintains the
openwiki/documentationwithout requiring a model provider or API key.
The skill bodies are bundled templates ported from the repository-mode
instructions in
src/agent/prompt.ts, with tool vocabulary remapped to ClaudeCode natives (Read/Write/Edit/Glob/Grep/Bash) and connector/CLI text removed.
Test plan
test/integrations-claude.test.ts(6 tests: scaffolding,frontmatter validity, tool names, path checks, idempotency, error handling)
test/commands.test.ts(5 new tests forintegration parsing, paths, unknown agents, flags)
format:check,lint:check,typecheckcleanexits 0 on success, 1 on error; no API key needed
discipline sections, so an incomplete future re-port from
prompt.tsfails loudlyDesign notes
kind === "integration"indispatch;
src/agent/prompt.tsand the running agent are untouched.src/integrations/index.tsallowsadding other host agents (Cursor, Copilot, etc.) later.
openwiki/repository docs); personal mode andconnectors remain on the credentialed runtime.
prompt.ts's repository-mode instructions. The drift guard test pins coresections to catch incomplete re-ports; periodic sync remains a manual responsibility.
Closes #349