{"_id":"@ai-is-gonna/get-tasks-done","_rev":"8-8e3a2ee5f9d6cdf8141c1f917e847b8c","name":"@ai-is-gonna/get-tasks-done","dist-tags":{"latest":"0.2.4"},"versions":{"0.2.0":{"name":"@ai-is-gonna/get-tasks-done","version":"0.2.0","keywords":["claude","claude-code","ai","meta-prompting","context-engineering","spec-driven-development","gemini","gemini-cli","codex","codex-cli"],"author":{"name":"Davide Troiani"},"license":"MIT","_id":"@ai-is-gonna/get-tasks-done@0.2.0","maintainers":[{"name":"davide-troiani","email":"me@davidetroiani.it"}],"homepage":"https://github.com/ai-is-gonna/get-tasks-done","bugs":{"url":"https://github.com/ai-is-gonna/get-tasks-done/issues"},"bin":{"gtd-sdk":"bin/gtd-sdk.js","gtd-tools":"bin/gtd-sdk.js","get-tasks-done":"bin/install.js"},"dist":{"shasum":"c72a732d16ec5201c3f4f615fda57bdc8b9b6e80","tarball":"https://registry.npmjs.org/@ai-is-gonna/get-tasks-done/-/get-tasks-done-0.2.0.tgz","fileCount":1517,"integrity":"sha512-Woqycvj25/SkYeRDOSz4lR5jarqlSZbDp8oJ52/PT6drZJ05YTU/IFzPpVk1YvC2iz2Mphdr2hfP0XroBuK6Og==","signatures":[{"sig":"MEQCIB3W4FeNZ5PgJuWPE6w1PCanACB1szSsTtEadHmE8PFgAiAnAGFMk7CSh0vwbpQnB3P7Y46oHe7k0bzSeQ6x266HgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-is-gonna%2fget-tasks-done@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10785442},"engines":{"npm":">=10.0.0","node":">=22.0.0"},"gitHead":"12a9fd525631c4fafd6324b19b1a362a1a736312","scripts":{"test":"node scripts/run-tests.cjs","pretest":"npm run build:sdk && npm run lint:skill-deps","build:sdk":"cd sdk && npm ci && npm run build","lint:tests":"node scripts/lint-no-source-grep.cjs","build:hooks":"node scripts/build-hooks.js","test:coverage":"c8 --check-coverage --lines 70 --reporter text --include 'get-tasks-done/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs","lint:pr-checks":"node scripts/lint-pr-check-project-dir.cjs","prepublishOnly":"npm run build:hooks && npm run build:sdk","lint:skill-deps":"node scripts/lint-skill-deps.cjs","pretest:coverage":"npm run build:sdk","check:alias-drift":"cd sdk && npm run check:alias-drift","lint:descriptions":"node scripts/lint-descriptions.cjs","check:project-root-fresh":"cd sdk && npm run check:project-root-fresh","check:configuration-fresh":"cd sdk && npm run check:configuration-fresh","check:state-document-fresh":"cd sdk && npm run check:state-document-fresh","check:workstream-inventory-builder-fresh":"cd sdk && npm run check:workstream-inventory-builder-fresh"},"_npmUser":{"name":"davide-troiani","email":"me@davidetroiani.it"},"overrides":{"fast-uri":"3.1.2"},"repository":{"url":"git+https://github.com/ai-is-gonna/get-tasks-done.git","type":"git"},"_npmVersion":"10.9.8","description":"Task-based execution control for AI-assisted development workflows.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.20.0","@anthropic-ai/claude-agent-sdk":"^0.2.84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0"},"optionalDependencies":{"fallow":"^2.70.0"},"_npmOperationalInternal":{"tmp":"tmp/get-tasks-done_0.2.0_1780147338304_0.16718543429820554","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@ai-is-gonna/get-tasks-done","version":"0.2.2","keywords":["claude","claude-code","ai","meta-prompting","context-engineering","spec-driven-development","gemini","gemini-cli","codex","codex-cli"],"author":{"name":"Davide Troiani"},"license":"MIT","_id":"@ai-is-gonna/get-tasks-done@0.2.2","maintainers":[{"name":"davide-troiani","email":"me@davidetroiani.it"}],"homepage":"https://github.com/ai-is-gonna/get-tasks-done","bugs":{"url":"https://github.com/ai-is-gonna/get-tasks-done/issues"},"bin":{"gtd-sdk":"bin/gtd-sdk.js","gtd-tools":"bin/gtd-sdk.js","get-tasks-done":"bin/install.js"},"dist":{"shasum":"331eb700a4ac1d9233f319d9feb5adb28f7bda55","tarball":"https://registry.npmjs.org/@ai-is-gonna/get-tasks-done/-/get-tasks-done-0.2.2.tgz","fileCount":1517,"integrity":"sha512-Dqt9BCZIy+46HLnQsBAgzFY7nrMGbac0OG6oa1lmbaajy6mKIg3unIUfp5BrU2ogOthqgDV6dB62mrWJ0P94Yw==","signatures":[{"sig":"MEUCIQDN4mynmx+6YhcpeaO3RCJ65nQntjh081G+FGdSWcKaVAIgQzFWb8p5X4kZOkYrZHId4XiuJoubWG3HdKjYG+W9yWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-is-gonna%2fget-tasks-done@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10785442},"engines":{"npm":">=10.0.0","node":">=22.0.0"},"gitHead":"b961c1c7f7874254d15a0249d1acdbd249ba6d4e","scripts":{"test":"node scripts/run-tests.cjs","pretest":"npm run build:sdk && npm run lint:skill-deps","build:sdk":"cd sdk && npm ci && npm run build","lint:tests":"node scripts/lint-no-source-grep.cjs","build:hooks":"node scripts/build-hooks.js","test:coverage":"c8 --check-coverage --lines 70 --reporter text --include 'get-tasks-done/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs","lint:pr-checks":"node scripts/lint-pr-check-project-dir.cjs","prepublishOnly":"npm run build:hooks && npm run build:sdk","lint:skill-deps":"node scripts/lint-skill-deps.cjs","pretest:coverage":"npm run build:sdk","check:alias-drift":"cd sdk && npm run check:alias-drift","lint:descriptions":"node scripts/lint-descriptions.cjs","check:project-root-fresh":"cd sdk && npm run check:project-root-fresh","check:configuration-fresh":"cd sdk && npm run check:configuration-fresh","check:state-document-fresh":"cd sdk && npm run check:state-document-fresh","check:workstream-inventory-builder-fresh":"cd sdk && npm run check:workstream-inventory-builder-fresh"},"_npmUser":{"name":"davide-troiani","email":"me@davidetroiani.it"},"overrides":{"fast-uri":"3.1.2"},"repository":{"url":"git+https://github.com/ai-is-gonna/get-tasks-done.git","type":"git"},"_npmVersion":"10.9.8","description":"Task-based execution control for AI-assisted development workflows.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.20.0","@anthropic-ai/claude-agent-sdk":"^0.2.84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0"},"optionalDependencies":{"fallow":"^2.70.0"},"_npmOperationalInternal":{"tmp":"tmp/get-tasks-done_0.2.2_1780148069035_0.23069334443504586","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@ai-is-gonna/get-tasks-done","version":"0.2.3","keywords":["claude","claude-code","ai","meta-prompting","context-engineering","spec-driven-development","gemini","gemini-cli","codex","codex-cli"],"author":{"name":"Davide Troiani"},"license":"MIT","_id":"@ai-is-gonna/get-tasks-done@0.2.3","maintainers":[{"name":"davide-troiani","email":"me@davidetroiani.it"}],"homepage":"https://github.com/ai-is-gonna/get-tasks-done","bugs":{"url":"https://github.com/ai-is-gonna/get-tasks-done/issues"},"bin":{"gtd-sdk":"bin/gtd-sdk.js","gtd-tools":"bin/gtd-sdk.js","get-tasks-done":"bin/install.js"},"dist":{"shasum":"d9d59a605b15ff981daabcb72618a2c32c4f91bc","tarball":"https://registry.npmjs.org/@ai-is-gonna/get-tasks-done/-/get-tasks-done-0.2.3.tgz","fileCount":1517,"integrity":"sha512-QPi3Zimhg4a6rxsUmhoIxH3Vc67WgT7ESh9dYxIjqdVBeRHwQSdjeZzA8UX3Qw84Lz9ASUFb5GnU9NC2UkRRrA==","signatures":[{"sig":"MEYCIQCRkokUOV308r8opmaUCnsk9wgKmBYtJat4dV+7kc4zMwIhANx4UmTNtOp3XNxfDkkIkBV3bxTyQeZFrNlayD0cIrda","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-is-gonna%2fget-tasks-done@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10785927},"engines":{"npm":">=10.0.0","node":">=22.0.0"},"gitHead":"ad3e0094239c3dbe757e6e4fce18ba154a746518","scripts":{"test":"node scripts/run-tests.cjs","pretest":"npm run build:sdk && npm run lint:skill-deps","build:sdk":"cd sdk && npm ci && npm run build","lint:tests":"node scripts/lint-no-source-grep.cjs","build:hooks":"node scripts/build-hooks.js","test:coverage":"c8 --check-coverage --lines 70 --reporter text --include 'get-tasks-done/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs","lint:pr-checks":"node scripts/lint-pr-check-project-dir.cjs","prepublishOnly":"npm run build:hooks && npm run build:sdk","lint:skill-deps":"node scripts/lint-skill-deps.cjs","pretest:coverage":"npm run build:sdk","check:alias-drift":"cd sdk && npm run check:alias-drift","lint:descriptions":"node scripts/lint-descriptions.cjs","check:project-root-fresh":"cd sdk && npm run check:project-root-fresh","check:configuration-fresh":"cd sdk && npm run check:configuration-fresh","check:state-document-fresh":"cd sdk && npm run check:state-document-fresh","check:workstream-inventory-builder-fresh":"cd sdk && npm run check:workstream-inventory-builder-fresh"},"_npmUser":{"name":"davide-troiani","email":"me@davidetroiani.it"},"overrides":{"fast-uri":"3.1.2"},"repository":{"url":"git+https://github.com/ai-is-gonna/get-tasks-done.git","type":"git"},"_npmVersion":"10.9.8","description":"Task-based execution control for AI-assisted development workflows.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ws":"^8.20.0","@anthropic-ai/claude-agent-sdk":"^0.2.84"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0"},"optionalDependencies":{"fallow":"^2.70.0"},"_npmOperationalInternal":{"tmp":"tmp/get-tasks-done_0.2.3_1780151633292_0.7497909022806906","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@ai-is-gonna/get-tasks-done","version":"0.2.4","description":"Task-based execution control for AI-assisted development workflows.","bin":{"get-tasks-done":"bin/install.js","gtd-sdk":"bin/gtd-sdk.js","gtd-tools":"bin/gtd-sdk.js"},"keywords":["claude","claude-code","ai","meta-prompting","context-engineering","spec-driven-development","gemini","gemini-cli","codex","codex-cli"],"author":{"name":"Davide Troiani"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/ai-is-gonna/get-tasks-done.git"},"homepage":"https://github.com/ai-is-gonna/get-tasks-done","bugs":{"url":"https://github.com/ai-is-gonna/get-tasks-done/issues"},"publishConfig":{"access":"public"},"engines":{"node":">=22.0.0","npm":">=10.0.0"},"dependencies":{"@anthropic-ai/claude-agent-sdk":"^0.2.84","ws":"^8.20.0"},"devDependencies":{"c8":"^11.0.0"},"optionalDependencies":{"fallow":"^2.70.0"},"overrides":{"fast-uri":"3.1.2"},"scripts":{"build:hooks":"node scripts/build-hooks.js","build:sdk":"cd sdk && npm ci && npm run build","check:alias-drift":"cd sdk && npm run check:alias-drift","check:state-document-fresh":"cd sdk && npm run check:state-document-fresh","check:configuration-fresh":"cd sdk && npm run check:configuration-fresh","check:workstream-inventory-builder-fresh":"cd sdk && npm run check:workstream-inventory-builder-fresh","check:project-root-fresh":"cd sdk && npm run check:project-root-fresh","prepublishOnly":"npm run build:hooks && npm run build:sdk","pretest":"npm run build:sdk && npm run lint:skill-deps","pretest:coverage":"npm run build:sdk","lint:descriptions":"node scripts/lint-descriptions.cjs","lint:skill-deps":"node scripts/lint-skill-deps.cjs","lint:tests":"node scripts/lint-no-source-grep.cjs","lint:pr-checks":"node scripts/lint-pr-check-project-dir.cjs","test":"node scripts/run-tests.cjs","test:coverage":"c8 --check-coverage --lines 70 --reporter text --include 'get-tasks-done/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs"},"_id":"@ai-is-gonna/get-tasks-done@0.2.4","gitHead":"7539fc67a0bfbf1f5b2c2fb113da472280ca1267","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-T2BtiHzeU04BCibi/ZLQP7hTCTiTU2yd2Y58mda9ys1vopwEl0Bsz0g3eCPqfVKNrspRTF17ATaDGrQGdjbEAw==","shasum":"3c9faf52e9101c0a7c09d71131742e724fb7d7b4","tarball":"https://registry.npmjs.org/@ai-is-gonna/get-tasks-done/-/get-tasks-done-0.2.4.tgz","fileCount":1524,"unpackedSize":10813959,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-is-gonna%2fget-tasks-done@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDntC6SsUrXUYs6q9k4UFmdinOWJVAIGuXSogPRJm+/mQIgC3orTPKsFXsZcJbIzsiHfty65R3+H4WmmDPmwydOfik="}]},"_npmUser":{"name":"davide-troiani","email":"me@davidetroiani.it"},"directories":{},"maintainers":[{"name":"davide-troiani","email":"me@davidetroiani.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/get-tasks-done_0.2.4_1780518085895_0.292849748335243"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T13:22:18.164Z","modified":"2026-06-03T20:21:26.501Z","0.1.4":"2026-05-30T09:49:27.776Z","0.1.5":"2026-05-30T12:27:38.425Z","0.2.0":"2026-05-30T13:22:18.575Z","0.2.2":"2026-05-30T13:34:29.261Z","0.2.3":"2026-05-30T14:33:53.580Z","0.2.4":"2026-06-03T20:21:26.154Z"},"bugs":{"url":"https://github.com/ai-is-gonna/get-tasks-done/issues"},"author":{"name":"Davide Troiani"},"license":"MIT","homepage":"https://github.com/ai-is-gonna/get-tasks-done","keywords":["claude","claude-code","ai","meta-prompting","context-engineering","spec-driven-development","gemini","gemini-cli","codex","codex-cli"],"repository":{"type":"git","url":"git+https://github.com/ai-is-gonna/get-tasks-done.git"},"description":"Task-based execution control for AI-assisted development workflows.","maintainers":[{"name":"davide-troiani","email":"me@davidetroiani.it"}],"readme":"<p align=\"center\">\n  <img src=\"assets/gtd-logo-2000-transparent.svg\" alt=\"Get Tasks Done logo\" width=\"220\"></br>\n  <i>Get Tasks Done turns AI coding agents into reviewable GitHub task workers while keeping the useful parts of spec-driven development.</i>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/demo.gif\" alt=\"Get Tasks Done demo: turning a feature into GitHub task issues and focused PRs\" width=\"900\">\n</p>\n\nMost AI coding workflows fail the same way: you give an agent a feature, it disappears into a long session, then comes back with a diff that is too large to trust.\n\nGet Tasks Done (GTD) is a workflow layer that turns product and software specs into local planning artifacts, exports implementation work to GitHub task issues, and keeps code changes small enough to review through pull requests, validation evidence and explicit human approval.\n\nThe project started from <a href=\"https://github.com/open-gsd/get-shit-done-redux\" target=\"_blank\">open-gsd/get-shit-done-redux</a> and has since been rebuilt around task issue execution, PR review, reconciliation and verification.\n\n## Quick start\n\n1. Install GTD for Codex:\n\n   ```bash\n   npx @ai-is-gonna/get-tasks-done@latest --codex --global\n   ```\n\n2. In a GitHub-backed test repo:\n\n   ```text\n   $gtd-new-project\n   ```\n\n3. Ask GTD to plan a small first phase:\n\n   ```text\n   $gtd-spec-phase 1\n   $gtd-plan-phase 1\n   ```\n\n4. Export only when the preview looks right:\n\n   ```text\n   $gtd-export-phase-issues 1\n   ```\n\n5. Implement the first 2 tasks:\n\n   ```text\n   $gtd-orchestrate-tasks the first 2 tasks\n   ```\n\nYou may swap the runtime flag for your agent:\n\n```bash\n--claude\n--codex\n--gemini\n--opencode\n--cursor\n--all\n```\n\n## Who this is for\n\nUse GTD if you:\n\n- already review work through GitHub issues and pull requests\n- want AI agents to work on bounded tasks instead of whole features\n- care about small diffs, validation evidence, and human approval\n- are trying to use Codex, Claude Code, Cursor, Gemini, OpenCode, or similar tools on real repositories\n\nDo not use GTD if you:\n\n- want fully unattended coding\n- are building throwaway prototypes\n- do not use GitHub\n- prefer one-shot agent sessions over reviewable delivery\n\n## Technical evaluation\n\nAt a system level, GTD has five moving parts:\n\n| Part | Responsibility |\n| --- | --- |\n| Runtime commands | Slash-command style workflows installed into Codex, Claude Code, Gemini, OpenCode, Cursor, and other supported agents. |\n| Planning artifacts | `.planning/` project memory, requirements, roadmap, phase plans, summaries, verification records, and workflow configuration. |\n| GitHub task workflow | Parent plan issues, child task issues, labels, task branches, PRs, and reconciliation after human merge. |\n| Agents and prompts | Specialized planning, research, execution, review, UI, security, and verification instructions. |\n| SDK | Typed query and automation surface for scripts, CI checks, dashboards, and command internals. |\n\nLocal setup writes runtime command files and project planning files. Export writes GitHub issues and labels. Task execution creates branches, comments, PRs, and validation records. Batch orchestration can create temporary task worktrees and an integration branch. Use `--dry-run` and `--read-only` when you want to inspect what GTD would do before it mutates anything.\n\n## Planning hierarchy\n\nGTD stores work in a nested planning model, like the original get-shit-done. Now the same structure carries through local artifacts, GitHub issues, task branches, PRs, and verification.\n\n| Level | What it corresponds to |\n| --- | --- |\n| Project | The repository-level context: product intent, constraints, workflow settings, codebase knowledge, and long-lived state. |\n| Milestone | A coherent delivery objective inside the project. |\n| Phase | A milestone step that can be planned, executed, reviewed, and verified as one unit. |\n| Plan | One implementation plan inside a phase, with scope, files, acceptance criteria, and verification commands. |\n| Task | The smallest execution unit. GTD exports tasks to child GitHub issues and works them through task branches and PRs. |\n\nThe task is the unit that matters most:\n\n```text\none planned task -> one GitHub issue -> one branch -> one PR -> human review\n```\n\nFor related work, GTD can orchestrate batches while still keeping task lanes, review boundaries, validation evidence, and one final human merge gate.\n\n## How it works\n\n```mermaid\nflowchart TD\n    A[\"👤 Human + repo context\"]\n    B[\"📄 Project artifacts<br/>PROJECT / REQUIREMENTS / ROADMAP\"]\n    X[\"🤖 /gtd-map-codebase<br/>architecture + codebase map\"]\n    Y[\"📄 Codebase artifacts<br/>ARCHITECTURE / STRUCTURE / CONVENTIONS\"]\n    C[\"🤖 /gtd-new-project<br/>agent prepares project memory\"]\n    D[\"👤 /gtd-discuss-phase<br/>human decisions + constraints\"]\n    R[\"🤖 /gtd-plan-phase --research-phase<br/>RESEARCH.md when discovery is needed\"]\n    U[\"🤖 /gtd-ui-phase<br/>UI-SPEC.md for frontend phases\"]\n    E[\"🤖 /gtd-plan-phase<br/>plans, tasks, acceptance criteria\"]\n    F{\"✓ Plan check<br/>task atomicity\"}\n    G[\"🔎 /gtd-export-phase-issues --dry-run<br/>preview issue graph\"]\n    H[\"GitHub issues<br/>parent plans + child tasks\"]\n    I{\"Work mode\"}\n    J[\"Git branch + PR<br/>/gtd-work-task-issue\"]\n    K[\"Git task lanes + final PR<br/>/gtd-orchestrate-tasks\"]\n    L{\"👤 Human PR review<br/>merge or request changes\"}\n    M[\"📄 Reconcile merged task work<br/>summary artifacts\"]\n    N[\"✓ /gtd-work-task-issue --complete-phase<br/>phase completion gates\"]\n    O[\"🔎 /gtd-verify-work<br/>human UAT + verification evidence\"]\n    P{\"✓ Verification gaps?\"}\n\n    A -->|\"👤 input\"| C\n    A -->|\"brownfield scan\"| X\n    X -->|\"📄 architecture\"| Y\n    Y -->|\"codebase context\"| E\n    C -->|\"📄 artifacts\"| B\n    B --> D\n    D -->|\"👤 locked decisions\"| E\n    D -->|\"research question\"| R\n    R -->|\"📄 research\"| E\n    D -->|\"frontend phase\"| U\n    U -->|\"📄 UI contract\"| E\n    E -->|\"📄 PLAN.md tasks\"| F\n    F -->|\"revise plan\"| E\n    F -->|\"✓ passes\"| G\n    G -->|\"👤 approved preview\"| H\n    H -->|\"issue queue\"| I\n    I -->|\"single task\"| J\n    I -->|\"related batch\"| K\n    J -->|\"PR\"| L\n    K -->|\"PR\"| L\n    L -->|\"changes requested\"| J\n    L -->|\"merged\"| M\n    M --> N\n    N --> O\n    O --> P\n    P -->|\"yes: plan fixes\"| E\n    P -->|\"no: done\"| Q[\"Phase complete\"]\n\n    classDef human fill:#f7efe0,stroke:#9b6a2f,color:#21180f\n    classDef agent fill:#e8f1ff,stroke:#3569a8,color:#081827\n    classDef artifact fill:#eef7ec,stroke:#4f8b46,color:#10210d\n    classDef git fill:#f2edff,stroke:#6d55a8,color:#161026\n    classDef gate fill:#fff6d8,stroke:#aa8523,color:#201700\n    classDef verify fill:#eefafa,stroke:#3d8a8a,color:#071f1f\n\n    class A,L human\n    class C,D,E,J,K,R,U,X agent\n    class B,M,N,Y artifact\n    class G,H git\n    class F,I,P gate\n    class O,Q verify\n```\n\n## Adoption guide\n\nRequirements:\n\n- Node.js `22+`\n- npm `10+`\n- GitHub CLI (`gh`) installed and authenticated\n- A GitHub repository with issues and pull requests enabled\n- Permission to create issues, labels, branches, pull requests, comments, and local `.planning/` files\n\nRecommended install for Codex:\n\n```bash\nnpx @ai-is-gonna/get-tasks-done@latest --codex --global\n```\n\nThe installer currently supports Claude Code, Codex, Gemini, Kilo, OpenCode, GitHub Copilot, Antigravity, Cursor, Windsurf, Augment, Trae, Qwen Code, Hermes Agent, CodeBuddy, and Cline.\n\nUse installer help as the source of truth for profiles, local installs, custom config paths, and runtime-specific flags:\n\n```bash\nnpx @ai-is-gonna/get-tasks-done@latest --help\n```\n\nAfter installation, run `$gtd-help` in the target runtime to confirm the installed command surface. For a first repository, run `$gtd-new-project` and keep the generated `.planning/config.json` defaults until you have exercised the basic flow once.\n\n## Install the SDK\n\nUse the SDK when a script, CI job, or dashboard needs to read GTD state or call registered workflow handlers without driving an agent session.\n\n```bash\nnpm install @ai-is-gonna/gtd-sdk\n```\n\nUseful read-only queries:\n\n```bash\nnode ./node_modules/@ai-is-gonna/gtd-sdk/dist/cli.js query state.json\nnode ./node_modules/@ai-is-gonna/gtd-sdk/dist/cli.js query roadmap.analyze\nnode ./node_modules/@ai-is-gonna/gtd-sdk/dist/cli.js query check phase-ready 1 --pick next_step\n```\n\nProgrammatic use can stay small:\n\n```typescript\nimport { GTD, createRegistry } from '@ai-is-gonna/gtd-sdk';\n\nconst gtd = new GTD({ projectDir: process.cwd(), sessionId: 'release-check' });\nconst registry = createRegistry(gtd.eventStream, 'release-check');\n\nconst ready = await registry.dispatch('check.phase-ready', ['1'], process.cwd());\nconst data = ready.data as { next_step?: string };\nconsole.log(data.next_step);\n```\n\nFor CI/CD, phase finalization can be compact once task PRs are merged:\n\n```javascript\nimport { execFileSync as sh } from 'node:child_process';\nconst q = (...a) => JSON.parse(sh('node', ['./node_modules/@ai-is-gonna/gtd-sdk/dist/cli.js', 'query', ...a], { encoding: 'utf8' })).data;\nconst phase = process.env.GTD_PHASE ?? '1', done = q('check.completion', 'phase', phase);\nif (!done.complete || done.missing_summaries.length) process.exit(0);\nq('work-task-issue', '--complete-phase', phase, '--execute');\nif (q('check.verification-status', phase).status !== 'pass') process.exit(1);\n```\n\n## Workflow commands\n\nCommand names below use the generic `/gtd-*` form. The installer adapts the command surface for runtimes with a different invocation style.\n\nMost users should follow GTD's prompts instead of memorizing this table. The commands are listed so the flow is inspectable.\n\n| Command | Outcome |\n| --- | --- |\n| `/gtd-map-codebase [--fast]` | Builds `.planning/codebase/` docs, including architecture, structure, conventions, testing, integrations, and concerns. |\n| `/gtd-new-project` | Creates project memory, requirements, roadmap, workflow config, and initial planning state. |\n| `/gtd-spec-phase <phase>` | Clarifies what a phase must deliver before implementation planning starts. |\n| `/gtd-discuss-phase <phase>` | Turns unclear product or engineering intent into decisions the planner can use. |\n| `/gtd-plan-phase --research-phase <phase>` | Writes or refreshes `RESEARCH.md` before the planner commits to an implementation approach. |\n| `/gtd-ui-phase <phase>` | Produces `UI-SPEC.md` for frontend phases and checks the design contract before planning. |\n| `/gtd-plan-phase <phase>` | Produces task-ready plans with scope, boundaries, acceptance criteria, and verification commands. |\n| `/gtd-export-phase-issues <phase> --dry-run` | Previews the GitHub issue hierarchy before writing labels, issues, dependencies, or manifests. |\n| `/gtd-export-phase-issues <phase>` | Writes parent plan issues, child task issues, labels, dependency links, and the local export manifest. |\n| `/gtd-work-task-issue --read-only --phase <phase>` | Checks which task is workable without claiming issues, creating branches, or opening PRs. |\n| `/gtd-work-task-issue [task] --phase <phase>` | Works one exported task through an isolated branch, validation, and a task PR. |\n| `/gtd-orchestrate-tasks <child-issue>...` | Coordinates a small related batch through task lanes and one final comprehensive PR. |\n| `/gtd-code-review <phase>` | Reviews phase changes for bugs, security issues, and code quality problems before final verification. |\n| `/gtd-work-task-issue --complete-phase <phase> --execute` | Runs phase completion after merged task PRs have been reconciled into summary artifacts. |\n| `/gtd-verify-work <phase>` | Runs conversational UAT, records verification evidence, and routes gaps back into planning. |\n| `/gtd-progress` | Shows project status and the next recommended command. |\n| `/gtd-config` | Views or updates project workflow configuration. |\n| `/gtd-update` | Updates installed GTD runtime files. |\n| `/gtd-help` | Shows the installed command surface for the current runtime. |\n\n## Why it works\n\nGTD keeps the parts of get-shit-done that are worth keeping: spec ingestion, context management, delivery without ceremony, and an SDK-backed command surface. Those pieces matter because models need structured context before they can do useful work.\n\nThe important change is the execution boundary: GTD breaks planned work into smaller tasks, checks those tasks before execution, and sends each one through GitHub issues, branches, PRs, and validation evidence. That gives reviewers something concrete to inspect, retry, or reject.\n\nThe review gates are intentional. Scope, task boundaries, checkpoint issues, PR review, merge approval, and final UAT stay with people because that is where mistakes get expensive.\n\n## Documentation\n\n- [Documentation index](docs/README.md)\n- [Task issue operator guide](docs/task-issue-operator-guide.md)\n- [Command reference](docs/COMMANDS.md)\n- [Configuration](docs/CONFIGURATION.md)\n- [Architecture](docs/ARCHITECTURE.md)\n- [Contributor standards](docs/contributor-standards.md)\n- [SDK README](sdk/README.md)\n\n## Maturity of this project\n\nGTD is usable today. I have tested it on a few personal projects, but it is still an early public project. The core workflow is covered by automated tests and shaped around real development work. The surface area is large, though, and some runtime integrations need more time in different teams and codebases.\n\nBefore adopting it broadly, evaluate these points in your own environment:\n\n- Whether task-sized PRs match the way your team reviews code.\n- Whether GitHub issue and label writes are acceptable for agent-assisted planning.\n- Whether `.planning/` artifacts should be committed, ignored, or reviewed as delivery evidence.\n- Whether your preferred runtime integration is mature enough for your team.\n- Whether your CI can reuse SDK checks for phase readiness, completion, and verification status.\n\nContributions, issue reports, and thoughtful feedback are welcome and appreciated!\n","readmeFilename":"README.md"}