{"_id":"@adlc/rails-guard","_rev":"17-98a7ac19d0bc78aaebc05122eafc1649","name":"@adlc/rails-guard","dist-tags":{"latest":"1.11.1"},"versions":{"1.0.0":{"name":"@adlc/rails-guard","version":"1.0.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.0.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"40f3e17c89cdc68f2cf39b402dd648b9b9aff5ff","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.0.0.tgz","fileCount":8,"integrity":"sha512-jjbLkfGsGSKskVeOkvkzM4GKGCX/fXOxC8jzQ0MVGD069SK/mzL+cmwzPdLCtRjHzC4v6L2eJf1Dz9lSJR8MtA==","signatures":[{"sig":"MEUCIQDxR7a5ClLPjs35PosPiQjBfo7VFvGtBSeaOpysYpNgdgIgFxq18r/TALmNX7hDlBXeDqeFMNS2re8BgeqhO3cUwxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19171},"type":"module","engines":{"node":">=18"},"gitHead":"18f4c2890048cd9d5913b6b3aeeff6c37ae372b9","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"voodootikigod","email":"voodootikigod@gmail.com"},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"10.8.2","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.0.0_1781385167632_0.9476028802645984","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adlc/rails-guard","version":"1.0.2","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.0.2","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"715255fe14cb90748a1bd967b3ef30054edafa84","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.0.2.tgz","fileCount":8,"integrity":"sha512-VlqTh5JJxfIeJAfraQ8+S11sE+VI06IgL4/Ll3MqAGwQLJSBmg5ch/O1QCKWTrnzfbgwFEU5xYxQ22vrNssgjA==","signatures":[{"sig":"MEQCIE/FLQCNzhGiEWvG+Sj7yGVS7tYb58t8+b4MgBbVeAI3AiBuWaviOC0jcgFDIWBs4C5bg1bzMY3hAp706wO+/8dORg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19171},"type":"module","engines":{"node":">=18"},"gitHead":"9412678eb342b02cd86c1279d908f1fd56ca7bc4","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.17.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.0.2"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.0.2_1781461047626_0.1842379795970417","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adlc/rails-guard","version":"1.1.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.1.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"2b3fb644193c0111f08cc5bcb8dd034247711372","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.1.0.tgz","fileCount":8,"integrity":"sha512-G/5oixpWnolbhpRQMclVBhnZ5qR5/5/NSWJ/p5t222/zeaLYpJXaVizx9FbI1MBizIplQiCFcUcEMGNQ8TTFdA==","signatures":[{"sig":"MEQCIEopYQ7qLGhssFITSGCDTaCAW164t/L3JR0m+8hMVpK8AiBnCyn7deV50Yk9GELWuZ6FpyIJrjFalbkudy1O+BMCzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19171},"type":"module","engines":{"node":">=18"},"gitHead":"30e96544356c997ca986a1f9d5f4422724ad94a5","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.17.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.1.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.1.0_1782216901964_0.7062060816210889","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adlc/rails-guard","version":"1.2.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.2.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"0e68b3e1a529efc5a01de887fa32c738a6449865","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.2.0.tgz","fileCount":8,"integrity":"sha512-A1iNw4/qHtlaTcCnVyKCzBtX2G+QQsK/5n2WIdx5XBVeTpTqbR/POGpVxpzhFBMfBju2Zbgs885u2dh9YQ8uqQ==","signatures":[{"sig":"MEYCIQCzgRGiCEC6mzPIstUCXqkLY7JEd8VBWqnWOgoE6D1TiwIhANtDF/wAqaIFBVGsmniCJhyiVlWGXZlGQ0q+HQw6sc2H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25029},"type":"module","engines":{"node":">=18"},"gitHead":"e1a9315750d794959884e3ed0b1cc29398d25f0e","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.2.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.2.0_1783726119859_0.07286488206680919","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@adlc/rails-guard","version":"1.2.1","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.2.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"53cb1d3d824058ce0fee57bef039b943bbd7c412","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.2.1.tgz","fileCount":8,"integrity":"sha512-Wwk1BAH6idvmihDZPrVnsBBKyZaM+5p/Aftm8bk79vAm3k/AuG2M9sdBJkb8jqsO9oSAxcG56rPdsohkV9zYeg==","signatures":[{"sig":"MEUCIQDknFewjJeqV22lFLgrj9NNz0Z/agnwqAKI21F9JyKKSAIgPfAPTjLOtHlbB/HbSMfc8+6UOZlr1r4EUrDHYqAhYAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25029},"type":"module","engines":{"node":">=18"},"gitHead":"7ce933041948a1f8076966b4c05ebcb3f08d9781","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.2.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.2.1_1783727162022_0.4479029858756054","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@adlc/rails-guard","version":"1.3.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.3.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"24354320de3b4bd76702fd3705a2c09dbf5f85f7","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.3.0.tgz","fileCount":8,"integrity":"sha512-uNQ57SDdAc45GJ/NeyZL4uw1vi1nhWXGaVWEGIsXd/1TH7+9w+Gm60sIw47XSA0psHLRiGEEdV1InbMlh4hWnw==","signatures":[{"sig":"MEUCIQDrgxdF6AsbGRNnDX1dLsHq3QGUnio/wrgcBPcVPqAj5wIgYVE6oiW/7CHkRAa6Au4R1NfUoibM05ZznoAczSwwDbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25029},"type":"module","engines":{"node":">=18"},"gitHead":"de4b878aa375bcce92f1828afafd87ee6872d2b4","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.3.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.3.0_1783780378236_0.9161047338882387","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@adlc/rails-guard","version":"1.4.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.4.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"43f7f637e02c7862c45441b62f1007f01d694999","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.4.0.tgz","fileCount":8,"integrity":"sha512-2dLj8Awx3ZLLD31LFXbaL7i+o2aOWEtfZn5pKIf39aFmyvLDePO7YbfZFSFktUegltN8KolY8G222MdW7w/eRA==","signatures":[{"sig":"MEUCIQCu0kQbWrHfP5OcaebkpxDW+Xqh6n5sN5tkxYu9c3SRKwIgJOWqrYVmpQxV4GE0sdKAcuHJ20JvYh2f8C1aAS1w6/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25105},"type":"module","engines":{"node":">=18"},"gitHead":"2be4ff6ef2397811d288ae1de14c21e5b901e76d","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.4.0","@adlc/gate-manifest":"1.4.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.4.0_1784074870844_0.5310568811975396","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@adlc/rails-guard","version":"1.4.1","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.4.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"9eccf085d7e821f6a8bb73d5ea6180651d59b926","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.4.1.tgz","fileCount":8,"integrity":"sha512-verltPnga8niSqcc4Msj8g5kjMGvs3cKsOx2AzeN0CRCJJhlHS6xewg+iUqIPJLhCz2xQs/WYQaTcnC2p1M70w==","signatures":[{"sig":"MEYCIQCP/lE0vmAA5+7zzF4tW8nKi4iWeX7zm868MOIXl3YE3wIhAIy1RvAvrCTrf5oJaJRf/PPoskd/cECsAwA+oK/unwli","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25105},"type":"module","engines":{"node":">=18"},"gitHead":"d1765e679c224131056836f13f5a9c296b5316f8","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.4.1","@adlc/gate-manifest":"1.4.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.4.1_1784076705314_0.27875247850451546","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@adlc/rails-guard","version":"1.5.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.5.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"f690f9981298f399704f145547d046f42a64c8e6","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.5.0.tgz","fileCount":8,"integrity":"sha512-wHRIFaNDGdhwWI6lXldDhJheXaEL+UufZ/CGvco0D6dImJx5KJfNTwnEZAyYYSSj5go/0HA0gHLy2yswwBEL2A==","signatures":[{"sig":"MEYCIQCg1u4l+rO/Nqn3goP5BNl2riXfDMxGDZOxvvLtFy2IdAIhAL5bwFhwpK4gbY0q1ZflHLS1l4XBCo5xQiGdAWMsevLj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25105},"type":"module","engines":{"node":">=18"},"gitHead":"c2763540068dd7deb26b089209de3bd03e2437c5","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.5.0","@adlc/gate-manifest":"1.5.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.5.0_1784556979977_0.24107275441687692","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@adlc/rails-guard","version":"1.5.1","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.5.1","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"ad13d025266968ea87c56949c209ea98f9c2c450","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.5.1.tgz","fileCount":8,"integrity":"sha512-NNLqVoQnL9UiLr41DrkWKQgvR/cBcpD1DOgFR+/zsbZgHcyY6I+fkh4RYLRxescPU6VUb+X8hsCnRoPdyakmsw==","signatures":[{"sig":"MEUCIGTw/ZFEhGS1ENBc1YtYbzZbIx8daontJO6P3JwcW/0VAiEA4tDRJOMi1gOBN6CgPo+D4S/0KxmvAGkWdX8PDRsQpWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25105},"type":"module","engines":{"node":">=18"},"gitHead":"ba648f21aeafb9a253a243c0e268044da3513217","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.5.1","@adlc/gate-manifest":"1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.5.1_1784631866774_0.7536323256707691","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@adlc/rails-guard","version":"1.6.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.6.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs"},"dist":{"shasum":"eae482239decb513198eb4dd467904a8e244abf1","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.6.0.tgz","fileCount":9,"integrity":"sha512-oafAOdEBBskzj6thMmuUBx1gzeRfsOaPZo1Zw57VOCy7kin0Uo7Au1pX8hacD/zVox9LRTW7sehcv3kFtbkBUg==","signatures":[{"sig":"MEQCIGeedOSN3/swhTUPDxIkmk18yAAB4RLSgaRPG53pEzTLAiB/J+laGQl+q5IhXFyX6VJqx8ENEH1xsUADVINju4ZQCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46694},"type":"module","engines":{"node":">=18"},"gitHead":"390a608f51165db92da1ccf68a965770db0b0376","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.6.0","@adlc/gate-manifest":"1.6.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.6.0_1784720620016_0.9174066139716306","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@adlc/rails-guard","version":"1.7.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.7.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dist":{"shasum":"e20c8b4a6283214006f48f59da616a2e12cd9538","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.7.0.tgz","fileCount":20,"integrity":"sha512-srgm6cyDx8w7egn2nTKX7FAfMLBWKbgJqrb4pRndq1qkNABzN6nmSCyQSS91DEHmwLCQlwtDKjaiyt+q8g7K3A==","signatures":[{"sig":"MEQCICW3uZ4tYfEEzTxjGum8SBr8J0HynOuepBeobgVPC2d/AiAj/WcOfw2CQQA3XptsNd1h5a5wqD/7mVWb22ljIMT/9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127923},"type":"module","engines":{"node":">=18"},"gitHead":"d7eca2696e43aa6caf3de655840fae14aa0efd57","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.18.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.7.0","@adlc/tickets":"1.7.0","@adlc/gate-manifest":"1.7.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.7.0_1785329285164_0.8357228081839796","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@adlc/rails-guard","version":"1.8.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.8.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dist":{"shasum":"6e5649fb7f34f380745e767bd8b162062e56ca82","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.8.0.tgz","fileCount":20,"integrity":"sha512-aVKl2gBbiVRrPWBUzcdHckdsTIp7gthG2y9LwfFX/58X02RUBMqpnrgHVizawNYeWyYDnp5pNO832MOCW39EJg==","signatures":[{"sig":"MEUCIDMBDYuV/r6bGMyzcz0s/qrvFbZaUmMqZQQYp15UaeGEAiEAgq3ZMElVXWw2yd7eHlOB+OqDISkqo7AVV1/m1MCEND4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131495},"type":"module","engines":{"node":">=18"},"gitHead":"e6b6525502d3deb214f58cffeb6c9db4b9787e39","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.19.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.8.0","@adlc/tickets":"1.8.0","@adlc/gate-manifest":"1.8.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.8.0_1786195822437_0.14835531183720696","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@adlc/rails-guard","version":"1.9.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.9.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dist":{"shasum":"685b06efd2a0d408ee334e9b403d01336a2df63a","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.9.0.tgz","fileCount":20,"integrity":"sha512-cdgXngsX5rZZkB7I4HA/mc8DhUwJO07u8YdVulN+nJ0iobEGKCR82vV28U8NhjvwGo6oKXzvVdXyPAfhnAxWkw==","signatures":[{"sig":"MEUCIQDdKsC4soV93AeIhqzue7oWeqVNntd11Xc6VIhU/LBHvwIgHRfjgucqULXk2KQbO3B4nALWVcDj6da1WXh88v3fLGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131495},"type":"module","engines":{"node":">=18"},"gitHead":"a928a7eeb3c2c5078b44c181702c3220ba1a7a5b","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.19.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.9.0","@adlc/tickets":"1.9.0","@adlc/gate-manifest":"1.9.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.9.0_1786221183735_0.7884007318979696","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@adlc/rails-guard","version":"1.10.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.10.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dist":{"shasum":"34bfa2a71a0ee5da7784710ad3bbaf564ce57b79","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.10.0.tgz","fileCount":20,"integrity":"sha512-NiXBPpDUD8fPcjRedYA4yyREjg4v972LB5yOn63zEaVFSw8gGwiZxbm2ndNnE7coCcH4gtxOOP1sAtEJcSA2WQ==","signatures":[{"sig":"MEYCIQD+ofzk72WHEJS34atMcYC5Q9wCd61rkCPJOi7VyDXB8QIhAI3osHeJ2h7FLQdFrHbfA2tHKLmbt28nZfzQCTA6lQN1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":175133},"type":"module","engines":{"node":">=18"},"gitHead":"905d493f596a62b4bc3236f97281a43982c1e300","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.19.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.10.0","@adlc/tickets":"1.10.0","@adlc/gate-manifest":"1.10.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.10.0_1786385990426_0.23250529160991973","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@adlc/rails-guard","version":"1.11.0","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"author":{"url":"@voodootikigod","name":"Chris Williams"},"license":"MIT","_id":"@adlc/rails-guard@1.11.0","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dist":{"shasum":"90c0416f63145c456665efbef65d308b396fba71","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.11.0.tgz","fileCount":20,"integrity":"sha512-sKgBjB1TTU7Q0PxRDVyBue7G5DdWQ1fScSu97kg4A+y2JtUew2K4OJHlvFyVcEP5Y78JyxffIWtAzzOSz0UTRQ==","signatures":[{"sig":"MEQCICoa2cFbYPat0Vk9RdLRAp/0mlzyG1qvT7OadeIfZCvuAiAjLOHuQFyBxzNyZkCUWGNzjOIApBwMcnmOcuSRenynHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":195944},"type":"module","engines":{"node":">=18"},"gitHead":"1e4e6f704912c912d9b3c87f57e077a48ca78c5d","scripts":{"test":"node --test test/*.test.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"repository":{"url":"git+https://github.com/voodootikigod/adlc.git","type":"git","directory":"packages/rails-guard"},"_npmVersion":"11.19.0","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@adlc/core":"1.11.0","@adlc/tickets":"1.11.0","@adlc/gate-manifest":"1.11.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rails-guard_1.11.0_1787594244568_0.7621748382380502","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@adlc/rails-guard","version":"1.11.1","description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","type":"module","license":"MIT","author":{"name":"Chris Williams","url":"@voodootikigod"},"repository":{"type":"git","url":"git+https://github.com/voodootikigod/adlc.git","directory":"packages/rails-guard"},"homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"bin":{"rails-guard":"bin/rails-guard.mjs","rails-guard-ci":"bin/rails-guard-ci.mjs"},"dependencies":{"@adlc/core":"1.11.1","@adlc/gate-manifest":"1.11.1","@adlc/tickets":"1.11.1"},"scripts":{"test":"node --test test/*.test.mjs"},"engines":{"node":">=18"},"publishConfig":{"access":"public","provenance":true},"gitHead":"c5772b4ff942bec77a34454c4fc888ae4e4b2c14","_id":"@adlc/rails-guard@1.11.1","_nodeVersion":"20.20.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-J+Zi0CMJzX0MCl0TT3Wkqwordh6koAtvu8myZpcNDwgesOlxOJY75aeksdoRuagsx0Q/vdXEPSIA8ATVn910IA==","shasum":"de6c3db641920a4f5d7e05ace4902dfb42b6155d","tarball":"https://registry.npmjs.org/@adlc/rails-guard/-/rails-guard-1.11.1.tgz","fileCount":20,"unpackedSize":198018,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adlc%2frails-guard@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCCmsgjt2/EQN4G0lJFQW74GriQUhht8gCQkc9fR8+N/QIgc4m28qEsy7x+wTs4mqfWeDJwLOB+L7ToFSEskhuM8kw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7bfcd44a-40df-467b-b048-df3c150da017"}},"directories":{},"maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rails-guard_1.11.1_1788949747907_0.4774825272641454"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-13T21:12:47.505Z","modified":"2026-09-09T10:29:08.478Z","1.0.0":"2026-06-13T21:12:47.761Z","1.0.2":"2026-06-14T18:17:27.766Z","1.1.0":"2026-06-23T12:15:02.131Z","1.2.0":"2026-07-10T23:28:40.013Z","1.2.1":"2026-07-10T23:46:02.162Z","1.3.0":"2026-07-11T14:32:58.371Z","1.4.0":"2026-07-15T00:21:11.007Z","1.4.1":"2026-07-15T00:51:45.510Z","1.5.0":"2026-07-20T14:16:20.150Z","1.5.1":"2026-07-21T11:04:26.909Z","1.6.0":"2026-07-22T11:43:40.176Z","1.7.0":"2026-07-29T12:48:05.324Z","1.8.0":"2026-08-08T13:30:22.590Z","1.9.0":"2026-08-08T20:33:03.865Z","1.10.0":"2026-08-10T18:19:50.594Z","1.11.0":"2026-08-24T17:57:24.716Z","1.11.1":"2026-09-09T10:29:08.105Z"},"bugs":{"url":"https://github.com/voodootikigod/adlc/issues"},"author":{"name":"Chris Williams","url":"@voodootikigod"},"license":"MIT","homepage":"https://github.com/voodootikigod/adlc/tree/main/packages/rails-guard#readme","keywords":["adlc","agentic","ai","llm","cli","rails-guard","gate"],"repository":{"type":"git","url":"git+https://github.com/voodootikigod/adlc.git","directory":"packages/rails-guard"},"description":"Rail-freeze enforcement and suppression-marker gate — blocks builder edits to frozen paths (C5).","maintainers":[{"name":"voodootikigod","email":"voodootikigod@gmail.com"}],"readme":"# rails-guard\n\nRail-freeze enforcement and suppression-marker gate (ADLC C5).\n\nBlocks builder edits to declared frozen rail paths during P4, and greps added\ndiff lines for suppression markers that escape test/lint coverage. On a clean\npass it can record a **rails-diff-empty proof** in the gate manifest.\n\n## ADLC Phase\n\n**C5 — P3/P4 enforcement.** Sits in the CI gate between P3 (charter /\nplanning) and P4 (builder execution). Guards two invariants simultaneously:\n\n1. **Rail-freeze**: declared rail paths (test files, contract types, CI config)\n   must not be touched by the builder during P4.\n2. **Suppression-marker gate**: newly added `.skip(`, `.only(`, `xfail`,\n   `@ts-ignore`, `@ts-expect-error`, `eslint-disable`, `# noqa`, `#[ignore]`\n   lines are blocked unless the active ticket's `body` contains an explicit\n   `allow-suppression: <marker>` declaration. **Prose documentation files**\n   (`.md`, `.markdown`) are exempt from this scan — a marker in prose is never an\n   executed suppression, and docs (including this README) legitimately name the\n   markers when describing the rule. `.mdx` is **not** exempt: it compiles to\n   JSX/TS and can carry operative suppressions, so it is scanned like code.\n\n## Usage\n\n```\nrails-guard [--base <ref>] [--ticket <id>] [--tickets <path>] \\\n            [--rails <glob>...] [--record] [--json]\n```\n\n### Flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--base <ref>` | `HEAD` | Git ref to diff against |\n| `--ticket <id>` | — | Load rails and `allow-suppression` declarations from this ticket |\n| `--tickets <path>` | `.adlc/tickets.json` | Path to tickets file |\n| `--rails <glob>` | — | One or more frozen-path globs (repeatable; overrides `ticket.rails`) |\n| `--record` | off | On a clean pass, append a manifest entry to `.adlc/manifest.jsonl` |\n| `--json` | off | Emit machine-readable JSON result |\n| `--help` | — | Print this help and exit 0 |\n\n### Rail source resolution\n\n1. If `--rails` globs are supplied they are used directly.\n2. Otherwise `--ticket` must be provided; rails come from `ticket.rails`.\n3. If neither is available the tool exits 1 (operational error).\n\n### allow-suppression declarations\n\nTo permit a specific suppression marker, add this exact text to the ticket body:\n\n```\nallow-suppression: @ts-ignore\nallow-suppression: .skip(\n```\n\nOne declaration per line; case-sensitive; marker text must match exactly.\n\n## Examples\n\n```bash\n# Check that no frozen test files were touched, fail on any suppression\nrails-guard --rails \"test/**\" --rails \"schema/**\"\n\n# Use rails declared in ticket T42; allow .skip( for known broken test\nrails-guard --ticket T42 --tickets .adlc/tickets.json\n\n# Diff against a feature branch base commit\nrails-guard --rails \"test/**\" --base origin/main\n\n# CI gate with machine-readable output + manifest record on clean pass\nrails-guard --rails \"test/**\" --json --record\n```\n\n## Output\n\n### Human-readable (default)\n\nClean:\n```\nrails-guard: all checks passed\n```\n\nViolations:\n```\nrails-guard: 2 violation(s) found\n  [rail-edit]   test/auth.test.ts  (matched globs: test/**)\n  [suppression] src/foo.ts:12  marker: @ts-ignore\n                  // @ts-ignore\n```\n\n### JSON (`--json`)\n\n```json\n{\n  \"tool\": \"rails-guard\",\n  \"base\": \"HEAD\",\n  \"ticket\": \"T42\",\n  \"railGlobs\": [\"test/**\"],\n  \"railGlobError\": null,\n  \"railsDiffEmpty\": true,\n  \"suppressionsClean\": false,\n  \"sanctionedAdditions\": [],\n  \"passed\": false,\n  \"violations\": [\n    {\n      \"file\": \"src/foo.ts\",\n      \"type\": \"suppression\",\n      \"marker\": \"@ts-ignore\",\n      \"lineNo\": 12,\n      \"line\": \"// @ts-ignore\"\n    }\n  ]\n}\n```\n\n### Manifest record (`--record`, clean pass only)\n\nAppended to `.adlc/manifest.jsonl`:\n\n```json\n{\n  \"ts\": \"2026-06-10T12:00:00.000Z\",\n  \"type\": \"rails-check\",\n  \"ticket\": \"T42\",\n  \"base\": \"HEAD\",\n  \"railsDiffEmpty\": true,\n  \"suppressionsClean\": true,\n  \"sanctionedAdditions\": [\"test/frozen/new.test.mjs\"],\n  \"railFiles\": {\n    \"test/auth.test.ts\": \"abc123...\",\n    \"schema/types.ts\": \"def456...\"\n  }\n}\n```\n\n`sanctionedAdditions` (`--json` and `--record`) names every rail-matching path that was\nexempted via the CI-plumbing `--sanctioned-add` flag for this run — empty when none were used.\n`railsDiffEmpty`'s own meaning is unchanged: it is still `true` whenever there are zero\nrail-edit violations, sanctioned or `#228` version-only exemptions included. A path in\n`sanctionedAdditions` was a pure ADDITION, never an edit — the exemption is never silent.\n```\n\n`railFiles` contains the SHA-256 of every repo file that matches a rail glob at\nthe time of the clean pass — a content-addressed snapshot usable for auditing.\n\n## Exit codes\n\n| Code | Meaning |\n|------|---------|\n| `0` | Gate passes — no violations |\n| `1` | Operational error — not a git repo, bad input, no rails resolvable |\n| `2` | Gate fails — violations found (list printed to stderr / JSON) |\n\n## Violation types\n\n| `type` | Meaning |\n|--------|---------|\n| `rail-edit` | A changed file matches a frozen rail glob |\n| `suppression` | An added line contains a suppression marker not declared in the ticket |\n\n## Immutable trust roots (CI gate)\n\nThe CI backstop `adlc rails-guard-ci` freezes a second set of paths on top of the\nactive ticket's rails: the **immutable trust roots** (#140). A trust root is a file\nwhose contents decide what the gate *enforces* — the config, the ticket-store\nmanifest, CODEOWNERS, the deployed workflow, and the gate's own sources. They are\nfrozen unconditionally, because a PR that can edit the enforcer can edit away its\nown enforcement.\n\nThe default set lives in `DEFAULT_IMMUTABLE_TRUST_ROOTS`\n(`lib/ci/trust-roots.mjs`) and applies to every repo with no configuration:\n\n```\n.adlc/config.json                  .adlc/admin.pub\n.adlc/tickets/.store.json          .github/workflows/adlc-rails-guard.yml\nCODEOWNERS · .github/CODEOWNERS · docs/CODEOWNERS\ndocs/ci/rails-guard.yml            scripts/rails-guard-ci.mjs\npackages/rails-guard/lib/ci/**     packages/rails-guard/bin/rails-guard-ci.mjs\npackages/rails-guard/bin/rails-guard.mjs\npackages/rails-guard/lib/trust-root-authorization.mjs\n```\n\n**`package.json` and `.npmrc` are NOT in the default set.** They were briefly added\nduring the 1.11.0 development window and removed again before release: every Node\nrepo has them and edits them constantly, so freezing them by default turns an\nordinary dependency bump into a denied PR that the consuming repo cannot opt out of.\nA repo that *does* want them frozen — the ADLC repo itself does, because its\ndocumented entry points resolve through `scripts` and npm execution flags — declares\nthem with `--trust-root`.\n\n### Extending the set\n\n`--trust-root <path>` (repeatable) adds a repo-specific trust root. It only ever\n**extends** the defaults; nothing on the command line can shrink them. Supplying\nthem this way is safe because the caller that passes them is itself a default trust\nroot, so a PR cannot drop the arguments without editing a frozen file.\n\n```bash\nadlc rails-guard-ci --base origin/main \\\n  --trust-root .github/workflows/ci.yml \\\n  --trust-root package.json\n```\n\n### Changing a trust root\n\nA diff that modifies, deletes, or renames a trust root exits 2 unless the #141\nceremony authorizes it: apply the **`trust-root-change`** label *and* obtain an\napproving review from a non-author CODEOWNER of the changed path. The alternative is\nthe protected-base admin path. Authorization lifts only the specific trust-root\npaths the ceremony approved — never a rail a ticket declared.\n\n**Version-only exemption.** A change to a package manifest (`package.json`,\n`plugin.json`, `marketplace.json`) whose only differences are version fields and\nlockstep `@adlc/*` dependency repins is a mechanical release bump, not a trust-root\nchange, and passes without the ceremony (ADR 0012). Any other edit — a `scripts`\nchange, a third-party dependency bump — is a trust-root change. `.npmrc` is not a\nmanifest and has no exemption.\n\n## Sibling tools\n\n- **flail-detector (C6)**: uses `--record` manifest entries to verify no\n  builder session slipped past the gate.\n- **consensus-fix (C7)**: runs every candidate fix through `rails-guard` before\n  accepting it as a survivor.\n- **merge-forecast**: reads `manifest.jsonl` to surface gate history alongside\n  merge risk.\n\n## Core gaps\n\nNone. All required APIs (`globMatch`, `hashFiles`, `appendEntry`, `changedFiles`,\n`gitDiff`, `loadTickets`) are present in `@adlc/core`.\n","readmeFilename":"README.md"}