{"_id":"@andrewmonson/aiw","_rev":"8-fb916536d54eb627fe9939efd64c4564","name":"@andrewmonson/aiw","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@andrewmonson/aiw","version":"0.1.0","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.0","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"62a5ad9ae4e39a6c3aa77c2e477c73cd5bef3554","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.0.tgz","fileCount":17,"integrity":"sha512-4eunxrXVQz96QQnthB7EtLKEQwtv4Bh6tOd2qGh262PYRfwtoYZPN2YA6F6yob+eqMelTEMoRRSOY9bJrkeU/A==","signatures":[{"sig":"MEQCIHlmG6TBaaWcyts5bZEAGJSqLlPBxdZlc0nQOAc0jHH5AiA8/kAPCQYg/HIBAMgkmBR0ObeQumyEfCYEyxCa+FeXCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59694},"type":"module","engines":{"node":">=20"},"gitHead":"c706cad9c25a165112d3a6f3e33b8969106ea01e","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"10.9.2","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.0_1768400621146_0.1945200410112562","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@andrewmonson/aiw","version":"0.1.2","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.2","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"3b548288597436e677607892496fdfac4d3341ee","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.2.tgz","fileCount":17,"integrity":"sha512-KtKmeLDEN9g2grlL4S4iZHMUlv5twyu3SL3pnez5mZeIrYMOcYwtOxpsmIl0s+Wu8u7On7drdgCRsmadz8qK4Q==","signatures":[{"sig":"MEQCIEZzm15mRV2Zz3Wbw0LgdSg7ksl+JHVORmQSHkU1D8oaAiAEVUhugNYItkulBKS2qPB69rU4a8zxZ8/ynU1xG3m3lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59715},"type":"module","engines":{"node":">=20"},"gitHead":"71295088b729e444286122a0c79753f537b5c752","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.2_1768401444479_0.6679030450338297","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@andrewmonson/aiw","version":"0.1.3","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.3","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"cdcb8ff33d4df75470311250187c1d890b933746","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.3.tgz","fileCount":17,"integrity":"sha512-saw5r61y4lpLK2wUvyVGNcxISDqQ5Xl4NHIvVUxDTfUzXZ6jJU5G3/kqoUSBVrwG8ldus7jv9OFyybz/NnQ3dw==","signatures":[{"sig":"MEQCIQCN9lbiPfQJkJXysiqbE1DzubT8NoMUsODmuxswt1AOoQIfMZBmpDXjtizdN/hwi+JGeAf6PAe1xFArkIC8dK5lKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59722},"type":"module","engines":{"node":">=20"},"gitHead":"f632dbfb3ad49758fe923494eee2130ff18eb419","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.3_1768401773430_0.36148086707675864","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@andrewmonson/aiw","version":"0.1.4","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.4","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"373f2d48d19454f13f1d5e55a79f2990b8f7f9c8","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.4.tgz","fileCount":17,"integrity":"sha512-hJHVNvQIKrHZ+CglI1wDZHlrtQNzoQgK+0jXLTM563vYZcowNWepshmbTzXbSMb918Iyhjjw+1F+Mdr4pBhesA==","signatures":[{"sig":"MEUCIQD5T+igH9iiI6ZWiI5ATEsEVM0zRffEd/wovatko307AAIgFwo9EmkcGsn8mG49SaLElHj83H9LCeEnft4H0YdM1MY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60553},"type":"module","engines":{"node":">=20"},"gitHead":"14b123a189a45eddc7cb825e1d546cfff607cf93","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.4_1768403813406_0.10685182066719578","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@andrewmonson/aiw","version":"0.1.6","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.6","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"24e9287060ec475e112d95922ac98e0b0181a562","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.6.tgz","fileCount":27,"integrity":"sha512-H2znHhkw/K7EsYf5C+z7DVOUJ99+un088QiGfzIBS+7CkZo1eijW7TLG6fiHE1H6WOUnSmlPfwFau36yKyaKhw==","signatures":[{"sig":"MEYCIQDxekWLmPt5egg/Pm9RLaxCHMnUuUfZ7u1oEBL+ThRifQIhAMewQUx0SR62bBMwk42BhFp9OQiatBvCMXT9gn3xDf+V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138804},"type":"module","engines":{"node":">=20"},"gitHead":"2433e6ef25b58136dffd6c21493ba500dba266a0","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","postinstall":"node scripts/fix-pty-permissions.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"node-pty":"^1.1.0","commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.6_1768443786982_0.5906549404216475","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@andrewmonson/aiw","version":"0.1.7","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.1.7","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"67c95a8a597b122bed4227ea12450e21cebca6a4","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.1.7.tgz","fileCount":27,"integrity":"sha512-Us61KdE1Zw0ZL8rtMrIn4ae6O7d6rtUSXS1E5ZdzGezwxSxoVqMopwRPGqU6/2Z7sHrF7EeJkoy5ECpz/UFCfQ==","signatures":[{"sig":"MEUCIQCpJedMy9Yurxsik/AYUWB0PF7RfKxYYG87A202BFo1ugIgcVBd5ZFBuP4h/vntsXKwHwOYjl84Q1Rn8zn4KkswwJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141920},"type":"module","engines":{"node":">=20"},"gitHead":"5604178f54cd02732d2bdb9fd28e0532f7b36c43","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","postinstall":"node scripts/fix-pty-permissions.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"node-pty":"^1.1.0","commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.1.7_1768445153435_0.38538423251305587","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@andrewmonson/aiw","version":"0.2.0","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"license":"MIT","_id":"@andrewmonson/aiw@0.2.0","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"bin":{"aiw":"dist/cli.js"},"dist":{"shasum":"379b39a1c34d340d1071ae9a5862e2141f3ee4e6","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.2.0.tgz","fileCount":27,"integrity":"sha512-Z+rwAI16J848ejoZc151ruDj2KQXZZLyqDUduA8OfhKAk5U+kAx5inovl4z6KF5F0NWeu27onM2EcQH16ez77A==","signatures":[{"sig":"MEUCID85V+e5fYaOt1FPN/1B/Yk7M8T/hUuduWLBEkj+PuF0AiEA7Gjd7He83thatAGK/YD8hGCQT+8SvcCJq7VIf6kqIqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141920},"type":"module","engines":{"node":">=20"},"gitHead":"4c80cf88102a5701a1befb47ac5def261b91c826","private":false,"scripts":{"dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","lint":"eslint --ext .ts,.tsx src/","test":"vitest run","build":"tsc -p tsconfig.json","format":"prettier --write \"src/**/*.{ts,tsx}\"","unlink":"npm unlink -g @amdev/aiw","prepare":"husky","lint:fix":"eslint --ext .ts,.tsx src/ --fix","postbuild":"node scripts/postbuild.mjs","postinstall":"node scripts/fix-pty-permissions.mjs","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"_npmVersion":"11.7.0","description":"Repo-local prompt library CLI for Cursor workflows","directories":{},"_nodeVersion":"23.11.0","dependencies":{"node-pty":"^1.1.0","commander":"^14.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.39.2","vitest":"^3.2.4","globals":"^17.0.0","prettier":"^3.7.4","@eslint/js":"^9.39.2","typescript":"^5.9.3","@types/node":"^25.0.8","lint-staged":"^16.2.7","@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-import":"^2.32.0","eslint-plugin-notice":"^1.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.53.0","@typescript-eslint/eslint-plugin":"^8.53.0"},"_npmOperationalInternal":{"tmp":"tmp/aiw_0.2.0_1768448445244_0.7920518739485713","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@andrewmonson/aiw","version":"0.3.0","description":"Repo-local prompt library CLI for Cursor workflows","license":"MIT","type":"module","bin":{"aiw":"dist/cli.js"},"engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.json","postbuild":"node scripts/postbuild.mjs","postinstall":"node scripts/fix-pty-permissions.mjs","test":"vitest run","dev":"npm run build && node dist/cli.js","link":"npm unlink -g @amdev/aiw 2>/dev/null || true && npm link --force","unlink":"npm unlink -g @amdev/aiw","format":"prettier --write \"src/**/*.{ts,tsx}\"","lint":"eslint --ext .ts,.tsx src/","lint:fix":"eslint --ext .ts,.tsx src/ --fix","prepare":"husky","prepublishOnly":"npm run build && npm test","aiw:review":"aiw run pre_push_review -i"},"keywords":["cli","cursor","ai","prompt","workflow","productivity"],"author":{"name":"Andrew Monson"},"private":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"commander":"^14.0.2","node-pty":"^1.1.0"},"devDependencies":{"@eslint/compat":"^1.4.1","@eslint/eslintrc":"^3.3.3","@eslint/js":"^9.39.2","@types/node":"^25.0.8","@typescript-eslint/eslint-plugin":"^8.53.0","@typescript-eslint/parser":"^8.53.0","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-import":"^2.32.0","eslint-plugin-jsdoc":"^61.7.1","eslint-plugin-notice":"^1.0.0","eslint-plugin-prettier":"^5.5.4","globals":"^17.0.0","husky":"^9.1.7","lint-staged":"^16.2.7","prettier":"^3.7.4","typescript":"^5.9.3","vitest":"^3.2.4"},"gitHead":"644e7f4616805a0f70092b9710ec9d346002e91a","_id":"@andrewmonson/aiw@0.3.0","_nodeVersion":"23.11.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-Hmh2taK5L2rMKH0btaf6XJLAVBLXUHOFijnk+RB7SjByw1rJok9YqgSWB/b/Ua2Qb5bYw1uWi0aPTYvCkppGxQ==","shasum":"46efe116de83173938290d8b45e2052772b4d47b","tarball":"https://registry.npmjs.org/@andrewmonson/aiw/-/aiw-0.3.0.tgz","fileCount":52,"unpackedSize":184054,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjyfDVtXLeVwQyzhG1HkDKy8vhSUbsYfmajiYbUhme4wIhAP0XIXLYM/686vrxa7iKJriHW9VrT93G0/Dh10cER+M6"}]},"_npmUser":{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"},"directories":{},"maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aiw_0.3.0_1768460836892_0.5384664151836844"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-14T14:23:41.027Z","modified":"2026-01-15T07:07:17.177Z","0.1.0":"2026-01-14T14:23:41.296Z","0.1.2":"2026-01-14T14:37:24.622Z","0.1.3":"2026-01-14T14:42:53.582Z","0.1.4":"2026-01-14T15:16:53.552Z","0.1.6":"2026-01-15T02:23:07.152Z","0.1.7":"2026-01-15T02:45:53.569Z","0.2.0":"2026-01-15T03:40:45.383Z","0.3.0":"2026-01-15T07:07:17.060Z"},"author":{"name":"Andrew Monson"},"license":"MIT","keywords":["cli","cursor","ai","prompt","workflow","productivity"],"description":"Repo-local prompt library CLI for Cursor workflows","maintainers":[{"name":"andrewmonson","email":"andrew.monson@elevate-digital.com"}],"readme":"# `@andrewmonson/aiw` — CLI for managing prompts interactively\n\nThis repo contains **`aiw`**, a small cross-platform CLI that manages a repo-local **prompt library** under **`.ai/`**, and a dual-context governance model for scalable, team-safe AI usage.\n\nPrompts can be **copied to clipboard** for manual pasting, or **executed directly** via Cursor Agent CLI.\n\n## Install / run\n\n**Prerequisites:** Cursor must be installed with the `cursor` CLI command available in PATH. To install the Cursor CLI:\n\n1. Open Cursor\n2. Press `Cmd+Shift+P` (macOS) or `Ctrl+Shift+P` (Windows/Linux) to open the command palette\n3. Run `Install cursor command`\n4. Restart your terminal\n\n- Global install:\n\n```bash\nnpm i -g @andrewmonson/aiw\naiw --help\n```\n\n- Run via `npx` (no install):\n\n```bash\nnpx @andrewmonson/aiw --help\n```\n\n## Quick start\n\nCreate the `.ai/` structure and default prompts:\n\n```bash\naiw setup\n```\n\nList prompts:\n\n```bash\naiw list\n```\n\n**Option 1: Copy/paste workflow** — Print or copy prompts for manual pasting:\n\n```bash\n# Print to stdout\naiw show repo_discover\n\n# Copy to clipboard (falls back to printing if clipboard tools aren't available)\naiw copy repo_discover\n```\n\n**Option 2: Direct CLI interaction** — Run prompts directly via Cursor Agent CLI:\n\n```bash\n# Interactive mode (recommended) - allows back-and-forth with the agent\naiw run repo_discover -i\n\n# Non-interactive print mode (for scripting)\naiw run repo_discover -p\n```\n\n## Commands\n\nAll commands support:\n\n- **`--workspace <path>`**: the workspace folder (default: `.ai`)\n\n### `aiw setup`\n\nCreates the workspace structure and writes the default prompt set:\n\n```\n.ai/\n  README.md\n  prompts/\n    repo_discover.md\n    repo_refresh.md\n    pre_push_review.md\n    feature_plan.md\n    debug_senior.md\n  context/\n    repo_context/\n      REPO_CONTEXT.md\n    pr_reviews/\n      YYYY-MM-DD_HHMMSS_<id>_<descriptor>.md\n    feature_plans/\n      YYYY-MM-DD_HHMMSS_<id>_<descriptor>.md\n    debug_notes/\n      YYYY-MM-DD_HHMMSS_<id>_<descriptor>.md\n```\n\nIdempotency:\n\n- By default, **existing files are not overwritten**.\n- Use **`--force`** to overwrite managed files (a timestamped backup is created next to the original).\n\n**Note:** Context files (`pr_reviews/`, `feature_plans/`, `debug_notes/`) are versioned with timestamps, unique IDs, and descriptors (including git branch names for features/bugs). Each prompt execution creates a new file instead of overwriting previous ones.\n\n`.gitignore` behavior:\n\n- By default, `setup` **prompts** (only in an interactive TTY) to add the workspace folder to `.gitignore`.\n- For non-interactive usage, pass **`--gitignore add`** or **`--gitignore skip`**.\n\nFlags:\n\n- `--force` - Overwrite managed files (creates backups)\n- `--gitignore prompt|add|skip` - Control .gitignore behavior\n- `--workspace <path>` - Workspace folder (default: `.ai`)\n- `--with-agents` - Scaffold agent rule files (AGENTS.md, CLAUDE.md, .cursor/rules/)\n- `--with-hooks` - Install git pre-push hook for context enforcement\n\n### `aiw list`\n\nLists available prompt slugs based on `*.md` files in `<workspace>/prompts/`.\n\n### `aiw show <prompt>`\n\nPrints the prompt contents to stdout.\n\n### `aiw copy <prompt>`\n\nCopies the prompt contents to clipboard using OS tooling:\n\n- macOS: `pbcopy`\n- Windows: `clip`\n- Linux: tries `wl-copy`, then `xclip`, then `xsel`\n\nIf no clipboard tool is available, it prints the prompt to stdout with a friendly message.\n\n### `aiw open <prompt>`\n\nAttempts to open the prompt file in the OS default editor/viewer:\n\n- macOS: `open`\n- Windows: `start`\n- Linux: `xdg-open`\n\nIf open fails, it prints the absolute path.\n\n### `aiw new <name>`\n\nCreates a new prompt file at `<workspace>/prompts/<slug>.md`.\n\nFlags:\n\n- `--title \"<human title>\"`\n- `--from blank|repo|review|feature|debug`\n- `--open`\n- `--force` (overwrite safely; backs up first)\n\n### `aiw run <prompt>`\n\nRuns a prompt via Cursor Agent CLI. The prompt is pasted into the agent's input field.\n\n```bash\n# Interactive mode (recommended) - allows back-and-forth with the agent\naiw run repo_discover -i\n\n# With a specific model\naiw run repo_discover -i -m sonnet-4.5\n\n# Non-interactive print mode (for scripting)\naiw run repo_discover -p\n```\n\nIn interactive mode (`-i`), press **Enter** to submit the prompt, then continue interacting with the agent normally.\n\nFlags:\n\n- `-i, --interactive` - Interactive mode (allows typing responses, approving plans)\n- `-m, --model <model>` - Model to use (see below for available models)\n- `-p, --print` - Print mode (non-interactive, for scripting)\n- `--output-format <format>` - Output format for print mode: `text` or `json`\n- `--workspace <path>` - Workspace folder (default: `.ai`)\n\n**Available models:**\n\n- `auto` - Let Cursor pick the best model\n- `opus-4.5-thinking` - Claude 4.5 Opus with thinking (default)\n- `opus-4.5` - Claude 4.5 Opus\n- `sonnet-4.5` - Claude 4.5 Sonnet\n- `sonnet-4.5-thinking` - Claude 4.5 Sonnet with thinking\n- `gpt-5.2` - GPT-5.2\n- `gemini-3-pro` - Gemini 3 Pro\n- `gemini-3-flash` - Gemini 3 Flash\n\nRun `cursor agent --list-models` for the full list of available models.\n\n**Model validation:** If you enter an incorrect model name, the CLI will suggest the closest match. For example, entering `opus4.5` (missing hyphen) will suggest `opus-4.5`.\n\n**Requirements:**\n\n- **Cursor CLI**: The `cursor` command must be available in your PATH. If you see an error when running `aiw`, install it by:\n    1. Opening Cursor\n    2. Pressing `Cmd+Shift+P` (macOS) or `Ctrl+Shift+P` (Windows/Linux) to open the command palette\n    3. Running `Install cursor command`\n    4. Restarting your terminal\n- **Node.js >= 20**: Required for native module support\n\n**Note:** This command uses `node-pty` for cross-platform pseudo-terminal support. On first install, native module compilation may occur, which requires standard build tools (these are typically pre-installed on most systems).\n\n### `aiw context:verify`\n\nVerifies that `docs/PROJECT_CONTEXT.md` is updated when impactful changes are made. Used by pre-push hooks and CI.\n\n```bash\naiw context:verify --range origin/main...HEAD\n```\n\nFlags:\n\n- `--range <ref>` - Git range to check (default: `origin/main...HEAD`)\n- `--json` - Output results as JSON\n- `--strict` - Fail even if no impactful changes (require explicit skip)\n\n**Impactful changes** include modifications to:\n\n- Build configuration (`package.json`, `tsconfig.json`, etc.)\n- Environment setup (`.env.example`, `Dockerfile`, etc.)\n- API contracts (`*.graphql`, OpenAPI specs, routes)\n- Architecture (module boundaries, folder structure)\n\nIf impactful changes are detected without a `PROJECT_CONTEXT.md` update, the command fails. Add `[context-skip]` to a commit message to bypass this check.\n\n**Example output:**\n\n```\n❌ PROJECT_CONTEXT.md not updated\n\nImpactful changes detected in commits:\n  • abc1234 Refactor auth middleware\n  • def5678 Add new API endpoint\n\nChanged files matching impact patterns:\n  • package.json (build)\n  • src/api/routes/users.ts (api)\n\nTo proceed, either:\n 1. Update docs/PROJECT_CONTEXT.md in this branch\n 2. Add [context-skip] to a commit message if no context update is needed\n```\n\n## Dual-Context Governance\n\n`aiw` supports a dual-context model for scalable, team-safe AI usage:\n\n### Project Context (Authoritative)\n\n- **`docs/PROJECT_CONTEXT.md`** - Tracked in git, updated as part of PRs\n- Source of truth for how the project is _meant_ to work\n- Finalized by lead developers through PR review\n- Scaffolded with `aiw setup --with-agents`\n\n### Local Context (Operational)\n\n- **`.ai/context/repo_context/REPO_CONTEXT.md`** - Gitignored, fast to update\n- Working memory for current development session\n- May be out of date; always defer to project context when in conflict\n\n### Agent Rules\n\nWhen you run `aiw setup --with-agents`, `aiw` scaffolds:\n\n- **`AGENTS.md`** - Generic agent instructions (read order, update requirements)\n- **`CLAUDE.md`** - Claude-specific instructions\n- **`.cursor/rules/00-core.mdc`** - Always-apply core rules for Cursor\n- **`.cursor/rules/10-frontend.mdc`** - Frontend-scoped rules\n- **`.cursor/rules/20-backend.mdc`** - Backend-scoped rules\n\nThese files establish that agents must:\n\n1. Read `docs/PROJECT_CONTEXT.md` **first**\n2. Read `.ai/context/repo_context/REPO_CONTEXT.md` **second**\n3. Update project context when changes affect setup, architecture, workflows, or APIs\n\n### Context Enforcement\n\n`aiw` provides git-native enforcement to keep `docs/PROJECT_CONTEXT.md` up to date.\n\n#### What counts as \"meaningful changes\"?\n\nA push/PR is considered \"meaningful\" if it changes anything **outside**:\n\n- `docs/**`\n- `**/*.md`\n- `.ai/**`\n- `.cursor/**`\n\nThis is intentionally conservative. Code changes require context updates; doc-only changes don't.\n\n#### Pre-Push Hook\n\nRun `aiw setup --with-hooks` to install a git pre-push hook that:\n\n- Blocks pushes if meaningful changes are made without updating `docs/PROJECT_CONTEXT.md`\n- Can be bypassed with `[context-skip]` in a commit message\n- Pure bash, no Node.js dependency at runtime\n\nYou can also manually copy `scripts/pre-push-context-check.sh` to `.git/hooks/pre-push`.\n\n#### CI Enforcement\n\nAdd `.github/workflows/project-context.yml` to enforce the same policy on PRs:\n\n- Blocks PRs with meaningful changes unless `docs/PROJECT_CONTEXT.md` is updated\n- Respects `[context-skip]` token in commit messages\n\n#### Bypassing the Check\n\nIf a context update is truly unnecessary, add `[context-skip]` to any commit message in the range:\n\n```bash\ngit commit -m \"Fix typo in comments [context-skip]\"\n```\n\n### Configuration\n\nCreate `.aiw.json` in your repo root to customize impact detection:\n\n```json\n{\n    \"impactPatterns\": {\n        \"build\": [\"package.json\", \"tsconfig*.json\"],\n        \"env\": [\".env.example\", \"Dockerfile*\"],\n        \"api\": [\"*.graphql\", \"**/routes/**\"],\n        \"architecture\": [\"src/**/index.ts\", \"cmd/**\"]\n    },\n    \"projectContextPath\": \"docs/PROJECT_CONTEXT.md\",\n    \"skipToken\": \"[context-skip]\"\n}\n```\n\n## Prompt design\n\nThe included prompts are:\n\n- Tech-stack agnostic\n- Plan-first (Cursor must plan then stop for approval)\n- Safe (no secrets / no env var values)\n- Artifact-producing (instruct Cursor to write/update files under `.ai/` so context persists)\n\n## Development\n\nInstall deps:\n\n```bash\nnpm i\n```\n\nRun tests:\n\n```bash\nnpm test\n```\n\nBuild:\n\n```bash\nnpm run build\n```\n\nThe compiled CLI entrypoint is `dist/cli.js`.\n\n### Local testing\n\nRun the CLI directly from the repo (rebuilds first):\n\n```bash\nnpm run dev -- <command>\n# Examples:\nnpm run dev -- setup --gitignore skip\nnpm run dev -- list\nnpm run dev -- show repo_discover\n```\n\nOr create a global symlink for testing (run `aiw` from anywhere):\n\n```bash\nnpm run link\n# Now you can run:\naiw setup\naiw list\n# etc.\n\n# To remove the link:\nnpm run unlink\n```\n","readmeFilename":"README.md"}