{"_id":"@abhishek.nagaraja/catms","_rev":"3-032c6d8b6df076011bf82394dd89683e","name":"@abhishek.nagaraja/catms","dist-tags":{"latest":"0.6.0"},"versions":{"0.4.0":{"name":"@abhishek.nagaraja/catms","version":"0.4.0","keywords":["ai-agents","agents.md","claude-code","cursor","linear","obsidian","workflow"],"license":"MIT","_id":"@abhishek.nagaraja/catms@0.4.0","maintainers":[{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"}],"homepage":"https://github.com/nagarajaabhishek/CATMS#readme","bugs":{"url":"https://github.com/nagarajaabhishek/CATMS/issues"},"bin":{"catms":"bin/catms.js"},"dist":{"shasum":"0b3335aeba5c9daa6bc7ddec5d4a3f63edd0eeb3","tarball":"https://registry.npmjs.org/@abhishek.nagaraja/catms/-/catms-0.4.0.tgz","fileCount":32,"integrity":"sha512-ZN4+8SsLAGDUNaqZyb4QzdvAr2S70qiN9Ig4G1HXxJW9QDBLjFaPGyT/fhnZ3LN5vR/mX4wa3+VXm24m9Q4/5w==","signatures":[{"sig":"MEYCIQCpavBHGnSIOZNE3Qb0rzCRFbz7Xs0UU21X71Qg2US+8QIhALsxsS4YDM6y2CoW83ws29YAuY9fy4aUdCcxsinRv+mI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55901},"engines":{"node":">=18"},"gitHead":"86d5184cec7104e7b7e657d0e721275fcbd29fe9","_npmUser":{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"},"repository":{"url":"git+https://github.com/nagarajaabhishek/CATMS.git","type":"git"},"_npmVersion":"11.16.0","description":"Coding Agents Team Management System — Linear + Obsidian + AGENTS.md workflow scaffolding for multi-agent AI coding teams","directories":{},"_nodeVersion":"26.3.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/catms_0.4.0_1783209029649_0.7156303256663226","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@abhishek.nagaraja/catms","version":"0.5.0","keywords":["ai-agents","agents.md","claude-code","cursor","cams","rag","workflow"],"license":"MIT","_id":"@abhishek.nagaraja/catms@0.5.0","maintainers":[{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"}],"homepage":"https://github.com/nagarajaabhishek/CATMS#readme","bugs":{"url":"https://github.com/nagarajaabhishek/CATMS/issues"},"bin":{"catms":"bin/catms.js"},"dist":{"shasum":"339da6abd28f667c4e4a91eb1e2d236eefdaea72","tarball":"https://registry.npmjs.org/@abhishek.nagaraja/catms/-/catms-0.5.0.tgz","fileCount":37,"integrity":"sha512-yBz/gxkY65ciDFtpfKi+J81qoGgeyiGHo/gLoVoFjmdmSPgihYfw1NbRiuLV9QcTGrc3Qjx4aM8Hfc8MWEtW2w==","signatures":[{"sig":"MEYCIQCSBRL6gijMeAIVlqqRzzNMxwo8uYdTMcI4AZrDZDSrJAIhAJJU2lWSTHG9kCxU7cvO8wYC4yTHCuWfm5PAdFDhOKP5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140761},"engines":{"node":">=18"},"gitHead":"1276db89f98b887cf434db6b1416f60ad08052e8","_npmUser":{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"},"repository":{"url":"git+https://github.com/nagarajaabhishek/CATMS.git","type":"git"},"_npmVersion":"10.9.8","description":"Coding Agents Team Management System — Trackers + CAMS RAG workflow scaffolding for multi-agent AI coding teams","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/catms_0.5.0_1787823193862_0.499655218005036","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@abhishek.nagaraja/catms","version":"0.6.0","publishConfig":{"access":"public"},"description":"Coding Agents Team Management System — Trackers + CAMS RAG workflow scaffolding for multi-agent AI coding teams","bin":{"catms":"bin/catms.js"},"engines":{"node":">=18"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nagarajaabhishek/CATMS.git"},"keywords":["ai-agents","agents.md","claude-code","cursor","cams","rag","workflow"],"_id":"@abhishek.nagaraja/catms@0.6.0","gitHead":"bcd7dad721ae9f12d0c17916a1b8594509ae8d09","bugs":{"url":"https://github.com/nagarajaabhishek/CATMS/issues"},"homepage":"https://github.com/nagarajaabhishek/CATMS#readme","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-bc0fQrr7rf1zTPcHoNj+kdJHj3mhcqb+QKFhCM+RvvKuhGanCedyB5HQfFFfBNGURIU5xy1MSBW5ECuxMh0TFw==","shasum":"af5837c60cb85a0c168113aa8f71793fcde76d64","tarball":"https://registry.npmjs.org/@abhishek.nagaraja/catms/-/catms-0.6.0.tgz","fileCount":40,"unpackedSize":168087,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE1k0aVR8mtOs2ey90tvlf6PS122FkBshJ4nOozOR+/uAiAIghPCTcneMcPe/dJjwxkCP3ntRdNOJmQxJzk5xaCW/A=="}]},"_npmUser":{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"},"directories":{},"maintainers":[{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/catms_0.6.0_1787903276776_0.859685060872496"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-04T23:50:29.529Z","modified":"2026-08-28T07:47:57.170Z","0.4.0":"2026-07-04T23:50:29.773Z","0.5.0":"2026-08-27T09:33:14.005Z","0.6.0":"2026-08-28T07:47:56.929Z"},"bugs":{"url":"https://github.com/nagarajaabhishek/CATMS/issues"},"license":"MIT","homepage":"https://github.com/nagarajaabhishek/CATMS#readme","keywords":["ai-agents","agents.md","claude-code","cursor","cams","rag","workflow"],"repository":{"type":"git","url":"git+https://github.com/nagarajaabhishek/CATMS.git"},"description":"Coding Agents Team Management System — Trackers + CAMS RAG workflow scaffolding for multi-agent AI coding teams","maintainers":[{"name":"abhishek.nagaraja","email":"work.abhishekn@gmail.com"}],"readme":"# CATMS — Coding Agents Team Management System\n\nA drop-in workflow template for teams building with multiple AI coding agents (Cursor, Claude Code) alongside humans.\n\n**The problem:** AI agents are stateless. Every new session forgets everything. When two agents and a human work on the same codebase, work gets duplicated, context is lost, and nobody knows who did what.\n\n**CATMS solves this** with a lightweight local workflow:\n- **Local Trackers** (`tasks.md`, `sprint.md`, `decision.md`) are the single source of truth for tasks, ownership, state, and design decisions\n- **CAMS RAG** is the cross-agent memory — a local, lightweight semantic memory layer running as an MCP server with pluggable embedding providers (OpenAI, Voyage, Ollama) and flat file storage (`memory.ndjson`)\n- **`AGENTS.md`** is the single canonical rules file — read natively by Cursor, Google Antigravity, Codex, and Windsurf; `CLAUDE.md` imports it for Claude Code\n- **OpenSpec** gives every feature a paper trail before any code is written\n- **`docs/BRANCHING.md`** ties every branch to a task ID, with a CAMS-backed collision check before you cut one and a `depends_on`/`blocks_on` mechanism for real cross-task dependencies — single-stage (`feat→main`) or two-stage (`feat→dev→main`), chosen at `catms init`\n- **`docs/SPRINT-WORKFLOW.md`** groups multi-task/multi-repo initiatives in `sprint.md`, with a single-active-sprint WIP limit\n- Seven Claude Code skills (`task-kickoff`, `sprint-planning`, `pr-checks-loop`, `sprint-close`, `project-adoption`, `session-sync`, `architecture-diagram`) turn the docs above into runnable checklists — including a first-run pass that seeds the trackers from an existing codebase, a proactive end-of-session sync so nothing gets forgotten, and a grounded Mermaid architecture diagram saved into the repo\n\n---\n\n## Multi-agent support\n\n`AGENTS.md` is the canonical standard — Cursor and Google Antigravity read it live off disk every session, no setup required. Claude Code doesn't read `AGENTS.md` natively, so `templates/CLAUDE.md` is a thin file that imports it with `@AGENTS.md` plus Claude-Code-only notes (the CAMS MCP tools, the four skills, `/clear` usage). `CURSOR.md` similarly shrinks to just Cursor+Claude coordination details.\n\nNet effect: one file (`AGENTS.md`) to edit, multiple tools that stay in sync automatically.\n\n---\n\n## What's included (v0.5.0)\n\n```\nbin/catms.js          ← CLI entry point (init | update | --version | --help)\nlib/                  ← CLI implementation (no runtime dependencies, Node builtins only)\n\ntemplates/            ← Copied into your project by `catms init`\n  AGENTS.md           ← Canonical rules — read natively by Cursor, Antigravity, Codex, Windsurf\n  CLAUDE.md           ← Thin wrapper: @AGENTS.md import + Claude Code specifics (incl. the 4 skills)\n  CURSOR.md           ← Thin wrapper: Cursor+Claude coordination specifics\n  .cursor/rules/      ← Auto-applied Cursor rules (.mdc) — point at AGENTS.md\n\n  branching/          ← docs/BRANCHING.md — single-stage.md or two-stage.md, chosen at init\n  docs/               ← SPRINT-WORKFLOW.md\n  scripts/            ← branch-audit.sh — report-only, reads .catms.json's repos field\n  claude-skills/      ← task-kickoff, sprint-planning, pr-checks-loop, sprint-close, project-adoption, session-sync,\n                        architecture-diagram → .claude/skills/\n\n  trackers/           ← Tracker templates copied to project root\n    tasks.md          ← Project backlog, component tasks, claim/handoff/branch/depends_on fields\n    sprint.md         ← Active, planned, and completed sprints\n    decision.md       ← Settled product/architecture decisions\n    log.md            ← Reverse-chronological session summary log\n    sessions/         ← Session logs folder containing YYYY-MM-DD.md files\n    \n  cams/               ← Lightweight semantic memory RAG server\n    server.ts         ← MCP server with cams_query, cams_ingest, cams_backfill\n    package.json      ← MCP SDK dependencies\n    tsconfig.json     ← TypeScript config\n    gitignore.template ← → tools/cams/.gitignore (ignores node_modules, .env, memory.ndjson)\n    .env.example      ← Reference only — catms init writes the real tools/cams/.env directly\n\nopenspec-templates/   ← Design documents for features\n  proposal.md         ← Why (problem, scope, success criteria)\n  specs.md            ← What (ADDED / MODIFIED / REMOVED)\n  design.md           ← How (architecture, decisions)\n  tasks.md            ← Checklist mirroring task sub-issues\n```\n\n---\n\n## Prerequisites\n\n- Node ≥18\n- One embedding source for CAMS: an **OpenAI** or **Voyage** API key (default path — a few cents to ingest a project's worth of trackers, nothing to install), or a locally running **Ollama** with `mxbai-embed-large` pulled if you'd rather not use an API key\n- **No Docker, no Postgres, no database server** — CAMS stores memory in a single `memory.ndjson` file, scanned in-process\n\n---\n\n## Quick start\n\n```bash\nnpm install -g @abhishek.nagaraja/catms   # or: npx @abhishek.nagaraja/catms init\ncatms init\n```\n\nUntil you've installed it, you can also run it from a local clone:\n```bash\ngit clone https://github.com/nagarajaabhishek/CATMS.git\ncd CATMS && npm link\ncd /path/to/your-project && catms init\n```\n\n`catms init` asks for your project name, an embedding provider (OpenAI/Voyage/Ollama) and key, a branch strategy (single-stage `feat→main` or two-stage `feat→dev→main`), and a target directory — then copies all templates, trackers, `docs/BRANCHING.md`/`docs/SPRINT-WORKFLOW.md`, the four Claude Code skills, and CAMS, and registers the local CAMS MCP server in `.mcp.json`. If the target directory contains multiple git repos (a multi-repo workspace), they're auto-detected into `.catms.json`'s `repos` field so `scripts/branch-audit.sh` covers all of them.\n\n---\n\n## Keeping templates up to date\n\nCATMS is versioned via npm. When a new version ships, run inside your project directory:\n\n```bash\ncatms update\n```\n\n**What gets updated automatically:**\n- `.cursor/rules/*.mdc`, `docs/BRANCHING.md` (re-written with the *same* single-/two-stage variant your project was set up with), `docs/SPRINT-WORKFLOW.md`, `scripts/branch-audit.sh`, `.claude/skills/*/SKILL.md`, `openspec-templates/*.md`, `tools/cams/server.ts`, `tools/cams/package.json` — overwritten\n- `AGENTS.md` / `CLAUDE.md` / `CURSOR.md` — only the CATMS-managed block is updated, preserving custom contents outside markers\n- `.mcp.json` — CAMS MCP server configuration key is updated, leaving other tools intact\n- New files from the new version — added, e.g. `tasks.md`/`sprint.md`/`decision.md`/`log.md` are created if missing but never overwritten once they exist\n\n---\n\n## Core concepts\n\n### 1. Lazy context loading\nAgents read only what they need for the current task. Session start requires just reading `log.md`'s top entry and querying CAMS (`cams_query`) for specific details.\n\n### 2. One branch per task, with a real collision check\n```bash\ngit checkout -b feat/my-project-42-short-description\n```\nEvery feature, fix, or chore maps to a task ID in `tasks.md` and a branch — cut only after `cams_query`-ing what else is `In Progress` in the repo and what it touches (`docs/BRANCHING.md`). Real cross-task dependencies get a `depends_on`/`blocks_on` tag instead of racing to reconcile at merge time.\n\n### 3. Claim + handoff tracking\nWhen an agent starts a task, it sets `owner` in `tasks.md` to claim it. When it finishes or pauses, it updates the task status and records the execution details in `sessions/YYYY-MM-DD.md`.\n\n### 4. Sprints, one at a time\nMulti-task/multi-repo initiatives live in `sprint.md`, ranked into a queue and built one at a time — a WIP limit that keeps concurrent-branch collisions rare even with multiple agents in play (`docs/SPRINT-WORKFLOW.md`).\n\n### 5. OpenSpec before code\nFor any feature that takes more than a few hours: write `proposal.md` → `specs.md` → `design.md` → `tasks.md` first under `docs/design/changes/{change-name}/`.\n\n### 6. Semantic memory (CAMS)\nEvery decision/finding is stored semantically. Rerunning `cams_backfill` keeps memory in sync with local trackers.\n\n### 7. Adopting an existing project\n`catms init`'s trackers start empty whether the project is brand new or has years of history — it's a plain script with no model access, so it can't summarize a codebase itself. If it detects real commit history at setup time, it points at the `project-adoption` skill: run once, it reads the actual git log/README/stack and writes a conservative first `decision.md` entry plus a real `tasks.md` backlog (only from things it actually finds, never invented), then backfills CAMS — so session one has real context instead of nothing.\n\n### 8. Session sync, every time\nThe \"Every Session — End\" checklist (update `tasks.md`, write the session log, prepend `log.md`, record any real decision, `cams_ingest` + `cams_backfill`) is the highest-frequency step in the whole workflow and the easiest one to skip under time pressure. The `session-sync` skill runs it proactively whenever a session wraps up, not only when explicitly asked.\n\n### 9. Architecture diagrams grounded in real code\nThe `architecture-diagram` skill inspects the actual codebase (dependency manifests, `.env.example`, infra config, API routes, `.mcp.json`) before drawing anything, then produces a Mermaid diagram — component overview, a request/RAG-pipeline trace, or a schema view, whichever fits what was asked — saved to `docs/design/architecture.md`. Draws only what's evidenced; explicitly marks the boundary where untrusted content (user input, RAG-retrieved chunks, tool output) enters an agent's context, when there is one.\n\n---\n\n## Placeholders in templates\n\nWhen running `catms init`, these are replaced with your values:\n\n| Placeholder | Replaced with |\n|-------------|--------------|\n| `{PROJECT_NAME}` | Your project name |\n| `{GITHUB_USER}` | Your GitHub username |\n| `{DROPLET_IP}` | Your server IP (if applicable) |\n| `{SETUP_DATE}` | Today's date (`YYYY-MM-DD`), auto-filled |\n| `{INTEGRATION_BRANCH}` | `main` (single-stage) or `dev` (two-stage) — derived from the branch-strategy prompt, not asked directly |\n\n---\n\n## License\n\nMIT — use freely, attribution appreciated.\n","readmeFilename":"README.md"}