{"_id":"@principled/cairn","_rev":"53-3795ab63cec88206eaf83ccbb5551db5","name":"@principled/cairn","dist-tags":{"latest":"5.1.0"},"versions":{"1.0.0-beta":{"name":"@principled/cairn","version":"1.0.0-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.0-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"296b4dd14d7f2a3b8c416a9a3d18f49de7725842","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.0-beta.tgz","fileCount":313,"integrity":"sha512-oQpk0hqJLhqZXU7ZDDQ1M9CZeQHj5B+Jk3vN/Q5wDHnonTpZVgPmAPKRyUOGLXAOw6F9JbFEPfTpRyavidCnAQ==","signatures":[{"sig":"MEQCIGbcmFKT3ieH5WZo4Z6740UeNW5k8EOGvUaYOw6p1zlAAiBSTJLZastaLChRpYOORDNURhYlJ0BhnpmOZ+Mwtvywpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443786},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.0-beta_1774985212992_0.921726272443032","host":"s3://npm-registry-packages-npm-production"}},"1.0.1-beta":{"name":"@principled/cairn","version":"1.0.1-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.1-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"9a41728151646ba751d45f95602deb8967ac71ec","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.1-beta.tgz","fileCount":313,"integrity":"sha512-fxjN+8iN66lsE5xBjVY9CUhh7+Wt/aafhXvYf7UhSITC5KDm5a2/9HGgsZ0rqVF9z9fwJnLD2JOxU5J2jN1dRw==","signatures":[{"sig":"MEYCIQDKtn5uTSOsDOez7FnB118Rq7MjkbNfvWx1c8p96avC7wIhAIRPeEvEIiBTdRFNFVpWvhMTCrdndIBtKM60ZKoPZ08T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450862},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.1-beta_1775006047724_0.8084450300299375","host":"s3://npm-registry-packages-npm-production"}},"1.0.2-beta":{"name":"@principled/cairn","version":"1.0.2-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.2-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"944825905b40167194590338b80dd9316f34c84d","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.2-beta.tgz","fileCount":313,"integrity":"sha512-Uy2YG9peCXCFS5Bk2Dk+ICFXC8GswiOKFqrMRgdgiVoGDyN+oEqDjRQzmr+dwpRPxzu+ltU/wGl0EPxNae0VOA==","signatures":[{"sig":"MEUCIEFpv+DZGxYYjxAN76A53APF1bFTWZW4tXR5Z1SOMuoeAiEA/pjB6oPtAWPQHq2gkMufvq/MOujaAxhzrVPxNaLrUUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450862},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.2-beta_1775010162849_0.13868242732403702","host":"s3://npm-registry-packages-npm-production"}},"1.0.3-beta":{"name":"@principled/cairn","version":"1.0.3-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.3-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"50762f8c6626981a96f2b995de2f86c0a41032db","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.3-beta.tgz","fileCount":313,"integrity":"sha512-+cOlAfyJJVadUH0AadPWTxAXYnFjgqVpSyZkbEGjQX2/HluzF5i035C6Phw+pEmHKRex8acFaI5L4q08r+Js8g==","signatures":[{"sig":"MEQCIATeYa34F/gIJE9HN6xtzde8J3FcPSkcsjxgdqfdNRegAiAsShnV7g9yu28L1Ag85BwKt9EGKb7GUeCq+w6AMMEgfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450862},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.3-beta_1775271983319_0.6620287410664636","host":"s3://npm-registry-packages-npm-production"}},"1.0.4-beta":{"name":"@principled/cairn","version":"1.0.4-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.4-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"c6c52c418ba6865e666bb65c540eb98a1439cdc3","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.4-beta.tgz","fileCount":313,"integrity":"sha512-DyLnQBT9+6zS/4fgxFFtzGZA83mlojw6ouSCNTc+JB6hp0+FutgGP6mhIaPNAWMV6TpGKJCTgDS+tgouAu5j2Q==","signatures":[{"sig":"MEQCIGafpxV1biS9Htih0DywQsMKruZiQTcltz7IrWYf/UwTAiAenObgBhujNS/wV9pqgLO7QFawi8Rbpt+q6uBbs+8csA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451197},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.4-beta_1775285939960_0.25013503367404955","host":"s3://npm-registry-packages-npm-production"}},"1.0.5-beta":{"name":"@principled/cairn","version":"1.0.5-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.5-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"b7ae3e6f867101d576f8bb1b224df9acd2e41ae4","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.5-beta.tgz","fileCount":313,"integrity":"sha512-1UiY926el2JmNyVbwGRoZk9v070QPIgX3c/jBXLxtsX6k1cDDw4vIhwI4bH8mgnwE8FDPqTgwWHTOs5nIz2hyw==","signatures":[{"sig":"MEUCIQC7djzRrpEz5I7MixsKbi4T8pycA1mt62NAD8kPWwNWVgIgFHczgLT60kkrOenYPWGUReKC9qDMH88RJRPs64COgfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451225},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.5-beta_1775286320838_0.7861280985545593","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-beta":{"name":"@principled/cairn","version":"1.0.6-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.6-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"43a1b62d062ed633b5d78d21070c7760f972ff3c","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.6-beta.tgz","fileCount":313,"integrity":"sha512-sLMc781DG8SS689TKcfP7h+m5+3sA8Wm95pfnJQo3/uxCaxixAevBrarAPGritQ/vaqWvxNnhVLJeXoHFQJDQA==","signatures":[{"sig":"MEUCIQDDTNmsf/5oIUPLE4WlpfabrU5+FYb+jI/lsXtUvUXcqAIgVh9VFMQK2+J/OUlXpyfAdi9iJJs5ZpR1ZzW4k4xHFIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451525},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.6-beta_1775286396357_0.9375460767966981","host":"s3://npm-registry-packages-npm-production"}},"1.0.7-beta":{"name":"@principled/cairn","version":"1.0.7-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.7-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"99c35a52260dfd6822565a45d488977fc0020baa","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.7-beta.tgz","fileCount":313,"integrity":"sha512-2xZhvBF4SLXv/s7EeRIndYwn4RNnBOdBXdBm1TR7FCUVn5FZMpz5Y89jRxyknv4rGhYT1/fObqCtaRscTY8TfQ==","signatures":[{"sig":"MEUCIQCLBfOYgSFcFAdQcvUS7W3N9NjTndgDcRW6eb1TpPVSvAIgdYAZY1m4ULTRIBG5QXUqPorO8wv9bA/9kJwAu4sPs/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451126},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.7-beta_1775291858300_0.24683285697845547","host":"s3://npm-registry-packages-npm-production"}},"1.0.8-beta":{"name":"@principled/cairn","version":"1.0.8-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.8-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"be434eed6be0d7028dae715a15f670513d015ff0","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.8-beta.tgz","fileCount":313,"integrity":"sha512-SwilO+4EOFnzl34/I+KvcQGyMqBQ0qKAgzK4+emJxBZsB8yeVz+G82+c6oW9mGhkKSNqqUVZAEWxfggOYARs0Q==","signatures":[{"sig":"MEYCIQClk1yK9cRxbkEuVQ/ZClGN26p2R6FIGK1fPSEUau8O8QIhANP4SKhbdyOXtjRCKKjdZ+4yqBFFxJXRh2W6nswXhWf4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452573},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.8-beta_1775292127755_0.186148133484493","host":"s3://npm-registry-packages-npm-production"}},"1.0.9-beta":{"name":"@principled/cairn","version":"1.0.9-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.9-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"9d28f0fa0b2d0eab54c200940145252dd035a74c","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.9-beta.tgz","fileCount":316,"integrity":"sha512-hVkF43/fkNBXGYkVkSd/KERvgTchBfnNGALPL3Pq8lEM6d/6QdZgeMMHjKrHlKUYBG68iKfT+fsguloHuvCohg==","signatures":[{"sig":"MEYCIQCBG0snygFyMsYEWoi7I++u2rWbTkCDRR/1x8cu+4/BKAIhAIlAudsW92J/z8VNwZvFzkqVuOawxT1V1NcY+1IT3bhF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517201},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"81115fafa53ba3b8e61bc9f1dc47e296356825fa","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.9-beta_1775675599079_0.9027573947227565","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-beta":{"name":"@principled/cairn","version":"1.0.10-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.10-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"04447ad416cf6fea2eca864d59a54e03ae48f554","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.10-beta.tgz","fileCount":324,"integrity":"sha512-HHzFpo7PoggoCkjDUBMYAh2kfOlZCvSOpM0nZvyw/dxQxJMrCA5Sf/gQ6bkJNHpddvIW/2793uWlZPaXLx0GAg==","signatures":[{"sig":"MEUCID9zTTA70SbL7221jSW8OqeeHE6pSZeFRSWkECOt+081AiEAjXDeYz0YvsSIBqvpu1rNZG+z6seF1eV/XK75WuFgMXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":556392},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bdf8e29feb22faca4b4d3c78a9ae231d560f2642","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.10-beta_1775688125863_0.45387042402937294","host":"s3://npm-registry-packages-npm-production"}},"1.0.11-beta":{"name":"@principled/cairn","version":"1.0.11-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.11-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"fac767535c0fddabd7f37c3ba536d7b46dd21ee1","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.11-beta.tgz","fileCount":324,"integrity":"sha512-5FBqEEaTrx/fjlM7eyhUqMGGNVm2L/wiEnQhLlWEpeOKXw4e3sdfacJs17AJblASTKMnyX/Tb6bFn5ssEAYr0g==","signatures":[{"sig":"MEQCID/LksvI+fr/TdR5lL0xlfypm1AoHS42Dyo5VfsvvEglAiA+wQdiVR4nEt9w5wB5iS6iOuQ99jLNNskcDsGY+CliLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":559353},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"907c5474d5a4517d652273dddecd68fdaa17e218","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.11-beta_1775768600844_0.12028789753785829","host":"s3://npm-registry-packages-npm-production"}},"1.0.12-beta":{"name":"@principled/cairn","version":"1.0.12-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.12-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"4b3e961b117b2255310a06b4a71ee6b15517a83c","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.12-beta.tgz","fileCount":324,"integrity":"sha512-7ftWdjKMaQpH3ji8Og2Gl1xlsOjep6KUxyUcFR5VvBmfS+5QoFZ2PpNZA0I860ba+sjDBiYGmBOXRuAEyZre/A==","signatures":[{"sig":"MEQCIC0Stf5JYdg4mHlArlm0xwxw6eluZQ/xYw5st6qxyvJ5AiBjW/rr/QwppnotUzj2g1LxCmVMao9/S3YHBQqHycHwTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":559699},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"012b1ca250d78f803a7ca9b9ea515112fed5aa2b","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.12-beta_1775771548637_0.5323702566935233","host":"s3://npm-registry-packages-npm-production"}},"1.0.13-beta":{"name":"@principled/cairn","version":"1.0.13-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.13-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"8b12241fe959d35818b6a8d304e66e16abf90a21","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.13-beta.tgz","fileCount":324,"integrity":"sha512-47X2g/fPYFE+qjP+Fz2W2TONTDEre/T9mIdJoMitgM9K8SfmD/lTnaetOqcIghgbEMNPzqAWp5nrC7WwHjIPLQ==","signatures":[{"sig":"MEUCIGqUfirYPNc2wLf0BQaRxs/5OTMu2+6gVswPBVAQphEnAiEAgBwr1MKdza7H8nBrkFGBKcpwIPjqSGMitJibj80XmiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567477},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"05d567b972b5a9677fdb8398abb0b8a1b7b35916","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.13-beta_1775775310090_0.3213463813529638","host":"s3://npm-registry-packages-npm-production"}},"1.0.14-beta":{"name":"@principled/cairn","version":"1.0.14-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.14-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"3a0ae51072bca414b7211c45e5dbc464c44a372b","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.14-beta.tgz","fileCount":324,"integrity":"sha512-+6UVFLtzUhv/0o+Yg1EUfq+mvwxJmPmEVAk6amMWXLcCcclZN+g+vRc7rsWPdOY7B8YlAeDLfWP7NTIzvU4ngw==","signatures":[{"sig":"MEYCIQCXbNMF63h5chVU7f//I6e8PWvE+hIuwTpp+Hp3ceCKXQIhAK6kltveu0q3I8GIrGCG8X8RtYf3SLhj9Ec6AZC42iQK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573743},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1a8fca1613d113ea01e1cd6c1724e1d736ab47f4","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.14-beta_1775922779293_0.19410012207557537","host":"s3://npm-registry-packages-npm-production"}},"1.0.15-beta":{"name":"@principled/cairn","version":"1.0.15-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.15-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"4c94aa9b88e165d3f4f5601e0beba733989f3580","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.15-beta.tgz","fileCount":324,"integrity":"sha512-ZEVrSiFITTsPTBphHvAaKuCsvIMmAbQonsXbvLhIDy7SCObLDEivtTVWZ1AXdQ12Qg51MJMXt4iaYo59n1JcKQ==","signatures":[{"sig":"MEUCIQDwIWQNu13UO17aPTgo08hGDcNVgUaiFTVJ7eNC/n8fTgIgBErGr6C5KmVwr3hnh/GBOB6B7gFUHQGGhluF1fhqsBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572979},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8edf050bb4cfbe12ffbd9a531e85f4a5d158d106","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.15-beta_1775923745721_0.18981145438598568","host":"s3://npm-registry-packages-npm-production"}},"1.0.16-beta":{"name":"@principled/cairn","version":"1.0.16-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.16-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"5bdaa7a1e76be651ee9f057000f7b39a45ae913a","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.16-beta.tgz","fileCount":328,"integrity":"sha512-VmOJrT1lGRSYiOl9GGgHQ1x3HBc3O3DWvKYoMlNrV8ST0BQ3Wbxsqz6QSoZyPmb/2q5AYSDuNYGInGgMAENDRA==","signatures":[{"sig":"MEQCIEdCr6YolspdEBBn0+hMxsvOaxAzjkXwuPyNe36fzuwdAiBWwBGCNySrTd9IFG8T3c3ag3jZASwp1G5DBzGlmmN4GQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587443},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8fba56036b212a1067a7b817822245a6c18d330c","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.16-beta_1776101754347_0.3802091205514033","host":"s3://npm-registry-packages-npm-production"}},"1.0.17-beta":{"name":"@principled/cairn","version":"1.0.17-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.17-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"25621872905b42179ac74f972fbc47eb3f1f7c1a","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.17-beta.tgz","fileCount":332,"integrity":"sha512-6isaIF5yk1wVwCQcg59SX5ySfUdCg6+7ONAKVU/7LH3oYu2FcMMX7L06yLCOY0FfnVKGwNcz8k0Rk9vmSXuS3w==","signatures":[{"sig":"MEYCIQDV6wiEKZ7XZ2o/eBmPATKBxV5Q9JVy51KHXC8zbbrcUgIhALt2Eo0KrCpYS4ELHu4rTtwt3IdMFJ21iaj9a1Gn/Ryi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630004},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fae422c67d8c1d8f8f13c23f35ea1a587042f33d","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.17-beta_1776102925194_0.4539600834451911","host":"s3://npm-registry-packages-npm-production"}},"1.0.18-beta":{"name":"@principled/cairn","version":"1.0.18-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.18-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"b21a37de3a9fcba3091944c6adb7f228174fddbd","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.18-beta.tgz","fileCount":332,"integrity":"sha512-VArQHtg0dAz+UBUMJHZ4oL9VpiPjs1XtNz6xeK7zoSm8Ugxij/310Kktbe3ltW2TmKOM39BS2lfh8gKv3WY+bQ==","signatures":[{"sig":"MEUCIQD6GaiE/nV579AFLdMNt6mfAfkoovI2nRPnU87dQMrHLgIgWZ+fjsA/aPFybwcKVPgqUnJMeaN4qKp8AhfN2naAKUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630874},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b0e9d606e659dd4be18ae5442a1618f3d62d59f9","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.18-beta_1776219370500_0.67756459758908","host":"s3://npm-registry-packages-npm-production"}},"1.0.19-beta":{"name":"@principled/cairn","version":"1.0.19-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.19-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"94cd2ec998e4bb76c8b1d3b8e022a3a32adbf831","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.19-beta.tgz","fileCount":332,"integrity":"sha512-3urgmdZoOUCQs1/B3/nTfGjyb8DkYR0w9RP9R9FYyKXOOQFViQ+LYnGZ/8ipUFRDB1ehYIrFizh6gwjErXyumQ==","signatures":[{"sig":"MEQCIDJ4AGCo+qm7C1bjqK9CiXiZdcEZ9QK2lZ3yyBAdL9BIAiAKJblo/ivMZqu+c0Ce62au0iwE3L/EGB32/pk8J2/w+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":641472},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"82e8861bf1144dd53fee7cd061f952e1694c1054","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.19-beta_1776223506243_0.798113390103667","host":"s3://npm-registry-packages-npm-production"}},"1.0.20-beta":{"name":"@principled/cairn","version":"1.0.20-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.20-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"5dd62fc65a9a0d83067fff1fdd02ec62d2747319","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.20-beta.tgz","fileCount":336,"integrity":"sha512-A+ysj6ckgCUkHvb0mpWruKpe9ZAN+Bh29gVJCIRPCmGP6sox70EQggfNl5jb//SwGLsg2c49vwEmjJyV6SEi8A==","signatures":[{"sig":"MEYCIQCHI0o512yJ4YOZUJrormjuY7YhFfA7XSsmperA6AV83QIhAJV84EBciNTYr1vGh25+t29FfNRQrBa7CNTo4pPc2FKp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649207},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9728bd5a9775deebddeb3fb3a8253c9b3bba39a3","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"11.12.0","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.20-beta_1776926899997_0.7112329342987656","host":"s3://npm-registry-packages-npm-production"}},"1.0.21-beta":{"name":"@principled/cairn","version":"1.0.21-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.21-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"bb53a17aef93b30557248f91ac0840edef52d1cd","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.21-beta.tgz","fileCount":336,"integrity":"sha512-FEC3UiLg0vkpNPXTfoB5I6JfQifXyf+RAOCFyRS/jgFMi1l4pAr/jd0gTw/Hcr2CDBLoz1V0T+ujG8gMf8aEkw==","signatures":[{"sig":"MEUCIDu3QYAbspvOzmCj13do54IsnZdpdWgOOPteceZVLrr7AiEA6vxR+mlCYlu6o2jnP/PlC6NwxsX1KkMKTyYyhibL+fk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":657262},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.21-beta_1781749828190_0.14253453860205312","host":"s3://npm-registry-packages-npm-production"}},"1.0.22-beta":{"name":"@principled/cairn","version":"1.0.22-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.22-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"b7d44b7abe750abfc799fe230e769e45c345af63","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.22-beta.tgz","fileCount":336,"integrity":"sha512-6CgbrVBaKC8izaEvcIK4f5rexq1i+Y2hnmx6/bN32SBnNfQHUkHkFC/XsJ92fi0ALd+Z4Npx1zJTYqzcQr+flw==","signatures":[{"sig":"MEQCIFvoaHbjiGBQqqtWCF0g3y+7I43C/0mUpwmpPDPyTJjVAiAE7t8mW79VDPnQgQeJin4lbq0nQoWVQ1FAd9qZMNZU1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":663421},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.22-beta_1781751155286_0.3671470948680806","host":"s3://npm-registry-packages-npm-production"}},"1.0.23-beta":{"name":"@principled/cairn","version":"1.0.23-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.23-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"40b0e502eec7b0e362b21c7a09f7f54ea9f2cf1a","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.23-beta.tgz","fileCount":336,"integrity":"sha512-ypjGKtoWvYCUu8sAdWuIg7T5p1Rv2qUYotJpVN0wLZnPyeQVg8X4KzcxR2lMFCwSbs5PsAGxV7PyTVl5XGqSXw==","signatures":[{"sig":"MEUCIDlt1T1buk0q3lZGy2F1SWyjeEEunBuO4vFjfu9DNQYhAiEAw86eFZxy/TOXB0dN2x/lYcp7LWsXNYRScJH3SIoJuHU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664660},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.23-beta_1781752639200_0.7713744096489055","host":"s3://npm-registry-packages-npm-production"}},"1.0.24-beta":{"name":"@principled/cairn","version":"1.0.24-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.24-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"afef5c7e23694f436c6aa0283d6c7c3633c9b032","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.24-beta.tgz","fileCount":336,"integrity":"sha512-gFOD4un+IBTirDmWFRWtl5uMtfIUy02wX0XZ/FKJIxkZAaVTu27e3KbcHrBRBItrO5R4KDiJuXraqoYL0VHGLA==","signatures":[{"sig":"MEUCICgyInHKaTnOqg9dVCBod4AhNtkxB/sGpeeOkOJfiY1JAiEA7/8Bmtcw4S4Wtf/w8EW+iNhlkRBKyoiDe1rFhkqeTGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667488},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.24-beta_1781928732724_0.7147277207038796","host":"s3://npm-registry-packages-npm-production"}},"1.0.25-beta":{"name":"@principled/cairn","version":"1.0.25-beta","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.0.25-beta","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"124952eed4af636a09be0d0d07420bfa2790c19d","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.0.25-beta.tgz","fileCount":340,"integrity":"sha512-iyx1BnE+iGDvKSa76MMn16Sz7kBOPSwLUK4jumjTLdOkiNNylbtvjRQP1Xinepoj18mAcEj8idFqdDUZUCHbZQ==","signatures":[{"sig":"MEUCIAdJI+cRPEyHaQ8B24x5iT0eaF28JcA+0BmcUURxeWGtAiEAgBvz91oJp21/DaBdpIINt82xafLeg+deIoHZz0IAus0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":717075},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.0.25-beta_1781933109033_0.3908307858961977","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@principled/cairn","version":"1.1.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.1.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"0653869881703261bfda4733b2095dfb5477a653","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.1.0.tgz","fileCount":340,"integrity":"sha512-L+cNacCzRRjbXwc362cjTosG383E/WmQRStSjHO02q80PdHOAxnW3XZ50ubAeVL7c9PeRKnbdF5zA3ml1f5q5Q==","signatures":[{"sig":"MEQCIFnSmzk3FN5+6uvU9IpN59J5Qw5DBf/oj7v03WlhvGzmAiAI/iYvwBJJuOeBQcGGkgzevoo8AwiHafWz4wb4ODMEDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733514},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e685c93c07e70f1e2e9604c10d92b88efb121777","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.1.0_1784588909983_0.6681933389205188","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@principled/cairn","version":"1.1.1","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.1.1","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"acdac85c51dc27b6f72b39dc146f32e39da5016f","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.1.1.tgz","fileCount":340,"integrity":"sha512-gvt1bxnmIuBk5WVopTfoHYE1qfGRpoujHzXYqjU0CsTWkaHGn3cldZQP5YsgzHCZcSIbsHPzGL9kwvD0XIt3Kw==","signatures":[{"sig":"MEUCIDxhNmGOASu7sl8z5zK7JT3PuU6484gnk6Y7AgJAlCyYAiEAj8FD774X+0vtBkpgeduLOX3fABPXUcBIrliutzE79bU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733618},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"08f9d71c6eb0b87b05d974055afd89eb1806ff32","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.1.1_1784597363065_0.991018349367059","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@principled/cairn","version":"1.2.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@1.2.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"f837302edf14edfcd32da3ebe4c9113d5185c0e6","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-1.2.0.tgz","fileCount":340,"integrity":"sha512-2v6McT2gzr6Wu8DjQC4HKkbayOsHXVGu8SaEL9qfHsO1S1G4ZivsYpgVSm2Ol56Xaqkxbmp9FatDTj6T6eQBMA==","signatures":[{"sig":"MEYCIQCI27/r9rQTyvjvmDzA2/DKSiNbt5x/NCoWEzgkss6g6gIhAPezmLlewnSutUMTR7ODoz3TvGcllEU2Qz1/1hHEQ9uJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":738172},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"25a578daf35f744cf0894e7198274c563f0e5e29","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_1.2.0_1784606671420_0.3319192333280234","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@principled/cairn","version":"2.0.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@2.0.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"a8e90c7a648cbd2219d5e13553c4703381c9dab7","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-2.0.0.tgz","fileCount":344,"integrity":"sha512-lxQVKhsukj8/KxnnmLnZWx6ezZt64oZi7ukaqE2D1E5BYWaDukeJSwZAE+SlSD5Q+VYfYtAy4jIsEI1IpmJNzA==","signatures":[{"sig":"MEYCIQDXKGmijUlJM2Obatj6HSjjWJA5cEUlI5zidcU/AHzRRwIhALzaaoKJVq1IrPQ55a1h4IXNgPxsUN6q2jwZ9iXMy71E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":751952},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"186394a58e00c5175459547ac1a5e2fa7a591031","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_2.0.0_1784614563811_0.8370118923753969","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@principled/cairn","version":"2.1.1","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@2.1.1","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"6c2eabbed0277e3a0059ddd486361612bc5e7d2c","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-2.1.1.tgz","fileCount":344,"integrity":"sha512-LYOHg1r8WPj3ewpQ3kmH/riJNpzU/geAQa+wONLiNqnDtv7bSg52uTLrmUfhiPZD9V4qimksfj7vzeJA+4c55g==","signatures":[{"sig":"MEUCIQDgO4eno+xnB8IbJ+AH0u05xQK057h7a9nevUP06bxNEwIgIZk84TVfiVm91sy9jHooAxrPWw51lFpR9KhRBfWw7cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":753663},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"be35a4d8a4bee9f1285bc4a36f64dfca99349bca","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_2.1.1_1784617857131_0.062074217518701236","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@principled/cairn","version":"3.0.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@3.0.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"13dc7427a0230985a55b1748dd3fd3e9012487f4","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-3.0.0.tgz","fileCount":344,"integrity":"sha512-7DZVlNkKbhQie18lm2U82zLr6qHPO3IDKHa69r0wQ7152qlB6Hr2oMk4xoIwyvsDKc/XCVkr0DheIgJhVZwNTQ==","signatures":[{"sig":"MEUCIGurU+UzfqO9Sn0GNmuk7LE5K3R5vqDBqRauDKyCPCnMAiEAxlBfA1mL/Kr8oYViFT7C3oOhjIR4R7g5RUG9qaetLxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756669},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5c582ce5266ea52a1f31cd29f92395dd1aa12573","scripts":{"test":"vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_3.0.0_1784678753691_0.7191824146057468","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@principled/cairn","version":"4.0.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@4.0.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"41cc8f892c24bf9a2f4843aedec8f72abe07463b","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-4.0.0.tgz","fileCount":380,"integrity":"sha512-IZDjALLFtopuKGN6YaowUGMtlCew8nYNBcxe5TmFjlNDFiHhrFCzIcazX/hdwvNLN0vO8C4o3O9+iNjJtNqsvA==","signatures":[{"sig":"MEYCIQCSly50wKiHqoyrmoqs+hzdkFLoee7rdtSZ8dUVHV8IuwIhAP1ny8EAz5Q3l3AxRLS4rdgKztDitkK2CqbG604IQt/Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869157},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3ba6ba3d4395b2a28469f834f648c69a1d17d33e","scripts":{"test":"npm run build && vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"deprecated":"Mis-versioned: this is a feature release, not a breaking one. Use 3.1.0.","_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_4.0.0_1788560975172_0.630498415802266","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@principled/cairn","version":"3.1.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@3.1.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"fa784d0dd0b7b8a216da72eea8bb6b38efff2853","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-3.1.0.tgz","fileCount":380,"integrity":"sha512-tUM+IBvkxb6jS/6c/Nz12er3c2A9nL00D1M/jqMwte3J2SVldO9RmxryP1tyG97tkJLVlA1zcVsK4dSi8JhLDw==","signatures":[{"sig":"MEUCIFdZzf6WoKOpInsNp3vL6ox6KCBfXANcGu7W2A5AGzomAiEAyBEMOJO/lcEOn+rXy1s50zHTj1QiGaAm4S7g3BOUhoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869244},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1f36e75e0eb882361d2bbc5f7cc0c154516a8363","scripts":{"test":"npm run build && vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.1.1","commander":"^14.0.3","minimatch":"^10.2.5"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_3.1.0_1788580110802_0.12217458064051434","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@principled/cairn","version":"3.2.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@3.2.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"a765cc7a413f582c1997d9fe9ac5ea3599a38a3b","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-3.2.0.tgz","fileCount":396,"integrity":"sha512-hHe860KzI/YP4g52l70aG7SFJNDk0Pd3aCclqU7wUFHuGqbuMD2NjhrOPnd9p2pDmc/nLTHsqa6Uyd1h3C5mzw==","signatures":[{"sig":"MEQCIBupC7hVclYhyaJVMxEt0FG8bdLvoZ2nNrRqwKAnWQFBAiB7CldvqRZJlLFmGAwj2gK1MgFMiM71N+ow441KFNo6yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGG3RLIaUmYGgG41KAb3i8hghG+TVQJuRf+9qikKvIsjAiAIiExftu8ULD30WhIZ42ACp78upUHgQZpdhPg5dp6T9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":896830},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"75c3ccd7e6518ac41323eb1aef677fd2c77714aa","scripts":{"test":"npm run build && vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.3.2","commander":"^14.0.3","minimatch":"^10.2.6"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_3.2.0_1790374409231_0.9412712161079655","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@principled/cairn","version":"5.0.0","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"author":"","license":"MIT","_id":"@principled/cairn@5.0.0","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"227e40c56ca8494cf912d20af375f9ef4f7e29ae","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-5.0.0.tgz","fileCount":429,"integrity":"sha512-RgNsMr2z3WuoIHoT0vHamAPyXIgfF+ZPlxTNrVmZCXwcj+giLftwf76T9B1iW6FoexPowDJRlemCxtcTUNkYiA==","signatures":[{"sig":"MEQCICxkMCRpUzTkYFQd6LKB07rRLZGb4ON3kWYigJCHpZaBAiA8+j4GnSXiz3CGpuliXEA3XzgzPKhy5Ar/xieXt6KuZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHS6uGjENZJItNY/HjNXI33a1ut6S93FQ3xSid8h4kOKAiEA55FIuabn86TL/746x4KoqLphHD/9v8u7gNeRbT81+so=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1134595},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"75ae275e88c23b56d50768a501000bce4c0c65b1","scripts":{"test":"npm run build && vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.3.2","commander":"^14.0.3","minimatch":"^10.2.6"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn_5.0.0_1790379921003_0.377496842773708","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"_id":"@principled/cairn@5.1.0","bin":{"gvp":"dist/cli/index.js","cairn":"dist/cli/index.js"},"dist":{"shasum":"80d29eac7fb13b6ca5f55aa9658b605e92eee405","tarball":"https://registry.npmjs.org/@principled/cairn/-/cairn-5.1.0.tgz","fileCount":429,"integrity":"sha512-yrWg2ETMMpg4c4ka48Tnj/Ox6LDSGkPO2dA7yIC8fdv+bb3gzpy+eDYc9WBqNj4Jg/qex+bd7ncI6rN/pA5HYQ==","signatures":[{"sig":"MEUCIQCnB4mXBPXCc9x96BSGEsqlNgKYk48ozsJ9eRxuSzrhkgIgJgPbQw0npgvXk2KZMFjmh0FNK+VkpcceEsUhNFh/UMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD2ez4wcAGT0pLbaZSbSTBQ/VdNVdcdYTeYF0ENROdLeQIgS3XdNljmE/cbXu5FdjXRtK5I4NA7erN4zkfVRURu6mA="}],"unpackedSize":1168576},"main":"./dist/index.js","name":"@principled/cairn","type":"module","types":"./dist/index.d.ts","author":"","engines":{"node":">=18.0.0"},"gitHead":"f8b14765624dc441337e574e8aa219af3d3f30c2","license":"MIT","scripts":{"test":"npm run build && vitest run","build":"tsc && node scripts/copy-data.mjs","test:watch":"vitest","postpublish":"npm dist-tag add @principled/cairn@$npm_package_version latest","prepublishOnly":"npm run build"},"version":"5.1.0","_npmUser":{"name":"shitchell","email":"shaun@shitchell.com"},"keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"_npmVersion":"10.9.2","description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","directories":{},"maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"_nodeVersion":"22.14.0","dependencies":{"zod":"^4.3.6","js-yaml":"^4.3.2","commander":"^14.0.3","minimatch":"^10.2.6"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","vitest":"^4.1.0","prettier":"^3.8.1","typescript":"^5.9.3","@types/node":"^25.5.0","@types/js-yaml":"^4.0.9","@typescript-eslint/parser":"^8.57.1","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cairn_5.1.0_1790756612112_0.5414279584961335"}}},"time":{"created":"2026-03-31T19:26:52.850Z","modified":"2026-09-30T08:23:32.425Z","1.0.0-beta":"2026-03-31T19:26:53.198Z","1.0.1-beta":"2026-04-01T01:14:07.899Z","1.0.2-beta":"2026-04-01T02:22:43.040Z","1.0.3-beta":"2026-04-04T03:06:23.471Z","1.0.4-beta":"2026-04-04T06:59:00.168Z","1.0.5-beta":"2026-04-04T07:05:20.975Z","1.0.6-beta":"2026-04-04T07:06:36.529Z","1.0.7-beta":"2026-04-04T08:37:38.457Z","1.0.8-beta":"2026-04-04T08:42:07.985Z","1.0.9-beta":"2026-04-08T19:13:19.227Z","1.0.10-beta":"2026-04-08T22:42:06.031Z","1.0.11-beta":"2026-04-09T21:03:21.100Z","1.0.12-beta":"2026-04-09T21:52:28.776Z","1.0.13-beta":"2026-04-09T22:55:10.244Z","1.0.14-beta":"2026-04-11T15:52:59.518Z","1.0.15-beta":"2026-04-11T16:09:05.874Z","1.0.16-beta":"2026-04-13T17:35:54.597Z","1.0.17-beta":"2026-04-13T17:55:25.376Z","1.0.18-beta":"2026-04-15T02:16:10.688Z","1.0.19-beta":"2026-04-15T03:25:06.417Z","1.0.20-beta":"2026-04-23T06:48:20.203Z","1.0.21-beta":"2026-06-18T02:30:28.366Z","1.0.22-beta":"2026-06-18T02:52:35.501Z","1.0.23-beta":"2026-06-18T03:17:19.403Z","1.0.24-beta":"2026-06-20T04:12:12.894Z","1.0.25-beta":"2026-06-20T05:25:09.183Z","1.1.0":"2026-07-20T23:08:30.190Z","1.1.1":"2026-07-21T01:29:23.341Z","1.2.0":"2026-07-21T04:04:31.593Z","2.0.0":"2026-07-21T06:16:04.024Z","2.1.1":"2026-07-21T07:10:57.291Z","2.1.2-pre.1":"2026-07-21T16:15:57.611Z","3.0.0":"2026-07-22T00:05:53.885Z","4.0.0":"2026-09-04T22:29:35.324Z","3.1.0":"2026-09-05T03:48:30.942Z","3.2.0":"2026-09-25T22:13:29.320Z","5.0.0":"2026-09-25T23:45:21.111Z","5.1.0":"2026-09-30T08:23:32.229Z"},"license":"MIT","keywords":["cairn","gvp","goals","values","principles","traceability","decisions","rationale"],"description":"Cairn — decision traceability framework. Trace every decision back to what drives it.","maintainers":[{"name":"shitchell","email":"shaun@shitchell.com"}],"readme":"<p align=\"center\">\n  <img src=\"docs/cairn.png\" alt=\"Cairn\" width=\"300\" />\n</p>\n\n# Cairn — Goals, Values, and Principles\n\nA decision traceability framework. Define your goals, values, and principles in YAML. Trace every decision back to what drives it. Link decisions to the code, documents, and artifacts they produce.\n\n## Install\n\n```bash\nnpm install -g @principled/cairn\n```\n\n> **Note:** `gvp` is available as an alias for `cairn`.\n\n## Quick Start\n\n```bash\n# Before authoring anything: check whether the guidance already exists.\n# Cairn registers every library it resolves, so you can inherit instead of re-deriving.\ncairn libs search \"simplicity\"\n\n# Initialize a GVP library\nmkdir -p .gvp/library\ncat > .gvp/library/project.yaml << 'EOF'\nmeta:\n  name: my-project\n  scope: project\n\ngoals:\n  - id: G1\n    name: Recoverable state\n    statement: >\n      A user who loses their machine can rebuild every byte of their data\n      from the files we wrote to their disk.\n    tags: []\n    maps_to: []\n\nvalues:\n  - id: V1\n    name: Simplicity\n    statement: Complexity must earn its place.\n    tags: []\n    maps_to: []\n\ndecisions:\n  - id: D1\n    name: Persist state as an append-only event log\n    disposition: accepted\n    rationale: >\n      \"Anything with a mutable schema needs a migration story the first time\n      the schema changes. An append-only log only ever needs a reader for the\n      older shape, which is a test I can write today.\"\n    tags: []\n    maps_to: [my-project:G1, my-project:V1]\n    considered:\n      sqlite:\n        rationale: \"Queryable and transactional, but adds a native dependency and a schema to migrate on every change.\"\n        would_have_served: [my-project:G1]\n        conflicts_with: [my-project:V1]\n      mutable_json_blob:\n        rationale: \"Fewest moving parts, but a partial write destroys the whole history rather than the last record.\"\n        would_have_served: [my-project:V1]\n        conflicts_with: [my-project:G1]\n    refs:\n      - file: src/store.ts\n        identifier: appendEvent\n        role: implements\nEOF\n\n# Validate\ncairn validate\n\n# Export\ncairn export --format json\ncairn export --format markdown\n```\n\n> Note what the example models: a goal stating a **checkable outcome** rather than\n> \"software that works\"; a decision whose `rationale` is a **verbatim quote**; and\n> `considered` alternatives that name what each one **would have served** and what\n> it **conflicts with**. A decision without its rejected alternatives records the\n> choice but loses the reasoning — which is the part you need when revisiting it.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `cairn validate` | Validate the GVP library |\n| `cairn validate --coverage` | Include coverage checks (orphan identifiers, decisions without refs) |\n| `cairn validate --scope staged` | Scope validation to staged git changes |\n| `cairn validate --include-inherited` | Show diagnostics on inherited elements (default: counted, not listed) |\n| `cairn export --format <fmt>` | Export catalog to json, csv, markdown, or dot |\n| `cairn add <category> <name>` | Add a new element with auto-assigned ID |\n| `cairn edit <element> --field key=value` | Modify an existing element |\n| `cairn review` | Find stale elements needing review |\n| `cairn review <element>` | Review a specific element |\n| `cairn inspect <element>` | View element details |\n| `cairn inspect <element> --trace` | Trace element to its goals and values |\n| `cairn inspect --ref file::identifier --trace` | \"Why does this code exist?\" |\n| `cairn query --category decision` | Filter elements by category, tag, status |\n| `cairn query --refs-file src/foo.ts` | Find elements referencing a file |\n| `cairn query --list documents` | List the documents in the resolved library, with element counts |\n| `cairn diff <commitA> <commitB>` | Trace code changes back to decisions |\n| `cairn analyze` | Detect unmapped relationships via similarity |\n| `cairn skill install` | Install the bundled agent skill into `~/.claude/skills/cairn/` |\n| `cairn skill path` | Print the bundled skill's directory, for symlinking by hand |\n| `cairn skill status` | Compare the installed skill against the bundled one |\n\n## Global Options\n\n| Flag | Description |\n|------|-------------|\n| `--config <path>` | Load specific config file |\n| `--no-config` | Skip all config files |\n| `-c key=value` | Inline config override. Repeat the flag for more than one: `-c strict=true -c source=@local`. |\n| `--strict` | Promote warnings to errors |\n| `-v` / `-vv` / `-vvv` | Verbose output |\n\nGlobal options may be written before the subcommand or after it — `cairn -c strict=true query` and `cairn query --strict` are both accepted. Where a subcommand defines the same short flag, the subcommand wins in the trailing position: `cairn -c strict=true query -c decision` sets the config override `strict=true` and filters to the `decision` category, and `-c` after `query` is always `--category`.\n\n## Validation Codes\n\n### Errors\n\n| Code | Name | Description |\n|------|------|-------------|\n| E001 | BROKEN_REFERENCE | `maps_to` target not found |\n| E002 | DUPLICATE_ELEMENT_ID | Duplicate element ID within a document |\n| E003 | BROKEN_INHERITANCE | Inherited document not found |\n| E004 | SCHEMA_VALIDATION | Element fails schema validation |\n| E005 | DUPLICATE_STEP_ID | Duplicate step ID within a procedure |\n| E006 | DUPLICATE_DOCUMENT_NAME | Two documents in one library share a `meta.name` |\n\n### Warnings\n\n| Code | Name | Description |\n|------|------|-------------|\n| W001 | EMPTY_MAPS_TO | Non-root active element has no `maps_to` |\n| W002 | EMPTY_DOCUMENT | Document has no active elements |\n| W003 | MAPPING_RULES_VIOLATION | Element doesn't satisfy category mapping rules |\n| W004 | ORPHAN_ELEMENT | Isolated element (no incoming or outgoing edges) |\n| W006 | STALE_ELEMENT | Element has unreviewed updates |\n| W007 | UNDEFINED_TAG | Element uses tag not in definitions |\n| W008 | DUPLICATE_CATEGORY_DEF | Duplicate category definition within library siblings |\n| W009 | ID_SEQUENCE_GAP | Gap in element ID sequence |\n| W010 | REF_FILE_MISSING | Ref points to nonexistent file |\n| W011 | REF_IDENTIFIER_MISSING | Ref identifier not found in file |\n| W012 | ORPHAN_IDENTIFIER | Identifier not referenced by any element (coverage pass) |\n| W013 | DECISION_NO_REFS | Decision has no refs (coverage pass) |\n| W014 | NO_ROOT_TRACE | Element cannot trace to any root element transitively |\n| W015 | AUTO_ASSIGNED_STEP_ID | Procedure has steps without explicit IDs; auto-numbered at load time |\n| W016 | UNRECOGNIZED_YAML_KEY | Top-level YAML key is neither `meta` nor a known category `yaml_key` |\n| W017 | NO_VALUE_TRACE | Non-root element does not trace to any value transitively (soft anchor) |\n| W018 | ROOT_NO_DECISION | Actionable root (`requires_decision`) has no Decision tracing to it (coverage pass) |\n\n## Config\n\nConfig files are discovered in this order (closer scope wins):\n\n1. `/etc/gvp/config.yaml` (system)\n2. `~/.config/gvp/config.yaml` (global)\n3. `.gvp/config.yaml` (project)\n4. `.gvp.yaml` (local, gitignored)\n\nEnvironment variables: `GVP_CONFIG_SYSTEM`, `GVP_CONFIG_GLOBAL`, `GVP_CONFIG_PROJECT`, `GVP_CONFIG_LOCAL`\n\n```yaml\n# .gvp/config.yaml\nuser:\n  name: \"Your Name\"\n  email: \"you@example.com\"\n\nstrict: false\nsuppress_diagnostics: []\ndefault_timezone: \"America/New_York\"\n\n# Scope diagnostic DISPLAY by source (see below). Inherited elements are\n# someone else's to fix; by default their diagnostics are counted, not listed.\ndiagnostics:\n  inherited: count        # show | count | hide\n  by_source:\n    \"@github:shitchell/gvp-docs\": count\n\npriority:\n  elements: ancestor      # ancestor-wins for elements\n  definitions: descendant  # descendant-wins for definitions\n\n# Coverage settings (patterns use glob syntax via minimatch: *, **, ?)\ncoverage:\n  exclude:\n    - \"README.md\"\n    - \".gvp/**\"\n    - \"**/*.test.ts\"\n    - \"docs/**\"\n```\n\n### Diagnostics you cannot fix\n\nInheriting a library means inheriting its diagnostics. They are the upstream author's\ndefects, unfixable from your repo, and they bury your own signal -- 49 of this repo's\n148 warnings landed on upstream elements.\n\n`diagnostics` scopes display by source, in three states:\n\n- **`show`** -- print every diagnostic individually\n- **`count`** -- withhold the lines, print a one-line roll-up (**default for inherited sources**)\n- **`hide`** -- withhold the lines and the counts, print a bare `N sources fully hidden` trace\n\n```console\n$ cairn validate\nWARN  W011  gvp:D19  Element gvp:D19 ref identifier not found in src/model/document-parser.ts: maybeAutoAssignStepIds\n...\n  25 further warnings from @github:shitchell/gvp-docs@v0.7.0 (W003 ×23, W017 ×2)\n  → --include-inherited to show\n```\n\nThere is deliberately no state that renders *nothing*. `gvp:P9` says \"hide what is not\nactively needed, but never lose it\" -- so even `hide` confesses that it is hiding\nsomething. That is the difference between this and `suppress_diagnostics`, which\nleaves no trace at all.\n\nThe two are orthogonal, not redundant: `suppress_diagnostics` answers *\"I don't care\nabout this kind of finding\"*; `diagnostics.by_source` answers *\"this isn't my code.\"*\nThey compose as per-code x per-source. Errors are never scoped -- an invalid catalog\nis your problem whoever authored it.\n\nSee [docs/reference/validation.md](docs/reference/validation.md#source-scoped-diagnostics)\nfor the full rules.\n\n## Built-in Categories\n\n| Category | Prefix | Root | Primary Field |\n|----------|--------|------|---------------|\n| goal | G | yes | statement |\n| value | V | yes | statement |\n| constraint | C | yes | impact |\n| user_requirement | U | yes | statement |\n| exclusion | X | yes | statement |\n| principle | P | no | statement |\n| rule | R | no | statement |\n| heuristic | H | no | statement |\n| decision | D | no | rationale |\n| milestone | M | no | description |\n| procedure | S | no | description |\n\n**Root** categories (goal, value, constraint, user_requirement, exclusion) need no\nupward mapping. A **user_requirement** is a stakeholder-decreed mandate asserted as\ninput — not derivable from any value (that is what makes it a requirement and not a\nrule). An **exclusion** is a self-imposed out-of-scope boundary — the negative space\nof goals. Every non-root element anchors to any non-value root **and** should trace\nto a value (enforced softly by W017). Decisions carry a `disposition`\n(`accepted` | `declined` | `deferred`); a `declined`/`deferred` decision's rationale\nis the record, so it is exempt from the decision-needs-refs check (W013).\n\n## Cross-Repo Inheritance\n\nGVP libraries can inherit from other libraries hosted in git repositories.\nDocuments reference external sources in `meta.inherits`:\n\n```yaml\nmeta:\n  name: my-project\n  inherits:\n    - source: \"@github:company/org-gvp@v1.0.0\"\n      as: org\n    - source: \"@azure:myorg/myproject/shared-gvp@v2.1.0\"\n      as: shared\n```\n\nSupported providers:\n\n| Provider | Format | Resolves to |\n|----------|--------|-------------|\n| GitHub | `@github:user/repo@tag` | `https://github.com/user/repo.git` |\n| Azure DevOps | `@azure:org/project/repo@tag` | `https://dev.azure.com/org/project/_git/repo` |\n| GitLab | `@gitlab:user/repo@tag` | `https://gitlab.com/user/repo.git` |\n| Bitbucket | `@bitbucket:user/repo@tag` | `https://bitbucket.org/user/repo.git` |\n\nThe commit-ish must be an immutable reference (tag or SHA) — branches are not\nallowed. Sources are cached at `~/.cache/cairn/sources/` and only cloned once.\n\nElements resolve by the library short address `[<alias>:]<meta.name>:<id>` — the\n`as:` alias selects the inherited library, and `meta.name` (not the file path)\nselects the document, so references survive upstream file reorganization. A bare\n`<meta.name>:<id>` resolves across all libraries (preferring the local one on a\nname collision); qualify with the alias when it is ambiguous. `meta.name` must be\nunique within each library (enforced by `E006`).\n\n```yaml\ndecisions:\n  - id: D1\n    name: Follow org coding standards\n    maps_to: [org:values:V1, my-project:G1]   # org:<meta.name>:<id>\n```\n\n## What's in the library I'm actually using?\n\n`cairn query --list <type>` enumerates a kind of thing in the **resolved\ncatalog** — the library this project actually builds, root plus everything it\ninherits. Today the one type is `documents`:\n\n    cairn query --list documents                  # name, count, source\n    cairn query --list documents --format json    # stable schema for agents\n\nEach row carries `name`, `document_path`, `source`, `description` (from\n`meta.description`), `scope`, `element_counts` (keyed by category, e.g.\n`principles`) and `element_total`. It is the index to read at the start of a\nsession to decide which documents bear on the task.\n\n`--list` selects **what** to enumerate; `--format` still selects **how** to\nrender it, so the two compose. The element filters (`--category`, `--tag`,\n`--status`, `--include-deprecated`) change the **counts**; `--document`\nchanges which **rows** appear. A document with no matching elements is still\nlisted, at zero — it is never silently dropped.\n\n`query --format json` also tags every element with `_document`,\n`_documentPath` and `_source`, which are exactly the row key above, so element\noutput and the document listing join on equality.\n\nThis is **not** the same question as `cairn libs list` below. `--list\ndocuments` reads the catalog this invocation resolved; `libs` reads the\nmachine-wide record of every library cairn has ever seen, on any project.\n\n## Library registry\n\nCairn records every library it resolves into `~/.gvp/registry/` (override with\n`GVP_REGISTRY_ROOT`), so a new project can discover guiding elements that\nalready exist instead of re-deriving them.\n\n    cairn libs list                  # everything cairn has seen\n    cairn libs search \"flex point\"   # across every known library\n    cairn libs show personal         # detail + which projects have used it\n    cairn libs forget <source>:<doc> # drop one entry\n    cairn libs prune [--remote]      # drop entries whose document is gone\n\n`search` matches element names and each category's **primary field** —\nresolved from the schema, not hard-coded — so a decision's `rationale` and a\nconstraint's `impact` are searchable, not just `statement`. It never reaches\nthe network unless you pass `--fetch`, and it names everything it skipped\nrather than returning a quietly incomplete answer.\n\n`show` and `forget` refuse to guess: `meta.name` is not unique across\nlibraries, so an ambiguous name lists its candidates and exits non-zero\nrather than picking one. All three commands take `--json`.\n\nRecording is on by default. There is one switch, `registry.enabled`, and three\nways to reach it:\n\n    registry.enabled: false      # in any config layer — the whole invocation\n    --no-registry                # one invocation\n    meta.registry.enabled: false # in a library document — that library only\n\nThe third is for a library that should never be indexed — a scratch copy made\nto reproduce a bug, a throwaway experiment — and it holds however cairn is\npointed at the library (`--store`, `--library`, or discovery from the current\ndirectory):\n\n```yaml\nmeta:\n  name: scratch-repro\n  registry:\n    enabled: false\n```\n\nIt governs the library that declares it and nothing else. A project that\n*inherits* an opted-out library still records its own documents: an upstream\nlibrary has no say over its consumer's registry. For the same reason it can\nonly suppress — `enabled: true` will not re-enable recording that a config\nlayer or `--no-registry` turned off.\n\nRecording never changes a command's exit code or output; on failure it warns\nonce to stderr and carries on.\n\nRecording happens when a command builds the catalog, so `cairn init` — which\ncreates a library rather than loading one — does not itself register the\nproject. The first `validate`, `query`, or `export` does.\n\n**The registry is safe to delete — but rebuilding it is lossy.** Nothing\nbreaks if you `rm -rf ~/.gvp/registry`, and cairn will not complain. But it\ndoes not rebuild itself: each library reappears only when cairn next\nresolves it, so a library you have not touched since deleting is simply\nabsent until you next work in a project that uses it.\n\n## The agent skill\n\nCairn ships the skill that teaches an AI agent how to use it — element-ID\nsyntax, citation conventions, the import/patch workflow, cross-repo\ninheritance, and the review checklist. It travels inside the npm package, so\nit versions in lockstep with the tool instead of drifting from the schema.\n\n    cairn skill install                 # into ~/.claude/skills/cairn/\n    cairn skill install --dest .claude/skills/cairn   # project-local instead\n    cairn skill path                    # where the bundled copy lives\n    cairn skill status                  # installed version vs. bundled version\n\nNothing is installed automatically. There is no postinstall hook — it would\nnot run under `--ignore-scripts` anyway, and writing into your skills\ndirectory because you installed a CLI is not a decision cairn gets to make\nfor you.\n\n`install` writes a `.cairn-skill.json` manifest beside the files recording the\nsource version and a checksum per file, which lets it tell three situations\napart:\n\n| state | what happens |\n|-------|--------------|\n| nothing installed | installs, after confirming the destination |\n| installed, untouched | replaces it — this is an update |\n| installed, **you edited it** | refuses, even interactively |\n\nTo overwrite edits, pass `--force`; the current contents are copied to\n`<dest>/.backups/<timestamp>/` first. `--force` and `-y, --yes` are separate\non purpose: `--yes` only skips the prompt, so a CI job that wants no prompt\ncannot silently destroy your local edits. Files you add beside the skill are\nnever touched or removed.\n\nWithout a TTY, `install` refuses and tells you to pass `--yes`. `path` and\n`status` take `--json`, as does `install`. `status` never touches the\nnetwork — it compares what is on disk with what this copy of cairn ships, and\nanswers only when asked:\n\n    $ cairn skill status\n    Installed from 3.1.0, current is 3.2.0 — run `cairn skill install` to update.\n\nIf you would rather not have cairn write anything, symlink it:\n\n    ln -s \"$(cairn skill path)\" .claude/skills/cairn\n\n## Refs — Linking Decisions to Artifacts\n\nAny element can have `refs` linking it to external files:\n\n```yaml\nrefs:\n  - file: src/catalog/catalog.ts\n    identifier: Catalog\n    role: implements  # defines | implements | uses | extends\n```\n\nThe `refs` system is domain-agnostic — it works with any file type that has a registered parser (TypeScript, Markdown, YAML built-in).\n\n## Documentation\n\n- [Getting Started](docs/guide/getting-started.md) — Set up GVP on a new project\n- [Command Reference](docs/guide/workflow.md#quick-reference) — Command reference\n- [Workflow Guide](docs/guide/workflow.md) — End-to-end design → implementation → review workflow\n- [Lightweight Capture](docs/guide/lightweight-capture.md) — ~5 min decision capture after brainstorming sessions\n","readmeFilename":"README.md"}