{"_id":"@bottomlessmargaritas/claude-architecture-prompts","_rev":"6-c205b72b55ca7e4273413fb96e0144b2","name":"@bottomlessmargaritas/claude-architecture-prompts","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"1.0.0","keywords":["claude","architecture","prompts","conventions"],"author":{"name":"nullvoidundefined"},"license":"MIT","_id":"@bottomlessmargaritas/claude-architecture-prompts@1.0.0","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"bin":{"claude-architecture-prompts":"bin/cli.js"},"dist":{"shasum":"c38a4ae0a240342bd1b4e270b77ffab4a18ef813","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-1.0.0.tgz","fileCount":8,"integrity":"sha512-ghjPdkJ4Z/wE/TkQE0rUMTJSiyIzFzMES8w7Cs/WHQRSgXXGJ+R1TzxSsm0+immnicFGRDWVlomhDa7KaC0FaQ==","signatures":[{"sig":"MEYCIQDEBgoBWzL+An69sCurW1mSLVpQbwcCCU/8W3LVxsBHhAIhAPSZVLoNGKTiGsxjpYMuc97shLmOYC3YnvH0NxrD3kB2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73884},"type":"module","engines":{"node":">=18"},"gitHead":"64dbc3647683e91a723af70eac161b3ac64048a0","scripts":{"postinstall":"node bin/cli.js --auto"},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"_npmVersion":"11.9.0","description":"Canonical Claude architecture prompt files for @nullvoidundefined projects","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-architecture-prompts_1.0.0_1774755683559_0.2718047985998613","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"1.1.0","keywords":["claude","architecture","prompts","conventions"],"author":{"name":"nullvoidundefined"},"license":"MIT","_id":"@bottomlessmargaritas/claude-architecture-prompts@1.1.0","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"bin":{"claude-architecture-prompts":"bin/cli.js"},"dist":{"shasum":"a7b488c3d5a8271b16c21d33271aefca1877737d","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-1.1.0.tgz","fileCount":8,"integrity":"sha512-VIcWbwZ3nF7cib0O/QzrhJLsM67t2vwOUIxSAs/5aaZmtVbex3q+9R7Jo6RSvWtI/hhoGnueVg/JkYyzPepWOg==","signatures":[{"sig":"MEUCIEPIeZbbXWxIUHADKxELSBSoUrTpGHNaAIBZUnNlBI1xAiEAm0vT7o0KnziASNX+VdAl2JFF9SIx5p5ii2s/uafXIjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70887},"type":"module","engines":{"node":">=18"},"gitHead":"8c35ff08193fc4995c039d5244206524aae5dc03","scripts":{"postinstall":"node bin/cli.js --auto"},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"_npmVersion":"11.9.0","description":"Canonical Claude architecture prompt files for @nullvoidundefined projects","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-architecture-prompts_1.1.0_1774756322850_0.6341949645907996","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"2.1.0","keywords":["claude","architecture","prompts","conventions"],"author":{"name":"bottomlessmargaritas"},"license":"MIT","_id":"@bottomlessmargaritas/claude-architecture-prompts@2.1.0","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"bin":{"claude-architecture-prompts":"bin/cli.js"},"dist":{"shasum":"3211bef8b47193ed3475c0e7649f4d069d5d1bf9","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-2.1.0.tgz","fileCount":9,"integrity":"sha512-PFYlYE6heyYZDdfqYtbu+q6V3sUNUpRgze8NmF4Lv8eHQsky3HL2s1+kWDgh7EBu4yUPQBa85rCRsP8HArvosQ==","signatures":[{"sig":"MEUCIQD2ow/X6Zu1XF+5NM+0sh0BKGtYz1HH+XYqioSM1ygpBQIgfgu8xqoUG8MiQfMC+nPQIHO5dPZ7fA1NMFf1dTIRb5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68864},"type":"module","engines":{"node":">=18"},"gitHead":"e36162ba4876cfd1acac226be4aa7a4705c99d07","scripts":{"postinstall":"node bin/cli.js --auto"},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"_npmVersion":"11.9.0","description":"Canonical Claude architecture prompt files for @bottomlessmargaritas projects","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-architecture-prompts_2.1.0_1774765999305_0.12772485023898938","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"2.2.0","keywords":["claude","architecture","prompts","conventions"],"author":{"name":"bottomlessmargaritas"},"license":"MIT","_id":"@bottomlessmargaritas/claude-architecture-prompts@2.2.0","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"bin":{"claude-architecture-prompts":"bin/cli.js"},"dist":{"shasum":"4d093e1e197df31b7cf10e44e5940ad785ce6da1","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-2.2.0.tgz","fileCount":10,"integrity":"sha512-wSwLETd+H5W1kuF8alXUlhjCXRgwnYBp1kqnjhYpq96PoWv2y2T+JbfM14jZ4eRJ2hiBusSb8jJJe71EHOGugA==","signatures":[{"sig":"MEUCIQCfZH+W1gSN85eXSWsgmWX8e+3q7VXEnTHOTyPP8zaBKgIgUeNLTMUDMoW12xQ7iRipcPcmDJNu0UGVzAipu3h4b+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71216},"type":"module","engines":{"node":">=18"},"gitHead":"d9a527a44cd533d04c1b4c6a1bd996c6ca015975","scripts":{"postinstall":"node bin/cli.js --auto"},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"_npmVersion":"11.9.0","description":"Canonical Claude architecture prompt files for @bottomlessmargaritas projects","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-architecture-prompts_2.2.0_1774798508409_0.7608421690440517","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"2.3.0","keywords":["claude","architecture","prompts","conventions"],"author":{"name":"bottomlessmargaritas"},"license":"MIT","_id":"@bottomlessmargaritas/claude-architecture-prompts@2.3.0","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"bin":{"claude-architecture-prompts":"bin/cli.js"},"dist":{"shasum":"054158a40d935896b6078af76f94d973a0afe1be","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-2.3.0.tgz","fileCount":10,"integrity":"sha512-wfxj+JwleumIfnf22TORV9sbVjahnoQ8+J8J5czD0n2+QveG1MO7FMoy4JS5FzoC3MCwrthwEaRhspnsJgQKJg==","signatures":[{"sig":"MEYCIQD2qp2ZU8piYba39SkgypJJbDCQbviwQNjPgYHv/zJi1gIhAJapDYrYTAgfg0fzUDaz4+G1CQ3d7vLA3OyhkWQMs6xH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71544},"type":"module","engines":{"node":">=18"},"gitHead":"f5f5ddb62711b63eb6ec5e2e34199c04a21bad16","scripts":{"postinstall":"node bin/cli.js --auto"},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"_npmVersion":"11.9.0","description":"Canonical Claude architecture prompt files for @bottomlessmargaritas projects","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-architecture-prompts_2.3.0_1774931831828_0.09160570960223402","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@bottomlessmargaritas/claude-architecture-prompts","version":"3.0.0","description":"Canonical Claude architecture prompt files for @bottomlessmargaritas projects","type":"module","bin":{"claude-architecture-prompts":"bin/cli.js"},"scripts":{"postinstall":"node bin/cli.js --auto"},"keywords":["claude","architecture","prompts","conventions"],"author":{"name":"bottomlessmargaritas"},"license":"MIT","engines":{"node":">=18"},"gitHead":"3b61e24eabcd1e8a70d8a6af127de17a2cda7744","_id":"@bottomlessmargaritas/claude-architecture-prompts@3.0.0","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-nm6uIXVhW4A+ulw9vVnV+Gzj9a163sqVHBtkGT4PTbJY7g5ECW9oXwDUj7maW2sFTvWE2ntZl0G/noy0bxKVHw==","shasum":"ece875cc5484537d0b0ee6fa590a762553ba444e","tarball":"https://registry.npmjs.org/@bottomlessmargaritas/claude-architecture-prompts/-/claude-architecture-prompts-3.0.0.tgz","fileCount":11,"unpackedSize":85547,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBr6Elz5rcPdVs0jrg3uiqGm82UpRFIGfObSYBE2mj8KAiBJROU3WErzWQ1eJVyRiUjWoBpj4lvMSYrfD+sVx1g1Mw=="}]},"_npmUser":{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"},"directories":{},"maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-architecture-prompts_3.0.0_1775038007950_0.9502419242363325"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-29T03:41:23.417Z","modified":"2026-04-01T10:06:48.265Z","1.0.0":"2026-03-29T03:41:23.704Z","1.1.0":"2026-03-29T03:52:03.011Z","2.1.0":"2026-03-29T06:33:19.453Z","2.2.0":"2026-03-29T15:35:08.560Z","2.3.0":"2026-03-31T04:37:11.975Z","3.0.0":"2026-04-01T10:06:48.102Z"},"author":{"name":"bottomlessmargaritas"},"license":"MIT","keywords":["claude","architecture","prompts","conventions"],"description":"Canonical Claude architecture prompt files for @bottomlessmargaritas projects","maintainers":[{"name":"null-void-undefined","email":"ian.greenough.developer@gmail.com"}],"readme":"# @bottomlessmargaritas/claude-architecture-prompts\n\nCanonical Claude convention files for fullstack TypeScript applications. Install once, get standardized rules for backend, frontend, database, styling, and deployment.\n\n## Installation\n\n```bash\nnpm install @bottomlessmargaritas/claude-architecture-prompts\n```\n\nOn install, the postinstall hook copies all rule files into `.claude/bottomlessmargaritas/` at your project root.\n\n## What's included\n\n| File | Covers |\n|------|--------|\n| `CLAUDE.md` | Index — lists all convention files, shared stack, testing, and commit conventions |\n| `CLAUDE-BACKEND.md` | Express layers, handlers, repos, services, Zod validation, Pino logging, formatting |\n| `CLAUDE-FRONTEND.md` | Next.js App Router, React components, TanStack Query, hooks, API calls, formatting |\n| `CLAUDE-DATABASE.md` | PostgreSQL schema design, node-pg-migrate migrations, SQL patterns, type mapping |\n| `CLAUDE-STYLING.md` | SCSS modules, CSS custom properties, responsive breakpoints, typography |\n| `CLOUD-DEPLOYMENT.md` | Railway, Vercel, Cloudflare R2, GCP Secret Manager, env vars, staging/production |\n| `CLAUDE-MULTI-REPO.md` | Multi-agent work, audit-first workflow, prompt minimization, model routing |\n| `CLAUDE-SPEC-TO-BUILD.md` | Spec-to-build workflow, task decomposition, TDD process, feasibility assessment |\n\n## Referencing from your app's CLAUDE.md\n\nClaude Code only auto-loads files named `CLAUDE.md`. To make the convention files discoverable, add a reference block to your project's `CLAUDE.md`:\n\n```markdown\n## Shared convention files\n\nRead the relevant file in `.claude/bottomlessmargaritas/` **before writing code** in that layer:\n\n- **Backend:** `.claude/bottomlessmargaritas/CLAUDE-BACKEND.md`\n- **Frontend:** `.claude/bottomlessmargaritas/CLAUDE-FRONTEND.md`\n- **Database:** `.claude/bottomlessmargaritas/CLAUDE-DATABASE.md`\n- **Styling:** `.claude/bottomlessmargaritas/CLAUDE-STYLING.md`\n- **Deployment:** `.claude/bottomlessmargaritas/CLOUD-DEPLOYMENT.md`\n```\n\nOnly include the files relevant to your project. A backend-only app doesn't need the frontend or styling references.\n\n## CLI usage\n\nThe postinstall hook runs automatically. You can also run it manually:\n\n```bash\n# Copy rules to .claude/bottomlessmargaritas/\nnpx claude-architecture-prompts\n\n# Preview what would be copied\nnpx claude-architecture-prompts --dry-run\n```\n\n## Updating\n\n```bash\nnpm update @bottomlessmargaritas/claude-architecture-prompts\n```\n\nThe postinstall hook runs again, overwriting changed files and removing stale ones. Unchanged files are skipped.\n\n## .gitignore\n\nAdd the installed copies to `.gitignore` since they're generated:\n\n```\n.claude/bottomlessmargaritas/\n```\n","readmeFilename":"README.md"}