@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,40 @@
1
+ ---
2
+ id: DB-007
3
+ title: Sensitive actions are written to an append-only audit trail
4
+ severity: MUST
5
+ status: active
6
+ domain: database
7
+ priority: P1
8
+ source:
9
+ - OWASP ASVS 5.0 V7
10
+ applies_to:
11
+ - database
12
+ - service
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Authentication events, permission changes, money movement, data export and administrative overrides MUST be recorded with actor, timestamp, target and outcome, in a store that is append-only.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # DB-007 — Sensitive actions are written to an append-only audit trail
24
+
25
+ **Requirement:** Authentication events, permission changes, money movement, data export and administrative overrides MUST be recorded with actor, timestamp, target and outcome, in a store that is append-only.
26
+
27
+ **Bad:** An admin changes a payout and nothing anywhere records who did it.
28
+
29
+ **Good:** An `audit_log` row written in the same transaction as the change, never updated afterwards.
30
+
31
+ ## Validation
32
+
33
+ - The action appears in the audit list in `.devia/04_PERMISSIONS.md`
34
+ - A test asserts the row is written
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P1`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: DB-008
3
+ title: Queries are parameterised
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: database
7
+ priority: P0
8
+ source:
9
+ - OWASP ASVS 5.0 V5
10
+ applies_to:
11
+ - database
12
+ - service
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ SQL MUST NOT be assembled by concatenating user-controlled values. Use parameters or a query builder that parameterises.
17
+ validation:
18
+ automated: true
19
+ manual: true
20
+ exceptions: none
21
+ ---
22
+
23
+ # DB-008 — Queries are parameterised
24
+
25
+ **Requirement:** SQL MUST NOT be assembled by concatenating user-controlled values. Use parameters or a query builder that parameterises.
26
+
27
+ **Bad:** `"select * from users where email = '" + email + "'"`.
28
+
29
+ **Good:** `select * from users where email = $1` with the value passed as a parameter.
30
+
31
+ ## Validation
32
+
33
+ - Grep the diff for string-built SQL
34
+ - Static analysis rule enabled
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P0`
40
+ - Exceptions: `none`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: DS-001
3
+ title: Git is source of truth for tokens
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: design-system
8
+ source:
9
+ - DTCG
10
+ applies_to:
11
+ - tokens
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Token definitions MUST live in version control. Penpot imports/exports — it does not replace Git.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # DS-001 — Git is source of truth for tokens
23
+
24
+ **Requirement:** Token definitions MUST live in version control. Penpot imports/exports — it does not replace Git.
25
+
26
+ **Bad:** Colors only exist inside a closed design file.
27
+
28
+ **Good:** tokens/*.json in repo; Penpot synced from them.
29
+
30
+ ## Validation
31
+
32
+ - Automated checks / lint / a11y tooling where applicable
33
+ - Design or engineering review
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: DS-002
3
+ title: Semantic tokens in components
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: design-system
8
+ source:
9
+ - Carbon
10
+ - DTCG
11
+ applies_to:
12
+ - tokens
13
+ - components
14
+ success_criteria:
15
+ []
16
+ requirement: >
17
+ App components SHOULD reference semantic tokens, not primitives.
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # DS-002 — Semantic tokens in components
25
+
26
+ **Requirement:** App components SHOULD reference semantic tokens, not primitives.
27
+
28
+ **Bad:** color.blue.600 in Button.
29
+
30
+ **Good:** color.primary / button.primary.bg.
31
+
32
+ ## Validation
33
+
34
+ - Design or engineering review
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P2`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: DS-003
3
+ title: Breaking token changes versioned
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: design-system
8
+ source:
9
+ - SemVer
10
+ applies_to:
11
+ - tokens
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Breaking token renames/removals MUST bump major (or documented migration) and CHANGELOG.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # DS-003 — Breaking token changes versioned
23
+
24
+ **Requirement:** Breaking token renames/removals MUST bump major (or documented migration) and CHANGELOG.
25
+
26
+ **Bad:** Silent rename of color.primary in place.
27
+
28
+ **Good:** Major bump + migration note + dual-write window if needed.
29
+
30
+ ## Validation
31
+
32
+ - Design or engineering review
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: OPS-001
3
+ title: CI runs on every pull request with required gates
4
+ severity: MUST
5
+ status: active
6
+ domain: devops
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - repository
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Lint, typecheck, tests, dependency audit, secret scan and `devia check` MUST run on every pull request, and the critical ones MUST be required checks that block the merge.
16
+ validation:
17
+ automated: true
18
+ manual: false
19
+ exceptions: none
20
+ ---
21
+
22
+ # OPS-001 — CI runs on every pull request with required gates
23
+
24
+ **Requirement:** Lint, typecheck, tests, dependency audit, secret scan and `devia check` MUST run on every pull request, and the critical ones MUST be required checks that block the merge.
25
+
26
+ **Bad:** A workflow that exists but is not required, so a red build merges.
27
+
28
+ **Good:** Branch protection lists the gates; a failure blocks the merge.
29
+
30
+ ## Validation
31
+
32
+ - Workflow file present
33
+ - Checks marked required in branch protection
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P0`
39
+ - Exceptions: `none`
40
+
41
+ ## See also
42
+
43
+ - [app-ci.yml](../../templates/github/workflows/app-ci.yml)
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: OPS-002
3
+ title: No direct pushes to the default branch
4
+ severity: MUST
5
+ status: active
6
+ domain: devops
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - repository
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Work MUST reach the default branch through a pull request from a branch. Agents MUST NOT commit to the default branch, force-push a shared branch, or rewrite published history.
16
+ validation:
17
+ automated: true
18
+ manual: false
19
+ exceptions: none
20
+ ---
21
+
22
+ # OPS-002 — No direct pushes to the default branch
23
+
24
+ **Requirement:** Work MUST reach the default branch through a pull request from a branch. Agents MUST NOT commit to the default branch, force-push a shared branch, or rewrite published history.
25
+
26
+ **Bad:** An agent commits straight to `main` because the change 'is small'.
27
+
28
+ **Good:** `feat/invoice-currency` → pull request → review → merge.
29
+
30
+ ## Validation
31
+
32
+ - Branch protection enabled
33
+ - The change is on a branch
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P0`
39
+ - Exceptions: `none`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: OPS-003
3
+ title: Never bypass a hook or a check
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: devops
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - repository
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ `--no-verify`, disabled hooks, `[skip ci]` on a gated change, and locally silenced linters are forbidden. A hook that blocks is either right, or a bug to fix in the open.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # OPS-003 — Never bypass a hook or a check
23
+
24
+ **Requirement:** `--no-verify`, disabled hooks, `[skip ci]` on a gated change, and locally silenced linters are forbidden. A hook that blocks is either right, or a bug to fix in the open.
25
+
26
+ **Bad:** `git commit --no-verify` because the formatter is slow.
27
+
28
+ **Good:** The formatter runs; if it is wrong, the rule is fixed in the repository.
29
+
30
+ ## Validation
31
+
32
+ - No bypass flag in the command history or scripts
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P0`
38
+ - Exceptions: `none`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: OPS-004
3
+ title: Builds are reproducible
4
+ severity: MUST
5
+ status: active
6
+ domain: devops
7
+ priority: P1
8
+ source:
9
+ - SLSA
10
+ applies_to:
11
+ - repository
12
+ - devops
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ The lockfile MUST be committed and installs MUST use it. Container base images MUST be pinned by digest or an immutable tag. A build MUST NOT depend on a floating latest.
17
+ validation:
18
+ automated: true
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # OPS-004 — Builds are reproducible
24
+
25
+ **Requirement:** The lockfile MUST be committed and installs MUST use it. Container base images MUST be pinned by digest or an immutable tag. A build MUST NOT depend on a floating latest.
26
+
27
+ **Bad:** `FROM node:latest` and an install that resolves new versions on every run.
28
+
29
+ **Good:** `npm ci` against the committed lockfile; a base image pinned by digest.
30
+
31
+ ## Validation
32
+
33
+ - Lockfile in the diff when the manifest changed
34
+ - No floating image tags
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P1`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: OPS-005
3
+ title: There is a rollback path and it has been used
4
+ severity: MUST
5
+ status: active
6
+ domain: devops
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - devops
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Every deployable MUST have a documented way back to the previous good state, including what happens to migrations, and it MUST have been exercised at least once.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # OPS-005 — There is a rollback path and it has been used
23
+
24
+ **Requirement:** Every deployable MUST have a documented way back to the previous good state, including what happens to migrations, and it MUST have been exercised at least once.
25
+
26
+ **Bad:** 'We would just redeploy the old commit' — never attempted, and the migration is irreversible.
27
+
28
+ **Good:** A documented rollback, an expand-then-contract migration strategy, and a rehearsal on record.
29
+
30
+ ## Validation
31
+
32
+ - Rollback documented
33
+ - Rehearsal recorded with a date
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
40
+
41
+ ## See also
42
+
43
+ - [ROLLBACK.md](../../standard/engineering/devops/ROLLBACK.md)
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: OPS-006
3
+ title: Staging behaves like production
4
+ severity: SHOULD
5
+ status: active
6
+ domain: devops
7
+ priority: P2
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - devops
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ The pre-production environment SHOULD run the same build artifact, the same migrations and the same configuration shape as production, with its own data and credentials.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # OPS-006 — Staging behaves like production
23
+
24
+ **Requirement:** The pre-production environment SHOULD run the same build artifact, the same migrations and the same configuration shape as production, with its own data and credentials.
25
+
26
+ **Bad:** Staging runs a different Node version and skips the migration step.
27
+
28
+ **Good:** Same image, same pipeline, different secrets and data.
29
+
30
+ ## Validation
31
+
32
+ - Diff the environment configuration
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P2`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: OPS-007
3
+ title: Production state is never mutated by hand
4
+ severity: MUST
5
+ status: active
6
+ domain: devops
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - devops
12
+ - database
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Production data and schema MUST be changed through reviewed, repeatable, logged mechanisms — a migration, a scripted job, an admin action that writes an audit row — never by an ad-hoc console command.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: none
21
+ ---
22
+
23
+ # OPS-007 — Production state is never mutated by hand
24
+
25
+ **Requirement:** Production data and schema MUST be changed through reviewed, repeatable, logged mechanisms — a migration, a scripted job, an admin action that writes an audit row — never by an ad-hoc console command.
26
+
27
+ **Bad:** A quick `UPDATE` in a production console to fix one customer.
28
+
29
+ **Good:** A scripted, reviewed fix that logs what it changed and can run again safely.
30
+
31
+ ## Validation
32
+
33
+ - The change is a committed artifact
34
+ - The action is auditable
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P0`
40
+ - Exceptions: `none`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: INT-001
3
+ title: Touch primary targets
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: interaction
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - touch
12
+ - touchscreen
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ On touch-primary surfaces, primary actions MUST meet comfortable touch sizing (prefer 44×44).
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # INT-001 — Touch primary targets
24
+
25
+ **Requirement:** On touch-primary surfaces, primary actions MUST meet comfortable touch sizing (prefer 44×44).
26
+
27
+ **Bad:** Desktop-dense toolbar on POS touchscreen.
28
+
29
+ **Good:** Large hit targets, spacing, no hover-only.
30
+
31
+ ## Validation
32
+
33
+ - Design or engineering review
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: INT-002
3
+ title: Keyboard parity for pointer features
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: interaction
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - keyboard
12
+ - mouse
13
+ success_criteria:
14
+ - "2.1.1"
15
+ requirement: >
16
+ Pointer-driven features MUST have a keyboard equivalent when required by WCAG.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # INT-002 — Keyboard parity for pointer features
24
+
25
+ **Requirement:** Pointer-driven features MUST have a keyboard equivalent when required by WCAG.
26
+
27
+ **Bad:** Context menu mouse-only.
28
+
29
+ **Good:** Keyboard menu button + arrows.
30
+
31
+ ## Validation
32
+
33
+ - Design or engineering review
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: I18N-001
3
+ title: No concatenated sentences
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: localization
8
+ source:
9
+ - i18n-best-practice
10
+ applies_to:
11
+ - content
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ UI strings MUST NOT be built by concatenating translated fragments in ways that break grammar.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # I18N-001 — No concatenated sentences
23
+
24
+ **Requirement:** UI strings MUST NOT be built by concatenating translated fragments in ways that break grammar.
25
+
26
+ **Bad:** 'Delete ' + name + ' now' across locales.
27
+
28
+ **Good:** Single message with placeholder: Delete {name}?
29
+
30
+ ## Validation
31
+
32
+ - Design or engineering review
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: I18N-002
3
+ title: Text expansion safe layouts
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: localization
8
+ source:
9
+ - Material
10
+ - i18n-best-practice
11
+ applies_to:
12
+ - layout
13
+ - buttons
14
+ success_criteria:
15
+ []
16
+ requirement: >
17
+ Layouts SHOULD tolerate ~30–40% text expansion without truncation of critical labels.
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # I18N-002 — Text expansion safe layouts
25
+
26
+ **Requirement:** Layouts SHOULD tolerate ~30–40% text expansion without truncation of critical labels.
27
+
28
+ **Bad:** Fixed-width button cutting German labels.
29
+
30
+ **Good:** Flexible buttons; allow wrap where needed.
31
+
32
+ ## Validation
33
+
34
+ - Design or engineering review
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P2`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: I18N-003
3
+ title: RTL readiness for mirrored UI
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: localization
8
+ source:
9
+ - WCAG-2.2
10
+ - Material
11
+ applies_to:
12
+ - layout
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ If RTL locales are in scope, layout MUST mirror logically (start/end, not left/right hardcoding).
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # I18N-003 — RTL readiness for mirrored UI
24
+
25
+ **Requirement:** If RTL locales are in scope, layout MUST mirror logically (start/end, not left/right hardcoding).
26
+
27
+ **Bad:** margin-left everywhere; broken RTL.
28
+
29
+ **Good:** Logical properties / start-end tokens.
30
+
31
+ ## Validation
32
+
33
+ - Design or engineering review
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P2`
39
+ - Exceptions: `documented-only`