{"_id":"@makerkit/prd","_rev":"6-923e26a475505ec829ce5218f0e44146","name":"@makerkit/prd","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.0-stage":{"name":"@makerkit/prd","version":"0.0.0-stage","_id":"@makerkit/prd@0.0.0-stage","stub":true,"maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"dist":{"shasum":"fe0a4329cd8fce3975b7b3418679770150f9045a","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-1xYsCLB2pQ6TZrTnR56tADZdXDFyFWZx/Qnhepb/8KSq9vU/MBe4gmrU2ymGVPdr44sHP2eD6VKoy+mNe39maQ==","signatures":[{"sig":"MEUCIGUoSfRqfs0XKAZF9qXx0vHQjhRxHNvrSpCqyPbEMII6AiEAj3ag/jgtx4xAIwM3XdjzC+5B//7PViYpuOms7lEMsJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335},"_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.0.0":{"name":"@makerkit/prd","version":"0.0.0","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"license":"MIT","_id":"@makerkit/prd@0.0.0","maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"homepage":"https://github.com/makerkit/makerkit#readme","bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"dist":{"shasum":"bde4402021b758659945ed8e81f763fa4ec8801c","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.0.tgz","fileCount":54,"integrity":"sha512-jua0RdYR/m/GNHU+n4ufyZFL8uwEZAA4x3fXJkgDrWJfEjfH/qbPG7BZhzMLFqCnUwI97Vx6hbezP5P/IPkBbw==","signatures":[{"sig":"MEUCIQC1X2BfEZSkgpNe1Yk+8WFm3niMXndfwiF7NCLWFLdgwgIgW7r9JhHjnJdoV/uUua4YVBPMljK4Hh6s2lPJU7i1UBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCgnAoakYUT2bhRdNCex0QVQQWXJ8OEvDS7y0EvEcO2XwIhAJAX9P8PE13XpvaQPjZbSNLHViHsDNwp98TFnzzK0snv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706608},"main":"./index.js","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./mcp":{"types":"./mcp.d.ts","import":"./mcp.mjs","require":"./mcp.js"},"./node":{"types":"./node.d.ts","import":"./node.mjs","require":"./node.js"}},"gitHead":"4963f46e641f462521064f8246facfe4cbee0d93","scripts":{"test":"vitest run","build":"tsdown && node ../../scripts/prepare-dist.mjs","typecheck":"tsc --noEmit -p tsconfig.lib.json && tsc --noEmit -p tsconfig.spec.json"},"_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"_npmVersion":"10.9.0","description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.25.0 || ^4.0.0","@makerkit/repo-checks":"workspace:^"},"publishConfig":{"access":"public","directory":"dist","linkDirectory":true},"_hasShrinkwrap":false,"devDependencies":{"zod":"catalog:","vite":"catalog:","tsdown":"catalog:","vitest":"catalog:","typescript":"catalog:","@types/node":"catalog:","@modelcontextprotocol/sdk":"catalog:"},"peerDependencies":{"@modelcontextprotocol/sdk":"^1.32.0"},"peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prd_0.0.0_1792068923160_0.983318787925409","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@makerkit/prd","version":"0.0.1","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"license":"MIT","_id":"@makerkit/prd@0.0.1","maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"homepage":"https://github.com/makerkit/makerkit#readme","bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"dist":{"shasum":"f64b5163b5d81bff076c5648304bb3d8fd08c987","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.1.tgz","fileCount":15,"integrity":"sha512-6Az91Q/6KIePG/xhMvJxJNMC9i3LhwKzrec68GixmXqNcctGa5Su1t2hxjSASlI2WCw84umpCKMuT37vJ7KstA==","signatures":[{"sig":"MEUCIE8hTPywdcDIgPEoTKsLn9NqlVEqfA/4aosIh96+RmiiAiEAxM7jJWSKIbeK9UIvt+jp88B495Y9XHLlHRRd4MvVAbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEgCeUf6veVRsuSZPs+XnjtqkXsPVUw3Zlk6BFG76MX1AiB8jHCEN7lxZFKBofZ7n4rA9zCkWH/XH348NtAUQx5Mig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405293},"main":"./index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./mcp":{"types":"./mcp.d.ts","import":"./mcp.mjs","require":"./mcp.js"},"./node":{"types":"./node.d.ts","import":"./node.mjs","require":"./node.js"}},"gitHead":"4963f46e641f462521064f8246facfe4cbee0d93","_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"_npmVersion":"10.9.0","description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.25.0 || ^4.0.0","@makerkit/repo-checks":"^0.0.1"},"_hasShrinkwrap":false,"peerDependencies":{"@modelcontextprotocol/sdk":"^1.32.0"},"peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prd_0.0.1_1792069353800_0.33734568373172436","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@makerkit/prd","version":"0.0.2","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"license":"MIT","_id":"@makerkit/prd@0.0.2","maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"homepage":"https://github.com/makerkit/makerkit#readme","bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"dist":{"shasum":"d02240db1e7632b9f8d471a3e65072883393d9e2","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.2.tgz","fileCount":15,"integrity":"sha512-Of3Y52WPImi/M2qQVrpFBybU9/pCEGCRxv1eGNfn565eWBAx+lwIuFrnQThC9oNyQ9UgGqptoTvDZcz9CKBcvA==","signatures":[{"sig":"MEUCIQDgiBvi7I4SkYvxvYitXd7KYFISfDfejdumDiHrYCS8jgIgCmHVxR2UHomEsnAwLU2fvXCC78HBZgg2uXqMDl3mO7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB2pQpx7BB6lB52pUhFkPwbZGhoHJxRKOfZgsB5Tda14AiEAh8uZCxhoxJ2fb8+JBLhKAvuTU79gdolpAMl0X4YNKDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416794},"main":"./index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./mcp":{"types":"./mcp.d.ts","import":"./mcp.mjs","require":"./mcp.js"},"./node":{"types":"./node.d.ts","import":"./node.mjs","require":"./node.js"}},"gitHead":"d015aa4bca9f6325025ca5e62c910ae7c12b6132","_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"_npmVersion":"10.9.0","description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.25.0 || ^4.0.0","@makerkit/repo-checks":"^0.0.2"},"_hasShrinkwrap":false,"peerDependencies":{"@modelcontextprotocol/sdk":"^1.32.0"},"peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prd_0.0.2_1792393436087_0.6827272572295371","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@makerkit/prd","version":"0.0.3","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"license":"MIT","_id":"@makerkit/prd@0.0.3","maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"homepage":"https://github.com/makerkit/makerkit#readme","bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"dist":{"shasum":"6c65fe2267f3bd785492b67ee407d4e763359ba6","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.3.tgz","fileCount":15,"integrity":"sha512-+J3c6iYS0YKBymo773j2p+w8NSxcTKZT6mx/mkhjzCJe6vATIympNgqfrCdxvqQ4kwEA4VTgK/0+rFwrfaUIag==","signatures":[{"sig":"MEQCIFil5YeBDDuk6DI72bUvBiy3aH3TVYySoOCyvAo6QxA9AiAwS8IVkuU1RiyrBPQLfKgVxgxVp8B0XJ4SXeAeFOS6Fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCFszhTIN8/rbc4oaogY70C+uvO05prvrLAxGvKlB8LlQIgNJjrKN+4PGHBJr6M4QTSzz+sjNtpdDxyUeRT6RVaJl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":419450},"main":"./index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./mcp":{"types":"./mcp.d.ts","import":"./mcp.mjs","require":"./mcp.js"},"./node":{"types":"./node.d.ts","import":"./node.mjs","require":"./node.js"}},"gitHead":"fc1f041df53930017d2c8786e10f775814399d16","_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"_npmVersion":"10.9.0","description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.25.0 || ^4.0.0","@makerkit/repo-checks":"^0.0.2"},"_hasShrinkwrap":false,"peerDependencies":{"@modelcontextprotocol/sdk":"^1.32.0"},"peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/prd_0.0.3_1792651764156_0.5844944601880127","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"_id":"@makerkit/prd@0.0.4","bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"dist":{"shasum":"49858294c222ebf2db783bf484c3721b5f8b25cf","tarball":"https://registry.npmjs.org/@makerkit/prd/-/prd-0.0.4.tgz","fileCount":15,"integrity":"sha512-xZf/mlJvBGuF2PfJEt2XtRfy9dy/MRjIxo6Y5s/tx17G00xUIdcsQ/atnORain+40225aNMWhhcoQi2X6fnOhw==","signatures":[{"sig":"MEUCIEEclOcQLsQsii7PeUFAO6ButMtmtXJpZV5NRreeQOyRAiEAxj98qUMqFtnHB2+02t52StzIX8IhgxtzYgNsrxvuAzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBP8nOFhJ83HmAtwL9XQ8sVXBtloD1980B1O4dZ2XKmSAiEAv8RQHZhCCPD+kYxBT/xCGJsh3C0493zJOYuaPYaRkLk="}],"unpackedSize":445932},"main":"./index.js","name":"@makerkit/prd","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","require":"./index.js"},"./mcp":{"types":"./mcp.d.ts","import":"./mcp.mjs","require":"./mcp.js"},"./node":{"types":"./node.d.ts","import":"./node.mjs","require":"./node.js"}},"gitHead":"3f3ad24bd06a7970b54dbf066cb89714b48c5720","license":"MIT","version":"0.0.4","_npmUser":{"name":"makerkit","email":"info@makerkit.dev"},"homepage":"https://github.com/makerkit/makerkit#readme","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"_npmVersion":"11.20.0","description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","directories":{},"maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"_nodeVersion":"26.12.1","dependencies":{"zod":"^3.25.0 || ^4.0.0","@makerkit/repo-checks":"^0.0.2"},"_hasShrinkwrap":false,"peerDependencies":{"@modelcontextprotocol/sdk":"^1.32.0"},"peerDependenciesMeta":{"@modelcontextprotocol/sdk":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prd_0.0.4_1793173084347_0.5430292610647222"}}},"time":{"created":"2026-10-15T12:52:45.768Z","modified":"2026-10-28T07:38:04.654Z","0.0.0-stage":"2026-10-15T12:52:45.768Z","0.0.0":"2026-10-15T12:55:23.280Z","0.0.1":"2026-10-15T13:02:33.896Z","0.0.2":"2026-10-19T07:03:56.192Z","0.0.3":"2026-10-22T06:49:24.261Z","0.0.4":"2026-10-28T07:38:04.469Z"},"bugs":{"url":"https://github.com/makerkit/makerkit/issues"},"license":"MIT","homepage":"https://github.com/makerkit/makerkit#readme","keywords":["ai-agents","claude-code","codex","mcp","prd","product-requirements"],"repository":{"url":"git+https://github.com/makerkit/makerkit.git","type":"git","directory":"packages/prd"},"description":"Structured PRDs as JSON files: the format, a service to manage them, and MCP tools so coding agents can read and update them.","maintainers":[{"name":"makerkit","email":"info@makerkit.dev"}],"readme":"# @makerkit/prd\n\nStructured product requirements documents (PRDs) stored as JSON files in `.prds/`, plus the tools to manage them from code or from a coding agent over MCP.\n\n- **Format**: a typed `StructuredPRD` (stories, statuses, priorities, dependencies, phases, risks, decisions) with Zod schemas. Hand-written files are normalized on load. Text fields may use Markdown; list items (acceptance criteria, non-goals, ...) keep to inline Markdown, and raw HTML is not rendered.\n- **Service**: create PRDs, add and update user stories, move stories through `not_started → research → in_progress → review → completed`, export markdown.\n- **Completion gate**: a story can only be marked `completed` when the project's checks pass, so \"done\" means the code verifies.\n- **MCP tools**: the same operations exposed to Claude Code, Codex, OpenCode or any MCP client.\n- **Attachments**: files (mockups, screenshots, reference docs) live in a folder next to the PRD, `.prds/<prd name>/`, and links can be recorded too. Stories reference them by id, and `get_story` returns them with their paths.\n- **Prompts**: `shape_prd` interviews you round by round (numbered questions, each with a recommended answer and its reason) and writes every decision into the PRD; `architect_prd` designs the shape all stories share (using the project's `architect` skill when it has one) and records it as an attachment the story agents build against; `implement_story` walks an agent through one story and its hand-off log; `review_story` checks the result against the spec. The same text is exported (`shapePrdPrompt`, `architectPrdPrompt`, `implementStoryPrompt`, `reviewStoryPrompt`) for UIs and agents without MCP prompt support.\n\n## Install\n\n```bash\npnpm add @makerkit/prd\n```\n\n## Usage\n\n```ts\nimport { createPrdService } from '@makerkit/prd';\nimport { createNodePrdDeps } from '@makerkit/prd/node';\n\nconst prds = createPrdService(createNodePrdDeps(process.cwd()));\n\nconst { prds: list } = await prds.list();\n```\n\nBy default, completing a story runs the project's `typecheck` and `lint` scripts with its package manager (scripts that do not exist are skipped). Pass your own check instead:\n\n```ts\ncreateNodePrdDeps(root, {\n  verifyCompletion: async () => ({\n    passed: true,\n    checks: ['custom'],\n    errors: 0,\n    warnings: 0,\n    diagnostics: [],\n    messages: [],\n  }),\n});\n```\n\n### MCP\n\nRequires `@modelcontextprotocol/sdk`.\n\n```ts\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { createPrdService } from '@makerkit/prd';\nimport { registerPRDTools } from '@makerkit/prd/mcp';\nimport { createNodePrdDeps } from '@makerkit/prd/node';\n\nconst server = new McpServer({ name: 'prd', version: '1.0.0' });\n\nregisterPRDTools(server, createPrdService(createNodePrdDeps()));\n```\n\n## Credits\n\nThe `shape_prd` interview and the story-slicing rules are adapted from ideas in Matt Pocock's [skills](https://github.com/mattpocock/skills) (MIT), in particular grilling and to-tickets.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}