@schneiderjoseph/devia 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/AGENTS.md +149 -0
  2. package/CHANGELOG.md +78 -0
  3. package/GOVERNANCE.md +51 -0
  4. package/LEVELS.md +78 -0
  5. package/LICENSE +21 -0
  6. package/MATURITY.md +79 -0
  7. package/MEMORY.md +122 -0
  8. package/MIGRATION.md +62 -0
  9. package/PRINCIPLES.md +110 -0
  10. package/README.md +125 -0
  11. package/REFERENCES.md +30 -0
  12. package/VERSION +5 -0
  13. package/bin/devia.mjs +13 -0
  14. package/checklists/README.md +39 -0
  15. package/checklists/design/accessibility-review.md +11 -0
  16. package/checklists/design/design-to-code-review.md +10 -0
  17. package/checklists/design/responsive-review.md +7 -0
  18. package/checklists/design/ui-review.md +8 -0
  19. package/checklists/design/ux-review.md +10 -0
  20. package/checklists/engineering/accessibility.md +8 -0
  21. package/checklists/engineering/api.md +12 -0
  22. package/checklists/engineering/architecture.md +8 -0
  23. package/checklists/engineering/database.md +11 -0
  24. package/checklists/engineering/devops.md +9 -0
  25. package/checklists/engineering/disaster-recovery.md +9 -0
  26. package/checklists/engineering/frontend.md +9 -0
  27. package/checklists/engineering/incident.md +9 -0
  28. package/checklists/engineering/performance.md +7 -0
  29. package/checklists/engineering/production.md +26 -0
  30. package/checklists/engineering/release.md +17 -0
  31. package/checklists/engineering/security.md +33 -0
  32. package/checklists/engineering/testing.md +8 -0
  33. package/compliance/COVERAGE.md +46 -0
  34. package/compliance/REQUIREMENTS.md +8 -0
  35. package/compliance/TRACEABILITY.md +160 -0
  36. package/compliance/WAIVERS.md +13 -0
  37. package/package.json +74 -0
  38. package/rules/LIFECYCLE.md +16 -0
  39. package/rules/README.md +166 -0
  40. package/rules/accessibility/A11Y-001.md +42 -0
  41. package/rules/accessibility/A11Y-002.md +41 -0
  42. package/rules/accessibility/A11Y-003.md +40 -0
  43. package/rules/accessibility/A11Y-004.md +40 -0
  44. package/rules/accessibility/A11Y-005.md +39 -0
  45. package/rules/accessibility/A11Y-006.md +42 -0
  46. package/rules/accessibility/A11Y-007.md +39 -0
  47. package/rules/accessibility/A11Y-008.md +40 -0
  48. package/rules/accessibility/A11Y-009.md +41 -0
  49. package/rules/accessibility/A11Y-010.md +40 -0
  50. package/rules/accessibility/A11Y-011.md +39 -0
  51. package/rules/accessibility/A11Y-012.md +39 -0
  52. package/rules/agent/AGT-001.md +42 -0
  53. package/rules/agent/AGT-002.md +39 -0
  54. package/rules/agent/AGT-003.md +38 -0
  55. package/rules/agent/AGT-004.md +39 -0
  56. package/rules/agent/AGT-005.md +38 -0
  57. package/rules/agent/AGT-006.md +38 -0
  58. package/rules/agent/AGT-007.md +38 -0
  59. package/rules/agent/AGT-008.md +38 -0
  60. package/rules/agent/AGT-009.md +39 -0
  61. package/rules/agent/AGT-010.md +38 -0
  62. package/rules/agent/AGT-011.md +38 -0
  63. package/rules/ai/AI-001.md +44 -0
  64. package/rules/ai/AI-002.md +39 -0
  65. package/rules/ai/AI-003.md +40 -0
  66. package/rules/ai/AI-004.md +39 -0
  67. package/rules/ai/AI-005.md +38 -0
  68. package/rules/api/API-001.md +39 -0
  69. package/rules/api/API-002.md +39 -0
  70. package/rules/api/API-003.md +39 -0
  71. package/rules/api/API-004.md +38 -0
  72. package/rules/api/API-005.md +39 -0
  73. package/rules/api/API-006.md +40 -0
  74. package/rules/architecture/ARC-001.md +41 -0
  75. package/rules/architecture/ARC-002.md +43 -0
  76. package/rules/architecture/ARC-003.md +43 -0
  77. package/rules/architecture/ARC-004.md +40 -0
  78. package/rules/architecture/ARC-005.md +39 -0
  79. package/rules/architecture/ARC-006.md +39 -0
  80. package/rules/components/CMP-001.md +39 -0
  81. package/rules/components/CMP-002.md +38 -0
  82. package/rules/components/CMP-003.md +39 -0
  83. package/rules/components/CMP-004.md +40 -0
  84. package/rules/components/CMP-005.md +39 -0
  85. package/rules/content/CNT-001.md +39 -0
  86. package/rules/data-display/DATA-001.md +39 -0
  87. package/rules/data-display/DATA-002.md +39 -0
  88. package/rules/data-display/DATA-003.md +40 -0
  89. package/rules/data-display/DATA-004.md +40 -0
  90. package/rules/database/DB-001.md +43 -0
  91. package/rules/database/DB-002.md +38 -0
  92. package/rules/database/DB-003.md +40 -0
  93. package/rules/database/DB-004.md +44 -0
  94. package/rules/database/DB-005.md +39 -0
  95. package/rules/database/DB-006.md +38 -0
  96. package/rules/database/DB-007.md +40 -0
  97. package/rules/database/DB-008.md +40 -0
  98. package/rules/design-system/DS-001.md +39 -0
  99. package/rules/design-system/DS-002.md +40 -0
  100. package/rules/design-system/DS-003.md +38 -0
  101. package/rules/devops/OPS-001.md +43 -0
  102. package/rules/devops/OPS-002.md +39 -0
  103. package/rules/devops/OPS-003.md +38 -0
  104. package/rules/devops/OPS-004.md +40 -0
  105. package/rules/devops/OPS-005.md +43 -0
  106. package/rules/devops/OPS-006.md +38 -0
  107. package/rules/devops/OPS-007.md +40 -0
  108. package/rules/interaction/INT-001.md +39 -0
  109. package/rules/interaction/INT-002.md +39 -0
  110. package/rules/localization/I18N-001.md +38 -0
  111. package/rules/localization/I18N-002.md +40 -0
  112. package/rules/localization/I18N-003.md +39 -0
  113. package/rules/memory/MEM-001.md +44 -0
  114. package/rules/memory/MEM-002.md +39 -0
  115. package/rules/memory/MEM-003.md +38 -0
  116. package/rules/memory/MEM-004.md +38 -0
  117. package/rules/memory/MEM-005.md +38 -0
  118. package/rules/memory/MEM-006.md +38 -0
  119. package/rules/memory/MEM-007.md +38 -0
  120. package/rules/memory/MEM-008.md +38 -0
  121. package/rules/memory/MEM-009.md +39 -0
  122. package/rules/memory/MEM-010.md +38 -0
  123. package/rules/memory/MEM-011.md +38 -0
  124. package/rules/motion/MOT-001.md +38 -0
  125. package/rules/observability/OBS-001.md +40 -0
  126. package/rules/observability/OBS-002.md +40 -0
  127. package/rules/observability/OBS-003.md +38 -0
  128. package/rules/observability/OBS-004.md +38 -0
  129. package/rules/privacy/PRIV-001.md +38 -0
  130. package/rules/privacy/PRIV-002.md +44 -0
  131. package/rules/privacy/PRIV-003.md +40 -0
  132. package/rules/privacy/PRIV-004.md +41 -0
  133. package/rules/responsive/RWD-001.md +40 -0
  134. package/rules/responsive/RWD-002.md +39 -0
  135. package/rules/responsive/RWD-003.md +39 -0
  136. package/rules/security/SEC-001.md +44 -0
  137. package/rules/security/SEC-002.md +44 -0
  138. package/rules/security/SEC-003.md +41 -0
  139. package/rules/security/SEC-004.md +40 -0
  140. package/rules/security/SEC-005.md +42 -0
  141. package/rules/security/SEC-006.md +40 -0
  142. package/rules/security/SEC-007.md +44 -0
  143. package/rules/security/SEC-008.md +39 -0
  144. package/rules/security/SEC-009.md +40 -0
  145. package/rules/security/SEC-010.md +40 -0
  146. package/rules/security/SEC-011.md +40 -0
  147. package/rules/security/SEC-012.md +40 -0
  148. package/rules/states/STATE-001.md +38 -0
  149. package/rules/states/STATE-002.md +39 -0
  150. package/rules/states/STATE-003.md +39 -0
  151. package/rules/states/STATE-004.md +38 -0
  152. package/rules/testing/TST-001.md +39 -0
  153. package/rules/testing/TST-002.md +39 -0
  154. package/rules/testing/TST-003.md +39 -0
  155. package/rules/testing/TST-004.md +38 -0
  156. package/rules/testing/TST-005.md +40 -0
  157. package/rules/testing/TST-006.md +39 -0
  158. package/rules/ui/UI-001.md +40 -0
  159. package/rules/ui/UI-002.md +38 -0
  160. package/rules/ui/UI-003.md +41 -0
  161. package/rules/ui/UI-004.md +41 -0
  162. package/rules/ui/UI-005.md +41 -0
  163. package/rules/ui/UI-006.md +40 -0
  164. package/rules/ui/UI-007.md +41 -0
  165. package/rules/ux/UX-001.md +41 -0
  166. package/rules/ux/UX-002.md +41 -0
  167. package/rules/ux/UX-003.md +39 -0
  168. package/rules/ux/UX-004.md +39 -0
  169. package/rules/ux/UX-005.md +40 -0
  170. package/rules/ux/UX-006.md +40 -0
  171. package/rules/ux/UX-007.md +44 -0
  172. package/rules/ux/UX-008.md +41 -0
  173. package/rules/ux/UX-009.md +39 -0
  174. package/rules/ux/UX-010.md +40 -0
  175. package/rules/ux/UX-011.md +40 -0
  176. package/rules/ux/UX-012.md +40 -0
  177. package/rules/ux/UX-013.md +39 -0
  178. package/schema/README.md +19 -0
  179. package/schema/checklist.schema.json +34 -0
  180. package/schema/component.schema.json +37 -0
  181. package/schema/project-config.schema.json +70 -0
  182. package/schema/rule.schema.json +104 -0
  183. package/schema/token.schema.json +15 -0
  184. package/schema/waiver.schema.json +33 -0
  185. package/scripts/build-index.mjs +178 -0
  186. package/scripts/validate-links.mjs +43 -0
  187. package/scripts/validate-rules.mjs +42 -0
  188. package/skills/devia/SKILL.md +114 -0
  189. package/src/cli.mjs +107 -0
  190. package/src/commands/check.mjs +483 -0
  191. package/src/commands/doctor.mjs +139 -0
  192. package/src/commands/init.mjs +186 -0
  193. package/src/commands/registry.mjs +154 -0
  194. package/src/commands/rules.mjs +101 -0
  195. package/src/commands/skills.mjs +97 -0
  196. package/src/commands/sync.mjs +83 -0
  197. package/src/commands/validate.mjs +194 -0
  198. package/src/lib/fs.mjs +89 -0
  199. package/src/lib/git.mjs +31 -0
  200. package/src/lib/rules.mjs +85 -0
  201. package/src/lib/ui.mjs +52 -0
  202. package/src/lib/vendor.mjs +74 -0
  203. package/src/lib/version.mjs +19 -0
  204. package/src/lib/yaml.mjs +152 -0
  205. package/standard/README.md +31 -0
  206. package/standard/design/README.md +51 -0
  207. package/standard/design/REFERENCES.md +39 -0
  208. package/standard/design/accessibility/aria.md +7 -0
  209. package/standard/design/accessibility/contrast.md +6 -0
  210. package/standard/design/accessibility/focus.md +6 -0
  211. package/standard/design/accessibility/forms.md +3 -0
  212. package/standard/design/accessibility/keyboard.md +6 -0
  213. package/standard/design/accessibility/reduced-motion.md +3 -0
  214. package/standard/design/accessibility/reflow.md +3 -0
  215. package/standard/design/accessibility/screen-readers.md +3 -0
  216. package/standard/design/accessibility/target-size.md +3 -0
  217. package/standard/design/accessibility/testing.md +3 -0
  218. package/standard/design/accessibility/wcag-2.2.md +16 -0
  219. package/standard/design/accessibility/zoom.md +3 -0
  220. package/standard/design/ai/ai-design-rules.md +8 -0
  221. package/standard/design/ai/anti-patterns.md +1 -0
  222. package/standard/design/ai/compliance-format.md +22 -0
  223. package/standard/design/ai/design-review.md +10 -0
  224. package/standard/design/ai/evals/README.md +1 -0
  225. package/standard/design/ai/instructions.md +7 -0
  226. package/standard/design/ai/prompts/accessibility-review.md +5 -0
  227. package/standard/design/ai/prompts/design-system-review.md +5 -0
  228. package/standard/design/ai/prompts/ui-review.md +5 -0
  229. package/standard/design/ai/prompts/ux-review.md +5 -0
  230. package/standard/design/ai/review-protocol.md +11 -0
  231. package/standard/design/anti-patterns/accessibility.md +7 -0
  232. package/standard/design/anti-patterns/ai-generated.md +6 -0
  233. package/standard/design/anti-patterns/dashboards.md +5 -0
  234. package/standard/design/anti-patterns/forms.md +5 -0
  235. package/standard/design/anti-patterns/responsive.md +5 -0
  236. package/standard/design/anti-patterns/ui.md +6 -0
  237. package/standard/design/anti-patterns/ux.md +5 -0
  238. package/standard/design/components/buttons.md +6 -0
  239. package/standard/design/components/dialogs.md +5 -0
  240. package/standard/design/components/feedback.md +3 -0
  241. package/standard/design/components/forms.md +3 -0
  242. package/standard/design/components/navigation.md +3 -0
  243. package/standard/design/components/tables.md +6 -0
  244. package/standard/design/content/error-messages.md +4 -0
  245. package/standard/design/content/ux-writing.md +5 -0
  246. package/standard/design/data-display/README.md +5 -0
  247. package/standard/design/data-display/currency.md +3 -0
  248. package/standard/design/data-display/dates.md +3 -0
  249. package/standard/design/data-display/density.md +3 -0
  250. package/standard/design/data-display/filtering.md +3 -0
  251. package/standard/design/data-display/localization.md +3 -0
  252. package/standard/design/data-display/numbers.md +3 -0
  253. package/standard/design/data-display/pagination.md +3 -0
  254. package/standard/design/data-display/percentages.md +3 -0
  255. package/standard/design/data-display/sorting.md +3 -0
  256. package/standard/design/data-display/tables.md +3 -0
  257. package/standard/design/data-display/time.md +3 -0
  258. package/standard/design/decisions/ADR-001-token-naming.md +13 -0
  259. package/standard/design/decisions/ADR-002-radius-scale.md +9 -0
  260. package/standard/design/decisions/ADR-003-color-system.md +9 -0
  261. package/standard/design/decisions/ADR-004-component-versioning.md +9 -0
  262. package/standard/design/decisions/README.md +3 -0
  263. package/standard/design/design-system/components.md +9 -0
  264. package/standard/design/design-system/naming.md +19 -0
  265. package/standard/design/design-system/tokens.md +7 -0
  266. package/standard/design/design-system/variants.md +5 -0
  267. package/standard/design/design-system/versioning.md +5 -0
  268. package/standard/design/health/coverage.md +1 -0
  269. package/standard/design/health/dashboard.md +14 -0
  270. package/standard/design/health/maturity-model.md +9 -0
  271. package/standard/design/health/score.md +14 -0
  272. package/standard/design/interaction/README.md +10 -0
  273. package/standard/design/interaction/keyboard.md +3 -0
  274. package/standard/design/interaction/mouse.md +2 -0
  275. package/standard/design/interaction/pen.md +1 -0
  276. package/standard/design/interaction/touch.md +3 -0
  277. package/standard/design/interaction/touchscreen.md +6 -0
  278. package/standard/design/interaction/voice.md +2 -0
  279. package/standard/design/localization/README.md +5 -0
  280. package/standard/design/localization/currency.md +3 -0
  281. package/standard/design/localization/date-time.md +3 -0
  282. package/standard/design/localization/i18n.md +3 -0
  283. package/standard/design/localization/locale-testing.md +3 -0
  284. package/standard/design/localization/number-formatting.md +3 -0
  285. package/standard/design/localization/pluralization.md +3 -0
  286. package/standard/design/localization/rtl.md +3 -0
  287. package/standard/design/localization/text-expansion.md +3 -0
  288. package/standard/design/motion/animation.md +6 -0
  289. package/standard/design/penpot/WORKFLOW.md +27 -0
  290. package/standard/design/platforms/README.md +12 -0
  291. package/standard/design/platforms/desktop/README.md +5 -0
  292. package/standard/design/platforms/mobile/android.md +5 -0
  293. package/standard/design/platforms/mobile/ios.md +5 -0
  294. package/standard/design/platforms/tablet/README.md +5 -0
  295. package/standard/design/platforms/web/README.md +1 -0
  296. package/standard/design/principles/design-principles.md +9 -0
  297. package/standard/design/principles/ui-principles.md +7 -0
  298. package/standard/design/principles/ux-principles.md +14 -0
  299. package/standard/design/references/atlassian.md +3 -0
  300. package/standard/design/references/carbon.md +3 -0
  301. package/standard/design/references/figma-sds.md +5 -0
  302. package/standard/design/references/govuk.md +3 -0
  303. package/standard/design/references/material.md +3 -0
  304. package/standard/design/references/nng.md +3 -0
  305. package/standard/design/references/openui.md +3 -0
  306. package/standard/design/references/primer.md +5 -0
  307. package/standard/design/references/storybook.md +3 -0
  308. package/standard/design/references/uswds.md +3 -0
  309. package/standard/design/references/w3c.md +3 -0
  310. package/standard/design/responsive/desktop.md +4 -0
  311. package/standard/design/responsive/mobile.md +6 -0
  312. package/standard/design/responsive/tablet.md +3 -0
  313. package/standard/design/states/async.md +3 -0
  314. package/standard/design/states/conflict.md +3 -0
  315. package/standard/design/states/empty.md +3 -0
  316. package/standard/design/states/error.md +3 -0
  317. package/standard/design/states/interaction.md +5 -0
  318. package/standard/design/states/loading.md +3 -0
  319. package/standard/design/states/offline.md +3 -0
  320. package/standard/design/states/optimistic.md +3 -0
  321. package/standard/design/states/partial.md +3 -0
  322. package/standard/design/states/permission-denied.md +3 -0
  323. package/standard/design/states/rate-limited.md +3 -0
  324. package/standard/design/states/read-only.md +3 -0
  325. package/standard/design/states/retry.md +3 -0
  326. package/standard/design/states/skeleton.md +3 -0
  327. package/standard/design/states/stale.md +3 -0
  328. package/standard/design/states/success.md +3 -0
  329. package/standard/design/states/timeout.md +3 -0
  330. package/standard/design/states/unsaved-changes.md +3 -0
  331. package/standard/design/ui/color.md +6 -0
  332. package/standard/design/ui/grids.md +5 -0
  333. package/standard/design/ui/icons.md +5 -0
  334. package/standard/design/ui/imagery.md +5 -0
  335. package/standard/design/ui/layout.md +5 -0
  336. package/standard/design/ui/spacing.md +5 -0
  337. package/standard/design/ui/typography.md +6 -0
  338. package/standard/design/ui/visual-design.md +7 -0
  339. package/standard/design/ux/cognitive-load.md +5 -0
  340. package/standard/design/ux/errors.md +6 -0
  341. package/standard/design/ux/feedback.md +5 -0
  342. package/standard/design/ux/forms.md +7 -0
  343. package/standard/design/ux/heuristics.md +14 -0
  344. package/standard/design/ux/information-architecture.md +6 -0
  345. package/standard/design/ux/navigation.md +6 -0
  346. package/standard/design/ux/usability.md +6 -0
  347. package/standard/engineering/README.md +29 -0
  348. package/standard/engineering/REFERENCES.md +42 -0
  349. package/standard/engineering/ai/AI_SECURITY.md +15 -0
  350. package/standard/engineering/ai/PROMPT_SECURITY.md +6 -0
  351. package/standard/engineering/architecture/ADR.md +11 -0
  352. package/standard/engineering/architecture/ARCHITECTURE.md +25 -0
  353. package/standard/engineering/architecture/PRINCIPLES.md +17 -0
  354. package/standard/engineering/architecture/THREAT_MODEL.md +14 -0
  355. package/standard/engineering/backend/API.md +29 -0
  356. package/standard/engineering/backend/BACKGROUND_JOBS.md +12 -0
  357. package/standard/engineering/backend/ERROR_HANDLING.md +26 -0
  358. package/standard/engineering/backend/LOGGING.md +12 -0
  359. package/standard/engineering/compliance/DATA_RETENTION.md +10 -0
  360. package/standard/engineering/compliance/PRIVACY.md +11 -0
  361. package/standard/engineering/database/BACKUPS.md +19 -0
  362. package/standard/engineering/database/DATABASE.md +30 -0
  363. package/standard/engineering/database/MIGRATIONS.md +12 -0
  364. package/standard/engineering/devops/BRANCH_PROTECTION.md +17 -0
  365. package/standard/engineering/devops/CI_CD.md +48 -0
  366. package/standard/engineering/devops/DEPLOYMENT.md +12 -0
  367. package/standard/engineering/devops/DOCKER.md +9 -0
  368. package/standard/engineering/devops/ENVIRONMENTS.md +12 -0
  369. package/standard/engineering/devops/RELEASE.md +6 -0
  370. package/standard/engineering/devops/ROLLBACK.md +9 -0
  371. package/standard/engineering/frontend/ACCESSIBILITY.md +16 -0
  372. package/standard/engineering/frontend/DESIGN_SYSTEM.md +10 -0
  373. package/standard/engineering/frontend/FRONTEND.md +17 -0
  374. package/standard/engineering/frontend/UX.md +15 -0
  375. package/standard/engineering/observability/ALERTING.md +11 -0
  376. package/standard/engineering/observability/INCIDENTS.md +10 -0
  377. package/standard/engineering/observability/MONITORING.md +17 -0
  378. package/standard/engineering/payments/PAYMENTS.md +15 -0
  379. package/standard/engineering/performance/PERFORMANCE.md +19 -0
  380. package/standard/engineering/security/API_SECURITY.md +22 -0
  381. package/standard/engineering/security/ASVS_5.0/V10_MALICIOUS_CODE.md +31 -0
  382. package/standard/engineering/security/ASVS_5.0/V11_BUSINESS_LOGIC.md +31 -0
  383. package/standard/engineering/security/ASVS_5.0/V12_FILES.md +31 -0
  384. package/standard/engineering/security/ASVS_5.0/V13_API.md +31 -0
  385. package/standard/engineering/security/ASVS_5.0/V14_CONFIGURATION.md +31 -0
  386. package/standard/engineering/security/ASVS_5.0/V1_ARCHITECTURE.md +31 -0
  387. package/standard/engineering/security/ASVS_5.0/V2_AUTHENTICATION.md +31 -0
  388. package/standard/engineering/security/ASVS_5.0/V3_SESSION.md +31 -0
  389. package/standard/engineering/security/ASVS_5.0/V4_ACCESS_CONTROL.md +31 -0
  390. package/standard/engineering/security/ASVS_5.0/V5_VALIDATION.md +31 -0
  391. package/standard/engineering/security/ASVS_5.0/V6_CRYPTOGRAPHY.md +31 -0
  392. package/standard/engineering/security/ASVS_5.0/V7_ERROR_HANDLING.md +31 -0
  393. package/standard/engineering/security/ASVS_5.0/V8_DATA_PROTECTION.md +31 -0
  394. package/standard/engineering/security/ASVS_5.0/V9_COMMUNICATION.md +31 -0
  395. package/standard/engineering/security/ASVS_REGISTRY.md +31 -0
  396. package/standard/engineering/security/AUTHENTICATION.md +28 -0
  397. package/standard/engineering/security/AUTHORIZATION.md +27 -0
  398. package/standard/engineering/security/DATA_SECURITY.md +14 -0
  399. package/standard/engineering/security/OWASP_ASVS.md +31 -0
  400. package/standard/engineering/security/SECRETS.md +28 -0
  401. package/standard/engineering/security/SECURITY.md +28 -0
  402. package/standard/engineering/testing/TESTING.md +27 -0
  403. package/templates/agents/AGENTS.md +34 -0
  404. package/templates/agents/CLAUDE.md +33 -0
  405. package/templates/agents/copilot-instructions.md +15 -0
  406. package/templates/agents/cursor.mdc +27 -0
  407. package/templates/agents/windsurfrules.md +17 -0
  408. package/templates/docs/ADR.md +16 -0
  409. package/templates/docs/FEATURE.md +19 -0
  410. package/templates/docs/SECURITY_REPORT.md +15 -0
  411. package/templates/docs/accessibility-review.md +9 -0
  412. package/templates/docs/component.md +9 -0
  413. package/templates/docs/decision-record.md +9 -0
  414. package/templates/docs/design-review.md +9 -0
  415. package/templates/docs/exception.md +9 -0
  416. package/templates/docs/page.md +9 -0
  417. package/templates/docs/pattern.md +9 -0
  418. package/templates/docs/user-flow.md +9 -0
  419. package/templates/github/workflows/app-ci.yml +91 -0
  420. package/templates/project/00_OVERVIEW.md +51 -0
  421. package/templates/project/01_ARCHITECTURE.md +37 -0
  422. package/templates/project/02_SURFACES.md +30 -0
  423. package/templates/project/03_DATA_MODEL.md +31 -0
  424. package/templates/project/04_PERMISSIONS.md +32 -0
  425. package/templates/project/05_FLOWS.md +20 -0
  426. package/templates/project/06_INTEGRATIONS.md +21 -0
  427. package/templates/project/07_DESIGN.md +33 -0
  428. package/templates/project/10_NEVER_ALWAYS.md +26 -0
  429. package/templates/project/11_GAPS.md +18 -0
  430. package/templates/project/12_DEBT.md +19 -0
  431. package/templates/project/13_RECIPES.md +35 -0
  432. package/templates/project/14_INDEX.md +50 -0
  433. package/templates/project/AGENTS.md +51 -0
  434. package/templates/project/README.md +49 -0
  435. package/templates/project/impact-map.yaml +41 -0
@@ -0,0 +1,22 @@
1
+ # API security
2
+
3
+ ## P0
4
+
5
+ 1. Authenticate and authorize every sensitive endpoint
6
+ 2. Validate request schemas before business logic
7
+ 3. Rate-limit public and auth endpoints
8
+ 4. Verify webhook signatures before trusting events
9
+ 5. Never put provider secrets in browser calls
10
+
11
+ ## P1
12
+
13
+ 1. Security headers (CSP start report-only, then enforce; plus baseline headers)
14
+ 2. CORS allowlists — not `*` with credentials
15
+ 3. Idempotency keys on payment and other critical POSTs
16
+ 4. Consistent error shape without internal details
17
+
18
+ ## Detect
19
+
20
+ - Open CORS on credentialed APIs
21
+ - Webhook handlers that accept raw JSON with no signature
22
+ - GraphQL/Data APIs that expose fields based only on “knowing the UUID”
@@ -0,0 +1,31 @@
1
+ # ASVS — V10 MALICIOUS CODE
2
+
3
+ **OWASP ASVS theme:** Malicious Code
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Dependency review; no obfuscated implants; install-script risk
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V10_MALICIOUS_CODE)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V11 BUSINESS LOGIC
2
+
3
+ **OWASP ASVS theme:** Business Logic
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Abuse cases; idempotency; race/workflow integrity
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/backend/API.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V11_BUSINESS_LOGIC)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V12 FILES
2
+
3
+ **OWASP ASVS theme:** File Handling
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Upload type/size limits; storage isolation; malware scanning when needed
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/API_SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V12_FILES)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V13 API
2
+
3
+ **OWASP ASVS theme:** API and Web Service
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Authn on APIs; mass assignment; rate limits
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/backend/API.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V13_API)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V14 CONFIGURATION
2
+
3
+ **OWASP ASVS theme:** Configuration
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Hardened defaults; secrets management; env separation
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/SECRETS.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V14_CONFIGURATION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V1 ARCHITECTURE
2
+
3
+ **OWASP ASVS theme:** Architecture, Design and Threat Modeling
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Architecture decision records; threat model for sensitive apps
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/architecture/`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V1_ARCHITECTURE)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V2 AUTHENTICATION
2
+
3
+ **OWASP ASVS theme:** Authentication
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Login, MFA, credential storage, account recovery
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/AUTHENTICATION.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V2_AUTHENTICATION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V3 SESSION
2
+
3
+ **OWASP ASVS theme:** Session Management
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Session fixation, timeout, cookie flags, refresh rotation
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/AUTHENTICATION.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V3_SESSION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V4 ACCESS CONTROL
2
+
3
+ **OWASP ASVS theme:** Access Control
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Server-side authz; tenant isolation; deny by default
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/AUTHORIZATION.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V4_ACCESS_CONTROL)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V5 VALIDATION
2
+
3
+ **OWASP ASVS theme:** Validation, Sanitization and Encoding
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Schema validation; output encoding; injection resistance
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/API_SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V5_VALIDATION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V6 CRYPTOGRAPHY
2
+
3
+ **OWASP ASVS theme:** Stored Cryptography
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Approved algorithms; key management; no home-rolled crypto
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/DATA_SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V6_CRYPTOGRAPHY)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V7 ERROR HANDLING
2
+
3
+ **OWASP ASVS theme:** Error Handling and Logging
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Safe client errors; structured logs; no secret leakage
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/backend/ERROR_HANDLING.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V7_ERROR_HANDLING)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V8 DATA PROTECTION
2
+
3
+ **OWASP ASVS theme:** Data Protection
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ Classification; encryption; minimization
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/DATA_SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V8_DATA_PROTECTION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS — V9 COMMUNICATION
2
+
3
+ **OWASP ASVS theme:** Communication
4
+
5
+ > This file maps ASVS intent into **this standard**. It is not a verbatim copy of OWASP ASVS.
6
+ > Always prefer the official [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) text for audits.
7
+
8
+ ## Focus in this standard
9
+
10
+ TLS; secure headers; certificate hygiene
11
+
12
+ ## Our primary docs
13
+
14
+ - `docs/security/API_SECURITY.md`
15
+
16
+ ## Traceability
17
+
18
+ ```text
19
+ ASVS theme (V9_COMMUNICATION)
20
+ → Our rules (linked docs)
21
+ → Checklist items (checklists/security.md + domain checklists)
22
+ → Automated checks (scripts/production-check.mjs + app tests)
23
+ → CI gates (templates/github/workflows/app-ci.yml)
24
+ ```
25
+
26
+ See [`../ASVS_REGISTRY.md`](../ASVS_REGISTRY.md) for concrete rows.
27
+
28
+ ## Agent rules
29
+
30
+ - Do not claim ASVS compliance without evidence against the official requirements.
31
+ - When implementing features in this theme, update checklist evidence and tests, not just docs.
@@ -0,0 +1,31 @@
1
+ # ASVS registry — requirement → rule → check → CI
2
+
3
+ Traceability spine for security controls. Expand rows as apps adopt the standard.
4
+
5
+ Legend: **Auto** = scriptable today in `production-check` / typical Node CI · **Test** = app must provide automated test · **Manual** = human sign-off until automated.
6
+
7
+ | ASVS theme | Our rule (P0/P1) | Checklist | Automated check | CI gate |
8
+ |---|---|---|---|---|
9
+ | V2 Authentication | P0 server verifies identity on protected routes | `checklists/security.md` | Test: unauthenticated → 401 | unit/integration job |
10
+ | V3 Session | P0 secure cookie / token handling; no session fixation | `checklists/security.md` | Test + config review | security job |
11
+ | V4 Access control | P0 authz on every sensitive read/write; tenant scope from server session | `checklists/security.md` | Test: user A cannot read B | unit/integration **required** |
12
+ | V5 Validation | P0 validate external input before business logic | `checklists/api.md` | schema tests / fuzz critical parsers | unit + lint |
13
+ | V6 Cryptography | P0 no plaintext secrets at rest where threat model requires crypto; no home-rolled | `checklists/security.md` | Manual + dep review | secret scan + review |
14
+ | V7 Error handling | P0 no stack/SQL internals to clients in prod | `checklists/api.md` | Test prod error shape | unit/integration |
15
+ | V8 Data protection | P1 classify sensitive fields; minimize retention | `checklists/production.md` | Manual / compliance review | release checklist |
16
+ | V9 Communication | P0 HTTPS in production | `checklists/devops.md` | deploy config / smoke | deploy gates |
17
+ | V10 Malicious code | P1 lockfile + dependency audit | `checklists/devops.md` | `npm audit` / OSV | **dependency-audit** required |
18
+ | V11 Business logic | P1 abuse cases for money/state transitions | domain tests | Test | integration/E2E |
19
+ | V12 Files | P0 constrain uploads if feature exists | `checklists/security.md` | Test size/type | integration |
20
+ | V13 API | P0 rate limit auth & public abuse surfaces | `checklists/api.md` | Test or config evidence | security job |
21
+ | V14 Configuration | P0 no secrets in git; env separation | `checklists/security.md` | secret scan + `.env` gitignore | **secret-scan** required |
22
+ | V1 Architecture | P1 threat model for sensitive apps; ADRs for irreversible choices | `checklists/architecture.md` | Manual / ADR presence | review |
23
+
24
+ ## How to extend
25
+
26
+ When you add a P0 security rule:
27
+
28
+ 1. Link the ASVS theme chapter under `ASVS_5.0/`
29
+ 2. Add a checklist checkbox
30
+ 3. Add a `production-check` evidence probe **or** name the required test id
31
+ 4. Mark the CI job that fails the PR if missing
@@ -0,0 +1,28 @@
1
+ # Authentication
2
+
3
+ ## P0
4
+
5
+ 1. Use a proven password hashing algorithm (e.g. Argon2id / bcrypt) — never plaintext or reversible encryption for passwords.
6
+ 2. Protect login/password-reset against brute force (rate limits, lockout/backoff).
7
+ 3. Sessions/tokens expire; logout revokes server-side session or refresh token where applicable.
8
+ 4. Prefer established auth providers/libraries over home-grown crypto.
9
+ 5. Reject unexpected JWT algorithms explicitly (disallow `none`).
10
+
11
+ ## P1
12
+
13
+ 1. Email verification for self-serve signup when identity matters
14
+ 2. MFA for admin / high-privilege accounts
15
+ 3. Secure account recovery flows (no user enumeration where feasible)
16
+ 4. Refresh-token rotation and silent refresh patterns that preserve UX without eternal sessions
17
+
18
+ ## Detect
19
+
20
+ - Passwords stored with MD5/SHA1
21
+ - Tokens in `localStorage` without a clear XSS threat strategy
22
+ - Infinite session lifetime
23
+
24
+ ## Verify
25
+
26
+ - Parallel login stress does not collide sessions
27
+ - Expired tokens are rejected
28
+ - Password reset tokens are single-use and time-limited
@@ -0,0 +1,27 @@
1
+ # Authorization
2
+
3
+ **Authentication ≠ authorization.** Login answers *who*. Every route must still answer *what they can do*.
4
+
5
+ ## P0
6
+
7
+ 1. Enforce permissions on the server (API/DB). Hiding a button is not access control.
8
+ 2. Object-level authorization on every resource (prevent IDOR/BOLA).
9
+ 3. For multi-tenant apps, scope every query by tenant from the **verified** server session — never trust client-sent `tenantId` alone.
10
+ 4. Add automated tests that User A cannot read/write User B (and Tenant A ↛ Tenant B).
11
+
12
+ ## P1
13
+
14
+ 1. Model RBAC as permissions first; roles are bundles of permissions
15
+ 2. Admin/support break-glass access is audited and explicit
16
+ 3. Deny by default on new endpoints
17
+
18
+ ## Detect
19
+
20
+ - `GET /items/:id` with no ownership check
21
+ - Authorization only in React route guards
22
+ - Shared “service role” keys in the browser
23
+
24
+ ## Verify
25
+
26
+ - Cross-user and cross-tenant denial tests in CI
27
+ - Mutating endpoints return 401/403 correctly
@@ -0,0 +1,14 @@
1
+ # Data security
2
+
3
+ ## P0
4
+
5
+ 1. Classify data (public, internal, PII, secrets, payment)
6
+ 2. Encrypt in transit (TLS)
7
+ 3. Minimize PII in logs
8
+ 4. Access to production data is least-privilege and audited
9
+
10
+ ## P1
11
+
12
+ 1. Encrypt sensitive fields at rest when threat model requires
13
+ 2. Retention and deletion processes exist (see `docs/compliance/`)
14
+ 3. Exports and backups are protected equivalently to production data
@@ -0,0 +1,31 @@
1
+ # OWASP ASVS
2
+
3
+ Use [OWASP ASVS](https://owasp.org/www-project-application-security-verification-standard/) as the detailed security requirements catalog.
4
+
5
+ ## In this repo
6
+
7
+ | Path | Role |
8
+ |---|---|
9
+ | [`ASVS_5.0/`](ASVS_5.0/) | Theme chapters (V1–V14) mapped to our docs |
10
+ | [`ASVS_REGISTRY.md`](ASVS_REGISTRY.md) | Requirement → rule → checklist → test → CI |
11
+
12
+ ## How to use
13
+
14
+ 1. Choose a target verification level appropriate to risk (many SaaS start with a pragmatic Level 1–2 subset).
15
+ 2. Track coverage via the registry + `checklists/security.md`.
16
+ 3. Prefer official ASVS wording in formal audits; use this repo for engineering application.
17
+ 4. Never claim “ASVS certified” without performing verification against the official standard.
18
+
19
+ ## Traceability model
20
+
21
+ ```text
22
+ ASVS Requirement
23
+
24
+ Our Rule (docs/security/*)
25
+
26
+ Checklist (checklists/security.md)
27
+
28
+ Automated Test / production-check probe
29
+
30
+ CI Gate (required check)
31
+ ```
@@ -0,0 +1,28 @@
1
+ # Secrets
2
+
3
+ ## P0
4
+
5
+ 1. No secrets in source control, screenshots, logs, or client bundles
6
+ 2. `.env` is gitignored; provide `.env.example` with empty placeholders
7
+ 3. Separate credentials per environment (local / staging / prod)
8
+ 4. If a secret was ever committed: **rotate it** — deleting the line is not enough
9
+
10
+ ## P1
11
+
12
+ 1. Use a secret manager in real deployments
13
+ 2. Short-lived credentials where the platform allows
14
+ 3. Secret scanning in CI (and push protection when available)
15
+
16
+ ## Forbidden examples
17
+
18
+ ```text
19
+ password = "admin123"
20
+ API_KEY = "sk-..."
21
+ DATABASE_PASSWORD = "..."
22
+ ```
23
+
24
+ ## Required pattern
25
+
26
+ ```text
27
+ env / secret manager → server runtime only → never NEXT_PUBLIC_* for private keys
28
+ ```
@@ -0,0 +1,28 @@
1
+ # Security overview
2
+
3
+ Security is not a final polish step. Defaults from scaffolds and AI codegen are often demo-oriented and **open**.
4
+
5
+ ## Baseline domains (ASVS-oriented)
6
+
7
+ - Authentication
8
+ - Authorization / access control
9
+ - Session management
10
+ - Input validation & output encoding
11
+ - Cryptography
12
+ - Error handling & logging
13
+ - Data protection
14
+ - API security
15
+ - File handling
16
+ - Business logic security
17
+ - Configuration security
18
+
19
+ ## P0 ship blockers
20
+
21
+ 1. No secrets in git or client bundles; rotate anything that ever leaked
22
+ 2. Server-side authorization on every sensitive read/write (UI checks are not security)
23
+ 3. Validate/sanitize all external input before business logic
24
+ 4. Hide stack traces and internal errors from clients in production
25
+ 5. Rate-limit auth and other public abuse surfaces
26
+ 6. HTTPS in production with secure cookie attributes where cookies are used
27
+
28
+ See also: `AUTHENTICATION.md`, `AUTHORIZATION.md`, `SECRETS.md`, `API_SECURITY.md`, and [`checklists/security.md`](../../../checklists/engineering/security.md).