{"_id":"@tenonhq/dovetail-claude-plans","_rev":"29-631486df1b1f7b3a94a5d03ae0eec3f1","name":"@tenonhq/dovetail-claude-plans","dist-tags":{"latest":"0.0.26"},"versions":{"0.0.1":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.1","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.1","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"70745315f942294aa3ab622d025a0c669b386017","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.1.tgz","fileCount":20,"integrity":"sha512-YU2vZ24gm6fC4ri3hbHQKyf2oSiYWFtEgY6CSftwtptyxlKB9AKFEhAD9Uvw0p5su2wu0uczcQ7yiPv6nzllaQ==","signatures":[{"sig":"MEQCID4U17XsHnKgWWSsSXJcH2hqMtq7uKJZ/60qlWZWpCP6AiAD21zgzCHU6DyDc7Ydpj4jzTqHP/vAtWxz9+GLzM0RVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45996},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.5.2","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.1_1778718330343_0.501710675719363","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.2","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.2","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"37fdd2d861dc56d0a8bf17adffe7362d84b768dc","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.2.tgz","fileCount":24,"integrity":"sha512-xkPHNrakN2Arzw7cPx3NUX4Op+UbulPL1+cVUkoPYLyRk7xwGT7Wb3oNxHEOIAK51+EzLZd3b0psRcMq2yW4xg==","signatures":[{"sig":"MEQCICJozORZK9KwcEKJsHz5LwZnOYkSyIX6KbIdu1w1GIXkAiB1PASAjDBnmESO3YV+mLOAGgyDcYb4uFh9vVbVDif3Dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71332},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"39fa7d15720fe1c3547b8a28e2bc44e35bf1aaab","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.5.2","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.2_1778886672181_0.7096070989351089","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.3","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.3","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"e9d5feca7ead54fc3807b9cfc00e5677433009b6","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.3.tgz","fileCount":24,"integrity":"sha512-iHXAttZPeA/ciX85xM0+zkYz+eq5uWohWEh4HspHjwDDQSiPCOooBB6Zg4sy1Feftur4qfsr/xAKqi+bkgOZXw==","signatures":[{"sig":"MEQCIGSMGflC2+eLWI3m8ifd786PQxGHVoP+XeCBAj91SxrfAiB/OKps9zUEFubhOHxQWicuFsyuPTuJkt04BPa3vRUAWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79544},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"ef013ec870c3cd5b7241261556606952496a3960","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.5.2","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.3_1778889297738_0.6678583101464679","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.4","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.4","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"bc836b0ee31a35e96d835fa94ae28da5220b800d","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.4.tgz","fileCount":24,"integrity":"sha512-uLNV8iA74yx6EaWr23kyorwiZPAu4dZ6eiHBr6ny8/xwR8bzP5yAgf4tiSVr4UAaLPS8Lx2u0Kj4hqjF0UY83w==","signatures":[{"sig":"MEUCIQDzHzT4Z7Py+9EddsOgXcaY/OJGNtSOJn67mzT6Mz9rtwIgbZcd8BeD3ymtEsHjP4V67OaMeKFlBeohbWnaSafrTOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74394},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a43090f11016e71aae76c8eef912fb94b5a15823","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.5.2","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.4_1778891181919_0.7468579683764218","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.5","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.5","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"3623fa46468c1d1dd66bd16455829ecae0dbcaf2","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.5.tgz","fileCount":24,"integrity":"sha512-FE/pNIr/QbXrlu9fPo0gPgbceORRaUfGGGUnaN37W3t2Cxos56ExnZIGcl7OZRpg6Sf3SpsjJmE8llEu4waIhg==","signatures":[{"sig":"MEYCIQCJh3dU+3gHmxeT0Co3/LzNnP9Q4zlPCvC+MSP+3cOgvQIhAN50p2rPl+vb3rtki8ZTLX9H/fGSK89Vi4CbKcjPg01G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85078},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f264381e4cc9ba02c271b1a033d7fb057098ebd7","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.5.2","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.5_1779145515462_0.035327556038656116","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.7","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.7","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"058ef01f6117c23a7b0c5f8bb46b016d9c1ef381","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.7.tgz","fileCount":24,"integrity":"sha512-w3RevYrJCeUZYoIlh/mOSEJJXwGEIn1bwaBtCgT7oK1P2Hzc6NCf0GiqtTmbbNZdP0Vok+pHevzSwyBeD5q79w==","signatures":[{"sig":"MEUCIC8cHgoK1pEApsi/Ulfti9Z4ihyzJGuJnYQBXeVc/eefAiEAsP3FaP9cHkAu2bJARqbZ885pCIa4DZeon7osfcpsPZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144246},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ee8ad2dcf039039de674a7dd0d83c08e856c5ad7","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.15.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.7_1779777819085_0.809082835273234","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.8","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.8","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"17eb711f0dcd4e8f3f1bee541a65305690d1092c","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.8.tgz","fileCount":24,"integrity":"sha512-TuFhsEtenOxYE7Lyj64S/WGxV9V+wzUkOb20kg9Uoyf1oBs2HhpkVjB95FIyB0TZmqG+tkHzPFCgW7GooO0lrQ==","signatures":[{"sig":"MEYCIQCqPcoGywS2zKHzMOrBmNF8T4ldHwCU44X/IOU0XCJZ8gIhAI9A7wWJUzHTBN2BfuHR3LqaQmNOT14TYl7zaFdhoR5c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144246},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ee8ad2dcf039039de674a7dd0d83c08e856c5ad7","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.15.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.8_1779778412421_0.8064587669949208","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.9","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.9","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"2679f8658417d03016a486b29326496a59942634","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.9.tgz","fileCount":24,"integrity":"sha512-xlW5FJclwpK13CstUu0wIKKgR4smWL10puLmvx4ldty0TAVeIRsjmm+xg9wxE3vS4v2dogWAW/TNhhGWiGWqRQ==","signatures":[{"sig":"MEQCICnDDk0f7WOKBTOb9iE0MmAO4RGXwnX1MsOtMbiASi+eAiAOraXbQ61t/Wlab0KASFHKmED0ov28CbuwCya0AGuDwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159953},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b18eaf24d5f4107e889cfba23103e6d00bc9828d","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.15.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.9_1779828133678_0.3117319447115825","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.10","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.10","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"870b873b9d8b015ef2c098a0d4af2361a4119ee6","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.10.tgz","fileCount":28,"integrity":"sha512-W7ocjFboDRH9TTa2CA0dtbW9yLEIW4GznwvqF4UZfmtlhpTPHMenRNLjq1H3qReRj/P1ynBj+arnl7kpTeJzzg==","signatures":[{"sig":"MEQCICijXu2hbjNdI8mSTT2tzaaovcXYSAq24RpD4DwYoll7AiBF11WB4CWwtGuV+WY22bRqLclTKZmBVQwJGNqX5sk0MQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187234},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"20d083df7e7510329532784d1c837f773eac11bb","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.15.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.10_1779828371339_0.6677011485453961","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.11","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.11","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"3ced88b025a24642e241f8a1e9f6cc42d420a72b","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.11.tgz","fileCount":28,"integrity":"sha512-W6uYQw/F5kEFPQMiK948wbPAXqh3KqdKepuiizmOzCOCv6muqix2niVTqLzrGuAj4+W1UvQEt4nplHLT2iuF4A==","signatures":[{"sig":"MEUCIBNFnz6SjsxiqB1tlsML+mfXkfYzRLZAHF0BzDltHK48AiEAqkI8JRyOfXXJGPvixscfZ67OkIAi8KEkt4ettByTmLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188851},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"870c86c03653a881f6f324d1364695c6ae118f1b","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.11_1779935644024_0.034067605650295096","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.12","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.12","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"7087476149a68a2eec343bda1de2b12224f1ba43","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.12.tgz","fileCount":30,"integrity":"sha512-zwp82bGNAgmK0CxsltMARx/m+tYu/+FcJEtFZ5DTZlwIEHnhoLTQGjd4mYsjjJKRLJr4N8K/+fuhtfLAfi/QEw==","signatures":[{"sig":"MEUCIQDe6n/kPJXL6TX1Ero5jWWdAnmVoRPRRtyLNolK6HHmBAIgFzKKp5L08OeZpfiQwXYUx3iQnSxYuCqgnXwq3gQfKZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204570},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9d21c4b08add5bd07a92b718fd50773496748a84","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.12_1779938661714_0.39398634705750735","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.13","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.13","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"78fc8267dc41bd5b8ab0010e779d69fa5e17717a","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.13.tgz","fileCount":30,"integrity":"sha512-bYHpBPh5VZWO/9qVtOrRu+ZAOU32B6+eS2YVdA2w+Kv25pT4HcSaWoDLxL8b7Dk1qvspGC9DCkkOZU3+QZ0c1g==","signatures":[{"sig":"MEUCIAnoQzOMlapgfY1Jv5iqAOwxy9vYs4vtWhU9rM/eEORqAiEAnmIXugiJxORG3ViPLa6iGJIZi6dD53jxVyYXEhZQa4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204570},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"faceea17722cb0f750f59ec0c5d591985c84f7ee","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.13_1779941541334_0.06531275448251583","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.14","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.14","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"39339ef33030f9f1f4273f31c715c26712fedd07","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.14.tgz","fileCount":30,"integrity":"sha512-x67dA0MCFlJbJC99q93ExyojTqGZTO29LWEUp9WPHvydxfyUEFOY/0Yyv/fhxHb88nIqG0g95NVqOpBUheEEvQ==","signatures":[{"sig":"MEUCIQD9f0oyA8MnmRuQQNGWluE5ICdjru7OQ+cUTknVb4B5GQIgbMo/0i52AqM9D8IXARUCHxDna+u2dVcdX6spncZybrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204605},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"37798e15f3b625a3caf40e57e5c20606d971d66e","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.14_1779941774711_0.4361640570009999","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.15","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.15","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"d0d449a009eee538c3203bd09e90bfe7364eff24","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.15.tgz","fileCount":32,"integrity":"sha512-q7A/pBVVg1Rl47JsJ6KycfoU57MjUlWOERAVNMGJPcMC4sue03Xcgqpu1HX2iOak80aHrwaxqfCSUTQSqnp/DA==","signatures":[{"sig":"MEUCIDevOmZ0tLeyxkGCkDDs2fnqfUT00pN6pj2ofVEEWQd5AiEAmlJB1V5rS42Skr92Wt7YpRYTXc38oSc+vrek6CKm5/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":222137},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cc77eedeeb1632a516f10ae57a7ddb7caa10a45c","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.15_1779942992426_0.28754046660626953","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.16","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.16","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"32b4a928f180f2c96ff99670bdd5feb9df4d1303","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.16.tgz","fileCount":38,"integrity":"sha512-oZSqzDzngyR4rzJD81KFd95FKiSwmAs+1QZMxNJ9kEW3+yeRPry1aDZBaxNGQ+77IobPBJ8STja1/SJDrRsbbQ==","signatures":[{"sig":"MEYCIQDrk/zUA7Cr5fm45shiRQDJL5iybDnssWXouWZKwM+PnAIhALKmOCnBfSU15v2Q9biDKCH6tyfXdtZhPLQ76ON2wq4q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":257986},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"75fe5e0235e17a5ff108e2760386d002b846ea8f","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.16_1779943719805_0.7959384128767166","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.17","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.17","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"6dda808625f497e53d92d63cbaaaeb59ffe95fd9","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.17.tgz","fileCount":42,"integrity":"sha512-mwgrYWGoQCzZQMkp1RnVZbueb0ZEP4JhmvSdMbpTmrEylUD2rBmUJHefusFLABjAnuk7xkHw+EjjGWjvi4fx0g==","signatures":[{"sig":"MEYCIQCp/NLByZWKAbkDA3OzaJlCWJBXotZo0uzCuzaTjhmQiwIhAP9ZHXiRaFLjgSWBDeuuZXGU9us1bwI6Nf2LK6EuLNJo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":295506},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"26ec871eeabeb5da013f210d6b00492b7c94c170","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.17_1779943967246_0.4968250382491497","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.18","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.18","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"0113cbdd2755907cc685ca4c46681643c80c17b9","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.18.tgz","fileCount":42,"integrity":"sha512-sLE2APFuSRIFClOcbzt7KB2sQ9rJ5QTqXG2l1rK2MBVgVJSnF/6N4QEGWMtU8YW/n7gHbRBbHpx5udrhEc5feA==","signatures":[{"sig":"MEQCIBWyuJ3j1NYk9kbIOTvkWXpEkAwD+3Ug3Omu5N3n3dIxAiA14n0uDSI1NbRfeKeKgo8nJPZOSJ3JNDRSEJM20T0GWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302443},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"f613a953ee80d85c47e148ae4e3e302a90bb7252","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.18_1779946183178_0.33613623232142653","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.19","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.19","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"1490b8b3426644e3a83a7b4be03b8e75ea758429","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.19.tgz","fileCount":42,"integrity":"sha512-BYlF6hJldUk/Dx2T5UQsyPrCqWIg1GEasaOBGLEDhmMXcprzfXCZY7Gncz/RKEYvLs8ZkWFGpw0t1xbvw8RRvw==","signatures":[{"sig":"MEYCIQD5NN69srGTYujC/+yZpW6ykfYMa8lEfhPRVPF5wK0zXAIhAOLIDntrykOuJvfjask87wzSWDkxvBhm3JBQCZB0Xyec","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302475},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"0247ef6e75093c95359413725977df07bd5bff70","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.19_1779983655583_0.9966458478366329","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.20","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.20","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"6a1b14de02c1058673361de1793e6bd9a49c790e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.20.tgz","fileCount":48,"integrity":"sha512-BfDhvvqFuPzXi3362naTeemszcGPn3A4r+dUedaa7f1WuWzAJwWW1/XrJOvIMe+CSyLhOcaHMqqKDpt3PE5T7w==","signatures":[{"sig":"MEYCIQCU785uZSM/HvtETNtwcCVUB26scoqwUDXhCzFbz8wqawIhAPTlasTA9rH+F17MPHKEkmA33GKG58Jgi6UPKxWIPyx7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325224},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"6a12c10733b64732855a8125c84f0d4846ced256","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.20_1780021081966_0.8070905252183302","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.21","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.21","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"a97515b73d9b4b8abd0ee4ad89ec12a3bb5c15ae","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.21.tgz","fileCount":48,"integrity":"sha512-JHiNqi/xOHLslGCJ5xh1HOrXKrd2rB65OKRSPJ5pwHZhnM9ndFi8Mp1pXnzNRhi32xiDfo3q/jmknkgVtlyF9Q==","signatures":[{"sig":"MEUCIDcA2aC95ErXpY2bavYEi107PXyxjk/MST2AxRcrLfnlAiEA3IlcABjy9jmg+8MF2KR+i5wj+ibX5Ej2YHJ60QvaAyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325226},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"44e5c84b85007cf6e9223b279ff79afd5319c5ab","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.21_1780563387654_0.16784614327541703","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.22","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.22","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"0b66804247c1ed1556aa7ae0d9a9ce0d769b91ab","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.22.tgz","fileCount":48,"integrity":"sha512-r3c4MUAWAyWV6GsQafp2Hr3U7dcXB6PmdkzBuY4qxsMeKkL/2ODTi5w49HBM2Yb14yYzd5NNbu62RJt6FdfiXw==","signatures":[{"sig":"MEYCIQDGo+aLVtbVGHFdYI4mdUocTTJkU9q1jPqKI5qApPjCIwIhAL2NS+wS2U1oTpXqC9tz/vZs7ZOiFLVc7mhrIjjVNPgH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330029},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"fca377ec4384f690dead625bef1cb3eeefb399e4","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.22_1780704824548_0.6894148231971382","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.23","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.23","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"ecc45909af2a2337d663d2ec62256b2e9ba6c804","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.23.tgz","fileCount":48,"integrity":"sha512-vy19wJBLTUiEiaiqP31nKcvwcaPJKOX83/g5sFVi39K+djDfr9s9GlabBmEEj4e6VGZciYRmS2fV/IwOaNIOgQ==","signatures":[{"sig":"MEYCIQCKkTMN4wgSiUsla8fgRRpWboqw/noG5h90nNruP2jY9AIhANv8LIs42ltimg9YmFN3MgPQR9xQCqhrUWsIuA0BuHW6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":328921},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8cdb950828752d028b05790bdf855e931b7d6bf8","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.23_1780712205215_0.6345270172248885","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.24","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.24","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"e869846adcd79de222c8664de876ad81adf7764e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.24.tgz","fileCount":50,"integrity":"sha512-lJC+QudewR/63icgV+nTMAPHzpNB7yKEHgkJVU6CQg3gJSpaxgoya3VN/S1KcETgMymN2I2acMcesyh2Oyt24w==","signatures":[{"sig":"MEUCIC22L3nRfqmJEKYepUHOedbOMfYOoiMQkCrWTPSVznuVAiEAx0ncBaYacoLcgZAkNsFUC+7DZDIl2OvchZCMoAnUX+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351226},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"15962635ea82ee57b37f45632529c14046550c4d","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.16.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.24_1780987786689_0.057929966202135974","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.25","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.25","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"f6f75c9872e9ad56dd14fcc6ada9e2af93adabde","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.25.tgz","fileCount":50,"integrity":"sha512-rxqYx35l31DqM4FxxEd83zuNxRcjM0dByOKMNQh5s9FYZc85o0lRlwhmJFIBvrRL3+MuRb5i+NBjdeQ0cegh3w==","signatures":[{"sig":"MEUCIQCj7UFBifKJD7pwyrGCAGYJelMufN9VmfbRE7x7gDfolwIgdQXbrOVL/0Pra8Lib9MIHwS4M+2tNDqbwfswYSTr9uo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351905},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"822b23a407eadb38e9847790bc893d080d9bb768","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.17.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.25_1781395028937_0.24659926079776118","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@tenonhq/dovetail-claude-plans","version":"0.0.26","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-claude-plans@0.0.26","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-claude-plans":"dist/cli.js"},"dist":{"shasum":"9d6784149158cd9d31a76bca4c540f39ba35b765","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-claude-plans/-/dovetail-claude-plans-0.0.26.tgz","fileCount":52,"integrity":"sha512-1F/onp8xzKNUzNG3aH48mWsZh9skn9iYeN8Ue4Y8Ae24EuPqarqkb6chDrIBVtydv33fEC66sGdPF8j+DfrBWA==","signatures":[{"sig":"MEYCIQCfjfyOZ1nYxBx9wcOxRyJGTZfit4ZPvbardfdZTkupfAIhAJrigf+mGb2Byik0ycqbZm9SXbHBs35a7ogw5ruJfmkN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-claude-plans@0.0.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":357744},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"2bca2a07378185911d3b141f3be781bfa9720b2e","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:de452f14-9ab3-4516-84a4-03c9d9b0f42a"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"_npmVersion":"11.17.0","description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-claude-plans_0.0.26_1781764132616_0.033410700738962795","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-05-14T00:25:30.258Z","modified":"2026-08-05T14:48:15.973Z","0.0.1":"2026-05-14T00:25:30.506Z","0.0.2":"2026-05-15T23:11:12.323Z","0.0.3":"2026-05-15T23:54:57.889Z","0.0.4":"2026-05-16T00:26:22.096Z","0.0.5":"2026-05-18T23:05:15.638Z","0.0.7":"2026-05-26T06:43:39.227Z","0.0.8":"2026-05-26T06:53:32.545Z","0.0.9":"2026-05-26T20:42:13.852Z","0.0.10":"2026-05-26T20:46:11.497Z","0.0.11":"2026-05-28T02:34:04.198Z","0.0.12":"2026-05-28T03:24:21.886Z","0.0.13":"2026-05-28T04:12:21.493Z","0.0.14":"2026-05-28T04:16:14.879Z","0.0.15":"2026-05-28T04:36:32.589Z","0.0.16":"2026-05-28T04:48:39.958Z","0.0.17":"2026-05-28T04:52:47.408Z","0.0.18":"2026-05-28T05:29:43.330Z","0.0.19":"2026-05-28T15:54:15.788Z","0.0.20":"2026-05-29T02:18:02.128Z","0.0.21":"2026-06-04T08:56:27.794Z","0.0.22":"2026-06-06T00:13:44.749Z","0.0.23":"2026-06-06T02:16:45.361Z","0.0.24":"2026-06-09T06:49:46.881Z","0.0.25":"2026-06-13T23:57:09.075Z","0.0.26":"2026-06-18T06:28:52.762Z"},"bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"author":{"name":"Tenon"},"license":"GPL-3.0","homepage":"https://github.com/TenonHQ/Dovetail#readme","repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/claude-plans"},"description":"MCP server + CLI for Claude Code plans and visual artifacts surfaced in the Dovetail dashboard.","maintainers":[{"email":"ben.ivers@tenonhq.com","name":"ben.ivers"},{"email":"desiree.morehouse@tenonhq.com","name":"ddchon"},{"email":"trevor.offen@tenonhq.com","name":"trevor.offen"},{"email":"daniel@danielcudney.com","name":"dman89"},{"email":"jaedon.farr@tenonhq.com","name":"jaedonfarr"},{"email":"patrick.ainsworth@tenonhq.com","name":"painsworth"},{"email":"will.mcgill@tenonhq.com","name":"willmcgill"},{"email":"kevin.moore@tenonhq.com","name":"kevinmoore-tenon"},{"email":"dennis.huh@tenonhq.com","name":"denjhuh"}],"readme":"# @tenonhq/dovetail-claude-plans\n\nAn **MCP server + storage library** that surfaces a Claude Code session's plan — and, as of v2, its full pipeline state — in the Dovetail dashboard at `/claude-plans`. A Claude Code session pushes a plan (and optional artifacts, prompts, questions, and stage transitions) over MCP stdio; records land as atomic JSON files under `~/.dovetail/claude-plans/`; the dashboard watches that directory and renders everything live (markdown via marked, diagrams via mermaid.js). A small CLI ships alongside for listing, exiting, and running the server.\n\n---\n\n## Install / build / test\n\nPart of the Dovetail npm-workspaces monorepo. Requires **Node 22+**.\n\n```bash\nnpm i -D @tenonhq/dovetail-claude-plans      # consumers\n```\n\nConsuming projects wire the server in via their `.mcp.json`: `npx -y @tenonhq/dovetail-claude-plans mcp`.\n\nLocal development inside the monorepo:\n\n```bash\nnpm test          # jest (unit + v1-contract suites)\nnpm run prepack   # tsc — compiles src/ → dist/\n```\n\nThe package publishes the **built `dist/`** only (`\"files\": [\"dist\"]`, `\"main\": \"./dist/index.js\"`); `prepack` runs `tsc` so a publish always ships fresh compiled output. The CLI entry point is `dove-claude-plans` (`bin` → `dist/cli.js`).\n\n---\n\n## Storage model\n\nRecords are plain JSON files under a single root directory:\n\n```\n~/.dovetail/claude-plans/                    # override with DOVE_CLAUDE_PLANS_DIR\n├── <plan-slug>.json                         # the plan record\n├── <plan-slug>/\n│   ├── artifacts/<artifact-slug>.json       # markdown / mermaid / prompt-cycle\n│   └── prompts/<prompt-slug>.json           # rewritten prompts (push_prompt)\n└── _lint-events/<event-id>.json             # global, plan-independent lint events\n```\n\n- **Atomic writes.** Every write goes to a `.tmp.<pid>.<rand>` file and is `rename`d into place, so the dashboard's chokidar watcher never observes a torn file.\n- **`schema_version`.** Plan records carry `schema_version` (`CURRENT_SCHEMA_VERSION = 2`).\n- **v1 → v2 migration on read.** Every plan read passes through `migrateV1OnLoad()`, which stamps `schema_version: 2` and defaults the v2 fields in memory. It is idempotent on v2 records and **does not write to disk** — the upgrade materializes on the next write (`push_plan` / `update_plan_status` / `push_question` / `record_answer` / `set_stage`). v1 records therefore keep round-tripping through every v1 tool unchanged.\n\n---\n\n## MCP tool reference\n\n17 tools total. Inputs below are the authoritative zod fields; required fields are marked `(req)`.\n\n### Plan CRUD\n\n| Tool | Purpose | Key inputs |\n|---|---|---|\n| `push_plan` | Create or update a plan (auto-slugs from `title`; status defaults to `DRAFT`). Returns the plan plus a dashboard `url`. | `title (req)`, exactly one of `content_md` / `content_html` / `content_structured`, `slug`, `status`, `pr_number`/`pr_url`/`pr_title`, `linked_artifacts[]`, `categories[]` |\n| `update_plan_status` | Transition status. Legal: `DRAFT→APPROVED`, `DRAFT→EXITED`, `APPROVED→EXITED`. Reverses/skips rejected. | `slug (req)`, `to (req)` |\n| `get_plan` | Return one plan with its nested artifacts. | `slug (req)` |\n| `list_recent_plans` | List plans newest-first. | `status`, `limit` (default 20) |\n| `delete_plan` | Permanently delete a plan and all its artifacts. | `slug (req)` |\n| `get_handoff_bundle` | Compose one paste-ready Markdown payload to resume a plan in a fresh session; hoists the newest rewritten prompt into a `READY-TO-PASTE PROMPT` section. | `slug (req)`, `follow_links` (default false), `include_artifact_kinds[]` |\n\n### Artifacts / Prompts\n\n| Tool | Purpose | Key inputs |\n|---|---|---|\n| `push_artifact` | Attach an artifact (`kind: markdown \\| mermaid \\| prompt-cycle`) to a plan. Mermaid sources are header-validated. | `plan_slug (req)`, `kind (req)`, `title (req)`, `content (req)`, `slug` |\n| `push_diagram` | Convenience wrapper around `push_artifact` for Mermaid. Validates the source begins with a recognized diagram header. | `plan_slug (req)`, `title (req)`, `mermaid_source (req)`, `slug` |\n| `push_prompt` | Attach a rewritten prompt (e.g. from `/improve-prompt`). Surfaces on the dashboard's Prompt tab and feeds `get_handoff_bundle`. | `plan_slug (req)`, `title (req)`, `content (req)`, `slug`, `source_draft`, `score_before`, `score_after` |\n\n### Q&A\n\n| Tool | Purpose | Key inputs |\n|---|---|---|\n| `push_question` | Park a question on a plan; returns a `PlanQuestion` with assigned id (`q_<8-hex>`). | `plan_slug (req)`, `question (req)`, `header`, `options[]`, `stage`, `asked_by` |\n| `record_answer` | Record/overwrite an answer to an existing question (last-write-wins). | `plan_slug (req)`, `question_id (req, q_<8-hex>)`, `answer (req)`, `answered_by` |\n| `get_answers` | List a plan's Q&A entries. | `plan_slug (req)`, `answered` (true/false filter), `stage` (exact match) |\n\n### Prompt-lint\n\nLint events are **not owned by a plan** — they capture Turn-0 checklist scores for arbitrary prompts (typically from the `UserPromptSubmit` hook) and surface on the standalone `/prompt-lints` page.\n\n| Tool | Purpose | Key inputs |\n|---|---|---|\n| `push_lint_event` | Record a prompt-lint observation in the global store (`<root>/_lint-events/<id>.json`). | `score (req, 0-100)`, `missing[]`, `antipatterns[]`, `ceremony[]`, `threshold`, `prompt_excerpt`, `source`, `session_id`, `plan_slug` |\n| `get_lint_events` | List lint events newest-first. | `session_id`, `plan_slug`, `limit` |\n\n### v2 Pipeline (new)\n\nThe three tools that drive the bidirectional v2 pipeline. They build on the v2 plan fields `stage`, `stage_history`, `dispatch_token`, and `dispatch_log`.\n\n#### `set_stage`\n\nMove a plan to a new pipeline stage. Validates the transition against the v2 state machine (`src/state-machine.ts`) and **issues a one-time dispatch token** bound to the new stage (5-minute TTL). Each call rotates the token — the previous outstanding token is overwritten and becomes stale.\n\n- **Inputs:** `plan_slug (req)`, `to (req)` — one of the 10 `PipelineStage` values, `by` (defaults to `CLAUDE_CODE_SESSION_ID`), `source` — `code` (default) or `dashboard`.\n- **Output:** `{ plan_slug, stage, token: DispatchToken, history_length }`.\n- **Notable errors:** `IllegalTransitionError` (move not reachable from the current stage; the error lists the legal next stages); `ConflictRejectedError` (a `code`-sourced write when the last recorded transition was `dashboard`-sourced and within the 30-second grace window — see `DOVE_CLAUDE_PLANS_DASHBOARD_GRACE_MS`). Dashboard-sourced writes always win.\n\n#### `pull_plan`\n\nSingle-read snapshot of a plan and all its v2 surface, so the dashboard's plan-detail page renders without three round-trips.\n\n- **Inputs:** `plan_slug (req)`.\n- **Output:** `{ plan, artifacts[], prompts[], questions[], stage, stage_history[], dispatch_log[] }`.\n- **Notable errors:** plan-not-found (404-equivalent `PlanNotFoundError`) when the slug does not exist.\n\n#### `dispatch_stage`\n\nResolve (and optionally spawn) a Claude Code subprocess to drive a plan at a given stage. **The riskiest v2 tool** — see [`docs/v2-implementation.md`](./docs/v2-implementation.md).\n\n- **Modes:** *dry-run* (default) resolves the spawn command + working dir, appends a `dry-run` `DispatchEvent` to `dispatch_log`, and returns — **no process is launched, and the token is not consumed**. *Live* (`confirm: true` + valid `token`) consumes the plan's outstanding token **atomically before** spawning, so a crashed/leaked subprocess never breaks the single-use guarantee.\n- **Inputs:** `plan_slug (req)`, `target_stage (req)`, `confirm` (default false), `token` (required when `confirm === true`; format `tok_<24-hex>`), `by`.\n- **Output:** `{ mode, plan_slug, target_stage, command, cwd, pid?, event }`.\n- **Notable errors:** `MissingAgentError` — `target_stage` `test-first` and `test-reality` are gated until the `test-author` / `test-reality-checker` agents ship (never a silent no-op); `NoTokenError` (no/missing token in live mode); `StaleTokenError` (token mismatch, already consumed, expired, or issued for a different stage); `SpawnError` (the spawn primitive failed to launch).\n\n---\n\n## v2 pipeline — quick mental model\n\nThe three pipeline tools form a deliberate, token-gated loop:\n\n1. **`set_stage`** advances the plan through the 10-stage state machine and hands back a **one-time dispatch token** (5-minute TTL). The token is the *only* way to drive a live spawn, and it is rotated on every `set_stage`.\n2. **`pull_plan`** is the **single-read snapshot** — the canonical way to read a plan's whole v2 surface in one call.\n3. **`dispatch_stage`** is **dry-run by default**. A live subprocess spawn requires `confirm: true` **and** the current token; the token is consumed atomically before the spawn.\n\nThe 10 stages: `research → pre-stage-improve → planning → post-plan-improve → test-first → code → per-step-review → architectural-review → test-reality → documentation` (transitions enforced by `state-machine.ts`, not free movement).\n\nFor the full design — state-machine table, conflict resolution, dispatch safety preconditions — see [`docs/v2-implementation.md`](./docs/v2-implementation.md).\n\n---\n\n## Environment variables\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `DOVE_CLAUDE_PLANS_DIR` | `~/.dovetail/claude-plans` | Storage root for all plan/artifact/prompt/lint JSON. |\n| `DOVE_CLAUDE_PLANS_TOKEN_TTL_MS` | `300000` (5 min) | Lifetime of the dispatch token issued by `set_stage`. |\n| `DOVE_CLAUDE_PLANS_DASHBOARD_GRACE_MS` | `30000` (30 s) | Grace window for the dashboard-wins conflict rule in `set_stage`. |\n| `DOVE_CLAUDE_PLANS_DISPATCH_CWD` | `process.cwd()` | Working directory `dispatch_stage` resolves for the spawned subprocess. |\n| `CLAUDE_PLANS_DASHBOARD_URL` | `http://localhost:3456` | Base URL used to build the dashboard deep-link returned by `push_plan`. |\n| `CLAUDE_CODE_SESSION_ID` | — | When set, auto-populates `session_id` / `by` / `asked_by` defaults. |\n\n---\n\n## CLI\n\n```bash\ndove-claude-plans list                 # all plans, newest first\ndove-claude-plans list --status DRAFT\ndove-claude-plans exit <slug>          # flip to EXITED\ndove-claude-plans exit-stale           # flip every DRAFT to EXITED (Claude Stop hook)\ndove-claude-plans recategorize [--dry] # re-extract topic categories on every plan\ndove-claude-plans where                # print storage root\ndove-claude-plans mcp                  # stdio MCP server (used by .mcp.json)\ndove-claude-plans mcp --smoke          # list registered tools and exit (CI verification)\n```\n\n---\n\n## `content_structured` — component library\n\n`push_plan` accepts exactly one of `content_md` (Markdown), `content_html` (HTML, DOMPurify-sanitized), or `content_structured` (recommended). Pass a `{ sections: [...] }` object and the server renders it to HTML using the dashboard's component CSS — no HTML/CSS knowledge required.\n\n```json\n{\n  \"sections\": [\n    { \"type\": \"header\", \"title\": \"Deploy PR #42\", \"subtitle\": \"feature/auth → PROD\" },\n    { \"type\": \"meta\", \"rows\": [\n      { \"label\": \"Status\", \"value\": \"Approved\", \"badge\": \"success\" }\n    ]},\n    { \"type\": \"steps\", \"steps\": [\n      { \"label\": \"DEV\",  \"status\": \"done\" },\n      { \"label\": \"TEST\", \"status\": \"active\" },\n      { \"label\": \"PROD\", \"status\": \"pending\" }\n    ]},\n    { \"type\": \"checklist\", \"title\": \"Pre-deploy\", \"items\": [\n      { \"label\": \"Tests pass\", \"done\": true },\n      { \"label\": \"Migration run\", \"done\": false }\n    ]}\n  ]\n}\n```\n\n**Section types:**\n\n| Type | Required fields | Optional fields |\n|---|---|---|\n| `header` | `title` | `subtitle` |\n| `meta` | `rows: [{label, value}]` | `title`, `rows[].badge` (`default\\|success\\|warning\\|danger\\|info`) |\n| `callout` | `message` | `variant` (`info\\|warning\\|danger\\|success`), `title` |\n| `checklist` | `items: [{label, done}]` | `title`, `items[].note` |\n| `steps` | `steps: [{label, status}]` | `title`, `steps[].note` (`done\\|active\\|pending\\|error`) |\n| `metrics` | `items: [{label, value}]` | `items[].sub`, `items[].variant` |\n| `section` | `title` | — |\n| `table` | `headers: string[]`, `rows: string[][]` | `title` |\n| `text` | `content` | — |\n| `code` | `content` | `title`, `lang` |\n| `tags` | `items: [{label}]` | `title`, `items[].color` |\n| `timeline` | `events: [{label}]` | `title`, `events[].time`, `events[].note`, `events[].status` |\n| `progress` | `items: [{label, value}]` | `title`, `items[].max` (default `100`), `items[].variant` |\n| `people` | `items: [{name}]` | `title`, `items[].sublabel`, `items[].color` |\n| `quote` | `text` | `cite` |\n\n---\n\n## Topic categories (Topics cloud)\n\nEvery `push_plan` extracts a short list of topical labels (`ServiceNow`, `Mortise`, `Mailgun`, `Tooling`, …) from the plan's title + content via [`src/categories.ts`](./src/categories.ts) and persists them as `categories: string[]`. Zero external deps — curated Tenon vocabulary first, frequency-fallback for novel topics. The dashboard reads `categories` to render the **Topics** cloud at the top of `/claude-plans`. To bootstrap existing plans after upgrading:\n\n```bash\nnpx dove-claude-plans recategorize        # write\nnpx dove-claude-plans recategorize --dry  # preview only\n```\n\nCallers can override auto-extraction by passing `categories` to `push_plan`.\n\n---\n\n## Backward compatibility\n\nThe v1 tool contract is locked by fixtures. `src/tests/v1-contract.test.ts` replays every fixture in `src/tests/fixtures/v1/*.json` through the live registry against a frozen clock, a deterministic id generator, and a cleared `CLAUDE_CODE_SESSION_ID`. Any drift in a v1 tool's response shape fails the suite. The v2 additions are strictly additive: v1 plan records (no `questions` / `stage` / `dispatch_*` fields) round-trip through every v1 tool unchanged, and the v2 reads return safe defaults against them.\n\n---\n\n## Stop hook\n\nRecommended addition to `~/.claude/settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"Stop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"npx -y @tenonhq/dovetail-claude-plans exit-stale --quiet\"\n      }]\n    }]\n  }\n}\n```\n","readmeFilename":"README.md"}