{"_id":"@atelierai/rasen","_rev":"7-ac46e82a231dcc543833de274f49e302","name":"@atelierai/rasen","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.1":{"name":"@atelierai/rasen","version":"0.1.1","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.1","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"3e477ffcf4fbc4c4117ab9c8a1649160b8b38d88","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.1.tgz","fileCount":459,"integrity":"sha512-F8unW3v6hw1ARC75olRghSDDeprnwp+vsuYQbPJFUCnItRlJYaFRl7QdC9LHfjPHKk7+QIJVfgGWIJwP6YzVmA==","signatures":[{"sig":"MEYCIQD1E+2oyvL7d2WbLwovEnL6Y1f6MaXRQkI7WVOuKRm60QIhALKp6qGJTIAeS9qgQDbYWjngzW0+NAy8//jlPSoLTWAK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2363902},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"13dccf3c3f4aed6329ef7b49e9a369a50df796e4","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.8.2","chalk":"^5.5.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.1_1783679440497_0.18836738254160146","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atelierai/rasen","version":"0.1.2","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.2","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"ff444118370caa01eba68154eac055a257a81a54","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.2.tgz","fileCount":481,"integrity":"sha512-ectYZXufbDJ/u+An/JhsuW5AQSqZka9z1jHSG7k0hDB2BmcGNPAzVEeFDQm5B4/1BoU0lQjuX2jstJ79vT+Eig==","signatures":[{"sig":"MEYCIQDScjJaS5m08fBGDUdE7wKF2KbmwfJfxrCsopFOclEtwwIhANCbYmZ6URUsetXkgn3RpeJX2BJEl2OU5AvQe/tgOWPg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2534727},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"e81c9eed30d3fa61476ec87ef291cccfc8efdc1d","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.8.2","chalk":"^5.5.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.2_1783702480819_0.06983121885260246","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atelierai/rasen","version":"0.1.3","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.3","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"a6a1793ac2f5ef7b53085d54d6797a266b7d9638","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.3.tgz","fileCount":499,"integrity":"sha512-pEG1Z+HREwKvRc6v7SozUTxw6s57G02c0poVwchr2iwaPOZkn5r4hsVcK7Ex6MM8WHZ3XfmX+WwoHUwlqQeEhw==","signatures":[{"sig":"MEQCIEhMreJT8baq/T1TnYces10rwd5AXur5r1FRxUfIpMhlAiAixSbVLgCkGApXrebSrWWkeMn+ZHW78EM5XD5R0UBMVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2634635},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"f6e417b6402d89d60481a6ed673183203a1a2672","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.8.2","chalk":"^5.5.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.3_1783944014503_0.5100395044175106","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atelierai/rasen","version":"0.1.4","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.4","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"c9c4f868edadb593271fa4fc4c2d695ea6e07f87","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.4.tgz","fileCount":521,"integrity":"sha512-7XkKWhxOfRNodOihQ3aXp7Li/za2jnDE/COlNFkdAHpClBJbKNPT8g4TEv7Wi6Gx4aCE6ToJwLzN4knWs8fvTw==","signatures":[{"sig":"MEYCIQDU4S+EFZnC7rUZvGB2dX7NoSYeyYGZjFjy+QkWw6VQ4gIhANhpRddAWQ/DLR3KjCJqXb6MEQK9xydPrkYZ+UfuyTYU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2749554},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"999b18c18bdff508c3f1cfd3d9cbc3ee41d02a17","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.8.2","chalk":"^5.5.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.4_1784356572181_0.3330865415311359","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atelierai/rasen","version":"0.1.5","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.5","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"ea17676d25cedc998af55266c3a507e73a53cdb8","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.5.tgz","fileCount":775,"integrity":"sha512-W2pKPz+v/MiEP3yHxP0h0I4Vv00U3SFUnjV+hENiiBUVx8kAM1lMTab6S3ctTKiGwxi862k/WRXIaiaFb0ZLCA==","signatures":[{"sig":"MEUCIF/OXtuMlrYyVimM2yBBuYBPAJppI3bDt0/qQnrS4a8WAiEAmSRGoTlW/91v+SpwXiF2I6y+CawJrbTm/OwvIbqxDbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5925639},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"609a547f4770a0cf286713e92f4220dfb1358c86","scripts":{"dev":"tsc --watch","lint":"eslint src/ test/ vitest.config.ts vitest.setup.ts","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","check:release":"node scripts/release-contract.mjs","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:paired-pack":"node scripts/paired-pack-check.mjs","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.9.0","chalk":"^5.5.0","fzstd":"^0.1.1","cli-width":"^4.1.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","canonicalize":"^3.0.0","jsonc-parser":"^3.3.1","string-width":"^8.2.2","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1","node-sqlite3-wasm":"^0.8.59","toml-eslint-parser":"^1.0.3","string-width-legacy":"npm:string-width@4.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.5_1785263367430_0.282917570959321","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atelierai/rasen","version":"0.1.6","keywords":["rasen","specs","cli","ai","development"],"author":{"name":"Sayo"},"license":"MIT","_id":"@atelierai/rasen@0.1.6","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"homepage":"https://github.com/DumoeDss/rasen","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"bin":{"rasen":"bin/rasen.js"},"dist":{"shasum":"49f5df19b649b0a7196aac08005d64c4a4bcf6f6","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.6.tgz","fileCount":805,"integrity":"sha512-I9RQr6Gm/zUIjY4IVzZlMy1Obc0TPVgY8QS/XBlx1U2FadZjGHl40sOHlLcV2z/4XA1iMfHZoutVkVVrqe8YpQ==","signatures":[{"sig":"MEUCIGrBDyPYZgQfwgiswDJ8VX73lnAU8cVCjm0VOR76iXKqAiEAmSgCGivp+mLOVRoi11Ad60xTDWIl4AojzPjijbQLkoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6368103},"type":"module","engines":{"node":">=20.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7006b0e771369b940810a6772f1b20e62edcf77a","scripts":{"dev":"tsc --watch","lint":"eslint src/ test/ vitest.config.ts vitest.setup.ts","test":"vitest run","build":"node build.js","dev:cli":"pnpm build && node bin/rasen.js","prepare":"pnpm run build","test:ui":"vitest --ui","test:watch":"vitest","postinstall":"node scripts/postinstall.js","check:release":"node scripts/release-contract.mjs","test:coverage":"vitest --coverage","prepublishOnly":"pnpm run build","test:postinstall":"node scripts/postinstall.js","check:paired-pack":"node scripts/paired-pack-check.mjs","check:pack-version":"node scripts/pack-version-check.mjs"},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"repository":{"url":"git+https://github.com/DumoeDss/rasen.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-native system for spec-driven development","directories":{},"_nodeVersion":"20.19.0","dependencies":{"ora":"^8.2.0","zod":"^4.0.17","yaml":"^2.9.0","chalk":"^5.5.0","fzstd":"^0.1.1","cli-width":"^4.1.0","commander":"^14.0.0","fast-glob":"^3.3.3","cross-spawn":"7.0.6","canonicalize":"^3.0.0","jsonc-parser":"^3.3.1","string-width":"^8.2.2","@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1","node-sqlite3-wasm":"^0.8.59","toml-eslint-parser":"^1.0.3","string-width-legacy":"npm:string-width@4.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"diff":"^7.0.0","eslint":"^9.39.2","vitest":"^3.2.6","@vitest/ui":"^3.2.6","typescript":"^5.9.3","@types/node":"^24.2.0","typescript-eslint":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/rasen_0.1.6_1785580443246_0.8786833940473322","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@atelierai/rasen","version":"0.1.7","description":"AI-native system for spec-driven development","keywords":["rasen","specs","cli","ai","development"],"homepage":"https://github.com/DumoeDss/rasen","repository":{"type":"git","url":"git+https://github.com/DumoeDss/rasen.git"},"license":"MIT","author":{"name":"Sayo"},"type":"module","packageManager":"pnpm@9.15.9","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"bin":{"rasen":"bin/rasen.js"},"scripts":{"lint":"eslint src/ test/ vitest.config.ts vitest.setup.ts","build":"node build.js","build:if-stale":"node build.js --if-stale","dev":"tsc --watch","dev:cli":"pnpm build && node bin/rasen.js","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage","test:postinstall":"node scripts/postinstall.js","prepare":"pnpm run build","prepublishOnly":"pnpm run build","postinstall":"node scripts/postinstall.js","check:pack-version":"node scripts/pack-version-check.mjs","check:paired-pack":"node scripts/paired-pack-check.mjs","check:release":"node scripts/release-contract.mjs"},"engines":{"node":">=20.19.0"},"devDependencies":{"@types/node":"^24.2.0","@vitest/ui":"^3.2.6","diff":"^7.0.0","eslint":"^9.39.2","typescript":"^5.9.3","typescript-eslint":"^8.62.0","vitest":"^3.2.6"},"dependencies":{"@inquirer/core":"^10.3.2","@inquirer/prompts":"^7.10.1","canonicalize":"^3.0.0","chalk":"^5.5.0","cli-width":"^4.1.0","commander":"^14.0.0","cross-spawn":"7.0.6","fast-glob":"^3.3.3","fzstd":"^0.1.1","jsonc-parser":"^3.3.1","node-sqlite3-wasm":"^0.8.59","ora":"^8.2.0","string-width":"^8.2.2","string-width-legacy":"npm:string-width@4.2.3","toml-eslint-parser":"^1.0.3","yaml":"^2.9.0","zod":"^4.0.17"},"_id":"@atelierai/rasen@0.1.7","gitHead":"1f50807b76c227aa41fb9c7e73a9f6b97b285860","bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-acDovvDeV1WYxA0EBFpOHkqQY4L5Ud95ToXLArLRit3fkCE5SsFoBaX8J4N8eNTJP6ahp5xyalAmzHJjncJx5A==","shasum":"44cf822f252405af56990687283a921e055bf660","tarball":"https://registry.npmjs.org/@atelierai/rasen/-/rasen-0.1.7.tgz","fileCount":995,"unpackedSize":8485963,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atelierai%2frasen@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8hZFYPqfPC8zImqL6xA/bwQWliA3P5HGEsyc342WPIgIgP5otKCuFdELaHx3o98bCzFSwJeJdwfYzs9pc8OpcOxk="}]},"_npmUser":{"name":"atelierai","email":"ws11579@gmail.com"},"directories":{},"maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rasen_0.1.7_1786519948709_0.33486580404136546"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T10:30:40.406Z","modified":"2026-08-12T07:32:29.262Z","0.1.1":"2026-07-10T10:30:40.684Z","0.1.2":"2026-07-10T16:54:41.022Z","0.1.3":"2026-07-13T12:00:14.715Z","0.1.4":"2026-07-18T06:36:12.366Z","0.1.5":"2026-07-28T18:29:27.625Z","0.1.6":"2026-08-01T10:34:03.438Z","0.1.7":"2026-08-12T07:32:28.937Z"},"bugs":{"url":"https://github.com/DumoeDss/rasen/issues"},"author":{"name":"Sayo"},"license":"MIT","homepage":"https://github.com/DumoeDss/rasen","keywords":["rasen","specs","cli","ai","development"],"repository":{"type":"git","url":"git+https://github.com/DumoeDss/rasen.git"},"description":"AI-native system for spec-driven development","maintainers":[{"name":"atelierai","email":"ws11579@gmail.com"}],"readme":"<p align=\"center\">\n  <picture>\n    <source srcset=\"assets/rasen-logo-dark.svg\" media=\"(prefers-color-scheme: dark)\">\n    <source srcset=\"assets/rasen-logo-light.svg\" media=\"(prefers-color-scheme: light)\">\n    <img src=\"assets/rasen-logo-light.svg\" alt=\"Rasen logo\" height=\"160\">\n  </picture>\n</p>\n\n<h1 align=\"center\">Rasen — loops that ascend</h1>\n\n<p align=\"center\"><strong>「不是循环，是螺旋」</strong></p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/DumoeDss/rasen/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/DumoeDss/rasen/actions/workflows/ci.yml/badge.svg\" /></a>\n  <a href=\"https://rasen.io/docs/\"><img alt=\"Docs\" src=\"https://img.shields.io/badge/docs-rasen.io-4AF626?style=flat-square&labelColor=050505\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"./README.md\"><img alt=\"English\" src=\"https://img.shields.io/badge/English-4AF626?style=flat-square&labelColor=050505\" /></a>\n  <a href=\"./README_zh.md\"><img alt=\"简体中文\" src=\"https://img.shields.io/badge/%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87-9A9A98?style=flat-square\" /></a>\n  <a href=\"./README_ja.md\"><img alt=\"日本語\" src=\"https://img.shields.io/badge/%E6%97%A5%E6%9C%AC%E8%AA%9E-9A9A98?style=flat-square\" /></a>\n  <a href=\"./README_ko.md\"><img alt=\"한국어\" src=\"https://img.shields.io/badge/%ED%95%9C%EA%B5%AD%EC%96%B4-9A9A98?style=flat-square\" /></a>\n</p>\n\n**Rasen** is an autonomous harness — an engineered **outer loop** wrapped around your coding agent's inner loop. You supply the **intent** — a goal, a bug, a feature — and the harness runs propose → implement → review → fix → ship → archive on its own, iterating until the work is done. Automatic transmission for software development: **control the ideas, not the code.**\n\n## Not a circle — a spiral\n\nA loop that returns to where it started is just a circle. Rasen (螺旋, \"spiral\") is the shape of a loop that climbs. That is the whole idea, and it maps onto how the tool actually works:\n\n- **Intent is the origin.** Every change begins with what you want, not a document you have to write — a goal, a bug, a feature request. The harness captures it in your `rasen/` workspace and gets to work: `/rasen-propose → apply → archive`. The spec it produces along the way is the pipeline's own working memory — knowledge that accretes with every change — not homework handed back to you.\n- **Loops are the form.** Work moves in cycles, not one waterfall pass. The `rasen` pipeline family — `small-feature`, `bug-fix`, `full-feature`, `auto-decompose` — turns a task into a shaped loop of propose, implement, review, ship.\n- **Each turn ascends.** The harness doesn't just repeat; it makes progress. `/rasen-auto` runs a LEAD that orchestrates role-isolated subagents, a review-cycle that catches its own mistakes, and handoff/relay that carries context across sessions — so every turn ends higher than it began.\n- **Until it breaks through.** `/rasen-goal` closes the spiral on a condition, not a document: drive a metric to a target, make a module rubric-clean, research until a brief is answered — repeat modify → judge until the gate is met.\n\nIntent is where you start. The spiral is how you get there.\n\n## See it in action\n\n```text\nYou: /rasen-auto full-feature I want dark mode but I'm not sure how to do it cleanly.\nAI:  Pipeline: full-feature (explicit)\n     First stage: office-hours. Let's pressure-test the design.\nAI:  First load-bearing fork: one shared token layer, or theme logic\n     repeated inside components? I recommend CSS variables: less drift.\n     Choose the shared token layer?\nYou: Yes — use one shared token layer.\nAI:  Next fork: follow the system theme by default, with a saved manual\n     override? I recommend yes; it stays predictable and dependency-free.\n     Approve that direction?\nYou: Yes — approved.\nAI:  Design approved. Wrote the office-hours design document.\n     ✓ office-hours — direction approved and recorded\n     LEAD continued the full-feature pipeline with role-isolated workers.\n     ✓ propose — intent captured as change artifacts\n     ✓ apply — dark mode implemented\n     ✓ expert reviews — review, design review, and QA passed\n     ✓ review-cycle — one finding fixed; re-review clean\n     ✓ ship — delivery recorded\n     ✓ retain — durable lessons evaluated\n     ✓ archive — specs synced\n     Done. Dark mode is shipped.\n```\n\n## Install\n\nRequires **Node.js `>=20.19.0`**.\n\n```bash\nnpm i -g @atelierai/rasen\n```\n\nThen initialize in your project:\n\n```bash\ncd your-project\nrasen init\n```\n\n`rasen init` creates a `rasen/` workspace (specs and changes) and installs the `/rasen-*` slash commands for your AI coding tool.\n\nTo refresh AI guidance and pick up the latest slash commands after upgrading:\n\n```bash\nrasen update\n```\n\n## What you get\n\n- **Intent-driven workflow** — tell it what to build. The harness turns that into a folder — proposal, spec, design, task list — generating and maintaining it as it works, so you never have to write it yourself: `/rasen-propose → /rasen-apply-change → /rasen-archive-change`.\n- **`rasen` pipeline family** — `small-feature` / `bug-fix` / `full-feature` / `auto-decompose` ship as data (YAML); inspect them with `rasen pipeline show|list|classify|resume`, share them as installable packages (`rasen pipeline import|export`), or assemble your own by drag-and-drop in the web UI's pipeline canvas. Adding a task type is adding one file, zero code.\n- **`rasen ui` management platform** — a local web UI: task board, supervised headless agent sessions that outlive your terminal, the pipeline canvas, and config/workflow/profile management. See [Web UI](#web-ui).\n- **`/rasen-auto` autopilot** — one command turns the agent into a **LEAD** that orchestrates role-isolated subagents (planner / implementer / reviewer / fixer / shipper) through the pipeline, pausing only at gates.\n- **`/rasen-goal` goal-driven iteration** — a sibling to `/rasen-auto` for tasks whose \"done\" is a condition, not a document (drive Lighthouse to 90, make a module rubric-clean, research and write a brief). The LEAD classifies the task into a measure / evaluate / research backend and repeats modify → judge until the gate is satisfied or the round cap is hit.\n- **Auto-decompose** — a task too large for one reviewable diff is split into independently-deliverable child changes with a dependency DAG and a conservative serial/parallel policy.\n- **chrome-use** — an expert that drives your real Chrome via CDP: navigate, click, capture network traffic, inject JS, read cookies and `localStorage`, wait on requests — for logged-in pages, SPAs, and anything a plain fetch can't reach.\n- **Context sensing & handoff** — `rasen agent context` measures real occupancy; `/rasen-handoff` writes a distillate checkpoint; workers self-hand-off at soft budgets, and a compact-recovery hook re-anchors on the distillate after an auto-compact, so long runs survive context limits.\n- **Prompt-cache keepalive** — `rasen agent wait` parks an idle worker on a keepalive beat instead of letting its 5-minute prompt cache expire, so a reviewer waiting on an implementer doesn't pay a full-context rewrite on its next turn. Beat length is tunable via `keepalive.beatSeconds`.\n- **Token audit** — `rasen agent audit` shows where a session's tokens actually went: per-agent spend, cache churn and its causes, with a bundled HTML viewer. Works on Claude Code transcripts and Codex rollouts, fully local — nothing is uploaded.\n\n## Web UI\n\nThe CLI has a browser-based management platform beside it. Install the UI package next to the CLI, then launch:\n\n```bash\nnpm i -g @atelierai/rasen-ui\nrasen ui\n```\n\n`rasen ui` starts (or adopts) a resident background daemon — bound to 127.0.0.1 with a per-session token — and opens the app:\n\n- **Board** — your active changes as Tasks in lifecycle columns, across every project and store via the space switcher.\n- **Sessions** — launch headless `/rasen-auto` / `/rasen-goal` runs from the browser, watch their output, kill them with a click; they survive closing the terminal.\n- **Pipeline canvas** — view any pipeline as a DAG, and assemble new ones by dragging skills onto the canvas, with server-side validation before save.\n- **Config / Workflows / Profiles** — layered configuration with visible inheritance, the installable-workflow library with per-space toggles, and named workflow profiles.\n\n### Web UI in 0.1.5\n\n**Pipeline Canvas** — edit the stage graph, validate dependencies, and tune role, runtime, model, and handoff settings.\n\n![Rasen 0.1.5 Pipeline Canvas](assets/webui/rasen-ui-0.1.5-pipeline-canvas.png)\n\n**Session Audit** — compare token totals and cache composition, then trace agents and cache-churn events across the timeline.\n\n![Rasen 0.1.5 Session Audit](assets/webui/rasen-ui-0.1.5-session-audit.png)\n\n## Coexistence with OpenSpec\n\nRasen is designed to live **alongside** upstream OpenSpec without collision. Every surface is a distinct namespace, so both can be installed in the same project at the same time:\n\n| Surface | OpenSpec | Rasen |\n| --- | --- | --- |\n| Binary | `openspec` | `rasen` |\n| Slash commands | `/opsx:*` | `/rasen-*` |\n| Skills | `openspec-*` | `rasen-*` |\n| Workspace | `openspec/` | `rasen/` |\n\nBecause the namespaces never overlap, installing rasen never disturbs an existing OpenSpec setup — there is nothing to uninstall first.\n\nIf you have an existing `openspec/` workspace and want to bring it into rasen:\n\n```bash\nrasen migrate\n```\n\n`rasen migrate` is **copy-only**: it copies `openspec/{specs,changes,config.yaml}` into `rasen/`, skipping anything that already exists. Your original `openspec/` directory is **never modified or deleted** — you can keep using OpenSpec against it unchanged.\n\n## Telemetry & privacy\n\nRasen collects anonymous usage telemetry to understand which commands are used. It sends **only** the command name, the rasen version, an anonymous UUID, and your OS and Node version — **no paths, arguments, or project data**, ever.\n\nTo opt out, set either:\n\n```bash\nexport RASEN_TELEMETRY=0\n# or the cross-tool standard:\nexport DO_NOT_TRACK=1\n```\n\nTelemetry is also **automatically disabled in CI**.\n\n## Community\n\n<p>\n  <a href=\"https://discord.gg/JbWScy4y9K\">\n    <img src=\"https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white\" alt=\"Join Rasen on Discord\">\n  </a>\n</p>\n","readmeFilename":"README.md"}