{"_id":"@intellectronica/ruler","_rev":"70-f1806e8a9bd8522dac2113721dbcbd8a","name":"@intellectronica/ruler","dist-tags":{"latest":"0.3.44"},"versions":{"0.1.0":{"name":"@intellectronica/ruler","version":"0.1.0","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.1.0","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://github.com/intellectronica/ruler#readme","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"4507a43001d34eb96567ae8aea35def68d7f973f","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.1.0.tgz","fileCount":16,"integrity":"sha512-uN2saavtohlpd1ZhVjgPgHOzKy74or/vcXvChI6/TmhdbdHu0lldl1uujHGeE8WqoITJS1iLWmcifnzdyQQgxA==","signatures":[{"sig":"MEUCIQDEa6kv8x9MA+S+7kVbHxp3oihVdz4bp2Jldo8LYdPutAIgSeADsD/bVStFh/AXxo+eKpV9DbJb7LScApFO491i7LU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32036},"main":"dist/lib.js","gitHead":"84d2f635656f532488f708e76d8e25ab22522dee","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"A CLI tool to manage custom rules and configs across different AI coding agents.","directories":{},"_nodeVersion":"18.20.8","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","yargs":"^17.7.2","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.1.0_1747842256827_0.16693519125767708","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@intellectronica/ruler","version":"0.1.1","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.1.1","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"04384349f70ba23cf382512a5501a5570e465d86","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.1.1.tgz","fileCount":16,"integrity":"sha512-X3IS1Rbc0bEcVnAYxt+r7Yq6VC8wem71WFbQa/m6mRNYKd21m7DGuD7nJMn7O2I0g0ryhhG8GssTgZQ+9zEahQ==","signatures":[{"sig":"MEUCIADNKFBylqiPs2w26dQugRIv3SpBPWwhcIwW8GLrVxZXAiEAzYHnI/DHXQ1zR/gNXOgxo9Z+05sYl57YW/hOkVF09Wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32076},"main":"dist/lib.js","gitHead":"92376463807fddb73603bca4238aefd2b40466ab","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.1.1_1747843409133_0.4164317213252484","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@intellectronica/ruler","version":"0.1.2","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.1.2","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"d8c34d3262aec9fe239a4ac86f935b80aed97ed8","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.1.2.tgz","fileCount":21,"integrity":"sha512-uK/mFvXDlq3CU5ZIzGiucbA9M6dOWllYVbux5LhJUh+StFf5E3fgj4HAxMvph3/euZIMJw00QC5vMNkdpMNcoA==","signatures":[{"sig":"MEUCID4Bg9IZOVzbo6YYmLuXEm9osWePVwL6qvL/9nM1m7aKAiEApNMNCpefrLDni7DVis8fq6hCVvmey6k/qqsADXPOO38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53719},"main":"dist/lib.js","gitHead":"72931ce6715fc096868988fb9556facc2055704b","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.1.2_1747921308578_0.43223580210917656","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@intellectronica/ruler","version":"0.1.3","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.1.3","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"beec06e7ca7083473eb1faed5ea0379daec32814","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.1.3.tgz","fileCount":22,"integrity":"sha512-bcxAkrg+bzQaMXuWaTboVDETyLShgHxaqm6gmH0GCX6y12+wSZ90iyeSfV0qRyIoPwrjWeSyFlWnPMf8i1dQPw==","signatures":[{"sig":"MEUCIQC1tdFPknvUykcqHpdA9fGBbYvLTxXgEyF5Kw8g/NSMAQIgY3I6/G8J6Z+t9Yt9webSmw/JAvPJZyPveVQZeISu0qA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64543},"main":"dist/lib.js","gitHead":"861df3a0f32fe3027421d4b85e9fe62a07ee4125","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.1.3_1748016715575_0.8458752703621828","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@intellectronica/ruler","version":"0.1.4","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.1.4","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"22ab7366fbfd9abc7316777daf84f1ea18db5034","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.1.4.tgz","fileCount":22,"integrity":"sha512-45CSkDIZhO/R3T3t6KdMAZfclwuQytTAaDMARIV55VmL+Y1sv3Fsc+8juHmaaDA8cNQQERgvmKmxzSiX9tQUnA==","signatures":[{"sig":"MEQCIA8EgjqW7lQh2bKOe1EE0wTha5bA60IutAjE9GLsIzMhAiAKs0DCWFnSaACPrmQkAKfauCpWYWvzWQIrOu+2LtdHdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65284},"main":"dist/lib.js","gitHead":"965478a1a3c79e666f278e1fbb3b28a069b56d50","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.1.4_1748018259510_0.7890803860518691","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@intellectronica/ruler","version":"0.2.0","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.0","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"04934099c58823cd1e2b88b82be37ed0cfaa0bb7","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.0.tgz","fileCount":23,"integrity":"sha512-MCEHc2Ul6Oqp+BqMiIxpjGqyXGDOBaCwRUxcuw+IQHHvhwL0CqcK98kV/otipE+0S4vzCszWnWhf4dgz+rhynA==","signatures":[{"sig":"MEUCIQCtyMx8Vz/5f1s0jP/+EhoiSTmT5dHrNB/j1RqOnY4nNQIgecbW98uAVfZf24QoGA08kjsrfY94Z0usN5mAb424leI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77832},"main":"dist/lib.js","gitHead":"4a36246eb955da735dabd695fcee65edcafc8684","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.0_1748273359461_0.14365214338316923","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@intellectronica/ruler","version":"0.2.1","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.1","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"c43b6d8726c132d4f5f162921f204e45adcf2dc2","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.1.tgz","fileCount":23,"integrity":"sha512-QtMAuDAWKqOXPXiBGyxQnLV+J9Ma9GUyoakUWWWWIGiPHcV2C+z4rIw6oZo9CXNBH62hbNuGZ7Zw+Miswoqx4w==","signatures":[{"sig":"MEYCIQCKqto531PB9xuFzKZqVSd8iT36IiD6PHRIJUteGnj+nAIhAJFMpUhIcNTNzr8rPDFoYs53I2vBm3j4hOlogECaC3cL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77866},"main":"dist/lib.js","gitHead":"b5858a1d58399adb0524a4b82b4d3195d458121b","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.1_1748509568394_0.1755241785838062","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@intellectronica/ruler","version":"0.2.2","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.2","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"5a921f3638c72ec0b0503f7c689cc214c984969c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.2.tgz","fileCount":24,"integrity":"sha512-gbO6gXwepctOYnKlUoHfT+Vs/PHQHnlIfUqQpDu4+j+t6jjLHaVGRlbaNqaOUh0Z81qVif3tDsySLXYnyyw5yQ==","signatures":[{"sig":"MEYCIQD2SL20qZ3aMZQMfK3hLilxupnLxmT88g5pfXIedN11PwIhAJdSo/EeiKeJz0jy8Bh1faAphY/tP0cdS7F4RzMSwK3N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80495},"main":"dist/lib.js","gitHead":"6f607e233c2f1a15bdcbe88f94922dedae9097d2","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.2_1749331894697_0.7958925622964947","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@intellectronica/ruler","version":"0.2.3","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.3","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"50c329c27d54e89d7861f83ed11429c8d34d612b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.3.tgz","fileCount":26,"integrity":"sha512-H/PGYfwMj9hyoPtg2J4oDwZnD/jaOKokOFaVZ/WuwTPqFixCe32OX7bYnqAmFvllO8iwbMpCeUUpqBxe4J+GUw==","signatures":[{"sig":"MEYCIQCAt+e4WOrP0CpKJdox4G2VBtvfL1DGs1PVmBdzU8nNIQIhAKEqhPwCNG1UjVkKL/RuwvsdW2qs1cSJt5nK/GeNpTA6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87645},"main":"dist/lib.js","gitHead":"7c2c217b54bf1b967868bfc87dffe3e5a25262f5","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.3_1750356503532_0.8882236519964497","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@intellectronica/ruler","version":"0.2.4","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.4","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"6a504a6a408164169e458f02e43080ed5500392c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.4.tgz","fileCount":26,"integrity":"sha512-iCknZcN03Ts1yQddV+c0e9IfKIUI/V8vqSvTxIy344gPTNoRpRrj5hlEOUteclzrRhTwBtQi391QJtsM9iYiPA==","signatures":[{"sig":"MEYCIQDZ/R41Qg+nIX85qSjy+vDFshmxGaMDKdhUvgDqhooa4gIhANR5XVugCB/4ju6yv2tzXdzT+uUJCANvayO38U5Txsbu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88399},"main":"dist/lib.js","gitHead":"5177aef4fc3abf58ca7883442b98e33c50bd7f4e","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.4_1750840321644_0.11126619874232357","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@intellectronica/ruler","version":"0.2.5","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.5","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"2b0473984b7d9207ec2d4d3524fe3d444bb22442","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.5.tgz","fileCount":27,"integrity":"sha512-jQJgszfuOfvTSDJlMSx2Eh4pWr8GkCI/WFmZt5H908NKIsnBbLzvIRXMqq+4KbodKziH/KToTwtax860yrGS2g==","signatures":[{"sig":"MEUCIEmjk3YnB36oPrwGdEH8xtVxsTbdikI9Zuc4yYSDkH36AiEAth7aM+6WNe42xrSmEJ9BUlqZXZXh6MnLdnthn13Sjd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92340},"main":"dist/lib.js","gitHead":"a1a7249b6d4a4b9130d2264526cae5210d70b7bc","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.5_1750861186032_0.38896501134115824","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@intellectronica/ruler","version":"0.2.6","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.6","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"5d62b0cad0d5670e6b5ad8ec9ce79753f7d3465a","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.6.tgz","fileCount":28,"integrity":"sha512-ETPYKu43vGGz4SQlHTJHpol72CZr+LZel9g7/8JohCSKwNsTFYhPt5RcsgNMC+OhYQjhuPWzH/LXMQFItltmEQ==","signatures":[{"sig":"MEUCIQDXNEkDZZES2ehQOb45UZXbC3g+hdA+UkIA1f1zI2STgwIgIVEnd1FdRhhnHIFSvfp7FNRR5uEgWDUA8n1wOVXSh74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97707},"main":"dist/lib.js","gitHead":"06a6f69718adc01ea1b58838ec2c8c30637aa56b","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.6_1751529829265_0.8659385283689403","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@intellectronica/ruler","version":"0.2.7","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.7","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"54bb1314ab375ab123df21bd1aab527c69065fb4","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.7.tgz","fileCount":28,"integrity":"sha512-Igvv9JcLCHcEagH7vaGTGpwEg1EzNPW2ANX/uv5hhhJm6Mh/PnGNOLSvMghtH2bSVGKLcnJOtC73rC0gJYuoiA==","signatures":[{"sig":"MEQCICz5zbui+/qEBIkwnGAthlSm1H4sbdcksgwgsfdv+gRiAiBcyCw96MJ0RTM+htHAVdeHv9HNevL1g+3VtyTRHUg97w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98305},"main":"dist/lib.js","gitHead":"c4d1a7e988d4f492aa1e9caa881b94824fbd85de","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.7_1751814826225_0.3795803964774114","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@intellectronica/ruler","version":"0.2.8","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.8","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"214cc083e9e9b0cb027bdbffce7831d1aba7150c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.8.tgz","fileCount":29,"integrity":"sha512-jZlNSMfdzPNJQnmptkxwkMSSLQyPlvp/hKd78KFia6NpsBRzP2okz/+NyWXasFjAPk/fP/xwKveHegUwGFbHCg==","signatures":[{"sig":"MEYCIQCcCVmUq1FJ6bRNJ3tbv3DZBNHl8ZwKq+uINyxhFwf7pAIhAKki8ormecqTFVf78PRqwLwHjFxuIht5Nh1DGoxezdZZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100966},"main":"dist/lib.js","gitHead":"9e87224032d5bc040dca14642e4da069b5ecd4e0","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.8_1752131494975_0.9283592726708905","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@intellectronica/ruler","version":"0.2.9","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.9","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"b5cf1a66ee352279b75dc185216fde1faed2fc4a","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.9.tgz","fileCount":31,"integrity":"sha512-zboojCq4z8/Fr+3jT/TWNex591BPHp87UwTVg9qJjlaWIOSFXSUqrZrePD895oSdHunfxkCSP8RWkL+oD7J8Yg==","signatures":[{"sig":"MEQCIEi1sEdeDuhShNVw7ioihhalrokLjzg0v7qVM/iC9HY1AiAvLPy40fQ+c0oa39d4b7ZgGs6HRWbQPQPdx4CaObqU4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127607},"main":"dist/lib.js","gitHead":"eea0e979a89ad0f88c82c091e608339c9598f747","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","actor":{"name":"intellectronica","type":"user","email":"eleanor@intellectronica.net"},"email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.9_1752148083181_0.11462908331186794","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@intellectronica/ruler","version":"0.2.10","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.10","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"d7efa677504c8e9eba32c5da1effd82fee3926b4","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.10.tgz","fileCount":32,"integrity":"sha512-yAGNFo8Qsa5m+uJ4Li29CaBm0UmMrEm4xBQmRYNjVrB0r+/i1tmC+nsm0MgUc9+2Izu57G+mh+e229WUglkbiQ==","signatures":[{"sig":"MEUCICwLBKEyNE+vL5jaZJV80T7GeSPvjitLhqqH3CvOVMMSAiEAuMnbz+BDgAleHMU9hFmXUvTHg7q7GruJhEsk5icI0lM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137472},"main":"dist/lib.js","gitHead":"d414c4926f312b73e2d25108fd4f6819af6825f2","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.10_1752250038079_0.13054149972602502","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@intellectronica/ruler","version":"0.2.11","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.11","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"25b58e90e62d0dcfcbb3fa6eb70924c1fd2133b4","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.11.tgz","fileCount":33,"integrity":"sha512-4HDZ1Y7LScysi7zY22qu5JqFUFERkUsOi9eMoA2nyq9eK2mNuQJowqEVzadv8eCUQSVcX5pp6cOYvhsBXZu1Zw==","signatures":[{"sig":"MEUCIAfHlc6i7H2IQKSD1PLvN+8eGYeFJ0VlvqX2H7lC7cQbAiEAqriwZkb1XcwZh7THEoOcROj514vB0Pm4YVykz9hTMs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140753},"main":"dist/lib.js","gitHead":"52b8ed2bf42603ebfc358dc2d80f439ea7787d62","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.11_1752916771095_0.4309474252370036","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@intellectronica/ruler","version":"0.2.12","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.12","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"7a35c00f4b764236a72abe44cb29cb9b9eca2539","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.12.tgz","fileCount":33,"integrity":"sha512-bwZnWYn52yoC7PwRV0/WlJtAm1aMVwNMlPXfhtD3SMFH52nND0wz2lArqgXxuWcSTkADy8CXGjyF4q2RprxtnQ==","signatures":[{"sig":"MEUCIQCZDRt/GGII+tUvUYYMM/JQ6IR8FOZYiVk2UEXWfFCHkgIgCu7AfZWYvJeE3KjVne2gXFFBrcS1kYoCxbk9mrugRK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141044},"main":"dist/lib.js","gitHead":"31e98c8f148690383e15cb731a8c5b6bdafbe209","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.12_1753261790919_0.6152696929227097","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@intellectronica/ruler","version":"0.2.13","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.13","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"02288cb177a1da10392fe5637d7fefb3a4f00651","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.13.tgz","fileCount":34,"integrity":"sha512-vqYHwXvdJKdag0D/0tnUCuLa4suppg/BzXcOdfpNHg6mIOQQz1cLCmam5G+QhTBYHEWKR8FmQ9feB5zjhQ8/cg==","signatures":[{"sig":"MEUCIQCGJeozIPMJRHOWuHzAyn9IebKfZ67qaBXnlVKPs/Lu1QIgEQse05tSznUy4rKSVB/xmLzD3PIevveTgwDy5KES+0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145825},"main":"dist/lib.js","gitHead":"214116dbb2cf9ed0548850fc9b8ad77b423891af","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.13_1753278076100_0.6650859831081211","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@intellectronica/ruler","version":"0.2.14","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.14","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"9ccb4ffd3e0d582e8c42387698a3ef58fafad9da","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.14.tgz","fileCount":35,"integrity":"sha512-kUw6B/biElay2S2EKBpf+b3XDBBL+t97TGSWVfUkUGcbOUSJCQiZ9O/OPTsWojTLd7JxgKOXY2xnOOa1Qd7/WA==","signatures":[{"sig":"MEUCIQDpphYS7DNCpUU19DLJeWr0+1hUZu7PeRoQVNgfxUC7AQIgFbsFL2qQ5i+i6buypSmp/HoNbfV/WJ0gombBD9h0ZE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150594},"main":"dist/lib.js","gitHead":"0d290e068fca158c870021a8e965e6ba7e6f1fd9","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.14_1753285150950_0.932080203979027","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@intellectronica/ruler","version":"0.2.15","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.15","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"3ae9301acb296da53a4fd1f1695a7b97950c6cb7","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.15.tgz","fileCount":35,"integrity":"sha512-SmL/yx02SLoT6isQdi8z8xGFdsYG70IP/5HM3IDKdyKKSi1j6LyRQMRRKQtXvnA5ZSyV3w5Ox2ahhDQXRLI4eQ==","signatures":[{"sig":"MEYCIQD6KxVvVzhHD3OFhBZTbJ2RTiF7NiKsnl9nWpJprp5ywwIhAPZZl1w4oDJYOhNZYRHZoFzSqKEZACeXBrGvcoYQ/XG9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155560},"main":"dist/lib.js","gitHead":"ab1dd8dca2e04d9700981046fc018a82378bdb51","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.15_1753358908447_0.45092752529482527","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@intellectronica/ruler","version":"0.2.16","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.16","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"458c6c0f1f1ea2176043a214d12e286835ef5801","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.16.tgz","fileCount":36,"integrity":"sha512-HMmtofG0dwoplUC20BDZuL+zIqojUfMNgkFxhKLDSwTooauDmeFxHDLd+FXLJhLzEPzS0mm8H6zqWPyu/cpzmA==","signatures":[{"sig":"MEUCIAZGkOWjnompVekZv4uIVsNYKsKjL66OVkSLW6qhw0TvAiEAmoZEurUbxzu1NLSEo1prDc7fzS3fTFw33p4Q995m5YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158355},"main":"dist/lib.js","gitHead":"a4e23ad45edd6edc8575f04eac534ff2a2475958","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.16_1753518663154_0.17139274542080507","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@intellectronica/ruler","version":"0.2.17","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.17","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"7f6b37f81d9fd707b90fb7346500d0cf27a472f5","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.17.tgz","fileCount":36,"integrity":"sha512-nEjLE0Y0vSw5UTNHm/szK8Wcb21Dp0HAQNuZbxzvYsPz5m/MU8TCNolLKx2o3plAXCetfBtemBvLlXd1P1Dp/g==","signatures":[{"sig":"MEUCIHj5faMrz5LwO3pbDnz2Q4zMSSe21MQnbkoOUkkxFpaoAiEAjM+xYi2d/X468P6ffxkjCV7b70QDdEfoCiGcxek+jTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158300},"main":"dist/lib.js","gitHead":"881a6892c4d3b680860c3f6257a95024959ad0e3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.17_1753626166020_0.0721599984745751","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@intellectronica/ruler","version":"0.2.18","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.18","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"be645b1b203e83b9e7827bbdf95fb3ff4056e76d","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.18.tgz","fileCount":37,"integrity":"sha512-CYzZr7TgGCFGlVlm3vQFD1blxaXp/vIsHvguSFiqXpV7sxkiFNadJOvpMSN9UKwBVX3ppMQcKyu7mK1ow9dDIw==","signatures":[{"sig":"MEUCIHKdn2QauwG40lP7Ra4fMOA6uAIX08ABs5JmAsvF2EWNAiEA1olw0c/YOYKbHio24K3+7UJkExmnlOZym6lZxGZGLfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162193},"main":"dist/lib.js","gitHead":"d7076b51faabe37f3170cefd83d7e1ded28b9b47","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.18_1753952513483_0.8227801735587226","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@intellectronica/ruler","version":"0.2.19","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.2.19","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"dccda817530de5d5ff7c99739e62bd665a5407f1","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.2.19.tgz","fileCount":38,"integrity":"sha512-KqNtLyeTy+coEMRxlIrSh8C3VHr3dZlbdDQH4fkwBBn0oV+B5sD1kERF9eLhizvtSkdepFMT0ImRbG8BhMliVw==","signatures":[{"sig":"MEUCIQCaVRwY8fBmVrvbhnjM0CofQaT7uyURxJzNamg22tsffwIgD9ZGlNurXQE4LiMLpOPcab+vuJYxQgzSdf5K/imqK9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165951},"main":"dist/lib.js","gitHead":"fa85586ceefd00dedd7f4a69803529ded2b6a088","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.2.19_1754113492272_0.7050278632086506","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@intellectronica/ruler","version":"0.3.0","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.0","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"74d43d2a8c83ed06ff04bbd29d16b31964ad6a47","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.0.tgz","fileCount":55,"integrity":"sha512-lGNCpMPpHNcGG7q1oz3SKpWuyjFBB9azkteWoClt+RRt0c7EXvgOQNjWTdDalho3Xp0dYiXR/qLCZpXjDlJTzg==","signatures":[{"sig":"MEQCIEHFCIXMRSiNTP1+UKxR8XNzkv6vnoopvLyL2Q9wYe1MAiBTS7m3SFLEyMm3Ahe4TuE9qVqu9oHrS3lrc5n9x4DOMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219824},"main":"dist/lib.js","gitHead":"bf2d20c6b3541921a00319cae71dd4ba748f33a1","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.0_1756193118246_0.8888889001409519","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@intellectronica/ruler","version":"0.3.1","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.1","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"63ec581061939071ce7ed8f08f877f575cfd51fd","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.1.tgz","fileCount":55,"integrity":"sha512-FSM7JZ8eW1B3MDDrLqrNOpbTMcvG+ZVyynewYc7ouVaahlUspkhwa0o2jrZMEOy/2cS/FF+g9elMOI+7rRUC6Q==","signatures":[{"sig":"MEUCIQC+17OL+kHGheL11aNBiAZSgGmzJMmg7ssqR2Wh5f/OywIgWgXB2DlW31JbXb2/G7DGE+tTsd5uK026+9c7I+Cn5I8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234169},"main":"dist/lib.js","gitHead":"e2fcfd6bb5eabfe9519d238a66181e52450f64d9","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.1_1756244350985_0.24741717157496135","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@intellectronica/ruler","version":"0.3.2","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.2","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"84edfdbc8f668c8eb17cd05aeb4fca3805afbc82","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.2.tgz","fileCount":55,"integrity":"sha512-lSnIQfIw1mvI1eLfdRjdgDJMXznBFXxzj0ALsO+28j7/hb2PIff5yFJV3rVR/YaqpL7m9lUKpiTdNCgkJEYjsg==","signatures":[{"sig":"MEUCIQCZMaQneXGQIIIk0LlVW+g4IksaR6RGsFd0h2Yd8JBEnwIgUWPAopouedqoDVwvQbLhnlq4P6/PuF4RIfXyCskrYrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235776},"main":"dist/lib.js","gitHead":"ded68d404da9580932119f918973f8518a463449","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.2_1756319461188_0.7908930746234177","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@intellectronica/ruler","version":"0.3.3","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.3","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"781549221650efaefb44af623e7a5ceb2827b1e0","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.3.tgz","fileCount":56,"integrity":"sha512-UzKxx1XnGp4T0fhg0UYmMfmA9pMzpTEqgYehnpxO5k7VK/bvd2ge6tCRKB8m0wtJm4KBgM+/k0Ojh04GwklStw==","signatures":[{"sig":"MEUCIQD/84xHp8dZdPxW+j2Wx7tGQg0WvQU2PS73htqqt6r+gQIgA/fArJvmaxz8ylfvvTugzfAzyuMRJX2bVKPqMMxqFd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248085},"main":"dist/lib.js","gitHead":"f057e0f837a7f5aa5db4ae1899eff510aa3fd3c0","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.3_1756374367253_0.8671155457628188","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@intellectronica/ruler","version":"0.3.4","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.4","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"af7caaf6af2338f850d6c38e93b75250e4da8814","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.4.tgz","fileCount":58,"integrity":"sha512-acXS5tgy9LcHmKd3qO+4pxS/ecod0XRGG6DLFhB9GD8mDddvT5lBCeSZIV3vlXAUUxFHMBMa6fsfTrbIuN2Ebw==","signatures":[{"sig":"MEUCIEgaIL/83VtY+VZWaabzpRuL8DJaJD3MPxKUfG1njNPJAiEAxcAuIm02aF8Zw7st1d4K8MjJN8qE9rlGJBDabEgeE8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252970},"main":"dist/lib.js","gitHead":"65558db5f2711db0d3b68c6136c3e80f3e8e3d06","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.4_1756454407217_0.13952694341374183","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@intellectronica/ruler","version":"0.3.5","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.5","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"6293fe6abf4e34f2545c14e169c43776495691f6","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.5.tgz","fileCount":58,"integrity":"sha512-29QsmSL1Pe4MIAy6U/ON/rPbH9XWLfV73J6y9xQKHoCFjOSYWBkEwW7I1V0AlOofDF3pOmyLqbOEMprkbK+9qQ==","signatures":[{"sig":"MEYCIQCK8j1xpvtEXCLGADJ/V/ZLGy27TSYLqhzlWOvsRJh12wIhAL1zpbveQUym8Apd4WLygTkPIp8fjxEZXiRQzG9jrAU6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253544},"main":"dist/lib.js","gitHead":"a1dc2e545843da918d33f683d020885c50c48e09","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","toml":"^3.0.0","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.5_1756552756713_0.42224783046668257","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@intellectronica/ruler","version":"0.3.6","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.6","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"5171df21f1ab97d10b0cefc2de2988cc5da3337f","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.6.tgz","fileCount":58,"integrity":"sha512-6yvQNSWTe91oNqzJOy7PgfGqjEmuyYQWlleKmLm0pHWOZfKGdM/ZbGApygqcFMcRATPbmDo78qDwyy5uagbWWg==","signatures":[{"sig":"MEYCIQDYQ4I7Fmp7b++KXKDpAKdIBGZJmoyatzb9ZTe69Y7aKwIhAIxgSRzPQizIK6pWFROqWLvRa74acrVD4IajrAHf/dly","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252721},"main":"dist/lib.js","gitHead":"f92d2ff9fa56dc76b2dc5d966bef56a2e8f14ae7","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.6_1756712079222_0.19885588036857382","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@intellectronica/ruler","version":"0.3.7","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.7","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"e43fe40e1aff4cf01e7ffeb7c3dac8fdf4d9b69c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.7.tgz","fileCount":58,"integrity":"sha512-lsCD7SB3HzS+oCVa6770nGFvZIBFg1RxneYAd8mBXSvUZ/xHiomJhV+qO2UW7RB6SBXwBPolUSlJN/qw085hFQ==","signatures":[{"sig":"MEYCIQCQLTX1HmOwbS/HJgYZ80f4bVEzhMWbMjCekOSMo/KPCAIhAP9oinK1Qt3YZ7J6TVSfsjjbJNBD70U4Oa+zFzyBCp4y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254392},"main":"dist/lib.js","gitHead":"e116ae2baffa5d2a59456ce47644cca8c290b5b3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.7_1757402215273_0.06279313858068014","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@intellectronica/ruler","version":"0.3.8","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.8","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"6baa5654cf1d47ae655f8f65b9fd99d4068120a2","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.8.tgz","fileCount":58,"integrity":"sha512-AuCE3hNnYhzBxH/FEJa4vW7HmlboFsvoSaUPwrrwPVAxLQlKqvnACZceDLB+vkrCL2zLUH05+1elPHq1aYkNiA==","signatures":[{"sig":"MEUCIHCzi4Oe5F7n+Rld1GSRy/omsf4hibnMk2AJFEBA0m97AiEAx92X5ZTfQ2o2VXnPNOScw1RYtAa1fRVP3bgvWSPPnj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256223},"main":"dist/lib.js","gitHead":"e8a762329bd4fb895a82d6b8de1e1c041760aee2","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.8_1757416832534_0.4306565553464612","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@intellectronica/ruler","version":"0.3.9","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.9","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"9c145b4630a594157bade65eacd33d6e15a83547","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.9.tgz","fileCount":58,"integrity":"sha512-PPQgjy7bG86YHTHzbfDdt5aKQibi0CMZDpHMQJhkcHV0lDxoSe3n+oCvpatQV9dLFvE1nUKjBSqejloF8LC6QA==","signatures":[{"sig":"MEYCIQCfnDBtgTyRVpuSpRGarQeWyCk6VsVYYs6T24CclnpIzgIhANKVM+Q1YdlXPfH7BtseWBc+x4EMlJB2trdn6XAfFWL+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254753},"main":"dist/lib.js","gitHead":"ce69e43f791f6c31aef998d0acb237c50b98de75","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.9_1758296977072_0.05800962702979451","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@intellectronica/ruler","version":"0.3.10","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.10","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"bd6c6669d79663cba9d2d6c99b52caf33ce657d9","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.10.tgz","fileCount":59,"integrity":"sha512-Z8mB7JbPKcrXtSMr5dPfqMv+2TnnoAgldxHqAAnm6150SLcKLnEOPHgr1Kxou7qRWXa+R/pSpEIM4bpygqlhtA==","signatures":[{"sig":"MEUCIQCQBjqWl8LV5VGPbB79wLtYsI11MO4zO80yAGedRlnMDQIgYGdhFme5RdRvpLLheuKBjQyZUSfMd2hGUhLutDyGYeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263211},"main":"dist/lib.js","gitHead":"00211cbc4c3a8cc2c5f47f59c5e78929a54d94d5","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.10_1758402158663_0.12188133017264247","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@intellectronica/ruler","version":"0.3.11","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.11","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"a13528283361671f41e7feb6045a31ff83974006","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.11.tgz","fileCount":61,"integrity":"sha512-Cf7iuMsxjUJBw+ZMuzGjfblvsY8lInFWEluowZiIuCvdCsEMOcmKwopCE6Yi8CI1PtoNTABjM3w9fAxXHFEVcA==","signatures":[{"sig":"MEYCIQDrOaN+RNNFEiS1K6Bfl3ufx3rkdi3xLARp7zITtdVN4QIhAOPn1K++SCkuNjw/jGf4CUmTPxlsDYJ0QNDMriZAT5/0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291928},"main":"dist/lib.js","gitHead":"f5769379577545952873cf731d2e845ba638baa3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^3.25.28","yargs":"^17.7.2","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","ts-jest":"^29.3.4","prettier":"^3.5.3","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.24","@types/yargs":"^17.0.33","@types/js-yaml":"^4.0.9","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.11_1761485125162_0.19363936805132154","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@intellectronica/ruler","version":"0.3.12","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.12","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"7f924263edc02df9eb81b94afe75d5fac2967a19","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.12.tgz","fileCount":61,"integrity":"sha512-iQkud1apd1P3ItjDlba3+joCSOz0xFazlyuibbHsuD6zWhuWEvPz+0gqxK3TKYnQySuDPifrMXDTcNQxgsKMZw==","signatures":[{"sig":"MEYCIQCCCRXK2AfvsGbcqhfuDH77jK86BOK7Vky9XK2rXgqpTwIhAK0CPjlX1ryvYaNZF2Dn7in+VHp6IYeNZdm4UuSfsvsR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293848},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"b189c703a253b0b75013954e86d3094742403681","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.12_1762275145889_0.66943216308447","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@intellectronica/ruler","version":"0.3.13","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.13","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"d45477321c244f6930f8f315a8424b3a711949bc","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.13.tgz","fileCount":61,"integrity":"sha512-nWtwm0ACdaNP9DmzKUbSrAkd1LXQVi55hzDFC2539Kh1j80OI6qHFd+KxTL3LOJkLCzOFBqaoubYkvLf7CCCqw==","signatures":[{"sig":"MEYCIQD0hcPNuYvQUHaEy36TzkzoTVV5eY1F36w3Xq6RMKBnIQIhAKuJPj68Waifr1ZhNWF9OkpECWzb9yAB68KDBHf1eKRG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291864},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"9cadafaeee0ed63d76c46c2fe36e79099bb7170d","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.13_1762505628467_0.055362020155001135","host":"s3://npm-registry-packages-npm-production"}},"0.3.14":{"name":"@intellectronica/ruler","version":"0.3.14","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.14","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"ef1d8c66fd89bbb0992334b1c51d4bef25364def","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.14.tgz","fileCount":61,"integrity":"sha512-SzUAD9t1AL3KlnUror4dKnqxj+Y5rFORhTvo/76bn1Zufss9b3k6a9whpofxrOyyU7UpHtQWD6rNgBmyYMymww==","signatures":[{"sig":"MEYCIQDl0RM2aodQdgoG3s9avdPn97KvAtMDY6A6/Q0HhfTgMQIhAIMW+xyoRxzeWpw3bgZYcaPIHt+kIEuUuVKRT3p78z0p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293474},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"21acd570fd049235a3b32949f51ee1151abb8dbc","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.14_1762698817844_0.1544047316516186","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"@intellectronica/ruler","version":"0.3.15","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.15","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"7c9b6ab05425674c98ecfea48a3623bcf8977558","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.15.tgz","fileCount":61,"integrity":"sha512-c4T1e2pUGRSlglJSmzUKMUmYOMhqk1LcSYcI6vi+LtVbHKmF8t6keVDLuRnKV1aMb9mDExTHe6dpwVuFsHL6jw==","signatures":[{"sig":"MEUCIBOuaWPj0LLUToOarLCjy92nerviKesXkJoxLsbCXdqBAiEA6Eh0tCxHHF40rICaIWFfRnPIjMYngDf0jrdTA70X6BE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293705},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"b9430415cb3e453734dca4f523f42aada559ae06","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.15_1763467239161_0.6783399480074188","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"@intellectronica/ruler","version":"0.3.16","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.16","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"fb41751925d9fe5f895637c363ef14cc0377fd81","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.16.tgz","fileCount":62,"integrity":"sha512-hKyIYm+sesB2jSgzGSp7DcH+H2n+LFTaz1lPqJplIagzZowkXxcX0/XZCfmv1NLIJuTkO34nZT1htY7sAi8NEw==","signatures":[{"sig":"MEUCIQCSXe2eDwayAgE8SNvZlfLrzUfzuUb8ZV1BSZDv/gnrYwIgR1XQoLclgEPT7JQNJukLkNTYwEfOHZ0xn4NgSV4or6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295875},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"d4c72f0fd2e93d9a8796858d48c9df3b827a8eb3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.16_1764318677518_0.648565061086237","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"@intellectronica/ruler","version":"0.3.17","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.17","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"14111af12adfd556705d288e386c8a36da79044c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.17.tgz","fileCount":62,"integrity":"sha512-ybiW8ZmhchLiNFZmX10af1p5HQmVov8O20yggOVgV3RtpdpxLpL4rCbr7gXzoE27i3Dhopfwe8EC/nrYya1EBA==","signatures":[{"sig":"MEUCIFGonwuvS7Bxo+uIoVrmgsJOOTz4sIhduDa1ply/tZP2AiEAonVdA8Z46IMXaFPWw5Tjoc3ptlvgJMoqV4nlr2vaf08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296367},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"6bfa011fb5baf5ca905b8329d9a1c0be75120403","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.17_1765266819542_0.8740098650908854","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"@intellectronica/ruler","version":"0.3.18","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.18","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"c993726a6ef9e0c967f48f683689e1e0dd587b7c","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.18.tgz","fileCount":62,"integrity":"sha512-X+GaRgqY6MTwEe6HhgtdSFliIWK+qoMdyP30Fkp5pKaYLvoB3/W9sRTXX7K7KMd0UNZuwNPfITQe264G23x03A==","signatures":[{"sig":"MEQCIGuR8li44l8f4MxiacMOnnT3uFqtW/RpawXnVQo3kpFmAiBTKuBT5ihZKqQXyMh1CQepWcn1JwakdphWS8upOZ4cOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299315},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"fad84a32f02ebaf25fcf9b59f0bfefebc74f3b82","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.18_1766176316642_0.10550912997096762","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"@intellectronica/ruler","version":"0.3.19","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.19","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"dbd3b4aa8545919191acfd4b5d532362a2e9d8a0","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.19.tgz","fileCount":62,"integrity":"sha512-uEBqDe8yGczUzJ+8zQi2+hO2Ue0VxKwLU05zcCramxshaHYCAgv+tqArI70zSdGkZOAFAG3BMcDKQ4hsHnAeZA==","signatures":[{"sig":"MEUCIQCcUwcuftkOJhSi+mqombvmGKg+dzmRWAaFbnzVS/dyigIgQFf0e82CPEd3oI4fnXFzeODvYKBNzRABKYmknbfBZ0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305823},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"5f5586cb1d4c21f9e05e8d15e87c43920fa2265a","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.19_1766565211581_0.016523056910445755","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"@intellectronica/ruler","version":"0.3.20","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.20","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"cf47a4bb564af1dd948249114b5990de89dffccc","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.20.tgz","fileCount":63,"integrity":"sha512-Ci6k4/UZlPf2tRDph0W3vPHoRdul30S94U7vaRCnDA4sbMF+6wcZ8Kfp0I/XiXbxm5dQNpzJwpXz8UCgXaUnRg==","signatures":[{"sig":"MEQCIFOG+FBC4L/AkAYyEKbIfUzMoem2GQ6KdZOe2rIxqzSNAiBtZg7Dy9bFhgj0PGFJA1K5orrJ9GUn7j9dB/qvfTtitg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316003},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"dcf8f9ba56927089489e5d74490e1d65ae0f4c1b","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.20_1766681349499_0.6072019599752614","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"@intellectronica/ruler","version":"0.3.21","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.21","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"7f35375ceb16661aa769d6aaaf124e21f338b609","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.21.tgz","fileCount":63,"integrity":"sha512-GajASs5WyaU6nv+PIh95OSP8GY+POj34wJ0Xg+cJRRivhm12/kjpZmSk3dpo2u7ndlQzcbzserVjIpUIUAI/oA==","signatures":[{"sig":"MEUCIBm+osgjiswbJ32eSXenFd367iG+vm96INPQTQ1/7BHEAiEA0XKOUnHDESS/fk5w7LzT08FEOg6X9FolaJPQY3MWm4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318491},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"c70d8b12840683e0f50596a578b6c58aa32edf43","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.21_1766853185966_0.570673521079367","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"@intellectronica/ruler","version":"0.3.22","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.22","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"0da3a2eb22bc0852cbb579309a1856facea10bab","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.22.tgz","fileCount":64,"integrity":"sha512-qVbaPrP2XzPjsQ4HcxuX9Ha8rma6rNGmJHhl56aeehgHgcpr16JJcKPyew9S1JdHfikmROvURW+Htq++iOHJyA==","signatures":[{"sig":"MEUCIBc4HYVu/y5QHWOm5yeYC5hSQUbxYsun5CIsoDRwC25CAiEAp3yvGxKLRmOrRRWD1OZsJMJ+JD9SM1vwqjHF6m1XZhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322321},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"fd209fc09116fd091d0608d666f4dd4367cfa031","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.22_1767976638172_0.41295263076019184","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"@intellectronica/ruler","version":"0.3.23","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.23","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"d283e2b451d8dc808b1299fc572c8d8334f709d5","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.23.tgz","fileCount":64,"integrity":"sha512-HjP4Dx0cAmpILoHJ0hJapuSUaxL3/VDXItU6NPg7kHLBFupUOVWU1wHELSiiin0bfq3hjQ318OypIl0C1v83Jg==","signatures":[{"sig":"MEUCIExs5zQeI85jrq8wCZN6+1ziDpULlkJ2f8BNZtLxGShyAiEAox33ohRsEbrEK7Di0Oz9XqToTvkt8JOgzufDB5EzT0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331552},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"0b7f340563d8b9815396e8ec68d2e8c1c9a21f48","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.23_1767982636492_0.9459943796914714","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"@intellectronica/ruler","version":"0.3.24","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.24","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"ada066bec911ebf2a3a6af480188dd2f92053dfa","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.24.tgz","fileCount":64,"integrity":"sha512-XRSe7oU4kFompyUrrtlhqhS7xZW5w3AxA95X4JdF8ehavjaR2TVkU4WqTMXgZ3n8UlouxhTeXT8GSTwfxmKsbg==","signatures":[{"sig":"MEYCIQCYfKrEGazFYuuuZZNBrzXI6kn2EEN/jtViO4pVZB5n4AIhAK1af3PDVY4RNhJxUDXpTFWGXxoPOkNTs6fbqbTlI5V9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333471},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"2be0f298893cc5da30c1a823edaf97e728616393","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.24_1768403895533_0.8318225707514459","host":"s3://npm-registry-packages-npm-production"}},"0.3.25":{"name":"@intellectronica/ruler","version":"0.3.25","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.25","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"b5395b30b245894115af28da1dc451b7d7f35247","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.25.tgz","fileCount":64,"integrity":"sha512-uWcxJH/zFw5xHQtrNcW9P9Vyb44GmOiO5wGLKgdQPQ0GWVKNmEes4hzH1CLM7WtrbU6Uc7unY5PJtKrv2r/BmA==","signatures":[{"sig":"MEQCIG+tb1pQICR+MzAcqEo7IYdZcp3Lfi08x3n9XZe4xiS+AiB8ysO8gxny2cbaPLwON1Co9SubuXUPhg17SyGhESUC4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333056},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"8ccb5533358e2c699e34480a8bedc9720697ca26","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.25_1768742924128_0.7492060779458187","host":"s3://npm-registry-packages-npm-production"}},"0.3.26":{"name":"@intellectronica/ruler","version":"0.3.26","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.26","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"07cb207e34d084cd45bcdeda0b7f966e3a2c682b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.26.tgz","fileCount":64,"integrity":"sha512-gBIh+S8OI2EMw7ktw1kbXREvugD3r2BJ0nQSKzYYDdWVOmN2XUQO3JTY/8fWk7UaZXPV3X1pRseNw3hvmcyWpQ==","signatures":[{"sig":"MEUCIQDAATFORZnAF0aPgzMlsW0r4fn0e1K2o2pORSCCWxXHsgIgc7mdPKWt2O4l7ON2oA5sHfVJWxtnVnhVFTfnv5u0IPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330654},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"77bed06c38e19ab479224ac11e4f4f183992fca4","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.26_1768814066744_0.6150766776881369","host":"s3://npm-registry-packages-npm-production"}},"0.3.27":{"name":"@intellectronica/ruler","version":"0.3.27","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.27","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"ac649e5535f8349284511cd732c01eae748a34c8","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.27.tgz","fileCount":65,"integrity":"sha512-WbmYCdcLyb5tbxT1X5J/iCioHUBMQiBLDdnANoFgxzQM2UMOs1uP1ptfIcSO/3c0ZsStxDBOaSK48w69g0ia5g==","signatures":[{"sig":"MEYCIQDOu5+rIi8hUb6EiejjHlh6aSzJfQT+g27CdZEgv1zTegIhAM5Ml1qHdc4qQYHWa8XY9xU6tOhJltx0wlM9lkLzBftQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335493},"main":"dist/lib.js","engines":{"node":">=18"},"gitHead":"64a8f7842bda34a022c6fb9e95a4a55e9035b88a","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.27_1768824671538_0.8870118791433079","host":"s3://npm-registry-packages-npm-production"}},"0.3.28":{"name":"@intellectronica/ruler","version":"0.3.28","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.28","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"a97c8ab143f31536bb9327ca22de471b53492205","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.28.tgz","fileCount":65,"integrity":"sha512-r7f8nDEbDPux77EMxl1w0oO8UAkCew3eO29PbDQQ47puDzl+FWOtZBhn3JXSDNUvMeL9S+27L24It6L5Q9bpIg==","signatures":[{"sig":"MEUCIBm8cdXEZs0pwsWkNjUD6p1d+j1p6eoO6W/fzGvf+MfkAiEA5Z5vkKOcogMSBCIcEmDJbioKUo/N0KthEVsf/1Itieo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335567},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"c849a9417d99eba521302064e3afbfa56762f686","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.28_1768830013851_0.21186818078426106","host":"s3://npm-registry-packages-npm-production"}},"0.3.29":{"name":"@intellectronica/ruler","version":"0.3.29","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.29","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"367ef7880485cf86320cadaab9e6490c4389ba23","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.29.tgz","fileCount":66,"integrity":"sha512-lq2eXTQ5adqBwq/JUuzgbpufpHEWGjmSneh7Vi12XNPWNenyUfNJwCvH5G2a4P4u4vaWhrf5IzF0IDzp63gzfg==","signatures":[{"sig":"MEUCIQD+kSf7wt/A5hjXv814ubrUhDI4xerecB8villabsfgDQIgJA30/6GuWFC9JcXNO7DT5O/mptbD3U6eVI8Npnj+xmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337471},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"57a52b5ec40899a5d889968388fa906c0de26d0c","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.29_1769789116915_0.2295600862914704","host":"s3://npm-registry-packages-npm-production"}},"0.3.30":{"name":"@intellectronica/ruler","version":"0.3.30","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.30","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"39992567bac10d34471751f65888304c2c6e630b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.30.tgz","fileCount":66,"integrity":"sha512-p/m8LZbVKzptJME3n6BseRVxPhAdgciG9x01nb9/WQov9nL7wEYG7TYNSXeoMj2DoxdKrhOUAqJdrx7TZpwuTw==","signatures":[{"sig":"MEQCIEA3L6JJXUtNgs345vjE9d0uOYbRCfB2yFNO7WLTa07HAiApJ4wV6e03Mr/RdrR5eCq37Yn4z+K1xOV6slssWe7MDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338874},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"4255811821cb0a27d459be8c2cad4e8913f3367d","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.30_1770193416850_0.36148770351287585","host":"s3://npm-registry-packages-npm-production"}},"0.3.31":{"name":"@intellectronica/ruler","version":"0.3.31","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.31","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"39574728e10cc2d2255ffe8121767e4f20ae3441","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.31.tgz","fileCount":66,"integrity":"sha512-VJJVHdel36sLUhSUqxW54K9nQopP74/lcnejw1kiyyV7haI74ya8adzHRNcB2inLyr9T/hkXhJAv4F/cXVv3xg==","signatures":[{"sig":"MEQCIA1EMoTg1WAALuxAte1zqBIIppN2Cy7cOMha3Nsp/NCOAiB0onAuH4JiYJZ/1HFoMkiPXXA93DmoBZeScDHh1esTLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340121},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"244f9c23ea8de6bb4f0524f552123eca0e89eb40","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.31_1770291227691_0.1358316806217621","host":"s3://npm-registry-packages-npm-production"}},"0.3.32":{"name":"@intellectronica/ruler","version":"0.3.32","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.32","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"9511e1adcb76b435c20de7a606486e2fc0c697a3","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.32.tgz","fileCount":66,"integrity":"sha512-JYqOFpbgNoiwgB2OF3utRYTNcmZQkn6fd71M+Tn9OIb4kiEwvbvhJBKwNGRaRFsIpn13JtnpMjabUI8eOP3q6g==","signatures":[{"sig":"MEUCIQCjDYEiioQ0fG+xjs7D/yQup3cqW1sqJbfS4TnbDMblzgIgJm77NL4Fv3u39sbREs2isk+GSAIAA+KkYAmCxdNCsx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340595},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"520318cba53bbf5f17c4a501590407775add4a25","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.32_1770448693743_0.16236086064139843","host":"s3://npm-registry-packages-npm-production"}},"0.3.33":{"name":"@intellectronica/ruler","version":"0.3.33","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.33","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"c0d92ffaf5b319ad06499ffe9d98cd0e09971a71","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.33.tgz","fileCount":66,"integrity":"sha512-hdUgB3941RmTYVxjDUC0NSfo2iuKiDXqkLxtG+nojXHKQheSjqp8qbVNg5257osn4CBEVx5vxHvDpnrKv8jN5w==","signatures":[{"sig":"MEYCIQC6I2WOxFKZUUot/ALCEpfmp3A9i8s0/r33TKr62WaErwIhAKWcz9SAJszC5nKLbmLyjuArJ5MJ8FEQKTGPdW9OraOg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342176},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"fcd47508fb06f17489f395f7cbf8077ee323b21e","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.33_1770641926819_0.39329970178418816","host":"s3://npm-registry-packages-npm-production"}},"0.3.34":{"name":"@intellectronica/ruler","version":"0.3.34","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.34","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"562837381db026e0a6a8fbe65996a9dac5f60d67","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.34.tgz","fileCount":66,"integrity":"sha512-qTZIIiAiWBH2GrgW9pCItn5EQFDuv30zLvXCKLFyL1633FYDbQFhYdcdxZVXKHTQ+w5aoHDNfap6mSLrZavTvw==","signatures":[{"sig":"MEUCICk/aWoe7pnQV/HGW1LDbbAUMAq0E8P06mO3xSjSoijjAiEAvFUQsKpjiWkK/rudAr+5L3W+TDg9IkzxD175mf1zFrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342182},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"9ece8173896046b33f3fff3d163ec00016fbbcae","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.34_1770820914625_0.5978158782777852","host":"s3://npm-registry-packages-npm-production"}},"0.3.35":{"name":"@intellectronica/ruler","version":"0.3.35","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.35","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"82dc0afd0c8bc531c624d41cdc23ed1fcd5c2f29","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.35.tgz","fileCount":66,"integrity":"sha512-yaGgnb83SaX4QGZjVWjuM0fLo5J2NbVufiQRmx5IcFoFUipogKQ7HCEbbCQdpYg18p0LIIJHeInzMTwzBPPcnA==","signatures":[{"sig":"MEQCIEGnQ8pSummRwJ3iqutJ5Vv0R68T2lbjqnjNg7s3Q95OAiAyjvVcrF152z8jCxUkupzcsH5YtuiqU3f7HXIWllE6zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343755},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"c69c968cc242cfebe830d6aa1e3e2cca399dd7d6","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.35_1771515986491_0.5638849742681675","host":"s3://npm-registry-packages-npm-production"}},"0.3.36":{"name":"@intellectronica/ruler","version":"0.3.36","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.36","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"42d0d7f04e7d94add3c5eb804e484ab57e1f4d04","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.36.tgz","fileCount":66,"integrity":"sha512-OmdXFUJN6AmCcpXD9/hncPH9NEe0y5U3mpntErJ3ZvcpSXAI8bIMhNTNJGwJUNdUu5UUXf1QcoYu1HNP+bt7zQ==","signatures":[{"sig":"MEQCIBJs1ojdfrygta2gY9KvJ8MTZDDTcIYSXhjIb0J/FetgAiAQE57ZxOwMk+YHpC3fwDyMaQ3tN6yl+LYPOIqWAnfijQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344088},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"07b20a118fda0a6e9d67a65c05932f6058dea3c3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.36_1773218879227_0.3973868055547627","host":"s3://npm-registry-packages-npm-production"}},"0.3.37":{"name":"@intellectronica/ruler","version":"0.3.37","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.37","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"d2e5f05486cff2f2a19c4fdda118315068d9ad4b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.37.tgz","fileCount":66,"integrity":"sha512-ZGBRHrwLugGyzMl5dY3TSmnuzqjuBmuy8msSj/37I7iyOi8sIhuBgGG+/EIE2ku94TuZDRQR3h5zFpKMQiUerw==","signatures":[{"sig":"MEQCIB38hT13+E8+1OliDyKQfgfxOJbdnzBWm3gOQbC3Roq9AiB4xNFnaS69/gOWm6a5jf7lJXl+4UBTWnIokO1hYFue8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346809},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"49985d8eda2a5b50466df641d2ff3a556d6a2349","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.37_1773224037995_0.33890920345520503","host":"s3://npm-registry-packages-npm-production"}},"0.3.38":{"name":"@intellectronica/ruler","version":"0.3.38","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.38","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"a4b3961c660666815dbd9201effbc07890918c6b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.38.tgz","fileCount":66,"integrity":"sha512-WRtJyp3umqwg8s5niY+wnxjN9w1jY38Dpuj237049gi15We0itb5ENQ/K/f2sL+Hhq7Ij53Tqn4O6l85DMGHIg==","signatures":[{"sig":"MEYCIQCms2B3hsoin8xIhVOpqzCcM6i6TJeukE1zfjCUYL58qwIhAIU8+dsRXBmurK1kzGbXkTlEtgYApDi1wOzLMWoFT5MY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349840},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"a5f8a54267623635aefca721744e61e74ef2c04a","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.38_1774849750792_0.08043382453771097","host":"s3://npm-registry-packages-npm-production"}},"0.3.39":{"name":"@intellectronica/ruler","version":"0.3.39","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.39","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"ba10f657202ecd3ebc49e19ed4478f37333f3ea8","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.39.tgz","fileCount":68,"integrity":"sha512-l6pZLpMon/cZAOSLujK5FZNo/E4VWSh7lySfsmGGEEnb7ibshzaVCJQeFqEfq7unw2Wx19UlyWDM8RNZp2HCSA==","signatures":[{"sig":"MEYCIQDoT3NYMUseD0IKYWd//d0IH81vtNSSKR0KIzNC4LVctgIhAP+2ajT4VVe0MMFHPufZyRHoKptnK4I6eKd4tNWz7kib","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":385488},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"def16975e438acdb2b7f418beeb111bed0a98503","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.39_1777486841474_0.6547919078111559","host":"s3://npm-registry-packages-npm-production"}},"0.3.40":{"name":"@intellectronica/ruler","version":"0.3.40","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.40","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"b7f8734c5614c1f919e3d0bc19499ed18d5a0880","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.40.tgz","fileCount":68,"integrity":"sha512-67WZG6RNI/VFqPvqDkM6JQXRh57wde/PrL22yMmpjT0iOUHOS1cDHksTTvGffovvt7Posb6jv3P9F3s7H35wuA==","signatures":[{"sig":"MEUCIQDeDI8OG3cRc+Bg/CoxqO7OFHZECbSaWzHfBF8JJ2HpcgIge2tIGS4N5bKREL3hpcBpXIS/l4bVuc1K76zyhJ44c0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391503},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"e905229ed5821a810c492bb29119700ce34e70ab","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.40_1777656557734_0.5805474265199435","host":"s3://npm-registry-packages-npm-production"}},"0.3.41":{"name":"@intellectronica/ruler","version":"0.3.41","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.41","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"0cc05f81f9104b92bb4bb2f356b9e0f420ce775b","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.41.tgz","fileCount":68,"integrity":"sha512-NQDQzgDYlL9EqaMP+K9HX1RgJtWSq4kykDyA2fS+Yd23NfZKo7t1CO5jXAbI4mf3svDPk9KKl6UrfO7JeDISuQ==","signatures":[{"sig":"MEQCIFdEAAfdKI7/8ccc34cwfjNJchZvM389UMAbFV1rpBWiAiAajmpkHVxKylMCOOo4/FzCLUSNiqt2r4bUlm2JrsinKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":395062},"main":"dist/lib.js","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"74999af03aa1aea3d3856c63202130a5a2c4e27d","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"intellectronica","email":"eleanor@intellectronica.net"},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"10.8.2","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"18.20.8","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","jest-util":"^29.7.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.41_1779033062704_0.5264251724405289","host":"s3://npm-registry-packages-npm-production"}},"0.3.42":{"name":"@intellectronica/ruler","version":"0.3.42","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.42","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"979c99f260e56c484a637ebc3cd19fddbe4eb470","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.42.tgz","fileCount":135,"integrity":"sha512-TDGqqRL79j+5NrJMJsH/RsC9jf0E8K562ppcOn3c850SQNUA0A10enTo+IQO7A+IYIr1xviAQnpDcCAoa8OWfA==","signatures":[{"sig":"MEUCIQDZd9YNcwmB7TtIMF/zFA+awbNfQhQ+xQw1S8YYGzJ0dwIgWFiFzrCvEZE7E8X9nQtHTw1ntDDZX57wOGO279BO4zQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@intellectronica%2fruler@0.3.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":465398},"main":"dist/lib.js","types":"dist/lib.d.ts","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"db6220dca26b501289428a8c64ba4620d2d36ac4","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest --coverage","build":"tsc","format":"prettier --write package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","prepare":"npm run build","test:watch":"jest --watch","format:check":"prettier --check package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e0f1e165-7d96-4177-bd31-a430a30908f5"}},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"11.13.0","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.1.1","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","jest-util":"^29.7.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.42_1780158931193_0.6310885742782979","host":"s3://npm-registry-packages-npm-production"}},"0.3.43":{"name":"@intellectronica/ruler","version":"0.3.43","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","_id":"@intellectronica/ruler@0.3.43","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"homepage":"https://ai.intellectronica.net/ruler","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"bin":{"ruler":"dist/cli/index.js"},"dist":{"shasum":"20e2c3170992c7abd86326bd66a9e83ee2201f35","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.43.tgz","fileCount":135,"integrity":"sha512-/2WHKDN0UsV3yKWUfU7VhD7kR815p+GMeSbue0fMfbpZZv2PqMAwfmTMHA858mTEF2s9ejofNRJCZTenxB11lQ==","signatures":[{"sig":"MEYCIQDvZgZ+5sfKNfsyLa/L+Hw0g5FOcCvkFjVOJnCAmdLoqgIhAPceBqksOSVIyzq02vmTQ99Do74PUxG4qkuzA3/XsJD9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@intellectronica%2fruler@0.3.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":490886},"main":"dist/lib.js","types":"dist/lib.d.ts","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"gitHead":"571d127f444f2f4b35455b6f36cdcdf6d4e2b024","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","test":"jest --coverage","build":"tsc","format":"prettier --write package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","test:watch":"jest --watch","format:check":"prettier --check package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","test:coverage":"jest --coverage","prepublishOnly":"npm run build","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose","check:package-lock":"node -e \"const pkg=require('./package.json'); const lock=require('./package-lock.json'); const root=lock.packages?.['']; if (lock.version !== pkg.version || root?.version !== pkg.version) { console.error('package-lock.json version metadata must match package.json version'); process.exit(1); }\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e0f1e165-7d96-4177-bd31-a430a30908f5"}},"repository":{"url":"git+https://github.com/intellectronica/ruler.git","type":"git"},"_npmVersion":"11.13.0","description":"Ruler — apply the same rules to all coding agents","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.1.12","yargs":"^18.0.0","js-yaml":"^4.2.0","@iarna/toml":"^2.2.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.38.0","ts-jest":"^29.4.5","prettier":"^3.6.2","jest-util":"^29.7.0","typescript":"^5.9.3","@types/jest":"^29.5.14","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.46.2","@types/iarna__toml":"^2.0.5","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/ruler_0.3.43_1781964384440_0.30253746846808127","host":"s3://npm-registry-packages-npm-production"}},"0.3.44":{"name":"@intellectronica/ruler","version":"0.3.44","description":"Ruler — apply the same rules to all coding agents","main":"dist/lib.js","types":"dist/lib.d.ts","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\"","format":"prettier --write package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","format:check":"prettier --check package.json package-lock.json tsconfig.json README.md \".github/**/*.yml\" \"src/**/*.{ts,tsx,json,md}\" \"tests/**/*.{ts,tsx,json,md}\"","test":"jest --coverage","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest tests/e2e/ruler.integration.test.ts --verbose","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","build":"npm run clean && tsc","check:package-lock":"node -e \"const pkg=require('./package.json'); const lock=require('./package-lock.json'); const root=lock.packages?.['']; if (lock.version !== pkg.version || root?.version !== pkg.version) { console.error('package-lock.json version metadata must match package.json version'); process.exit(1); }\"","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/intellectronica/ruler.git"},"keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"author":{"name":"Eleanor Berger"},"license":"MIT","bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"homepage":"https://ai.intellectronica.net/ruler","engines":{"node":"^20.19.0 || ^22.12.0 || >=23"},"bin":{"ruler":"dist/cli/index.js"},"devDependencies":{"@types/iarna__toml":"^2.0.5","@types/jest":"^29.5.14","@types/js-yaml":"^4.0.9","@types/node":"^24.9.2","@types/yargs":"^17.0.34","@typescript-eslint/eslint-plugin":"^8.46.2","@typescript-eslint/parser":"^8.46.2","eslint":"^9.38.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","jest":"^29.7.0","jest-util":"^29.7.0","prettier":"^3.6.2","ts-jest":"^29.4.5","typescript":"^5.9.3","typescript-eslint":"^8.46.2"},"dependencies":{"@iarna/toml":"^2.2.5","js-yaml":"^4.2.0","yargs":"^18.0.0","zod":"^4.1.12"},"gitHead":"658d1bc168e3496015aa5c262361cce818fabcf9","_id":"@intellectronica/ruler@0.3.44","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-OjJCdZleUQSLapy2HuLdDNpbyneArwYT9i9QP7mskrREPqBEB3JoDiZ8xded3Q7oA7/s5Pgn8Qo6UiGEsYZIVQ==","shasum":"c501664baae4739d9266757a7789f9592b2d1932","tarball":"https://registry.npmjs.org/@intellectronica/ruler/-/ruler-0.3.44.tgz","fileCount":135,"unpackedSize":493764,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@intellectronica%2fruler@0.3.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB/QFPrLJaaq0NVKcLI/Ndf6Bal4IuL6WZTXp5/PkenTAiEAyBQuPVQHgKPoN9ITqtRQqIp71UPw6OrOFp9C35V8hKY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e0f1e165-7d96-4177-bd31-a430a30908f5"}},"directories":{},"maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ruler_0.3.44_1782824192629_0.8875068577353136"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-21T15:44:16.730Z","modified":"2026-06-30T12:56:33.087Z","0.1.0":"2025-05-21T15:44:16.983Z","0.1.1":"2025-05-21T16:03:29.350Z","0.1.2":"2025-05-22T13:41:48.753Z","0.1.3":"2025-05-23T16:11:55.800Z","0.1.4":"2025-05-23T16:37:39.689Z","0.2.0":"2025-05-26T15:29:19.639Z","0.2.1":"2025-05-29T09:06:08.637Z","0.2.2":"2025-06-07T21:31:34.908Z","0.2.3":"2025-06-19T18:08:23.700Z","0.2.4":"2025-06-25T08:32:01.874Z","0.2.5":"2025-06-25T14:19:46.228Z","0.2.6":"2025-07-03T08:03:49.439Z","0.2.7":"2025-07-06T15:13:46.415Z","0.2.8":"2025-07-10T07:11:35.201Z","0.2.9":"2025-07-10T11:48:03.350Z","0.2.10":"2025-07-11T16:07:18.269Z","0.2.11":"2025-07-19T09:19:31.313Z","0.2.12":"2025-07-23T09:09:51.093Z","0.2.13":"2025-07-23T13:41:16.291Z","0.2.14":"2025-07-23T15:39:11.226Z","0.2.15":"2025-07-24T12:08:28.617Z","0.2.16":"2025-07-26T08:31:03.346Z","0.2.17":"2025-07-27T14:22:46.228Z","0.2.18":"2025-07-31T09:01:53.683Z","0.2.19":"2025-08-02T05:44:52.444Z","0.3.0":"2025-08-26T07:25:18.418Z","0.3.1":"2025-08-26T21:39:11.162Z","0.3.2":"2025-08-27T18:31:01.474Z","0.3.3":"2025-08-28T09:46:07.440Z","0.3.4":"2025-08-29T08:00:07.402Z","0.3.5":"2025-08-30T11:19:16.927Z","0.3.6":"2025-09-01T07:34:39.400Z","0.3.7":"2025-09-09T07:16:55.476Z","0.3.8":"2025-09-09T11:20:32.718Z","0.3.9":"2025-09-19T15:49:37.254Z","0.3.10":"2025-09-20T21:02:38.831Z","0.3.11":"2025-10-26T13:25:25.359Z","0.3.12":"2025-11-04T16:52:26.074Z","0.3.13":"2025-11-07T08:53:48.677Z","0.3.14":"2025-11-09T14:33:38.071Z","0.3.15":"2025-11-18T12:00:39.348Z","0.3.16":"2025-11-28T08:31:17.737Z","0.3.17":"2025-12-09T07:53:39.729Z","0.3.18":"2025-12-19T20:31:56.793Z","0.3.19":"2025-12-24T08:33:31.728Z","0.3.20":"2025-12-25T16:49:09.632Z","0.3.21":"2025-12-27T16:33:06.113Z","0.3.22":"2026-01-09T16:37:18.311Z","0.3.23":"2026-01-09T18:17:16.698Z","0.3.24":"2026-01-14T15:18:15.668Z","0.3.25":"2026-01-18T13:28:44.300Z","0.3.26":"2026-01-19T09:14:26.886Z","0.3.27":"2026-01-19T12:11:11.669Z","0.3.28":"2026-01-19T13:40:13.986Z","0.3.29":"2026-01-30T16:05:17.063Z","0.3.30":"2026-02-04T08:23:36.981Z","0.3.31":"2026-02-05T11:33:47.826Z","0.3.32":"2026-02-07T07:18:13.887Z","0.3.33":"2026-02-09T12:58:46.974Z","0.3.34":"2026-02-11T14:41:54.770Z","0.3.35":"2026-02-19T15:46:26.630Z","0.3.36":"2026-03-11T08:47:59.361Z","0.3.37":"2026-03-11T10:13:58.137Z","0.3.38":"2026-03-30T05:49:10.947Z","0.3.39":"2026-04-29T18:20:41.626Z","0.3.40":"2026-05-01T17:29:17.884Z","0.3.41":"2026-05-17T15:51:02.889Z","0.3.42":"2026-05-30T16:35:31.324Z","0.3.43":"2026-06-20T14:06:24.587Z","0.3.44":"2026-06-30T12:56:32.773Z"},"bugs":{"url":"https://github.com/intellectronica/ruler/issues"},"author":{"name":"Eleanor Berger"},"license":"MIT","homepage":"https://ai.intellectronica.net/ruler","keywords":["ai","developer-tools","copilot","codex","claude","cursor","aider","config","rules","automation"],"repository":{"type":"git","url":"git+https://github.com/intellectronica/ruler.git"},"description":"Ruler — apply the same rules to all coding agents","maintainers":[{"name":"intellectronica","email":"eleanor@intellectronica.net"}],"readme":"# Ruler: Centralise Your AI Coding Assistant Instructions\n\n<table style=\"width:100%\">\n  <tr>\n    <td style=\"vertical-align: top;\">\n      <p>\n        <a href=\"https://github.com/intellectronica/ruler/actions/workflows/ci.yml\"><img src=\"https://github.com/intellectronica/ruler/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n        <a href=\"https://www.npmjs.com/package/@intellectronica/ruler\"><img src=\"https://badge.fury.io/js/%40intellectronica%2Fruler.svg\" alt=\"npm version\"></a>\n        <img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\">\n      </p>\n      <ul>\n        <li><strong>GitHub</strong>: <a href=\"https://github.com/intellectronica/ruler\">intellectronica/ruler</a></li>\n        <li><strong>NPM</strong>: <a href=\"https://www.npmjs.com/package/@intellectronica/ruler\">@intellectronica/ruler</a></li>\n      </ul>\n      <hr />\n      <p>\n        <em>Animation by <a href=\"https://isaacflath.com/\">Isaac Flath</a> of <strong><a href=\"https://elite-ai-assisted-coding.dev/\">Elite AI-Assisted Coding</a></strong></em> ➡︎\n      </p>\n    </td>\n    <td style=\"vertical-align: top; width:33%;\">\n      <img src=\"https://raw.githubusercontent.com/intellectronica/ruler/main/img/ruler-short.gif\" alt=\"Ruler demo\" style=\"width:300px; height:auto; display:block;\" />\n    </td>\n  </tr>\n</table>\n\n---\n\n> **Beta Research Preview**\n>\n> - Please test this version carefully in your environment\n> - Report issues at https://github.com/intellectronica/ruler/issues\n\n## Why Ruler?\n\nManaging instructions across multiple AI coding tools becomes complex as your team grows. Different agents (GitHub Copilot, Claude, Cursor, Aider, etc.) require their own configuration files, leading to:\n\n- **Inconsistent guidance** across AI tools\n- **Duplicated effort** maintaining multiple config files\n- **Context drift** as project requirements evolve\n- **Onboarding friction** for new AI tools\n- **Complex project structures** requiring context-specific instructions for different components\n\nRuler solves this by providing a **single source of truth** for all your AI agent instructions, automatically distributing them to the right configuration files. With support for **nested rule loading**, Ruler can handle complex project structures with context-specific instructions for different components.\n\n## Core Features\n\n- **Centralised Rule Management**: Store all AI instructions in a dedicated `.ruler/` directory using Markdown files\n- **Nested Rule Loading**: Support complex project structures with multiple `.ruler/` directories for context-specific instructions\n- **Automatic Distribution**: Ruler applies these rules to configuration files of supported AI agents\n- **Targeted Agent Configuration**: Fine-tune which agents are affected and their specific output paths via `ruler.toml`\n- **MCP Server Propagation**: Manage and distribute Model Context Protocol (MCP) server settings\n- **`.gitignore` Automation**: Keeps generated agent config files out of version control automatically\n- **Simple CLI**: Easy-to-use commands for initialising and applying configurations\n\n## Supported AI Agents\n\n| Agent                  | Rules File(s)                                  | MCP Configuration / Notes                        | Skills Support / Location | Subagents Support / Location |\n| ---------------------- | ---------------------------------------------- | ------------------------------------------------ | ------------------------- | ---------------------------- |\n| AGENTS.md              | `AGENTS.md`                                    | (pseudo-agent ensuring root `AGENTS.md` exists)  | -                         | -                            |\n| GitHub Copilot         | `AGENTS.md`                                    | `.mcp.json`                                      | `.claude/skills/`         | `.github/agents/`            |\n| Claude Code            | `CLAUDE.md`                                    | `.mcp.json`                                      | `.claude/skills/`         | `.claude/agents/`            |\n| OpenAI Codex CLI       | `AGENTS.md`                                    | `.codex/config.toml`                             | `.agents/skills/`         | `.codex/agents/` (`.toml`)   |\n| Pi Coding Agent        | `AGENTS.md`                                    | -                                                | `.pi/skills/`             | -                            |\n| Jules                  | `AGENTS.md`                                    | -                                                | -                         | -                            |\n| Cursor                 | `AGENTS.md`                                    | `.cursor/mcp.json`                               | `.cursor/skills/`         | `.cursor/agents/`            |\n| Windsurf               | `AGENTS.md`                                    | `.windsurf/mcp_config.json`                      | `.windsurf/skills/`       | -                            |\n| Cline                  | `.clinerules`                                  | -                                                | -                         | -                            |\n| Crush                  | `CRUSH.md`                                     | `.crush.json`                                    | -                         | -                            |\n| Amp                    | `AGENTS.md`                                    | -                                                | `.agents/skills/`         | -                            |\n| Antigravity            | `.agent/rules/ruler.md`                        | -                                                | `.agent/skills/`          | -                            |\n| Amazon Q CLI           | `.amazonq/rules/ruler_q_rules.md`              | `.amazonq/mcp.json`                              | -                         | -                            |\n| Aider                  | `AGENTS.md`, `.aider.conf.yml`                 | `.mcp.json`                                      | -                         | -                            |\n| Firebase Studio        | `.idx/airules.md`                              | `.idx/mcp.json`                                  | -                         | -                            |\n| Open Hands             | `.openhands/microagents/repo.md`               | `config.toml`                                    | -                         | -                            |\n| Gemini CLI             | `AGENTS.md`                                    | `.gemini/settings.json`                          | `.gemini/skills/`         | -                            |\n| Junie                  | `.junie/guidelines.md`                         | `.junie/mcp/mcp.json`                            | `.junie/skills/`          | -                            |\n| AugmentCode            | `.augment/rules/ruler_augment_instructions.md` | -                                                | -                         | -                            |\n| Kilo Code              | `AGENTS.md`                                    | `.kilocode/mcp.json`                             | `.claude/skills/`         | -                            |\n| OpenCode               | `AGENTS.md`                                    | `opencode.json`                                  | `.opencode/skills/`       | -                            |\n| Goose                  | `.goosehints`                                  | -                                                | `.agents/skills/`         | -                            |\n| Qwen Code              | `AGENTS.md`                                    | `.qwen/settings.json`                            | -                         | -                            |\n| RooCode                | `AGENTS.md`                                    | `.roo/mcp.json`                                  | `.roo/skills/`            | -                            |\n| Zed                    | `AGENTS.md`                                    | `.zed/settings.json` (project root, never $HOME) | `.agents/skills/`         | -                            |\n| Trae AI                | `.trae/rules/project_rules.md`                 | -                                                | -                         | -                            |\n| Warp                   | `WARP.md`                                      | -                                                | -                         | -                            |\n| Kiro                   | `.kiro/steering/ruler_kiro_instructions.md`    | `.kiro/settings/mcp.json`                        | -                         | -                            |\n| Firebender             | `firebender.json`                              | `firebender.json` (rules and MCP in same file)   | -                         | -                            |\n| Factory Droid          | `AGENTS.md`                                    | `.factory/mcp.json`                              | `.factory/skills/`        | -                            |\n| Mistral Vibe           | `AGENTS.md`                                    | `.vibe/config.toml`                              | `.vibe/skills/`           | -                            |\n| JetBrains AI Assistant | `.aiassistant/rules/AGENTS.md`                 | -                                                | -                         | -                            |\n\n## Getting Started\n\n### Installation\n\nRequires Node.js `^20.19.0 || ^22.12.0 || >=23`.\n\n**Global Installation (Recommended for CLI use):**\n\n```bash\nnpm install -g @intellectronica/ruler\n```\n\n**Using `npx` (for one-off commands):**\n\n```bash\nnpx @intellectronica/ruler apply\n```\n\n### Project Initialisation\n\n1. Navigate to your project's root directory\n2. Run `ruler init`\n3. This creates:\n\n- `.ruler/` directory\n- `.ruler/AGENTS.md`: The primary starter Markdown file for your rules\n- `.ruler/ruler.toml`: The main configuration file for Ruler (now contains sample MCP server sections; legacy `.ruler/mcp.json` no longer scaffolded)\n- (Optional legacy fallback) If you previously used `.ruler/instructions.md`, it is still respected when `AGENTS.md` is absent. (The prior runtime warning was removed.)\n\nAdditionally, you can create a global configuration to use when no local `.ruler/` directory is found:\n\n```bash\nruler init --global\n```\n\nThe global configuration will be created to `$XDG_CONFIG_HOME/ruler` (default: `~/.config/ruler`).\n\n## Core Concepts\n\n### The `.ruler/` Directory\n\nThis is your central hub for all AI agent instructions:\n\n- **Primary File Order & Precedence**:\n  1. A repository root `AGENTS.md` (outside `.ruler/`) if present (highest precedence, prepended)\n  2. `.ruler/AGENTS.md` (new default starter file)\n  3. Legacy `.ruler/instructions.md` (only if `.ruler/AGENTS.md` absent; no longer emits a deprecation warning)\n  4. Remaining discovered `.md` files under `.ruler/` (and subdirectories) in sorted order\n- **Rule Files (`*.md`)**: Discovered recursively from `.ruler/` or `$XDG_CONFIG_HOME/ruler` and concatenated in the order above\n- **Concatenation Marker**: Each file's content is prepended with `<!-- Source: <relative_path_to_md_file> -->` for traceability\n- **`ruler.toml`**: Master configuration for Ruler's behavior, agent selection, output paths, and MCP server settings\n- **`mcp.json`**: (Legacy, deprecated) Shared MCP server settings - no longer scaffolded but still supported for backward compatibility\n\nThis ordering lets you keep a short, high-impact root `AGENTS.md` (e.g. executive project summary) while housing detailed guidance inside `.ruler/`.\n\n### Nested Rule Loading\n\nRuler now supports **nested rule loading** with the `--nested` flag, enabling context-specific instructions for different parts of your project:\n\n```\nproject/\n├── .ruler/           # Global project rules\n│   ├── AGENTS.md\n│   └── coding_style.md\n├── src/\n│   └── .ruler/       # Component-specific rules\n│       └── api_guidelines.md\n├── tests/\n│   └── .ruler/       # Test-specific rules\n│       └── testing_conventions.md\n└── docs/\n    └── .ruler/       # Documentation rules\n        └── writing_style.md\n```\n\n**How it works:**\n\n- Discover all `.ruler/` directories in the project hierarchy\n- Load and concatenate rules from each directory in order\n- Decide whether nested mode is enabled using the following precedence:\n  1. `ruler apply --nested` (or `--no-nested`) takes top priority\n  2. `nested = true` in `ruler.toml`\n  3. Default to disabled when neither option is provided\n- When a run is nested, downstream configs are forced to keep `nested = true`. If a child config attempts to disable it, Ruler keeps nested processing active and emits a warning in the logs.\n- Nested processing carries forward each directory's own MCP bundle and configuration settings so that generated files remain scoped to their source directories while being normalized back to the project root.\n\n> [!CAUTION]\n> Nested mode is experimental and may change in future releases. The CLI logs this warning the first time a nested run is detected so you know the behavior may evolve.\n\n**Perfect for:**\n\n- Monorepos with multiple services\n- Projects with distinct components (frontend/backend)\n- Teams needing different instructions for different areas\n- Complex codebases with varying standards\n\n### Best Practices for Rule Files\n\n**Granularity**: Break down complex instructions into focused `.md` files:\n\n- `coding_style.md`\n- `api_conventions.md`\n- `project_architecture.md`\n- `security_guidelines.md`\n\n**Example rule file (`.ruler/python_guidelines.md`):**\n\n```markdown\n# Python Project Guidelines\n\n## General Style\n\n- Follow PEP 8 for all Python code\n- Use type hints for all function signatures and complex variables\n- Keep functions short and focused on a single task\n\n## Error Handling\n\n- Use specific exception types rather than generic `Exception`\n- Log errors effectively with context\n\n## Security\n\n- Always validate and sanitize user input\n- Be mindful of potential injection vulnerabilities\n```\n\n## Usage: The `apply` Command\n\n### Primary Command\n\n```bash\nruler apply [options]\n```\n\nThe `apply` command searches upward from `--project-root` (default: current directory) for the nearest `.ruler/` directory. If no local `.ruler/` directory is found, it falls back to `$XDG_CONFIG_HOME/ruler`.\n\n### Options\n\n| Option                         | Description                                                               |\n| ------------------------------ | ------------------------------------------------------------------------- |\n| `--project-root <path>`        | Project root path (default: current directory).                           |\n| `--agents <agent1,agent2,...>` | Comma-separated agent names to target (see supported list below).         |\n| `--config <path>`              | Custom `ruler.toml` path.                                                 |\n| `--mcp` / `--with-mcp`         | Enable applying MCP server configurations (default: true).                |\n| `--no-mcp`                     | Disable applying MCP server configurations.                               |\n| `--mcp-overwrite`              | Overwrite native MCP config instead of merging.                           |\n| `--gitignore`                  | Enable automatic .gitignore updates (default: true).                      |\n| `--no-gitignore`               | Disable automatic .gitignore updates.                                     |\n| `--gitignore-local`            | Write managed ignore entries to `.git/info/exclude` instead.              |\n| `--nested`                     | Enable nested rule loading (default: inherit from config or disabled).    |\n| `--no-nested`                  | Disable nested rule loading even if `nested = true` in config.            |\n| `--backup`                     | Enable creation of `.bak` backup files (default: from config or enabled). |\n| `--no-backup`                  | Disable creation of `.bak` backup files.                                  |\n| `--skills`                     | Enable skills support (experimental, default: enabled).                   |\n| `--no-skills`                  | Disable skills support.                                                   |\n| `--subagents`                  | Enable subagents support (experimental, default: disabled).               |\n| `--no-subagents`               | Disable subagents support.                                                |\n| `--dry-run`                    | Preview changes without writing files.                                    |\n| `--local-only`                 | Skip `$XDG_CONFIG_HOME` when looking for configuration.                   |\n| `--verbose` / `-v`             | Display detailed output during execution.                                 |\n\n### Common Examples\n\n**Apply rules to all configured agents:**\n\n```bash\nruler apply\n```\n\n**Apply rules only to GitHub Copilot and Claude:**\n\n```bash\nruler apply --agents copilot,claude\n```\n\n**Apply rules only to Firebase Studio:**\n\n```bash\nruler apply --agents firebase\n```\n\n**Apply rules only to Warp:**\n\n```bash\nruler apply --agents warp\n```\n\n**Apply rules only to Trae AI:**\n\n```bash\nruler apply --agents trae\n```\n\n**Apply rules only to RooCode:**\n\n```bash\nruler apply --agents roo\n```\n\n**Use a specific configuration file:**\n\n```bash\nruler apply --config ./team-configs/ruler.frontend.toml\n```\n\n**Apply rules with verbose output:**\n\n```bash\nruler apply --verbose\n```\n\n**Apply rules but skip MCP and .gitignore updates:**\n\n```bash\nruler apply --no-mcp --no-gitignore\n```\n\n## Usage: The `revert` Command\n\nThe `revert` command safely undoes all changes made by `ruler apply`, restoring your project to its pre-ruler state. It intelligently restores files from backups (`.bak` files) when available, or removes generated files that didn't exist before.\n\n### Why Revert is Needed\n\nWhen experimenting with different rule configurations or switching between projects, you may want to:\n\n- **Clean slate**: Remove all ruler-generated files to start fresh\n- **Restore originals**: Revert modified files back to their original state\n- **Selective cleanup**: Remove configurations for specific agents only\n- **Safe experimentation**: Try ruler without fear of permanent changes\n\n### Primary Command\n\n```bash\nruler revert [options]\n```\n\n### Options\n\n| Option                         | Description                                                                                                                                                                                                                                                                                                                    |\n| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `--project-root <path>`        | Path to your project's root (default: current directory)                                                                                                                                                                                                                                                                       |\n| `--agents <agent1,agent2,...>` | Comma-separated list of agent names to revert (agentsmd, aider, amazonqcli, amp, antigravity, augmentcode, claude, cline, codex, copilot, crush, cursor, factory, firebase, firebender, gemini-cli, goose, jetbrains-ai, jules, junie, kilocode, kiro, mistral, opencode, openhands, pi, qwen, roo, trae, warp, windsurf, zed) |\n| `--config <path>`              | Path to a custom `ruler.toml` configuration file                                                                                                                                                                                                                                                                               |\n| `--keep-backups`               | Keep backup files (.bak) after restoration (default: false)                                                                                                                                                                                                                                                                    |\n| `--dry-run`                    | Preview changes without actually reverting files                                                                                                                                                                                                                                                                               |\n| `--verbose` / `-v`             | Display detailed output during execution                                                                                                                                                                                                                                                                                       |\n| `--local-only`                 | Only search for local .ruler directories, ignore global config                                                                                                                                                                                                                                                                 |\n\n### Common Examples\n\n**Revert all ruler changes:**\n\n```bash\nruler revert\n```\n\n**Preview what would be reverted (dry-run):**\n\n```bash\nruler revert --dry-run\n```\n\n**Revert only specific agents:**\n\n```bash\nruler revert --agents claude,copilot\n```\n\n**Revert with detailed output:**\n\n```bash\nruler revert --verbose\n```\n\n**Keep backup files after reverting:**\n\n```bash\nruler revert --keep-backups\n```\n\n## Configuration (`ruler.toml`) in Detail\n\n### Location\n\nDefaults to `.ruler/ruler.toml` in the project root. Override with `--config` CLI option.\n\n### Complete Example\n\n```toml\n# Default agents to run when --agents is not specified\n# Uses case-insensitive substring matching\ndefault_agents = [\"copilot\", \"claude\", \"aider\"]\n\n# --- Global MCP Server Configuration ---\n[mcp]\n# Enable/disable MCP propagation globally (default: true)\nenabled = true\n# Global merge strategy: 'merge' or 'overwrite' (default: 'merge')\nmerge_strategy = \"merge\"\n\n# --- MCP Server Definitions ---\n[mcp_servers.filesystem]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/project\"]\n\n[mcp_servers.git]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-git\", \"--repository\", \".\"]\n\n[mcp_servers.remote_api]\nurl = \"https://api.example.com\"\n\n[mcp_servers.remote_api.headers]\nAuthorization = \"Bearer your-token\"\n\n# --- Global .gitignore Configuration ---\n[gitignore]\n# Enable/disable automatic .gitignore updates (default: true)\nenabled = true\n# Write managed entries to .git/info/exclude instead of .gitignore (default: false)\nlocal = false\n\n# --- Backup Configuration ---\n[backup]\n# Enable/disable creation of .bak backup files (default: true)\nenabled = true\n\n# --- Agent-Specific Configurations ---\n[agents.copilot]\nenabled = true\n\n[agents.claude]\nenabled = true\noutput_path = \"CLAUDE.md\"\n\n[agents.aider]\nenabled = true\noutput_path_instructions = \"AGENTS.md\"\noutput_path_config = \".aider.conf.yml\"\n\n# OpenAI Codex CLI agent and MCP config\n[agents.codex]\nenabled = true\noutput_path = \"AGENTS.md\"\noutput_path_config = \".codex/config.toml\"\n\n# Agent-specific MCP configuration for Codex CLI\n[agents.codex.mcp]\nenabled = true\nmerge_strategy = \"merge\"\n\n[agents.firebase]\nenabled = true\noutput_path = \".idx/airules.md\"\n\n[agents.gemini-cli]\nenabled = true\n\n[agents.jules]\nenabled = true\n\n[agents.junie]\nenabled = true\noutput_path = \".junie/guidelines.md\"\n\n[agents.junie.mcp]\nenabled = true\nmerge_strategy = \"merge\"\n\n# Agent-specific MCP configuration\n[agents.cursor.mcp]\nenabled = true\nmerge_strategy = \"merge\"\n\n# Disable specific agents\n[agents.windsurf]\nenabled = false\n\n[agents.kilocode]\nenabled = true\noutput_path = \"AGENTS.md\"\n\n[agents.warp]\nenabled = true\noutput_path = \"WARP.md\"\n```\n\n### Configuration Precedence\n\n1. **CLI flags** (e.g., `--agents`, `--no-mcp`, `--mcp-overwrite`, `--no-gitignore`)\n2. **Settings in `ruler.toml`** (`default_agents`, specific agent settings, global sections)\n3. **Ruler's built-in defaults** (all agents enabled, standard output paths, MCP enabled with 'merge')\n\n## MCP (Model Context Protocol) Server Configuration\n\nMCP provides broader context to AI models through server configurations. Ruler can manage and distribute these settings across compatible agents.\n\n### TOML Configuration (Recommended)\n\nYou can now define MCP servers directly in `ruler.toml` using the `[mcp_servers.<name>]` syntax:\n\n```toml\n# Global MCP behavior\n[mcp]\nenabled = true\nmerge_strategy = \"merge\"  # or \"overwrite\"\n\n# Local (stdio) server\n[mcp_servers.filesystem]\ncommand = \"npx\"\nargs = [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/project\"]\n\n[mcp_servers.filesystem.env]\nAPI_KEY = \"your-api-key\"\n\n# Remote server\n[mcp_servers.search]\nurl = \"https://mcp.example.com\"\n\n[mcp_servers.search.headers]\nAuthorization = \"Bearer your-token\"\n\"X-API-Version\" = \"v1\"\n```\n\nAgent-specific MCP servers can be defined under `[agents.<agent>.mcp_servers.<name>]`.\nThey are applied only to that agent and override global servers with the same name:\n\n```toml\n[agents.cursor.mcp_servers.slack]\nurl = \"https://mcp.slack.com/mcp\"\nauth = { CLIENT_ID = \"CURSOR_ID\" }\n\n[agents.claude.mcp_servers.slack]\ntype = \"http\"\nurl = \"https://mcp.slack.com/mcp\"\noauth = { clientId = \"CLAUDE_ID\", callbackPort = 3118 }\n```\n\n### Legacy `.ruler/mcp.json` (Deprecated)\n\nFor backward compatibility, you can still use the JSON format; a warning is issued encouraging migration to TOML. The file is no longer created during `ruler init`.\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/path/to/project\"\n      ]\n    },\n    \"git\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-git\", \"--repository\", \".\"]\n    }\n  }\n}\n```\n\n### Configuration Precedence\n\nWhen both TOML and JSON configurations are present:\n\n1. **TOML servers take precedence** over JSON servers with the same name\n2. **Servers are merged** from both sources (unless using overwrite strategy)\n3. **Deprecation warning** is shown encouraging migration to TOML (warning shown once per run)\n\n### Server Types\n\n**Local/stdio servers** require a `command` field:\n\n```toml\n[mcp_servers.local_server]\ncommand = \"node\"\nargs = [\"server.js\"]\n\n[mcp_servers.local_server.env]\nDEBUG = \"1\"\n```\n\n**Remote servers** require a `url` field (headers optional; bearer Authorization token auto-extracted for OpenHands when possible):\n\n```toml\n[mcp_servers.remote_server]\nurl = \"https://api.example.com\"\n\n[mcp_servers.remote_server.headers]\nAuthorization = \"Bearer token\"\n```\n\nRuler uses this configuration with the `merge` (default) or `overwrite` strategy, controlled by `ruler.toml` or CLI flags.\n\n**Home Directory Safety:** Ruler never writes MCP configuration files outside your project root. Any historical references to user home directories (e.g. `~/.codeium/windsurf/mcp_config.json` or `~/.zed/settings.json`) have been removed; only project-local paths are targeted.\n\n**Note for OpenAI Codex CLI:** To apply the local Codex CLI MCP configuration, set the `CODEX_HOME` environment variable to your project’s `.codex` directory:\n\n```bash\nexport CODEX_HOME=\"$(pwd)/.codex\"\n```\n\n## Skills Support (Experimental)\n\n**⚠️ Experimental Feature**: Skills support is currently experimental. Skills are only propagated to agents with native skills support; other agents are skipped with a warning.\n\nRuler can manage and propagate skills to supported AI agents. Skills are stored in `.ruler/skills/` and are automatically distributed to compatible agents when you run `ruler apply`.\n\n### How It Works\n\nSkills are specialized knowledge packages that extend AI agent capabilities with domain-specific expertise, workflows, or tool integrations. Ruler discovers skills in your `.ruler/skills/` directory and propagates them to compatible agents:\n\n- **Agents with native skills support**: Skills are copied directly to each agent's native skills directory:\n  - **Claude Code**: `.claude/skills/`\n  - **GitHub Copilot**: `.claude/skills/` (shared with Claude Code)\n  - **Kilo Code**: `.claude/skills/` (shared with Claude Code)\n  - **OpenAI Codex CLI**: `.agents/skills/` (shared with Goose, Amp, and Zed)\n  - **OpenCode**: `.opencode/skills/`\n  - **Pi Coding Agent**: `.pi/skills/`\n  - **Goose**: `.agents/skills/`\n  - **Amp**: `.agents/skills/` (shared with Goose)\n  - **Zed**: `.agents/skills/` (shared with Goose)\n  - **Antigravity**: `.agent/skills/`\n  - **Factory Droid**: `.factory/skills/`\n  - **Mistral Vibe**: `.vibe/skills/`\n  - **Roo Code**: `.roo/skills/`\n  - **Gemini CLI**: `.gemini/skills/`\n  - **Junie**: `.junie/skills/`\n  - **Cursor**: `.cursor/skills/`\n  - **Windsurf**: `.windsurf/skills/`\n\n### Skills Directory Structure\n\nSkills can be organized flat or nested:\n\n```\n.ruler/skills/\n├── my-skill/\n│   ├── SKILL.md           # Required: skill instructions/knowledge\n│   ├── helper.py          # Optional: additional resources (scripts)\n│   └── reference.md       # Optional: additional resources (docs)\n└── another-skill/\n    └── SKILL.md\n```\n\nEach skill must contain:\n\n- `SKILL.md` - Primary skill file with instructions or knowledge base\n\nSkills can optionally include additional resources like:\n\n- Markdown files with supplementary documentation\n- Python, JavaScript, or other scripts\n- Configuration files or data\n\n### Configuration\n\nSkills support is **enabled by default** but can be controlled via:\n\n**CLI flags:**\n\n```bash\n# Enable skills (default)\nruler apply --skills\n\n# Disable skills\nruler apply --no-skills\n```\n\n**Configuration in `ruler.toml`:**\n\n```toml\n[skills]\nenabled = true  # or false to disable\n```\n\n### Non-native Agents\n\nIf you run Ruler for agents that do not support native skills, Ruler logs a warning and skips skills propagation for those agents.\n\n### `.gitignore` Integration\n\nWhen skills support is enabled and gitignore integration is active, Ruler automatically adds:\n\n- `.claude/skills/` (for Claude Code, GitHub Copilot, and Kilo Code)\n- `.agents/skills/` (for OpenAI Codex CLI, Goose, Amp, and Zed)\n- `.opencode/skills/` (for OpenCode)\n- `.pi/skills/` (for Pi Coding Agent)\n- `.agent/skills/` (for Antigravity)\n- `.factory/skills/` (for Factory Droid)\n- `.vibe/skills/` (for Mistral Vibe)\n- `.roo/skills/` (for Roo Code)\n- `.gemini/skills/` (for Gemini CLI)\n- `.junie/skills/` (for Junie)\n- `.cursor/skills/` (for Cursor)\n- `.windsurf/skills/` (for Windsurf)\n\nto your `.gitignore` file within the managed Ruler block.\n\n### Requirements\n\n- **For agents with native skills support** (Claude Code, GitHub Copilot, Kilo Code, OpenAI Codex CLI, OpenCode, Pi Coding Agent, Goose, Amp, Zed, Antigravity, Factory Droid, Mistral Vibe, Roo Code, Gemini CLI, Junie, Cursor, Windsurf): No additional requirements.\n\n### Validation\n\nRuler validates discovered skills and issues warnings for:\n\n- Missing required file (`SKILL.md`)\n- Invalid directory structures (directories without `SKILL.md` and no sub-skills)\n\nWarnings don't prevent propagation but help identify potential issues.\n\n### Dry-Run Mode\n\nTest skills propagation without making changes:\n\n```bash\nruler apply --dry-run\n```\n\nThis shows which skills would be copied.\n\n### Example Workflow\n\n```bash\n# 1. Add a skill to your project\nmkdir -p .ruler/skills/my-skill\ncat > .ruler/skills/my-skill/SKILL.md << 'EOF'\n# My Custom Skill\n\nThis skill provides specialized knowledge for...\n\n## Usage\n\nWhen working on this project, always follow these guidelines:\n- Use TypeScript for all new code\n- Write tests for all features\n- Follow the existing code style\nEOF\n\n# 2. Apply to all agents (skills enabled by default)\nruler apply\n\n# 3. Skills are now available to compatible agents:\n#    - Claude Code, GitHub Copilot & Kilo Code: .claude/skills/my-skill/\n#    - OpenAI Codex CLI: .agents/skills/my-skill/ (shared with Goose, Amp & Zed)\n#    - OpenCode: .opencode/skills/my-skill/\n#    - Pi Coding Agent: .pi/skills/my-skill/\n#    - Goose, Amp, Zed & OpenAI Codex CLI: .agents/skills/my-skill/\n#    - Antigravity: .agent/skills/my-skill/\n#    - Factory Droid: .factory/skills/my-skill/\n#    - Mistral Vibe: .vibe/skills/my-skill/\n#    - Roo Code: .roo/skills/my-skill/\n#    - Gemini CLI: .gemini/skills/my-skill/\n#    - Junie: .junie/skills/my-skill/\n#    - Cursor: .cursor/skills/my-skill/\n#    - Windsurf: .windsurf/skills/my-skill/\n```\n\n## Subagents Support (Experimental)\n\n> **⚠️ Experimental:** Subagents support is experimental and behavior may change in future releases.\n\nRuler can distribute named, delegatable **subagents** from a single source of truth (`.ruler/agents/`) to each agent's native subagent location. Each source file is one Markdown file with YAML frontmatter; Ruler transforms it into the format the target agent expects.\n\n### How It Works\n\nFor agents with a native subagent primitive, Ruler writes one file per subagent into the target directory:\n\n| Agent            | Target location                      | Format                                   |\n| ---------------- | ------------------------------------ | ---------------------------------------- |\n| Claude Code      | `.claude/agents/<relative-path>.md`  | Markdown + YAML frontmatter              |\n| Cursor           | `.cursor/agents/<relative-path>.md`  | Markdown + YAML frontmatter              |\n| OpenAI Codex CLI | `.codex/agents/<relative-path>.toml` | TOML (one self-contained file per agent) |\n| GitHub Copilot   | `.github/agents/<relative-path>.md`  | Markdown + YAML frontmatter              |\n\nOther agents (Windsurf, RooCode, Aider, Gemini CLI, …) do not yet have a comparable native subagent primitive and are skipped with a warning. Subagent propagation will be added when those agents ship a comparable file format.\n\n### Source Format\n\nAuthor each subagent as `.ruler/agents/<name>.md` (nested folders are supported and preserved in outputs):\n\n```markdown\n---\nname: code-reviewer\ndescription: Use PROACTIVELY after a feature/fix is implemented. Reviews against SOLID/DRY/KISS. Read-only.\ntools: [Read, Grep, Glob, Bash]\nmodel: inherit\nreadonly: true\nis_background: false\n---\n\n# Code Reviewer\n\nYou operate in a fresh context window with read-only access. Your job is to\nreview the diff and surrounding code against the design principles and return\na structured verdict.\n```\n\n**Required frontmatter fields:**\n\n| Field         | Type   | Notes                                                                      |\n| ------------- | ------ | -------------------------------------------------------------------------- |\n| `name`        | string | Must match the filename stem (`code-reviewer.md` → `name: code-reviewer`). |\n| `description` | string | When the parent agent should delegate to this subagent.                    |\n\n**Optional frontmatter fields:**\n\n| Field           | Type     | Used by                                                                         | Default behavior                                   |\n| --------------- | -------- | ------------------------------------------------------------------------------- | -------------------------------------------------- |\n| `tools`         | string[] | Claude (verbatim), Copilot (mapped to aliases)                                  | Cursor / Codex ignore; omitted if absent.          |\n| `model`         | string   | All four targets                                                                | Cursor defaults to `inherit`; others omit.         |\n| `readonly`      | boolean  | Cursor (verbatim), Codex (`sandbox_mode`), Copilot (`disable-model-invocation`) | Defaults to `false` for Cursor; omitted otherwise. |\n| `is_background` | boolean  | Cursor only                                                                     | Defaults to `false` for Cursor.                    |\n\nFor GitHub Copilot, source `tools` (Claude vocabulary: `Read`, `Grep`, `Bash`, …) are translated to Copilot's aliases (`read`, `search`, `execute`, …). Tools that do not have a Copilot equivalent are dropped silently on a normal apply; pass `--verbose` (or use `--dry-run` to preview) to see which tools were dropped.\n\n### Configuration\n\nSubagent propagation is **disabled by default**. Opt in via CLI flag or `ruler.toml`:\n\n```bash\nruler apply --subagents   # enable subagent propagation for one run\n```\n\n```toml\n# .ruler/ruler.toml\n[agents]\nenabled = true\n# include_in_rules = true  # also append .ruler/agents/*.md into top-level CLAUDE.md / AGENTS.md (default: false)\n# cleanup_orphaned = true   # allow ruler to delete stale native subagent dirs (default: false)\n```\n\n> **Note:** the previous release used `[subagents]` for these keys. `[subagents]` is still honored as a fallback with a deprecation warning, and will be removed in a future release. Please migrate to `[agents]`.\n\n`[agents] enabled` controls only native subagent propagation from `.ruler/agents/`. It is independent from `[agents.<name>] enabled` (which toggles per-coding-agent output like `CLAUDE.md` / `AGENTS.md`).\n\nCLI flags take precedence over `ruler.toml`, which takes precedence over the default (disabled).\n\n### Validation\n\nSource files are validated at discovery time:\n\n- Files without YAML frontmatter are skipped with a warning.\n- Files missing required `name` or `description` are skipped with a warning.\n- Files where `name` does not match the filename stem are skipped with a warning.\n- Unknown frontmatter keys are dropped (not errored).\n\n### Dry-Run Mode\n\nUse `--dry-run` to preview which files would be written without touching disk.\n\n### `.gitignore` Integration\n\nWhen subagents are enabled, the four target directories are added to the Ruler-managed block of `.gitignore`:\n\n```\n.claude/agents/\n.cursor/agents/\n.codex/agents/\n.github/agents/\n```\n\nUse `--no-gitignore` to opt out.\n\n### Cleanup\n\nSubagent propagation does **not** currently have explicit `ruler revert` support. By default, `ruler apply` is non-destructive and leaves existing native subagent directories untouched when subagents are disabled or missing. To allow automatic cleanup of stale generated directories, set `[agents] cleanup_orphaned = true`, then disable subagents (`[agents] enabled = false` or `--no-subagents`) and run `ruler apply`.\n\n### Example Workflow\n\n```bash\n# 1. Author a subagent in your project\nmkdir -p .ruler/agents\ncat > .ruler/agents/code-reviewer.md << 'EOF'\n---\nname: code-reviewer\ndescription: Reviews changes against SOLID/DRY/KISS\ntools: [Read, Grep, Glob]\nreadonly: true\n---\n\nYou review code changes for quality.\nEOF\n\n# 2. Opt subagents in (default is disabled — see [agents] section above)\necho -e \"\\n[agents]\\nenabled = true\" >> .ruler/ruler.toml\n\n# 3. Apply\nruler apply\n\n# 4. The subagent is now available in each agent's native location:\n#    - Claude Code:  .claude/agents/code-reviewer.md\n#    - Cursor:       .cursor/agents/code-reviewer.md\n#    - Codex CLI:    .codex/agents/code-reviewer.toml\n#    - GitHub Copilot: .github/agents/code-reviewer.md\n```\n\n### Limitations\n\n- **No explicit revert command.** Optional cleanup is available via `[agents] cleanup_orphaned = true` and a subsequent `apply`.\n- **Atomic replace, not merge.** Ruler regenerates each agent's subagent directory from the source on every apply. Manual edits to generated files will be overwritten.\n- **No support yet for agents without a native subagent primitive.** Windsurf, RooCode, Aider, Gemini CLI, and others are skipped with a warning. Propagation will be added when those agents ship a comparable file format.\n\n## `.gitignore` Integration\n\nRuler automatically manages your `.gitignore` file to keep generated agent configuration files out of version control.\n\n### How it Works\n\n- Creates or updates `.gitignore` in your project root\n- Adds paths to a managed block marked with `# START Ruler Generated Files` and `# END Ruler Generated Files`\n- Preserves existing content outside this block\n- Sorts paths alphabetically and uses relative POSIX-style paths\n\n### Example `.gitignore` Section (sample - actual list depends on enabled agents)\n\n```gitignore\n# Your existing rules\nnode_modules/\n*.log\n\n# START Ruler Generated Files\n.aider.conf.yml\n.clinerules\nAGENTS.md\nCLAUDE.md\n# END Ruler Generated Files\n\ndist/\n```\n\n### Control Options\n\n- **CLI flags**: `--gitignore`, `--no-gitignore`, `--gitignore-local`, `--no-gitignore-local`\n- **Configuration**: `[gitignore].enabled` and `[gitignore].local` in `ruler.toml`\n- **Default**: enabled\n\n### Backup Control\n\n- **CLI flags**: `--backup`, `--no-backup`\n- **Configuration**: `[backup].enabled` in `ruler.toml`\n- **Default**: enabled\n\n## Practical Usage Scenarios\n\n### Scenario 1: Getting Started Quickly\n\n```bash\n# Initialize Ruler in your project\ncd your-project\nruler init\n\n# Edit the generated files\n# - Add your coding guidelines to .ruler/AGENTS.md (or keep adding additional .md files)\n# - Customize .ruler/ruler.toml if needed\n\n# Apply rules to all AI agents\nruler apply\n```\n\n### Scenario 2: Working with worktrees\n\nWhen using the default `git worktree add` command (which is also run by agent apps such as Claude Code or Codex through the interface), the gitignored files are not copied over. You will need to ask your agent to run `ruler apply` at the start of every session.\n\nAs an alternative you can commit your default agents files to source control.\n\n```toml\n# .ruler/ruler.toml\ndefault_agents = [\"claude\", \"codex\"]\n\n[gitignore]\nenabled = false\n```\n\n```ignore\n# Do not ignore AGENTS.md and CLAUDE.md\n/.claude/*\n!/.claude/skills/\n/.codex/*\n!/.codex/skills/\n/.cursor\n/AGENTS.md.bak\n/CLAUDE.md.bak\n```\n\nTo avoid having other contributors commit instructions outside of .ruler you can setup a github action to check there is no diff when running `ruler apply` in CI.\n\n```yml\n# .github/workflows/ruler-check.yml\n\n# Verifies the committed agent files (AGENTS.md, CLAUDE.md, skills) match the .ruler/ source.\n# They are committed so a fresh clone/worktree has guidance immediately; this guards against drift.\nname: Ruler guidance in sync\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n      - 'build/**'\n\npermissions:\n  contents: read\n\nenv:\n  CI_NODE_VERSION: 24.15.0\n\njobs:\n  ruler-check:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6\n\n      - uses: pnpm/action-setup@v5\n      - name: Setup Node\n        uses: actions/setup-node@v6\n        with:\n          node-version: ${{ env.CI_NODE_VERSION }}\n          cache: 'pnpm'\n\n      - name: Verify committed agent files match .ruler/\n        run: |\n          pnpm dlx @intellectronica/ruler apply --no-gitignore --no-mcp\n          DRIFT=\"$(git status --porcelain -- AGENTS.md CLAUDE.md .claude/skills .codex/skills)\"\n          if [ -n \"$DRIFT\" ]; then\n            echo \"::error::Committed agent files are out of sync with .ruler/. Run 'pnpm dlx @intellectronica/ruler apply --no-gitignore --no-mcp' and commit the result.\"\n            echo \"$DRIFT\"\n            git --no-pager diff -- AGENTS.md CLAUDE.md .claude/skills .codex/skills\n            exit 1\n          fi\n          echo \"Agent files are in sync with .ruler/.\"\n```\n\n### Scenario 3: Complex Projects with Nested Rules\n\nFor large projects with multiple components or services, enable nested rule loading so each directory keeps its own rules and MCP bundle:\n\n```bash\n# Set up nested .ruler directories\nmkdir -p src/.ruler tests/.ruler docs/.ruler\n\n# Add component-specific instructions\necho \"# API Design Guidelines\" > src/.ruler/api_rules.md\necho \"# Testing Best Practices\" > tests/.ruler/test_rules.md\necho \"# Documentation Standards\" > docs/.ruler/docs_rules.md\n```\n\n```toml\n# .ruler/ruler.toml\nnested = true\n```\n\n```bash\n# The CLI inherits nested mode from ruler.toml\nruler apply --verbose\n\n# Override from the CLI at any time\nruler apply --no-nested\n```\n\nThis creates context-specific instructions for different parts of your project while maintaining global rules in the root `.ruler/` directory. Nested runs automatically keep every nested config enabled even if a child tries to disable it.\n\n> [!NOTE]\n> The CLI prints \"Nested mode is experimental and may change in future releases.\" the first time nested processing runs. Expect refinements in future versions.\n\n### Scenario 4: Team Standardization\n\n1. Create `.ruler/coding_standards.md`, `.ruler/api_usage.md`\n2. Commit the `.ruler` directory to your repository\n3. Team members pull changes and run `ruler apply` to update their local AI agent configurations\n\n### Scenario 5: Project-Specific Context for AI\n\n1. Detail your project's architecture in `.ruler/project_overview.md`\n2. Describe primary data structures in `.ruler/data_models.md`\n3. Run `ruler apply` to help AI tools provide more relevant suggestions\n\n### Integration with NPM Scripts\n\n```json\n{\n  \"scripts\": {\n    \"ruler:apply\": \"ruler apply\",\n    \"dev\": \"npm run ruler:apply && your_dev_command\",\n    \"precommit\": \"npm run ruler:apply\"\n  }\n}\n```\n\n### Integration with GitHub Actions\n\n```yaml\n# .github/workflows/ruler-check.yml\nname: Check Ruler Configuration\non:\n  pull_request:\n    paths: ['.ruler/**']\n\njobs:\n  check-ruler:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '20'\n          cache: 'npm'\n\n      - name: Install Ruler\n        run: npm install -g @intellectronica/ruler\n\n      - name: Apply Ruler configuration\n        run: ruler apply --no-gitignore\n\n      - name: Check for uncommitted changes\n        run: |\n          if [[ -n $(git status --porcelain) ]]; then\n            echo \"::error::Ruler configuration is out of sync!\"\n            echo \"Please run 'ruler apply' locally and commit the changes.\"\n            exit 1\n          fi\n```\n\n## Troubleshooting\n\n### Common Issues\n\n**\"Cannot find module\" errors:**\n\n- Ensure Ruler is installed globally: `npm install -g @intellectronica/ruler`\n- Or use `npx @intellectronica/ruler`\n\n**Permission denied errors:**\n\n- On Unix systems, you may need `sudo` for global installation\n\n**Agent files not updating:**\n\n- Check if the agent is enabled in `ruler.toml`\n- Verify agent isn't excluded by `--agents` flag\n- Use `--verbose` to see detailed execution logs\n\n**Configuration validation errors:**\n\n- Ruler now validates `ruler.toml` format and will show specific error details\n- Check that all configuration values match the expected types and formats\n\n### Debug Mode\n\nUse `--verbose` flag to see detailed execution logs:\n\n```bash\nruler apply --verbose\n```\n\nThis shows:\n\n- Configuration loading details\n- Agent selection logic\n- File processing information\n- MCP configuration steps\n\n## FAQ\n\n**Q: Can I use different rules for different agents?**\nA: Currently, all agents receive the same concatenated rules. For agent-specific instructions, include sections in your rule files like \"## GitHub Copilot Specific\" or \"## Aider Configuration\".\n\n**Q: How do I set up different instructions for different parts of my project?**\nA: Enable nested mode either by setting `nested = true` in `ruler.toml` or by passing `ruler apply --nested`. The CLI inherits the config setting by default, but `--no-nested` always wins if you need to opt out for a run. Nested mode keeps loading rules (and MCP settings) from every `.ruler/` directory in the hierarchy, forces child configs to remain nested, and logs \"Nested mode is experimental and may change in future releases.\" if any nested processing occurs.\n\n**Q: How do I temporarily disable Ruler for an agent?**\nA: Set `enabled = false` in `ruler.toml` under `[agents.agentname]`, or use `--agents` flag to specify only the agents you want.\n\n**Q: What happens to my existing agent configuration files?**\nA: Ruler creates backups with `.bak` extension before overwriting any existing files.\n\n**Q: Can I run Ruler in CI/CD pipelines?**\nA: Yes! Use `ruler apply --no-gitignore` in CI to avoid modifying `.gitignore`. See the GitHub Actions example above.\n\n**Q: How do I migrate from older versions using `instructions.md`?**\nA: Simply rename `.ruler/instructions.md` to `.ruler/AGENTS.md` (recommended). If you keep the legacy file and omit `AGENTS.md`, Ruler will still use it (without emitting the old deprecation warning). Having both causes `AGENTS.md` to take precedence; the legacy file is still concatenated afterward.\n\n**Q: How does OpenHands MCP propagation classify servers?**\nA: Local stdio servers become `stdio_servers`. Remote URLs containing `/sse` are classified as `sse_servers`; others become `shttp_servers`. Bearer tokens in an `Authorization` header are extracted into `api_key` where possible.\n\n**Q: Where is Zed configuration written now?**\nA: Ruler writes `.zed/settings.json` inside the project root (not the user home dir) and transforms MCP server definitions to Zed's `context_servers` format including `source: \"custom\"`.\n\n**Q: What changed about MCP initialization?**\nA: `ruler init` now only adds example MCP server sections to `ruler.toml` instead of creating `.ruler/mcp.json`. The JSON file is still consumed if present, but TOML servers win on name conflicts.\n\n**Q: Is Kiro supported?**\nA: Yes. Kiro receives concatenated rules at `.kiro/steering/ruler_kiro_instructions.md`.\n\n## Development\n\n### Setup\n\n```bash\ngit clone https://github.com/intellectronica/ruler.git\ncd ruler\nnpm install\nnpm run build\n```\n\n### Testing\n\n```bash\n# Run all tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests in watch mode\nnpm run test:watch\n```\n\n### Code Quality\n\n```bash\n# Run linting\nnpm run lint\n\n# Run formatting\nnpm run format\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Ensure all tests pass\n6. Submit a pull request\n\nFor bugs and feature requests, please [open an issue](https://github.com/intellectronica/ruler/issues).\n\n## License\n\nMIT\n\n---\n\n© Eleanor Berger  \n[ai.intellectronica.net](https://ai.intellectronica.net/)\n","readmeFilename":"README.md"}