{"_id":"@alwkala/tidyfactor-next","_rev":"4-2db0425a730f933ba1232b2e1c732bff","name":"@alwkala/tidyfactor-next","dist-tags":{"latest":"1.4.0"},"versions":{"1.1.0":{"name":"@alwkala/tidyfactor-next","version":"1.1.0","keywords":["tidyfactor","tidyfactor-next","multi-tenant","saas","nextjs16","react19","supabase","postgres","rls","tenant-isolation","performance-optimization","agentic-ai","antigravity","claude-skill"],"author":{"url":"https://alwkala.com","name":"TidyFactor & Alwkala","email":"hello@tidyfactor.com"},"license":"Apache-2.0","_id":"@alwkala/tidyfactor-next@1.1.0","maintainers":[{"name":"alwkala","email":"development@alwkala.com"}],"homepage":"https://tidyfactor.com","bugs":{"url":"https://github.com/TidyFactor/Next/issues"},"bin":{"tidyfactor-next":"bin/create-kit.js","create-tidyfactor-next":"bin/create-kit.js"},"dist":{"shasum":"1b47c279ed6319833775ecb657bb75ccea309f79","tarball":"https://registry.npmjs.org/@alwkala/tidyfactor-next/-/tidyfactor-next-1.1.0.tgz","fileCount":53,"integrity":"sha512-3rI76fUPGjTXSnB5Uf3TM2X6A89oGQibJO4OsJexlzFF4dpyVNElJ6w18rIx4HZ9Inki7pJXB0QPatjo3KQQ2g==","signatures":[{"sig":"MEUCIADI8YCRHjuYiGbtBhhxumMTIzARQgYNI6Vwh1X0zGXAAiEA8ZuvuBjXZ8BXFb+Pg2dDKC5zOchmEka/jYSMBDUJY/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255581},"main":"SKILL.md","gitHead":"f3a7e1d39996cd4a40467fcd2f2308cf53df366d","scripts":{"add-skill":"node ./bin/add-skill.js"},"_npmUser":{"name":"alwkala","email":"development@alwkala.com"},"repository":{"url":"git+https://github.com/TidyFactor/Next.git","type":"git"},"_npmVersion":"11.6.2","description":"TidyFactor Next — Production-Grade Multi-Tenant SaaS Architecture & Development Performance Engine","directories":{},"_nodeVersion":"24.11.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tidyfactor-next_1.1.0_1787106157129_0.9323874514232533","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alwkala/tidyfactor-next","version":"1.2.0","keywords":["tidyfactor","nextjs","nextjs16","react19","supabase","multi-tenant","saas","rls","typescript","ai-agents","antigravity","claude-code","cursor"],"author":{"url":"https://alwkala.com","name":"TidyFactor & Alwkala","email":"hello@tidyfactor.com"},"license":"Apache-2.0","_id":"@alwkala/tidyfactor-next@1.2.0","maintainers":[{"name":"alwkala","email":"development@alwkala.com"}],"homepage":"https://github.com/TidyFactor/Next#readme","bugs":{"url":"https://github.com/TidyFactor/Next/issues"},"bin":{"add-skill":"bin/add-skill.js","add-next-skill":"bin/add-skill.js","tidyfactor-next":"bin/add-skill.js"},"dist":{"shasum":"0b21cd412b058b928c9d2bbbe0266aac9ebb608e","tarball":"https://registry.npmjs.org/@alwkala/tidyfactor-next/-/tidyfactor-next-1.2.0.tgz","fileCount":74,"integrity":"sha512-FHsdI9IXPw8DoqEzB7+bXv5uM/8gl/1sj/1PVpHFx6H/5HrnYHGU1pChQyKERJSwaWtnYFj/oAvPU3A0496Lzw==","signatures":[{"sig":"MEUCIEFdT0mWaC4SxpoS9XlHHiwjExTvkydgxTgFly3LvTXGAiEAlhrZrAfuJSpn4FQgqd6jZR4AcxC4GDoz0u7n8FlYhek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275795},"main":"SKILL.md","gitHead":"41ea51d7e9724992ad6295ddd0c5e34c827e0b21","scripts":{"build":"node tools/build-skill.js","release":"python ../tools/release_skill.py .","validate":"python tools/validate_skill.py"},"_npmUser":{"name":"alwkala","email":"development@alwkala.com"},"repository":{"url":"git+https://github.com/TidyFactor/Next.git","type":"git"},"_npmVersion":"11.6.2","description":"TidyFactor Next.js track — production-grade multi-tenant SaaS on Next.js 16, React 19, TypeScript strict, and Supabase with CDL Contextual Decision Layer","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tidyfactor-next_1.2.0_1787625759417_0.20717185077596834","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alwkala/tidyfactor-next","version":"1.3.0","keywords":["tidyfactor","nextjs","nextjs16","react19","supabase","multi-tenant","saas","rls","typescript","ai-agents","antigravity","claude-code","cursor"],"author":{"url":"https://alwkala.com","name":"TidyFactor & Alwkala","email":"hello@tidyfactor.com"},"license":"Apache-2.0","_id":"@alwkala/tidyfactor-next@1.3.0","maintainers":[{"name":"alwkala","email":"development@alwkala.com"}],"homepage":"https://github.com/TidyFactor/Next#readme","bugs":{"url":"https://github.com/TidyFactor/Next/issues"},"bin":{"add-skill":"bin/add-skill.js","add-next-skill":"bin/add-skill.js","tidyfactor-next":"bin/add-skill.js"},"dist":{"shasum":"d358d77c9fd262220f07ccd08529667e5674a454","tarball":"https://registry.npmjs.org/@alwkala/tidyfactor-next/-/tidyfactor-next-1.3.0.tgz","fileCount":75,"integrity":"sha512-yhC+MDU4T+An+HAasZXweF4X0F6h4EQVwI4s7cngzc81mADma3q5OT1l8A+PMONUziwQrE8R/IiUJpXGddCKUA==","signatures":[{"sig":"MEUCIQD+JoNvu806Rkh9w+cUNhodC1i5+AhATnpbz+Hnzzy3mgIgclhupt3/71aA44mEex1JMUtr3+XTUY+ybgeTD59TN6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292529},"main":"SKILL.md","gitHead":"a4e3d2add846c2fcc9d0abce73fff6b5dc8fe2f6","scripts":{"build":"node tools/build-skill.js","release":"python ../tools/release_skill.py .","validate":"python tools/validate_skill.py"},"_npmUser":{"name":"alwkala","email":"development@alwkala.com"},"repository":{"url":"git+https://github.com/TidyFactor/Next.git","type":"git"},"_npmVersion":"11.6.2","description":"TidyFactor Next.js track — production-grade multi-tenant SaaS on Next.js 16, React 19, TypeScript strict, and Supabase with CDL Contextual Decision Layer","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tidyfactor-next_1.3.0_1787788364891_0.6220062894617722","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alwkala/tidyfactor-next","version":"1.4.0","description":"TidyFactor Next.js track — production-grade multi-tenant SaaS on Next.js 16, React 19, TypeScript strict, and Supabase with CDL Contextual Decision Layer","main":"SKILL.md","bin":{"tidyfactor-next":"bin/add-skill.js","add-skill":"bin/add-skill.js","add-next-skill":"bin/add-skill.js"},"keywords":["tidyfactor","nextjs","nextjs16","react19","supabase","multi-tenant","saas","rls","typescript","ai-agents","antigravity","claude-code","cursor"],"author":{"name":"TidyFactor & Alwkala","email":"hello@tidyfactor.com","url":"https://alwkala.com"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/TidyFactor/Next.git"},"scripts":{"validate":"python tools/validate_skill.py","build":"node tools/build-skill.js","release":"python ../tools/release_skill.py ."},"publishConfig":{"access":"public"},"gitHead":"f9c98e46b3f74616a7a2bcb189c6f8a5b513d827","_id":"@alwkala/tidyfactor-next@1.4.0","bugs":{"url":"https://github.com/TidyFactor/Next/issues"},"homepage":"https://github.com/TidyFactor/Next#readme","_nodeVersion":"24.11.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-nvYLIL0CRhxJOqGh6Er3ELe/HpIPcmvx4pw2t4wSh0X7RmLbg8OWfQ5IyX7O5ZnkKTCEU6zQRFC/Up2yGgt4LQ==","shasum":"be75bc326c0897aefc7bd9538020b2b92326a830","tarball":"https://registry.npmjs.org/@alwkala/tidyfactor-next/-/tidyfactor-next-1.4.0.tgz","fileCount":82,"unpackedSize":353727,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDrV64fXcppFdJ/ahZZauQFxA/d59Izvhg1aTRF86P48wIhAJDzZPWz7BYwyfJHmu5BaU4SQowbn0oJRvi984LpnlaS"}]},"_npmUser":{"name":"alwkala","email":"development@alwkala.com"},"directories":{},"maintainers":[{"name":"alwkala","email":"development@alwkala.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tidyfactor-next_1.4.0_1787973976324_0.8606186786447514"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-19T02:22:36.970Z","modified":"2026-08-29T03:26:16.633Z","1.1.0":"2026-08-19T02:22:37.284Z","1.2.0":"2026-08-25T02:42:39.570Z","1.3.0":"2026-08-26T23:52:45.049Z","1.4.0":"2026-08-29T03:26:16.469Z"},"bugs":{"url":"https://github.com/TidyFactor/Next/issues"},"author":{"name":"TidyFactor & Alwkala","email":"hello@tidyfactor.com","url":"https://alwkala.com"},"license":"Apache-2.0","homepage":"https://github.com/TidyFactor/Next#readme","keywords":["tidyfactor","nextjs","nextjs16","react19","supabase","multi-tenant","saas","rls","typescript","ai-agents","antigravity","claude-code","cursor"],"repository":{"type":"git","url":"git+https://github.com/TidyFactor/Next.git"},"description":"TidyFactor Next.js track — production-grade multi-tenant SaaS on Next.js 16, React 19, TypeScript strict, and Supabase with CDL Contextual Decision Layer","maintainers":[{"name":"alwkala","email":"development@alwkala.com"}],"readme":"<div align=\"center\">\r\n\r\n# tidyfactor-next `v1.4.0`\r\n\r\n**基于 Next.js 16、React 19 与 Supabase 的生产级多租户 SaaS 引擎**\r\n\r\n[![npm version](https://img.shields.io/npm/v/@alwkala/tidyfactor-next.svg?style=for-the-badge&color=0284C7)](https://www.npmjs.com/package/@alwkala/tidyfactor-next)\r\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg?style=for-the-badge)](LICENSE)\r\n\r\n[ English ](README.md) • [ العربية ](README.ar.md) • [ فارسی ](README.fa.md) • [ Español ](README.es.md) • [ Português ](README.pt.md) • [ 简体中文 ](README.zh.md) • [ Deutsch ](README.de.md) • [ Français ](README.fr.md)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## ⚡ 快速上手 (Quickstart)\r\n\r\n```bash\r\n# 通过 NPX 快速运行\r\nnpx @alwkala/tidyfactor-next\r\n```\r\n\r\n或在 AI 编码助手 (*Google Antigravity, Claude Code, Cursor, Codex*) 中调用：\r\n```text\r\n/tidyfactor-next\r\n```\r\n\r\n---\r\n\r\n## 📋 核心命令矩阵\r\n\r\n| 命令 | 目标与产出 | 执行工作流 |\r\n|---|---|---|\r\n| `/brief` | Arquitectura SaaS y aislamiento de inquilinos | `workflows/brief.md` |\r\n| `/init` | Scaffolding de proyecto Next.js App Router estricto | `workflows/init.md` |\r\n| `/tenant` | Aislamiento por tenant_id y Postgres RLS | `workflows/tenant.md` |\r\n| `/auth` | Autenticación segura y RBAC | `workflows/auth.md` |\r\n| `/data` | Capa de datos y mutaciones seguras | `workflows/data.md` |\r\n\r\n---\r\n\r\n## 📖 完整技术规范与文档\r\n\r\n如需查看深层架构设计、完整 JSON Schema 契约和原生代码，请参阅[英文权威技术文档 (README.md)](README.md)。\r\n","readmeFilename":"README.zh.md"}