Terminal chatbot where skills (markdown trees) are first-class tools. Skills live under skills/; skill-sync generates src/generated/skills.ts for tool calling.
.env.example) or Ollama locallynpm install
npm run skill-sync
npm install also enables the Husky pre-commit hook (prepare).
.py skill scripts)Create a repo-root .venv and install deps from pyproject.toml / uv.lock (pymupdf, etc.):
# Install uv if needed: https://docs.astral.sh/uv/getting-started/installation/
uv sync
The script runner prefers .venv/bin/python when present; otherwise it falls back to python3 on your PATH.
Verify:
uv run python -c "import pymupdf; print('ok')"
npm run dev
You will be prompted for provider / credentials / model (env vars and ~/.config/skill-tree-rag/config.json are preferred when set). Then chat in the TUI.
/exit or /quit leaves the chatask_question tool can pause for a batch of A/B (or A/B + free-form C) questionsnpm run skill-structure-check
npm run skill-reference-check
npm run skill-frontmatter-check
npm run skill-sync
# or all of the above:
npm run precommit
Pre-commit runs precommit and stages src/generated/skills.ts if sync rewrote it.
npm install → npm run skill-sync) → optional Python setup (uv sync) → npm run dev.venv scripts runSKILL.md or add an unreferenced subskills/foo.md) and git commit — pre-commit should fail; restore and commit succeeds with syncSee AGENTS.md for skill layout and conventions. Longer product notes live in .scratch/ (local only).