{
  "markdown": "# caddis — a Claude Code harness\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n\n**caddis** is a Claude Code harness — a plugin (plus a shared pool of skills, subagents,\nslash-commands, and hooks) that makes a single Claude Code session dramatically more capable and much\nharder to derail. It's *agent-agnostic*: the same pool is exported to other AI CLIs (Codex,\nAntigravity, Copilot), and `CLAUDE.md`↔`AGENTS.md` are mirrors so every agent reads the same\nconventions.\n\n## Before you start\n\n| You need | Why |\n|---|---|\n| **Claude Code**, installed and signed in | caddis is a plugin for it |\n| **Python 3.11+** on `PATH` | the hooks and the cross-review tool are Python |\n| **Git** | several commands read repository state |\n| *(optional)* an API key for DeepSeek or GLM | only for cross-vendor review and the OSS lanes |\n\n**Honest about the platform:** caddis is developed and used daily on **Windows with PowerShell**.\nThe hooks are pure Python and cross-platform, and the skills, commands and agents are plain markdown\nthat work anywhere — but some launchers ship as both `.ps1` and `.sh`, the deployment skill is\nWindows-specific, and the publishing machinery (`sync.ps1`) is PowerShell-only. Nothing here is\nhostile to macOS or Linux; it is simply less travelled, so expect rough edges and please report them.\n\n## Your first five minutes\n\n```bash\nclaude plugin marketplace add saajunaid/caddis-plugin\nclaude plugin install caddis@caddis\n```\n\nThen, in a Claude Code session, confirm it actually loaded:\n\n```\n/caddis:version\n```\n\nIf that prints a version, you are installed. From there, the shortest path to seeing what caddis is\n*for*:\n\n| Try this | What it does |\n|---|---|\n| `/caddis:feature-plan add CSV export` | writes a phased, TDD-structured plan to `.caddis/plans/` — the durable spine the rest of the harness reads |\n| `/caddis:implement <plan>` | executes that plan phase by phase, committing each, and stops only at a real boundary |\n| `/caddis:cross-review` | has a *different vendor's* model review your diff, because a same-vendor reviewer shares your blind spots |\n| `/caddis:handoff` | writes the resume doc, so the next session starts with zero re-discovery |\n\nEverything else is optional. If you only ever use `feature-plan` → `implement` → `cross-review`, you\nhave most of the value.\n\nThis repository is the **published marketplace mirror**: it hosts the `caddis` and `caddis-extras`\nClaude Code plugins, the portable per-harness bundles under `bundles/`, and the shared pool. It is\ngenerated and pushed by the caddis authoring repo's exporter — issues are welcome here, but code\nchanges land upstream and are synced in.\n\n---\n\n## Install (Claude Code)\n\n```bash\n# 1. Register this repo as a plugin marketplace (once)\nclaude plugin marketplace add saajunaid/caddis-plugin\n\n# 2. Install the core plugin (always-on, lean context)\nclaude plugin install caddis@caddis\n\n# 3. (optional) Add the long-tail skill library — cloud/data/media/etc. Disabled by default,\n#    so it costs zero always-on context until you enable it.\nclaude plugin install caddis-extras@caddis\n```\n\nThen, in any repo:\n\n```\n/caddis:setup-project-ai     # deploy the harness into the project\n```\n\nA normal working loop looks like:\n\n```\n/feature-plan      # (or /prd first) → writes .caddis/plans/<slug>.md, the durable spine\n/implement         # executes the plan phase-by-phase, TDD, commit per phase\n/ship              # express lane: commit → push → CI (hotfixes); feature work: /ship-pr then /ship-merge\n/handoff           # ALWAYS end a session with this — writes the resume doc\n```\n\n**The one habit that matters most: end every session with `/handoff`.** It writes\n`.caddis/relay.md`, which is re-injected automatically at the next session start — you resume with\nzero re-discovery instead of a cold, forgetful session.\n\nSee [USERGUIDE.md](./USERGUIDE.md) for the full command/skill/hook reference and the mental models.\n\n---\n\n## What you get\n\n- **Slash-commands** — `/feature-plan`, `/prd`, `/implement`, `/tdd`, `/ship` · `/ship-pr` ·\n  `/ship-merge`, `/handoff`, `/kb`, `/digress` · `/resume`, `/cross-review`, `/usage-review`,\n  `/mermaid-db` · `/excalidraw-db`, `/setup-project-ai`, `/migrate-dir`.\n- **Subagents** — lean, own-context helpers: `anchor` (evidence-first verification),\n  `code-reviewer`, `preflight` (plan-vs-codebase validation), `tester`, `debug`, `codebase-audit`,\n  `security-analyst`, `data-engineer`, `sql-expert`, `knowledge-transfer`.\n- **A four-layer memory model** — session relay (`relay.md`), automatic Dream Memory\n  (`memory.jsonl`), a per-repo knowledge base (`.caddis/kb/` + `DOC-MAP.md`), and cross-repo memory.\n- **Hooks & safety** — a PreToolUse guard for secret/destructive writes, auto-lint on edit, and the\n  SessionStart/Stop hooks behind relay + memory.\n- **Tiered skills** — the core dev set ships in `caddis`; the long tail (cloud, data, media,\n  productivity) lives in `caddis-extras`, off by default.\n\n---\n\n## Installing outside Claude Code (Codex, Antigravity, …)\n\nThe knowledge layer (skills + `AGENTS.md` conventions) works in any harness. Per-harness bundles are\npublished under [`bundles/`](./bundles/) and installed with `caddis-init`:\n\n```bash\n# from a checkout of this repo (the installer ships in plugin/scripts/)\npython plugin/scripts/claudster_init.py --target codex        --dest /path/to/project\npython plugin/scripts/claudster_init.py --target antigravity  --dest /path/to/project\n```\n\nSafe by design: a sha256 manifest tracks what the installer wrote; re-runs update only unmodified\nfiles, and anything you edited locally is reported as a conflict, never overwritten.\n\n---\n\n## Repo layout\n\n| Path | What it is |\n|---|---|\n| `.claude-plugin/marketplace.json` | The marketplace manifest (`caddis` + `caddis-extras`) |\n| `plugin/` | The core `caddis` Claude Code plugin (agents, commands, hooks, core skills) |\n| `plugin-extras/` | The `caddis-extras` skill library (disabled by default) |\n| `bundles/` | Portable per-harness exports (codex, antigravity) for `caddis-init` |\n| `.github/` | The shared pool: skills, agents, prompts, instructions, tools |\n| `sync.ps1`, `export_runtime_resources.py`, `validate_pool.py` | The build/sync machinery |\n\n---\n\n## A note on names\n\ncaddis was previously published as **claudster** (and, before that, this repo hosted the **junai**\nCopilot pipeline — see the pre-1.2 entries in [CHANGELOG.md](./CHANGELOG.md)). Repos set up under\nthe old name have a `.claudster/` artifact dir; everything reads both `.caddis/` and `.claudster/`\nand **writes where the repo already lives**, so nothing breaks. Run `/caddis:migrate-dir` when you\nwant a repo converted. The `~/.claudster/` user scope (keys, install records) is permanent.\n\n---\n\n## License\n\n[MIT](./LICENSE). The published plugin bundles (`caddis` / `caddis-extras`) carry the same license\nin their manifests.\n",
  "bytes": 6888,
  "sha": "83523ea09fe769d4a8b93d53e22dbaabf76bfd8a20dcdef0e148cffc419500c1",
  "repo_slug": "saajunaid/junai",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_saajunaid_junai_mcp_90c8014d/readme"
}