{"_id":"@esneiderbravo/speclaw","_rev":"34-4c4855605cc96e65ceab553d685e97f2","name":"@esneiderbravo/speclaw","dist-tags":{"latest":"1.0.1"},"versions":{"0.1.0":{"name":"@esneiderbravo/speclaw","version":"0.1.0","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.0","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"3e436a75b5e59b737033c36938859d979d53ff11","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.0.tgz","fileCount":62,"integrity":"sha512-cRpmnheKDdLQIXOap68tJL4LsrpQfuVN+kl7jzzYVPRgbgw2y1rLFuaUIt53x+YuOCCEgnrgkVtCbZj2JmQjBw==","signatures":[{"sig":"MEUCIHdyQotmfviV4S65wex0/0fLsz1y3RlccwUIsXdOkMwUAiEApUCuda2fQ/hUR6j3L2VpVbg44qE+XzmSxoZyA5kzAIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160801},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"83eb9092c169c6294313c4c22970cd906fa90ef8","scripts":{"build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"},"_npmVersion":"11.13.0","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec workflow (Spec), and opt-in skill packs (Tools). No externa","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.0_1785713831287_0.7258730244848492","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@esneiderbravo/speclaw","version":"0.1.1","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.1","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"c803da9117250959ba50e9b7de9db2ff9174fd6f","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.1.tgz","fileCount":62,"integrity":"sha512-u7mXOyWN0nbSo8sb6Kb/XZ5Q43LcD0ML+Gp1Bg/FW3amA+Lsu9latwbSP/hDnmhR19x6SeB5goyoQF5FEaXU4Q==","signatures":[{"sig":"MEQCIAf/x+JIqJplYPLxMPDCqkgHljSKAhCrj8Rh4EGmXmrNAiA8jExBerkQNqrAbNta+fyOUpPAvgLYudGIisKiJRpnnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161493},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"4f47b6c314b7118eb35054fe4f8514e828863ee6","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec workflow (Spec), and opt-in skill packs (Tools). No externa","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.1_1785715448398_0.5408224801545529","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@esneiderbravo/speclaw","version":"0.1.2","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.2","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"3c0d4f117b10b2b19e99d2ba8ff06d74b9ed2126","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.2.tgz","fileCount":64,"integrity":"sha512-ZNq8Dlh+WRsioHoqt9sGICvFSslwnvhhrm9ZhBa74G8+x6fn/LpAoNGWIj+7WDKHooaYbfMWryxWcjjeUePaiQ==","signatures":[{"sig":"MEYCIQD5PkDiPSyN4tc2qXLqSO4NSr/36vk8ONBFt6SBydVcEgIhAJrTC87Z4s+ejt6ajJwN6LVmUfg+DYUgtLsqODuI/2DF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174213},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"ad4d608fc03f4b06e3e759fdfc45f1ad43285beb","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec workflow (Spec), and opt-in skill packs (Tools). No externa","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.2_1785717772442_0.18582458198861862","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@esneiderbravo/speclaw","version":"0.1.3","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.3","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"2e262900c85de533279cc6e5d173b752ac6edf37","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.3.tgz","fileCount":64,"integrity":"sha512-cEmj9Esu9OPgCZdiCPNWmyPkAb3QwVJxD1kaTpK1Cn8lBpYoRA/GvOYg570lCzp6izBng/57+vCAlz+M4zdk8Q==","signatures":[{"sig":"MEQCIGOFJ6RulB/7dtyT+CMcesAk2tK6qY4ooLMjqTcygilkAiARkg4Xtxz6DbzbFo0/HgmmZEF9s34sTXywFAPaKq2LIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174732},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"0e16ff17dab69f9aada56727029ddb136bdff31e","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.3_1785718711729_0.5192358352453088","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@esneiderbravo/speclaw","version":"0.1.4","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.4","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"b384f5ebd915447dac96932e533e0a8918344db6","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.4.tgz","fileCount":64,"integrity":"sha512-NLaglKWx9J3mdn3UQBLaiO22X+lxmg3tfEXzFSplNrx+1fat2XsLRKMVdcz89YeslirbVE6s0RLJiuz1poEf2Q==","signatures":[{"sig":"MEQCIHy6jLPm11mCuRZBgtUPJ+hOnBnl6Simde5PWcqpB2PVAiB7ZWTqQAs9XoHvmg7gPDe1cy1JKEgQfbutIwzVBb6Kyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174817},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"cfc0e187fb5fbe7d61d715b5240a5505f9af75de","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.4_1785719516487_0.5454234960739137","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@esneiderbravo/speclaw","version":"0.1.5","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.5","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"3b6589628cadffeaf0e41d6ca488735623640920","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.5.tgz","fileCount":68,"integrity":"sha512-RSg8Gopfq0N+qbGC0WS0ioiUUKOGO5ROQ5r575Nxnt+ZaOsoPNxm8JhqPTI7R4ABPA2W/ekPSWU3J5OgclWDmg==","signatures":[{"sig":"MEUCIARRCZWHof0ER6DC6WU1zN77bq6ppxZlLEgIrsL6pCPqAiEAumLuMLd/QTELZWtlPjk6SKWAcNvhrt3CvHoPw5udk+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188608},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"dd0e468658be04dc10da97f4227f39ee23eab188","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.5_1785769214556_0.5668845047614832","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@esneiderbravo/speclaw","version":"0.1.6","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.6","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"dbeccbbd46687812af977baa57265e31319870e4","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.6.tgz","fileCount":68,"integrity":"sha512-+9byOTA15QxwN8JQrDCUBeG6GO9rwvXEWmZnKb/r0hbuQWbSKgEDEdUMn+yj6W15pyjeeIOpL4/Lk36AuDKPww==","signatures":[{"sig":"MEQCIGz1+RA9xPoUuAQHQZ0rfsB1O9LX1vo9A39WSNM1izBVAiAsnXT8TC/pte5w1sM2TvKeSvjzbI/5JD7pOE/F16IWxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":190345},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"ffad1232e5d00d89dd13ebd277dff8d9b93e7351","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.6_1785769874471_0.18190300049520736","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@esneiderbravo/speclaw","version":"0.1.7","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.7","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"6f919fe490f71c777d959df452e3c1f454a4ac7e","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.7.tgz","fileCount":68,"integrity":"sha512-QbSnT5RIX9ZARnNAwlo4RZPcLJKo88slpm5Epl836+VK+7MYoLQoTaNMk+fVpN9KlWyOWScSmUJHzB4Fxk9sCA==","signatures":[{"sig":"MEQCIGMvfxCwKUMxcZPYL52kM7YjCt4n9+dG+QEKlhCOkm6yAiBCIyiDPtYEoST9t4EwO6a0CqTmkykQfV5QdqofNtOcdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":191142},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"371c549d107e29688c83e64d09834510670dc71e","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.7_1785770280288_0.8870024017559355","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@esneiderbravo/speclaw","version":"0.1.8","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.8","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"6e527fd4647951abce312fdffa0959d99f7d148b","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.8.tgz","fileCount":68,"integrity":"sha512-+az64iyLTtKgfUUwuG5C2TcKxXOSbwKwR/isFNPtOx/ZnRMm4HSkM7I2NLuzWhQQX/hyNXJ4YFOeE+F6kOISlA==","signatures":[{"sig":"MEQCIFUGHx3DrGW8WmshWio+UmGNJ9DydQ2EHB0b2pit56RrAiAxTA9URFEKiT5b1lghpvbYwK/RgKs6FGsTCePyEDkU/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192626},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"208e9ec34438fc4db448385e3e19bdc37ff103d8","scripts":{"brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","start":"node dist/cli/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.8_1785771504222_0.7291070468714664","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@esneiderbravo/speclaw","version":"0.1.9","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.9","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"b045972b6ee207a86b80f61569d627c8507bc2e6","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.9.tgz","fileCount":68,"integrity":"sha512-A4OgmRQV5cSOjj/y+VI/kilL1Ctw5W02DUASnQMnG+Fx8K5ZMh3mW9VilAGGUh66Ero3gc+g7tIv9vs87eD7QA==","signatures":[{"sig":"MEUCIG4DLUlw6SAb3kckFjZP+7x4jHWWqeDpLoiULo/mXCGFAiEAgvnPSoFa8hctmxL6Kz4QTwWsEzVZxMCdhF3bANXqU7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":196708},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"7b6dba4079ba36de04fefc8ffe73f0bf0a07867c","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.9_1785772423546_0.2222538634793616","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@esneiderbravo/speclaw","version":"0.1.10","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.10","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"5cc78499b864f689b8d88c59dd51a8d728ec4521","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.10.tgz","fileCount":68,"integrity":"sha512-hTsVHnzNPQ4iinZM2DlxB0wXQRPC/u0GXlBmWjto2YvZ2wEO7yB6tGj6pWlfAlVC5FO/zlGWqHEFZU5HaYqXHw==","signatures":[{"sig":"MEYCIQDclgvwrDImA5Wxn+2Ij67eyI3KBQBT8rVaGwaU6pnPRAIhANzLmF0dZxkeJI45SfCzvFi4sH0qwvTa+s2Ue7jIETLs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197616},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"2e6eae0abb3ae98f24e6ddc23b2b57e0fa70b4bb","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.10_1785773256270_0.30444173372103345","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@esneiderbravo/speclaw","version":"0.1.11","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.11","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"006129dd2f0c3ca1018203b9a4cbb10dd3a25bf8","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.11.tgz","fileCount":68,"integrity":"sha512-oaLMt6yiqzxtLwFUAA3OR8qHAm+E0EqrfKNZHlICv6YRp9TJ47lz6nPr8+zMssiXf1DNfAWGY9LZ4oLG8xv7WQ==","signatures":[{"sig":"MEYCIQDjqj/fCi+LonpJwP3Kccc+mGKjYeCIGETz/8gktQoHUAIhAJisVbBMKJKzLMCDVlNN8C0oQC1L3nLZAvUDDrviw2Ie","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":208094},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"d9871bd12067abc2b00cd25b49e7ae14aab8ed2b","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.11_1785849877606_0.9735871430998635","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@esneiderbravo/speclaw","version":"0.1.12","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.12","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"4e7108c890fc9dcc36008a726f21daf6be54d728","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.12.tgz","fileCount":69,"integrity":"sha512-fkZeXlA8/uYfRHuWEDLhBd3JR4NFAlptYulWLlLHsL+kII8WgV8xBuZXE3eP6E83Zthh7tyJdzzknlKfy9bacA==","signatures":[{"sig":"MEQCIHKBp9PKSt2e7vZ/73421gllJ7agi6jZuFUZgGQKH/10AiBoVXDL3PtiHdDrj+Su8Al6YKK7pIJZ0DsnSRNYVAP6aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215306},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"f8d2a75ed9c45f975e014a93107c19387015a11d","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.12_1785851979816_0.5098105959376793","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@esneiderbravo/speclaw","version":"0.1.13","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.13","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"f88633c9eebf42806d4768260afe197081c5a0c9","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.13.tgz","fileCount":69,"integrity":"sha512-rwtt58vNjCfrYtgcySiJ/ENutQQI5A0f4BoKcv06ubiK41iokzmx8vwS08NiCcp3O/lo2YdRDi73/0sIGxYMcQ==","signatures":[{"sig":"MEQCICX9kief/9aAn+D/oj1k1rgjJZ9wpxRJsfaIpc3sq0U7AiAnmYh0HtMvK0P6WyMfu70MJsEg4UqidpFRc0+eqkM+eA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":220850},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"ffdb47f9fdcc890253278984cf15bb70da8423b8","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.13_1785861550696_0.8593774338249962","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@esneiderbravo/speclaw","version":"0.1.14","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.14","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"0726c6322b4d06ccf7ef7c13dbcd7649f3da6c0e","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.14.tgz","fileCount":69,"integrity":"sha512-g8H35SY3A0+VKnE/W4ZNut2VDtYMF9IKRjnELyyKVyJZy4FIrrNvZL2dmdLtICNIm/EJgGEIKi78656ydD3U4A==","signatures":[{"sig":"MEUCIG9cQorjZT2ihN4icFhx6PaCQnHgQjgoPJgbtJ/JX53MAiEA1DR21BWfmZbUmZr+rGpMbsuTUR4Qpw+jCOdewVM5UJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224331},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"b20e9d00c379202e97e9e61aa0f0c0b2bdb33370","scripts":{"lint":"eslint .","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.14_1785870074508_0.008602676082885452","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@esneiderbravo/speclaw","version":"0.1.15","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.1.15","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"bdab3a9869f5206236feba8eaec8d482a5f7d8bf","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.1.15.tgz","fileCount":70,"integrity":"sha512-SWv5ezxOzyq/3SwRk8/tL3Bej4Y8q++ZpHhqZcrTRsO2YC2l3RZ55puHnIhpC4YGug/zQt3jWck0gGAGp4gLRQ==","signatures":[{"sig":"MEQCIHIXpVryEQ6uzq/6GMIatlXO2LoHOmodiBDpylcpFFQnAiBNj0qVR+I9wTP3kpSPGIhSxlVmkEKqXwfF8f29X80b3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231118},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"d84c5b3eb0e592069f8839b1c6ff538a1757c665","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.1.15_1785878234738_0.230434085244974","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@esneiderbravo/speclaw","version":"0.2.0","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.2.0","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"80d2eb167e96e9e80a3a6911a44aad9d79b8ea56","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.2.0.tgz","fileCount":70,"integrity":"sha512-0V+FimzlrvUQ+UjRu10T+5iHbnUEH1is4Y92cA8CCjAjEojiCVIfEiOZxHMbP1pdq3aGoulpuj6ZA6W3mTWMgQ==","signatures":[{"sig":"MEQCIDlhQX5s2fCl45HKjckubT1Xe9RraPLd70KLVXsXI7yHAiA6bHzu85NgcZqsvTaTWERIMHzzTPpdAgEzRQ4FmjuEYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":237225},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"715ffe836a07e155f25f6fe9de9bc7779f68820d","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.2.0_1785885790730_0.8845277802730267","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@esneiderbravo/speclaw","version":"0.2.1","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.2.1","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"7ef46f9495d74ece00dfc83c8a911a97e62b4a81","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.2.1.tgz","fileCount":72,"integrity":"sha512-8NGc1pz6lfu0G2/54UHdur2LHh+SiGsJgAFDX9QPgj6dbuPtASHwuqVZNwY0+XnOOXulAnWpEqwt/ZCpg4ncvA==","signatures":[{"sig":"MEUCIAieq7H5bOVcHOUWz0Oqrt2f31TpeREy++Gi5+bGYvVvAiEAr8rA4LfjD3oBFRFAjc7Ur3L8fsyZeEkrNf+ZlDuI9B0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242257},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"ba1e533ec0822f2421745e09620a7cae340caddc","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.2.1_1786459379684_0.8701451261151898","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@esneiderbravo/speclaw","version":"0.3.0","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.0","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"406b93f648f75371b94968ac77ed714d8b19f795","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.0.tgz","fileCount":73,"integrity":"sha512-8196EtfNCtH85EF8Ju5HcXPtCgCPS+6IJP33N/gWL1jzvaKUiy4IzU0nq7+A2p8AOJQaqhKQGwSzZQVXC222IA==","signatures":[{"sig":"MEUCIDMDR1Prhm1Uuw+dbXKjrLaW5X7uqOiG/ykc2zMWkpxXAiEA4rg7+i0IwbSHABp2+sf6QQUnn/kyPTG+eoS64x27f58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":248670},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"29aa683b22050cbcf306c33ddc7cf7b940c4b13d","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.0_1786486563468_0.48446171640256885","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@esneiderbravo/speclaw","version":"0.3.1","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.1","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"91af03d2bdf6ae8a7b8a5a300f97e54c80ff8320","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.1.tgz","fileCount":75,"integrity":"sha512-S+ZC464Xqh7ZKNRJvX+vB5tGoZucbdaWzNupikb9i4/Ln+2Ei/8kYbIRZl55Nm2lzPkOmNM7uD4q2EsWX5SS/g==","signatures":[{"sig":"MEQCICVwGZwB9qSq11tbD1MjQnG34q+1A1MpQXY6m3YfgiBgAiB+58Uq4mdrber0kXN/ptmKXDGbPcKAtfjPginHLLvIyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260249},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"93ae2f5c1a398d23d160d0cc7cfec859ea2bf230","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.1_1786569066349_0.23183692187223137","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@esneiderbravo/speclaw","version":"0.3.2","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.2","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"e8b0d8eaf433630d3f95a98f533e715d64a7a78d","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.2.tgz","fileCount":80,"integrity":"sha512-nZZ9WkLX3vxSzm4Ir3ELxpoVBgFRBKZVOggJu8q2dschjIiNECJqockd6NPJ2QKk2VhNi6sayNCSNxl6HQlZww==","signatures":[{"sig":"MEQCIBLyPjrkBLRgqFEPTobR2LW4i2exrkGoJYKcZK7PEbvnAiBJyG+WW6njBrTG52XX3KTEKsrERohFU9YflwhI5L6ZxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":295538},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"7c462880fd9ca482e52bf0b1ad07ca5f4afeb096","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.2_1786652200258_0.2618976620539992","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@esneiderbravo/speclaw","version":"0.3.3","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.3","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"f1ff4ab6c0c4e48592ceec4c88317b4699625574","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.3.tgz","fileCount":84,"integrity":"sha512-4GizTxvodIKl/0y5XklHOb98utjdfsLrKxKc6zSPZsPuubx2LD3lwxO911hghL9pWy5lS3WANuir2zbILTBBuw==","signatures":[{"sig":"MEUCIQDaFmx94st1+YDFrz8/XMrwnGdrk5gDn+wAkMDqAMXSewIgQAcJeMrK3alDKyYJTI+JvFV4zShafJFSxv/x/cwyMRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":318357},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"e5141048b6205f33e6c57394cc78e35910c63550","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.3_1786803296580_0.3969252667475607","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@esneiderbravo/speclaw","version":"0.3.4","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.4","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"f7b9ab90f51700eb130c6488759cfe64442313ab","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.4.tgz","fileCount":90,"integrity":"sha512-XZj2O29bcq539VljPEKaJ5neFlwR53mUJdWHK0FindYNU5Z3bW0RRHDYsRB8PggCZLLiaDGXJqWpwWaEbzNg7w==","signatures":[{"sig":"MEYCIQDvtmk2e6VA9zPDmSu3LTkYAU1Xv+CGgNTX1X69mGytEgIhALzs0bX6X9fONXKiNzulpzVjx7KQOVgcqbiUbva71rS4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":338201},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"bb901e54067847801250c27d6cdd2286bc4303e5","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.4_1786846345924_0.7862668863864211","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@esneiderbravo/speclaw","version":"0.3.5","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.5","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"972001fd0d521ddca416ee84b519a221531c56c6","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.5.tgz","fileCount":122,"integrity":"sha512-XdYR0M+P+SNWqkyf8bXQ8QpNzsvil8y9QoWTXQtduT3br1T+rwLsrZdiBbffaNBjkLbZPdyb8H3SFfOIUceE7g==","signatures":[{"sig":"MEQCIAXWLmd48JkKYlU0jWfJcRbHbb1rTcIqGzjCakGuQwuyAiBLsaA5RC5xmIB+VxUauMxx1xMooH/zWcEYoxLFdifl3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360718},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"c7311e59792785861ad4acfe1c2210c81164971e","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.5_1787441717405_0.7935986567492797","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@esneiderbravo/speclaw","version":"0.3.7","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.7","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"baa4145fbcfdae5789a4a76c136ee9f8bd7576c7","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.7.tgz","fileCount":125,"integrity":"sha512-IUbP1w7dzUqQ3So3Oor3+rxcy8H5Za7l2cz3KMi8myFjAIB0vuZuiigaVjcBOcHtwS0PBfRydn+czCOKBtPJ9Q==","signatures":[{"sig":"MEUCIQCaB/CQqWJ82hGWj16VJ/1myMALiHIJvel6+I3PPAElSgIgGyMbDfGesUCIoMphwWFi3s3qjgvo6PDseghhgC1CHw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382858},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"b4e07a13b16b297f3d5cb0a559c1a99a11b635aa","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.7_1787444529295_0.8078726255422286","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@esneiderbravo/speclaw","version":"0.3.8","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.8","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"a22439c53fe446e2824bb5d0e82606eb3647bce4","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.8.tgz","fileCount":128,"integrity":"sha512-JnS9ggTkVKI1KWkT58IqCEVJRkzo8U8W5wYXwQ+F3aeaiFxD7UItD5BEJMHmgrzxjwYaP/F726PQMq/G+tiCyw==","signatures":[{"sig":"MEYCIQD2cvSHMTZGMajicOOcD2nLjvim6YhG3u6UkTnnVg57LQIhAOgX78XjzD2g1pBpJ4WGXpqnrAD8Org5Q0B0c/sMEFVB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414604},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"1df6c39cb17bcd4189289de70caddb6dda264f41","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.8_1787446734425_0.36016152700335025","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@esneiderbravo/speclaw","version":"0.3.9","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.9","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"e621f2384acc4087c2266e93ddb4251cc2094bfd","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.9.tgz","fileCount":132,"integrity":"sha512-qIeKuoIHoo1tRSEf/t5go49ngQV4R7AX4I0zSQMIpviPLn8J75mUcfP1hu46mCayx0FWumkYTVgUIFlvyMpQdg==","signatures":[{"sig":"MEQCIBC3yJuBSRrVd9BmxHL5hWR9ku3xDsMhAvQ4k+tBRzMhAiAEkTSVSKBUvVYFyEpmOhZ1AgO/H2bnn94fMDcwgTGW6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":454354},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"e0fb85c7491dadee72a52ea62c89a94b5f316b4b","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.9_1787450262187_0.9577460016341883","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@esneiderbravo/speclaw","version":"0.3.10","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.10","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"8aefc7c72649940985af5d254e3a250bba960d42","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.10.tgz","fileCount":134,"integrity":"sha512-UpkztYQjFxCa3emHQFj4jHH1kat/yLIr+KCeHJEjQTyLIjxKjs8ELjqWgp5A42zRPrpb1UGybwcZM0YALqs56g==","signatures":[{"sig":"MEUCIQCbeMKK/dyaCL3RmbcbgJaTCLrWizgV1GnOyVjqedgTZgIgDkzlIPF4suPtv1Ii5q1Nzf9f9S+r1V2MHnESYbW7DgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490441},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"d261261ff1d482cfe7e223dab88f5aa79685dcb3","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.10_1787455137619_0.5900382412771745","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@esneiderbravo/speclaw","version":"0.3.11","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.11","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"945393cff933f95a1c3e7f80b24b647ab5f72f13","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.11.tgz","fileCount":135,"integrity":"sha512-oACSYPNPb2CtuX4yJDA24XPAPMk29o4z6WDy6qlw+alWfe1Dh02zIKyqD4hImDy2VKfpTiCCLs7++4btDlkdRw==","signatures":[{"sig":"MEUCIF8WdvWr6yMMvaQYNwhP0KVeDeJl6QEs6oO5do1xy2vEAiEA3HLk4MVZnXbWD4DJZde3UdA8B4G7sdjhE6J27xFJE2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":511035},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"0e09fa6e17c14cd5f5a663fa4476d805349efdf7","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.11_1787456579905_0.6653271647835111","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@esneiderbravo/speclaw","version":"0.3.12","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.12","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"3a9e5a516638f0dd8822ebaeddb5b7e518fe7b66","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.12.tgz","fileCount":142,"integrity":"sha512-Li966C6tZghyO57ajRAf/shrY/WccMOFiSA5zjERU/3CCcGtxg9xsmYWaJbtI98U58mES127cM9oKaq6tg2yJQ==","signatures":[{"sig":"MEUCIQCxmx+EOzRKCcbjH8G/65Jx9+dLTtycoXIf9h193ggrXAIgSu/3f/DMxse7WzwB6wOR5cxNljE5JAoD3MR0sabEY/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":541534},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"bb1587fd9170ebab42661ec6fa13ccbfe4f2fd52","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.12_1787492618776_0.9492912498020909","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@esneiderbravo/speclaw","version":"0.3.13","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.3.13","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"903e89c0d33b973a4e0fc1cb5986bf18e917a524","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.3.13.tgz","fileCount":149,"integrity":"sha512-IjCqCxhaVN2nN64x2iokKSASNtlmipEyq3ev1D6DMVz89V3eRzOAUwSNYbDR58B9t9pfyIfMaavP12IfIW42XQ==","signatures":[{"sig":"MEYCIQCiq2JwUARuhmVLp5kTp2CvxMTZbntPR5sNc7P905u8AAIhAL1qCCDjqyYaRQ433M5j4IFnVJ/gSMKuy+BkJXwdvQgu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.3.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":578419},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"f3bd8744f06f556781acc4c4985ad85df3001a4f","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.3.13_1787498109601_0.43309883062354504","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@esneiderbravo/speclaw","version":"0.4.0","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@0.4.0","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"1aef08a01f9689d8add65d5907691a138342cdaa","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-0.4.0.tgz","fileCount":157,"integrity":"sha512-wC8kHTIMAXxYKykoU3CbqR6VQCyUUoUnThbFzNZYJr3SVNUxlOPzal35LJXGemaOS7ms9sPIv/0nJ2/heu5J1A==","signatures":[{"sig":"MEYCIQCXtQr1mnXfwejRr70xSTriVR86Rm5a2nQfDJBTlwY2xQIhAKD1nOllCXgyGsY6EU8loNgKC312bSK7HAwPjAnprL0m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":607300},"main":"dist/server.js","type":"module","engines":{"node":">=22"},"gitHead":"88a557d372d1fb06fdd9fade078672e376bacfe7","scripts":{"lint":"eslint .","test":"node --test --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_0.4.0_1787499707222_0.9759075279069271","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@esneiderbravo/speclaw","version":"1.0.0","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"author":{"name":"Esneider Bravo"},"license":"MIT","_id":"@esneiderbravo/speclaw@1.0.0","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"homepage":"https://github.com/esneiderbravo/speclaw#readme","bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"bin":{"speclaw":"dist/cli/index.js"},"dist":{"shasum":"3b22aea20f46350571d0d9dd5d9cb24ee91d287f","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-1.0.0.tgz","fileCount":178,"integrity":"sha512-cZZSBnYaEwooZY1WgBEXU6ok5x21uojxrGUstlwxACRIURKKnkPvdWPS7saQN0NLUQYg0d42QhbFRlg3RELctg==","signatures":[{"sig":"MEYCIQDWmQy59tdSfDVR5XoB+ZLjI7vwyjq7jQ8zANs8J3xiPwIhAO3S0zYq9C0p14ebfr2VRkbot5fLUxNHR+nOXi0aF3Ix","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":766295},"main":"dist/server.js","type":"module","engines":{"node":">=22.16"},"gitHead":"800317117e6293574fa47910c870a25c62ee1f28","scripts":{"lint":"eslint .","test":"node --test --test-concurrency=1 --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/speclaw_1.0.0_1787690624465_0.14641622486020722","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@esneiderbravo/speclaw@1.0.1","bin":{"speclaw":"dist/cli/index.js"},"bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"dist":{"shasum":"90418972c57d8d881bc9401da021afa7510f5f51","tarball":"https://registry.npmjs.org/@esneiderbravo/speclaw/-/speclaw-1.0.1.tgz","fileCount":179,"integrity":"sha512-f5mjmFuScinKcZrarZqZDYh5LcSaaDY/iLdWC1KSoaBtjD5oJ9gowEEKWYb92mKW0u/0pYZreMKjZ3KjfaUUig==","signatures":[{"sig":"MEQCIHPlfYJGjelZl+h0f05Yw2mVgD+RBHdtxz4j0FKvWT++AiAiGbGrzo4BY/QtMbH9GeVDtVt7z/NecBV7fkhZPlEz8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGLRYvrkg8pJUY1xUS1X8EwHl1LJg/UpAScs3rHXY22+AiEAjWsKLwyh2s7bknAU7+WQ9PiqoWvEkZqGI5GtX2aoXFI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@esneiderbravo%2fspeclaw@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":776491},"main":"dist/server.js","name":"@esneiderbravo/speclaw","type":"module","author":{"name":"Esneider Bravo"},"engines":{"node":">=22.16"},"gitHead":"90be1300ff34928d85e5feac6d48e1cfa18ba13a","license":"MIT","scripts":{"lint":"eslint .","test":"node --test --test-concurrency=1 --experimental-test-coverage --test-coverage-lines=80 --test-coverage-functions=80 --test-coverage-branches=80 --test-coverage-exclude='dist-test/test/**' --test-coverage-exclude='dist/**' 'dist-test/test/**/*.test.js'","brand":"node scripts/render-brand.mjs","build":"tsc && node scripts/copy-assets.mjs","check":"prettier --check . && eslint .","start":"node dist/cli/index.js","format":"prettier --write .","pretest":"tsc -p tsconfig.test.json && node scripts/prep-test-assets.mjs","prepublishOnly":"npm run build","budget:calibrate":"node scripts/budget-calibrate.mjs"},"version":"1.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6148a9a8-2cb0-4035-b32c-b81eb3950be7"}},"homepage":"https://github.com/esneiderbravo/speclaw#readme","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"_npmVersion":"12.0.2","description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","directories":{},"maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"zod":"^3.23.0","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","web-tree-sitter":"^0.25.10","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.8.0","globals":"^17.9.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.6.0","@types/node":"^22.0.0","@resvg/resvg-js":"^2.6.2","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/speclaw_1.0.1_1788885299144_0.2695877577751309"}}},"time":{"created":"2026-08-02T23:37:11.031Z","modified":"2026-09-08T16:34:59.602Z","0.1.0":"2026-08-02T23:37:11.421Z","0.1.1":"2026-08-03T00:04:08.540Z","0.1.2":"2026-08-03T00:42:52.564Z","0.1.3":"2026-08-03T00:58:31.865Z","0.1.4":"2026-08-03T01:11:56.632Z","0.1.5":"2026-08-03T15:00:14.705Z","0.1.6":"2026-08-03T15:11:14.611Z","0.1.7":"2026-08-03T15:18:00.435Z","0.1.8":"2026-08-03T15:38:24.372Z","0.1.9":"2026-08-03T15:53:43.702Z","0.1.10":"2026-08-03T16:07:36.402Z","0.1.11":"2026-08-04T13:24:37.741Z","0.1.12":"2026-08-04T13:59:39.960Z","0.1.13":"2026-08-04T16:39:10.842Z","0.1.14":"2026-08-04T19:01:14.686Z","0.1.15":"2026-08-04T21:17:14.904Z","0.2.0":"2026-08-04T23:23:10.866Z","0.2.1":"2026-08-11T14:42:59.874Z","0.3.0":"2026-08-11T22:16:03.649Z","0.3.1":"2026-08-12T21:11:06.497Z","0.3.2":"2026-08-13T20:16:40.389Z","0.3.3":"2026-08-15T14:14:56.721Z","0.3.4":"2026-08-16T02:12:26.073Z","0.3.5":"2026-08-22T23:35:17.559Z","0.3.7":"2026-08-23T00:22:09.452Z","0.3.8":"2026-08-23T00:58:54.579Z","0.3.9":"2026-08-23T01:57:42.349Z","0.3.10":"2026-08-23T03:18:57.804Z","0.3.11":"2026-08-23T03:43:00.066Z","0.3.12":"2026-08-23T13:43:38.913Z","0.3.13":"2026-08-23T15:15:09.753Z","0.4.0":"2026-08-23T15:41:47.411Z","1.0.0":"2026-08-25T20:43:44.629Z","1.0.1":"2026-09-08T16:34:59.261Z"},"bugs":{"url":"https://github.com/esneiderbravo/speclaw/issues"},"author":{"name":"Esneider Bravo"},"license":"MIT","homepage":"https://github.com/esneiderbravo/speclaw#readme","keywords":["mcp","mcp-server","spec-driven-development","ai-agents","claude-code","cursor","code-graph","skills"],"repository":{"url":"git+https://github.com/esneiderbravo/speclaw.git","type":"git"},"description":"Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). ","maintainers":[{"name":"esneiderbravo","email":"esneiderbravoyb@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/speclaw-banner.png\" width=\"820\" alt=\"speclaw — where specs become law\">\n\n<br/>\n\n<a href=\"https://www.npmjs.com/package/@esneiderbravo/speclaw\"><img src=\"https://img.shields.io/npm/v/@esneiderbravo/speclaw?color=0E8E8E&labelColor=0B0F10&style=flat-square&label=npm\" alt=\"npm\"></a>\n&nbsp;<a href=\"https://github.com/esneiderbravo/speclaw/actions/workflows/ci.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/esneiderbravo/speclaw/ci.yml?branch=main&label=CI&labelColor=0B0F10&style=flat-square&color=0E8E8E\" alt=\"CI\"></a>\n&nbsp;<a href=\"https://www.npmjs.com/package/@esneiderbravo/speclaw?activeTab=versions\"><img src=\"https://img.shields.io/badge/provenance-SLSA-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"npm provenance\"></a>\n&nbsp;<a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"MIT\"></a>\n&nbsp;<img src=\"https://img.shields.io/badge/node-%E2%89%A522.16-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"Node >= 22.16\">\n&nbsp;<img src=\"https://img.shields.io/badge/v1.0-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"v1.0\">\n\n<br/><br/>\n\n<p align=\"center\">\n<b>AI agents are brilliant and blind</b> — brilliant at writing code, blind to <i>your</i>\nproject's rules. <b>speclaw 1.0</b> hands them what they're missing: the codebase's\n<b>written laws</b> (a constitution built from your real code), a <b>local map</b> to\nnavigate it without burning tokens, a <b>disciplined workflow</b> for every change,\nand the <b>gates</b> that make those laws hold in the editor, in CI, and in the PR.\n<br/>\nOne command. No cloud, no LLM, no API keys — <b>everything runs on your machine.</b>\n</p>\n\n<img src=\"https://img.shields.io/badge/100%25_local-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"100% local\">\n&nbsp;<img src=\"https://img.shields.io/badge/no_LLM_·_no_cloud-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"no LLM\">\n&nbsp;<img src=\"https://img.shields.io/badge/CLI_+_MCP-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"CLI + MCP\">\n&nbsp;<img src=\"https://img.shields.io/badge/8_canonical_tools-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"8 tools\">\n&nbsp;<img src=\"https://img.shields.io/badge/any_agent-0E8E8E?labelColor=0B0F10&style=flat-square\" alt=\"any agent\">\n\n</div>\n\n<br/>\n\n> [!TIP]\n> **One command. Detects your agents and wires only those.** Paste\n> `npx @esneiderbravo/speclaw@latest init` — speclaw detects Claude Code, Cursor,\n> Codex, Windsurf, and generic `AGENTS.md` surfaces, scaffolds the constitution +\n> lawbook, indexes your code, and registers the local MCP server — only for the\n> agents you pick. This one-liner is a **stable contract** (see\n> [CONTRIBUTING.md](CONTRIBUTING.md)); do not invent alternate install commands in\n> directories or newsletters.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Quick start\n\n```bash\nnpx @esneiderbravo/speclaw@latest init\n```\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/terminal-quickstart.png\" width=\"800\" alt=\"speclaw init\">\n</p>\n\nPrefer a global install for repeated CLI use?\n\n```bash\nnpm i -g @esneiderbravo/speclaw\nspeclaw init\n```\n\nThe `speclaw` command is then available everywhere — run `speclaw index`,\n`speclaw doctor`, `speclaw verify`, `speclaw owners --write`, or\n`speclaw lawbook …` directly.\n\n`init` will:\n\n1. **Ask which agents you use** (Claude Code, Cursor, Codex, Windsurf, …) — and\n   configure only those. Add more later; nothing is forced on you.\n2. Write the **foundation** (constitution + standards) and the **lawbook workflow**,\n   compile your blocking laws into **agent hooks**, and create a committed\n   **`speclaw.lock`** baseline for rule-file integrity.\n3. **Index your code** with a live progress bar and a summary of what it found.\n4. Register the speclaw **MCP server** in each chosen agent's config\n   (eight canonical tools; use `--minimal` to omit setup/lifecycle tools).\n5. Print a prompt to paste into your agent so it fills the constitution with your\n   project's real architecture and conventions.\n\nWhen something breaks, run `speclaw doctor --json` and paste it into an issue\n(required on bug reports). Output is redacted by default.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Verify a release (provenance)\n\nEvery npm publish is signed via **Trusted Publishing (OIDC)** and carries a\nSLSA provenance attestation tied to this repository and workflow. That proves\n*where* the tarball was built — not that its contents are benign. Pair it with\nyour own review and with **`speclaw.lock`** digests on rule files (see\n[Verify in CI](#-verify-in-ci)).\n\n```bash\nnpm audit signatures\n# After downloading the tarball from the registry:\ngh attestation verify <tarball> --owner esneiderbravo\n```\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; It looks like this\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/terminal-init.png\" width=\"800\" alt=\"speclaw init — terminal output\">\n</p>\n\n<p align=\"center\"><i>Teal steps, green checks, a live progress bar — themed with the speclaw palette.</i></p>\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; The suite — five modules\n\n| Module | What it does |\n| :-- | :-- |\n| **Foundation** | The project's constitution: `LAWS.md` binding granular standards under `docs/standards/`, plus `CLAUDE.md` / `AGENTS.md`. **Enforced** via agent hooks (`speclaw check`), deterministic graph laws (`speclaw verify` / `laws verify`), multidialect compile (`laws compile`), and committed **`speclaw.lock`** digests + injection scan (`laws lock` / `accept` / `scan`). |\n| **Compass** | Local code graph (tree-sitter → `node:sqlite`): hybrid find (FTS5 + vectors + RRF + PageRank), impact, affected-tests, hotspots, coupling, visualize. Schema **10**. No LLM — lives in `.speclaw/` (gitignored). |\n| **Lawbook** | Spec-driven workflow with **adaptive ceremony** (levels 0–3), bugfix changes + `lawbook_investigate`, EARS linting, requirement **coverage**, and sealed **drift** anchors. Loop: `explore → draft → build → sync → archive`. |\n| **Team** | Declare `team.owners` in `lawbook/config.yaml`; `speclaw owners --write` compiles a managed trailing block in `.github/CODEOWNERS` (GitHub: last match wins). Doctor checks the posture. CLI-only — no MCP tool. |\n| **Tools** | Opt-in packs of skills and subagents (currently the dev-agents). |\n\nCompass is inspired by [CodeGraph](https://github.com/colbymchenry/codegraph) and the Lawbook module by [OpenSpec](https://github.com/Fission-AI/openspec) — both MIT. speclaw reimplements the ideas as its own code and gives full credit; see [ATTRIBUTION.md](ATTRIBUTION.md).\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Context cost\n\nspeclaw publishes and **gates** its own always-on context cost. Measured with a\ndeterministic offline estimator (`speclaw/estimate-v1`, about ±8% vs Anthropic's\ntokenizer on this corpus — not a BPE dependency):\n\n| | Tokens |\n| :-- | --: |\n| **speclaw budget (always-on)** | **~13.7k** (8 MCP tools · ceiling **14.0k**) |\n| Spec Kit commands alone | ~18.6k ([spec-kit#1401](https://github.com/github/spec-kit/issues/1401)) |\n\n```bash\nspeclaw budget          # human table\nspeclaw budget --json   # machine-readable; used by the suite gate\nspeclaw coverage        # requirement → impl → test coverage (TAP / table)\nspeclaw drift           # sealed spec ↔ code drift (default --fail-on semantic)\nspeclaw owners --write  # team.owners → .github/CODEOWNERS\nspeclaw init --minimal  # omit setup/lifecycle MCP tools from registration\n```\n\nRaising a number in committed `token-budget.json` is a reviewable PR. Optional\ncalibration (never CI): `npm run budget:calibrate` with `ANTHROPIC_API_KEY`.\nMCP servers cannot mark tools `defer_loading` — savings come from shorter\ndefinitions, omitted registration (`--minimal`), and JIT skill steps.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; The spec-driven workflow (Lawbook)\n\nLawbook is speclaw's answer to the biggest risk with AI agents: **code that\ndrifts from intent.** The intent is written first, the code is made to match it,\nand the spec is promoted to the project's canonical record — so nothing\nnon-trivial lands without a spec change. It's a loop of five steps:\n\n```\n   ┌─────────┐    ┌───────┐    ┌───────┐    ┌──────┐    ┌─────────┐\n   │ explore │ ─▶ │ draft │ ─▶ │ build │ ─▶ │ sync │ ─▶ │ archive │\n   └─────────┘    └───────┘    └───────┘    └──────┘    └─────────┘\n```\n\n| Step | What happens |\n| :-- | :-- |\n| **explore** | Think an idea through *before* committing to it — should we do this, and how. Writes nothing. |\n| **draft** | Propose a **ceremony level** (0–3) from graph signals, confirm it, then scaffold only what that level needs under `lawbook/changes/<name>/`. |\n| **build** | Implement the tasks in order, keeping code and spec in agreement, and record test results under `reports/`. |\n| **sync** | Reconcile the delta specs against what was actually built, then promote them into the canonical `lawbook/specs/`. |\n| **archive** | Reconcile, then validate, promote, and move the change to `lawbook/changes/archive/` — **in the same PR**. Gated on tasks, reports, synced specs, and coverage. |\n\n**Ceremony levels** (confirmed in `change.json`; missing ⇒ level 3):\n\n| Level | When | Artifacts |\n| :-- | :-- | :-- |\n| **0** | One-liner / typo / docs-only | `speclaw quick` → `record.md` + `reports/` |\n| **1** | Small fix with a delta | `record.md` + `tasks.md` + ≥1 delta + `reports/` |\n| **2** | Normal feature | `proposal.md` + tasks + deltas + `reports/` (`design.md` optional) |\n| **3** | Full ceremony | proposal + design + tasks + deltas + `reports/` |\n| **bug** | Regression / RCA | `speclaw lawbook draft --bug` → `bugfix.md` + investigate first |\n\nPlus a **`reports/`** folder — scaffolded at draft, filled at build with one report\nper discipline (`backend.md`, `frontend.md`, `api.md`, …). `lawbook_archive`\nrefuses to archive without it.\n\n> [!NOTE]\n> **Delta specs are normative and testable.** Requirements use `SHALL`/`MUST`\n> under `### Requirement:` headers (EARS-friendly), each with `#### Scenario:`\n> blocks. `lawbook_validate` checks structure; `speclaw coverage` tracks\n> `req~…~N` → impl/test via `// Covers:` comments.\n\n**Three ways to drive it — same engine, no external CLI:**\n\n- **In your agent** — `/lawbook:explore`, `/lawbook:draft`, `/lawbook:build`, `/lawbook:sync`, `/lawbook:archive` (and `/lawbook:quick`, investigate).\n- **MCP tools** — eight canonical: `compass_explore`, `compass_find`, `compass_diff_context`, `compass_index`, `lawbook_change`, `lawbook_investigate`, `speclaw_setup`, `speclaw_check`.\n- **CLI** — `speclaw lawbook …`, `speclaw quick`, `speclaw coverage`, `speclaw drift`.\n\nThe workspace is committed under `lawbook/`: `specs/`, `changes/`,\n`changes/archive/`, `anchors/` (drift photographs), and `config.yaml`\n(mandatory tasks, ceremony cuts, `team.owners`, EARS knobs).\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Two ways to use it\n\nspeclaw meets you where you are. Everything works through the **CLI** — so no one\nis blocked by MCP setup — and the same capabilities are exposed as **MCP tools**\nfor a smoother, integrated experience once configured. An agent without MCP can\nstill use Compass and the lawbook engine by calling the CLI from its shell.\n\n<p align=\"center\"><b>CLI</b> — the installer &amp; operator, runs anywhere <code>node</code> does</p>\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/terminal-cli.png\" width=\"800\" alt=\"speclaw CLI commands\"></p>\n\n<p align=\"center\"><b>MCP</b> — eight canonical tools, auto-registered by <code>init</code></p>\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/terminal-mcp.png\" width=\"800\" alt=\"speclaw MCP tools\"></p>\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; What lands in your project\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/terminal-tree.png\" width=\"800\" alt=\"what speclaw writes into your project\">\n</p>\n\n**Committed vs. local.** Your **personalized source** is committed — `LAWS.md`,\n`CLAUDE.md`, `AGENTS.md`, `docs/standards/*`, `docs/compass.md`, the `lawbook/`\nworkspace, and **`speclaw.lock`** (rule digests at the repo root). speclaw's\n**regenerable workflow content is local, not committed**: only `ai-specs/`\n(skills, commands, rules, agent packs, and its `.speclaw.json` manifest) is\ngitignored, because `init`/`update` reconstruct it from the package. So **after\ncloning a speclaw project, run `speclaw init` (or `speclaw update`)** to\nregenerate `ai-specs/` locally. Optional **`team.owners`** in\n`lawbook/config.yaml` compiles into a managed block at the end of\n`.github/CODEOWNERS` via `speclaw owners --write`.\n\n**Enforcement artifacts.** For agents that support hooks, speclaw merges its law\nhooks into that agent's settings **by identity** — it never touches hooks you\nadded yourself. The compiled law manifest lives in `.speclaw/laws-manifest.json`\n(gitignored) and is **adapted to the target tree** on `init`/`update` — speclaw's\nown architecture laws are seeded only when those paths exist, and the cycle law\nfollows `apps/*/src`, `packages/*/src`, or `src/` rather than copying\n`src/modules/**` from this package. A context-coverage log feeds `speclaw doctor`.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Philosophy — why \"laws\"?\n\n> [!NOTE]\n> A guideline is a suggestion. A **law** is enforced. The most common failure mode\n> of AI coding agents isn't lack of capability — it's working without the project's\n> tacit knowledge: the rules the team actually lives by. speclaw makes that\n> knowledge explicit, executable, and binding, and gives agents a local map\n> (Compass) and a disciplined workflow (Lawbook) to act on it — without burning tokens.\n\nThis is why \"enforced\" is literal, not a metaphor. Anthropic's own guidance puts\nit plainly:\n\n> _\"An instruction like 'never edit .env' in CLAUDE.md or a skill is **a request,\n> not a guarantee**. A `PreToolUse` hook that blocks the edit is enforcement. If a\n> rule must hold every time, make it a hook rather than a prompt instruction.\"_\n> — [Claude Code — Hooks](https://code.claude.com/docs/en/hooks)\n\nSo `speclaw init` compiles your blocking laws into agent hooks: a law marked\n`bloqueo` is denied at the keystroke (`PreToolUse`), citing the law's id, text,\nand source. `speclaw check --dry-run --path <file>` previews what would block, and\n`speclaw doctor` reports how many of your laws actually reached the agent's\ncontext. Agents without hooks (Cursor, Codex) enforce the same laws in CI via\n`speclaw verify`. Digests in `speclaw.lock` catch silent edits to the rule files\nthemselves (the *Rules File Backdoor*).\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Verify in CI\n\n`speclaw verify` evaluates your `deps` and `graph` laws against the local Compass\nindex, and — when `speclaw.lock` is present — compares digests of managed rule\nfiles and scans them (plus skill packs) for known injection patterns. It is\ndeterministic: **no model, no API key, no network.**\n\n```bash\nspeclaw verify --ci --sarif speclaw.sarif --json speclaw.json\n```\n\nCreate or refresh the committed lockfile (repo root, never under `.speclaw/`):\n\n```bash\nspeclaw laws lock\nspeclaw laws scan\nspeclaw laws accept AGENTS.md   # interactive TTY only — never via MCP\n```\n\n| Exit | Meaning |\n| :-- | :-- |\n| **0** | No findings at or above `--fail-on` (default `error`) |\n| **1** | At least one finding at or above `--fail-on` (including strict integrity / scan errors) |\n| **2** | Usage error (unknown `--fail-on` / `--format`) |\n| **3** | Environment (shallow clone under `--ci`, or an unwritable `--sarif`/`--json` path) |\n| **4** | At least one law was skipped, and `--strict-engines` was set |\n\n**Limits (honest):** digests catch any edit; the scanner catches known payload\nshapes after Unicode normalization — not LLM-grade semantic injection. Digest\nacceptance is a human gate (`laws accept` on a TTY). There is no Sigstore signing\nof the lock in this release. Regenerable IDE mirrors (e.g. `.cursor/rules` →\n`ai-specs/`) are not pinned as strict committed files.\n\nOn GitHub:\n\n```yaml\n- uses: esneiderbravo/speclaw@v1\n```\n\n`init` / `update` write `.github/workflows/speclaw.yml` only when that path is\nmissing — they never overwrite your CI. Make the check required in branch\nprotection yourself; speclaw does not. Pair with `speclaw owners` + *Require\nreview from Code Owners* when you declare `team.owners`.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Staying up to date\n\nspeclaw checks for new releases in the background (at most once a day) and nudges\nyou when one lands. To upgrade:\n\n```bash\nspeclaw update\n```\n\n`update` upgrades the global package **and** brings the current project up to date\nwithout a re-init, splitting files by who owns them:\n\n- **Managed files** (skills/commands/rules under `ai-specs/`) are **refreshed**.\n  Pass `--backup` to keep a `<file>.bak` before overwrite.\n- **Personalized files** (`CLAUDE.md`, `AGENTS.md`, `LAWS.md`, `docs/standards/*`,\n  `docs/compass.md`, `lawbook/config.yaml`) are **never auto-edited** — `update`\n  prints a prompt for the agent you're using.\n- **`speclaw.lock`** and the CODEOWNERS owners block are refreshed when configured.\n\n- `speclaw update --check` — report whether an update exists, change nothing.\n- `NO_UPDATE_NOTIFIER=1` — silence the reminder.\n\n<br/>\n\n## <img src=\"https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png\" height=\"20\" alt=\"◆\" align=\"absmiddle\">&nbsp; Requirements\n\n- **Node.js ≥ 22.16** — uses built-in `node:sqlite` (FTS5 for hybrid find).\n- **No native builds, no services, no API keys, no LLM download.** Tree-sitter\n  parsers ship as WASM; the vector store is local.\n\n<br/>\n\n<div align=\"center\">\n\n**[MIT](LICENSE)** &nbsp;·&nbsp; built on ideas from\n[OpenSpec](https://github.com/Fission-AI/openspec) &&nbsp;\n[CodeGraph](https://github.com/colbymchenry/codegraph) &nbsp;·&nbsp;\nsee [ATTRIBUTION.md](ATTRIBUTION.md)\n\n<i>speclaw 1.0 · where specs become law</i>\n\n</div>\n","readmeFilename":"README.md"}