@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,39 @@
1
+ ---
2
+ id: ARC-006
3
+ title: Environment-specific values come from configuration
4
+ severity: MUST
5
+ status: active
6
+ domain: architecture
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - repository
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Hosts, URLs, credentials, feature flags and limits MUST come from configuration, never from literals in application code, and MUST have a documented default for local development.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # ARC-006 — Environment-specific values come from configuration
23
+
24
+ **Requirement:** Hosts, URLs, credentials, feature flags and limits MUST come from configuration, never from literals in application code, and MUST have a documented default for local development.
25
+
26
+ **Bad:** `https://api.staging.example.com` hardcoded in a client module.
27
+
28
+ **Good:** `config.apiBaseUrl`, sourced from the environment, documented in `.env.example`.
29
+
30
+ ## Validation
31
+
32
+ - Grep the diff for environment hostnames and absolute paths
33
+ - `.env.example` updated
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: CMP-001
3
+ title: Button hierarchy
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: components
8
+ source:
9
+ - GOV.UK
10
+ - Carbon
11
+ applies_to:
12
+ - button
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ A view MUST NOT present multiple primary buttons of equal weight for competing actions.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # CMP-001 — Button hierarchy
24
+
25
+ **Requirement:** A view MUST NOT present multiple primary buttons of equal weight for competing actions.
26
+
27
+ **Bad:** Three filled primary buttons in one toolbar.
28
+
29
+ **Good:** One primary; others secondary/tertiary/ghost.
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: CMP-002
3
+ title: Disabled action explains enablement
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: components
8
+ source:
9
+ - NN/g
10
+ applies_to:
11
+ - button
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ If a primary action is disabled, the UI SHOULD explain how to enable it.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # CMP-002 — Disabled action explains enablement
23
+
24
+ **Requirement:** If a primary action is disabled, the UI SHOULD explain how to enable it.
25
+
26
+ **Bad:** Gray Save with no hint.
27
+
28
+ **Good:** Inline hint: ‘Complete required fields to save’.
29
+
30
+ ## Validation
31
+
32
+ - Design or engineering review
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P2`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: CMP-003
3
+ title: Data table headers
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: components
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - table
12
+ success_criteria:
13
+ - "1.3.1"
14
+ requirement: >
15
+ Data tables MUST use proper header cells associated with data.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # CMP-003 — Data table headers
23
+
24
+ **Requirement:** Data tables MUST use proper header cells associated with data.
25
+
26
+ **Bad:** Bold first row of td only.
27
+
28
+ **Good:** th scope="col" (or row headers when needed).
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: CMP-004
3
+ title: Row actions usable on small widths
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: components
8
+ source:
9
+ - Carbon
10
+ - Atlassian
11
+ applies_to:
12
+ - table
13
+ - mobile
14
+ success_criteria:
15
+ []
16
+ requirement: >
17
+ Row actions SHOULD remain usable at common widths (overflow menu or alternative).
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # CMP-004 — Row actions usable on small widths
25
+
26
+ **Requirement:** Row actions SHOULD remain usable at common widths (overflow menu or alternative).
27
+
28
+ **Bad:** Six icon actions crushed on mobile with no menu.
29
+
30
+ **Good:** Overflow menu or responsive action pattern.
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: CMP-005
3
+ title: Dialog accessibility pattern
4
+ severity: MUST
5
+ status: active
6
+ priority: P0
7
+ domain: components
8
+ source:
9
+ - WAI-ARIA-APG
10
+ applies_to:
11
+ - dialog
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Modal dialogs MUST: label the dialog, trap focus, close on Escape, restore focus, and inert background content.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # CMP-005 — Dialog accessibility pattern
23
+
24
+ **Requirement:** Modal dialogs MUST: label the dialog, trap focus, close on Escape, restore focus, and inert background content.
25
+
26
+ **Bad:** Div overlay, focus escapes, no Escape.
27
+
28
+ **Good:** APG-compliant dialog component.
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: `P0`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: CNT-001
3
+ title: Action-oriented labels
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: content
8
+ source:
9
+ - GOV.UK
10
+ applies_to:
11
+ - button
12
+ - dialogs
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Buttons SHOULD say the outcome (‘Save changes’), not vague OK/Submit when context is unclear.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # CNT-001 — Action-oriented labels
24
+
25
+ **Requirement:** Buttons SHOULD say the outcome (‘Save changes’), not vague OK/Submit when context is unclear.
26
+
27
+ **Bad:** Modal: OK / Cancel with ambiguous title.
28
+
29
+ **Good:** Delete customer / Keep customer.
30
+
31
+ ## Validation
32
+
33
+ - Design or engineering review
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P2`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: DATA-001
3
+ title: Currency context explicit
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: data-display
8
+ source:
9
+ - i18n-best-practice
10
+ applies_to:
11
+ - currency
12
+ - tables
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Currency values MUST retain explicit currency context (code or symbol+locale-aware formatting).
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # DATA-001 — Currency context explicit
24
+
25
+ **Requirement:** Currency values MUST retain explicit currency context (code or symbol+locale-aware formatting).
26
+
27
+ **Bad:** 1,250.00
28
+
29
+ **Good:** HTG 1,250.00 / USD 1,250.00 (locale-aware).
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: DATA-002
3
+ title: Dates unambiguous
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: data-display
8
+ source:
9
+ - i18n-best-practice
10
+ applies_to:
11
+ - dates
12
+ - tables
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Dates MUST be unambiguous for the audience locale (avoid 03/04/05 without context).
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # DATA-002 — Dates unambiguous
24
+
25
+ **Requirement:** Dates MUST be unambiguous for the audience locale (avoid 03/04/05 without context).
26
+
27
+ **Bad:** 03/04/05 in mixed FR/EN teams.
28
+
29
+ **Good:** 4 Mar 2026 or ISO date in dense tables with legend.
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,40 @@
1
+ ---
2
+ id: DATA-003
3
+ title: Numeric alignment
4
+ severity: SHOULD
5
+ status: active
6
+ priority: P2
7
+ domain: data-display
8
+ source:
9
+ - Carbon
10
+ - Atlassian
11
+ applies_to:
12
+ - tables
13
+ - numbers
14
+ success_criteria:
15
+ []
16
+ requirement: >
17
+ Columns of comparable numbers SHOULD be right-aligned (or tabular lining) for scanability.
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # DATA-003 — Numeric alignment
25
+
26
+ **Requirement:** Columns of comparable numbers SHOULD be right-aligned (or tabular lining) for scanability.
27
+
28
+ **Bad:** Left-aligned money column wandering.
29
+
30
+ **Good:** Tabular nums, consistent decimals.
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,40 @@
1
+ ---
2
+ id: DATA-004
3
+ title: Sort and filter feedback
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: data-display
8
+ source:
9
+ - NN/g
10
+ - Atlassian
11
+ applies_to:
12
+ - tables
13
+ - filtering
14
+ success_criteria:
15
+ []
16
+ requirement: >
17
+ Active sort/filter MUST be visible; empty filtered results MUST explain how to reset.
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # DATA-004 — Sort and filter feedback
25
+
26
+ **Requirement:** Active sort/filter MUST be visible; empty filtered results MUST explain how to reset.
27
+
28
+ **Bad:** Invisible filters leaving an empty table.
29
+
30
+ **Good:** Filter chips + Clear filters.
31
+
32
+ ## Validation
33
+
34
+ - Design or engineering review
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P1`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: DB-001
3
+ title: Every schema change is a versioned migration
4
+ severity: MUST
5
+ status: active
6
+ domain: database
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Schema changes MUST ship as ordered, committed migration files that run in CI and in every environment. Schema MUST NOT be changed by hand in any environment, least of all production.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # DB-001 — Every schema change is a versioned migration
23
+
24
+ **Requirement:** Schema changes MUST ship as ordered, committed migration files that run in CI and in every environment. Schema MUST NOT be changed by hand in any environment, least of all production.
25
+
26
+ **Bad:** A column added through a database console; the next deploy fails on a machine nobody touched.
27
+
28
+ **Good:** `migrations/20260903_add_invoice_currency.sql`, applied by the deploy pipeline.
29
+
30
+ ## Validation
31
+
32
+ - Migration file present in the diff
33
+ - Migration runs on a clean database in CI
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P0`
39
+ - Exceptions: `none`
40
+
41
+ ## See also
42
+
43
+ - [MIGRATIONS.md](../../standard/engineering/database/MIGRATIONS.md)
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: DB-002
3
+ title: Applied migrations are immutable
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: database
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ A migration that has run in any shared environment MUST NOT be edited. Corrections ship as a new migration.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # DB-002 — Applied migrations are immutable
23
+
24
+ **Requirement:** A migration that has run in any shared environment MUST NOT be edited. Corrections ship as a new migration.
25
+
26
+ **Bad:** Editing yesterday's migration so it 'works now' — silently diverging every environment that already ran it.
27
+
28
+ **Good:** A new corrective migration that brings every environment to the same state.
29
+
30
+ ## Validation
31
+
32
+ - Confirm no already-applied migration file is modified in the diff
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P0`
38
+ - Exceptions: `none`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: DB-003
3
+ title: Money is exact and carries its currency
4
+ severity: MUST
5
+ status: active
6
+ domain: database
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ - service
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Monetary amounts MUST use an exact type (decimal or minor-unit integer), never a float, and MUST be stored with an explicit currency. Rounding MUST happen at a single documented point.
17
+ validation:
18
+ automated: true
19
+ manual: true
20
+ exceptions: none
21
+ ---
22
+
23
+ # DB-003 — Money is exact and carries its currency
24
+
25
+ **Requirement:** Monetary amounts MUST use an exact type (decimal or minor-unit integer), never a float, and MUST be stored with an explicit currency. Rounding MUST happen at a single documented point.
26
+
27
+ **Bad:** `price REAL` and a currency inferred from the user's locale at render time.
28
+
29
+ **Good:** `amount numeric(14,2)` plus `currency char(3)`, rounded once in the pricing service.
30
+
31
+ ## Validation
32
+
33
+ - Grep the migration for float or double on money columns
34
+ - Confirm currency is stored, not inferred
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P0`
40
+ - Exceptions: `none`
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: DB-004
3
+ title: Backups exist and restore has been rehearsed
4
+ severity: MUST
5
+ status: active
6
+ domain: database
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ - devops
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Production data MUST be backed up on a defined schedule, and the restore MUST have been performed at least once, with the date and the result recorded. An untested backup is not a backup.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: none
21
+ ---
22
+
23
+ # DB-004 — Backups exist and restore has been rehearsed
24
+
25
+ **Requirement:** Production data MUST be backed up on a defined schedule, and the restore MUST have been performed at least once, with the date and the result recorded. An untested backup is not a backup.
26
+
27
+ **Bad:** Nightly snapshots nobody has ever restored.
28
+
29
+ **Good:** Snapshots plus a rehearsed restore into a scratch environment, recorded with the elapsed time.
30
+
31
+ ## Validation
32
+
33
+ - Backup schedule documented
34
+ - Restore drill recorded with a date
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P0`
40
+ - Exceptions: `none`
41
+
42
+ ## See also
43
+
44
+ - [disaster-recovery.md](../../checklists/engineering/disaster-recovery.md)
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: DB-005
3
+ title: Destructive operations are recoverable where the domain requires it
4
+ severity: SHOULD
5
+ status: active
6
+ domain: database
7
+ priority: P2
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ - service
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ Records that carry history, money or accountability SHOULD be archived or soft-deleted rather than hard-deleted, and the choice SHOULD be recorded in the data model.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # DB-005 — Destructive operations are recoverable where the domain requires it
24
+
25
+ **Requirement:** Records that carry history, money or accountability SHOULD be archived or soft-deleted rather than hard-deleted, and the choice SHOULD be recorded in the data model.
26
+
27
+ **Bad:** `DELETE FROM users` on account closure, taking the audit trail with it.
28
+
29
+ **Good:** `archived_at` plus a retention job that removes personal data on schedule.
30
+
31
+ ## Validation
32
+
33
+ - The data model states the deletion strategy per entity
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P2`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: DB-006
3
+ title: Queries the application actually runs are indexed
4
+ severity: SHOULD
5
+ status: active
6
+ domain: database
7
+ priority: P2
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - database
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Filter, join and sort columns used by real queries SHOULD be indexed, and an index SHOULD be justified by a query rather than added speculatively.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # DB-006 — Queries the application actually runs are indexed
23
+
24
+ **Requirement:** Filter, join and sort columns used by real queries SHOULD be indexed, and an index SHOULD be justified by a query rather than added speculatively.
25
+
26
+ **Bad:** A list endpoint scanning a million rows on every request.
27
+
28
+ **Good:** An index on the actual predicate, verified with an execution plan before and after.
29
+
30
+ ## Validation
31
+
32
+ - Execution plan for the new or changed query
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P2`
38
+ - Exceptions: `documented-only`