@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,42 @@
1
+ ---
2
+ id: A11Y-006
3
+ title: Visible focus
4
+ severity: MUST
5
+ status: active
6
+ priority: P0
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - button
12
+ - link
13
+ - input
14
+ success_criteria:
15
+ - "2.4.7"
16
+ - "2.4.13"
17
+ requirement: >
18
+ Keyboard-operable controls MUST show a visible focus indicator (:focus-visible or equivalent).
19
+ validation:
20
+ automated: true
21
+ manual: true
22
+ exceptions: documented-only
23
+ ---
24
+
25
+ # A11Y-006 — Visible focus
26
+
27
+ **Requirement:** Keyboard-operable controls MUST show a visible focus indicator (:focus-visible or equivalent).
28
+
29
+ **Bad:** outline: none with no replacement.
30
+
31
+ **Good:** High-contrast focus ring meeting guidance.
32
+
33
+ ## Validation
34
+
35
+ - Automated checks / lint / a11y tooling where applicable
36
+ - Design or engineering review
37
+
38
+ ## Lifecycle
39
+
40
+ - Status: `active`
41
+ - Priority: `P0`
42
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: A11Y-007
3
+ title: Focus restoration
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: accessibility
8
+ source:
9
+ - WAI-ARIA-APG
10
+ applies_to:
11
+ - dialog
12
+ - drawer
13
+ success_criteria:
14
+ []
15
+ requirement: >
16
+ When a dialog/drawer closes, focus MUST return to a sensible origin control.
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # A11Y-007 — Focus restoration
24
+
25
+ **Requirement:** When a dialog/drawer closes, focus MUST return to a sensible origin control.
26
+
27
+ **Bad:** Focus dumped on body.
28
+
29
+ **Good:** Restore to opener.
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: A11Y-008
3
+ title: Text contrast AA
4
+ severity: MUST
5
+ status: active
6
+ priority: P0
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - typography
12
+ - color
13
+ success_criteria:
14
+ - "1.4.3"
15
+ requirement: >
16
+ Normal text MUST meet WCAG AA contrast (4.5:1); large text 3:1.
17
+ validation:
18
+ automated: true
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # A11Y-008 — Text contrast AA
24
+
25
+ **Requirement:** Normal text MUST meet WCAG AA contrast (4.5:1); large text 3:1.
26
+
27
+ **Bad:** Light gray on white body text.
28
+
29
+ **Good:** Token pairs verified with contrast tool.
30
+
31
+ ## Validation
32
+
33
+ - Automated checks / lint / a11y tooling where applicable
34
+ - Design or engineering review
35
+
36
+ ## Lifecycle
37
+
38
+ - Status: `active`
39
+ - Priority: `P0`
40
+ - Exceptions: `documented-only`
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: A11Y-009
3
+ title: UI component contrast
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - input
12
+ - button
13
+ - icons
14
+ success_criteria:
15
+ - "1.4.11"
16
+ requirement: >
17
+ Meaningful non-text UI MUST meet 3:1 against adjacent colors where required.
18
+ validation:
19
+ automated: true
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # A11Y-009 — UI component contrast
25
+
26
+ **Requirement:** Meaningful non-text UI MUST meet 3:1 against adjacent colors where required.
27
+
28
+ **Bad:** Pale input border invisible against background.
29
+
30
+ **Good:** Border/token meets 3:1.
31
+
32
+ ## Validation
33
+
34
+ - Automated checks / lint / a11y tooling where applicable
35
+ - Design or engineering review
36
+
37
+ ## Lifecycle
38
+
39
+ - Status: `active`
40
+ - Priority: `P1`
41
+ - Exceptions: `documented-only`
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: A11Y-010
3
+ title: Target size
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - button
12
+ - link
13
+ - touch
14
+ success_criteria:
15
+ - "2.5.8"
16
+ requirement: >
17
+ Pointer targets MUST meet WCAG 2.5.8 (24×24 CSS px minimum); prefer 44×44 for primary touch UIs.
18
+ validation:
19
+ automated: false
20
+ manual: true
21
+ exceptions: documented-only
22
+ ---
23
+
24
+ # A11Y-010 — Target size
25
+
26
+ **Requirement:** Pointer targets MUST meet WCAG 2.5.8 (24×24 CSS px minimum); prefer 44×44 for primary touch UIs.
27
+
28
+ **Bad:** 16×16 icon hit area.
29
+
30
+ **Good:** Adequate padding/hit slop.
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,39 @@
1
+ ---
2
+ id: A11Y-011
3
+ title: Reflow without loss of use
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - web
12
+ - responsive
13
+ success_criteria:
14
+ - "1.4.10"
15
+ requirement: >
16
+ Content MUST reflow without loss of information or functionality at 320 CSS px width (except exempt content).
17
+ validation:
18
+ automated: false
19
+ manual: true
20
+ exceptions: documented-only
21
+ ---
22
+
23
+ # A11Y-011 — Reflow without loss of use
24
+
25
+ **Requirement:** Content MUST reflow without loss of information or functionality at 320 CSS px width (except exempt content).
26
+
27
+ **Bad:** Broken layout forcing x-scroll for login.
28
+
29
+ **Good:** Stacked layout / responsive shell.
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: A11Y-012
3
+ title: Respect reduced motion
4
+ severity: MUST
5
+ status: active
6
+ priority: P1
7
+ domain: accessibility
8
+ source:
9
+ - WCAG-2.2
10
+ applies_to:
11
+ - motion
12
+ success_criteria:
13
+ - "2.3.3"
14
+ requirement: >
15
+ Non-essential motion MUST respect prefers-reduced-motion.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # A11Y-012 — Respect reduced motion
23
+
24
+ **Requirement:** Non-essential motion MUST respect prefers-reduced-motion.
25
+
26
+ **Bad:** Large parallax with no reduce path.
27
+
28
+ **Good:** Instant state change or minimal opacity fade when reduced.
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,42 @@
1
+ ---
2
+ id: AGT-001
3
+ title: Read the memory before writing code
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Before the first edit, an agent MUST read `.devia/AGENTS.md`, `.devia/10_NEVER_ALWAYS.md`, `.devia/00_OVERVIEW.md`, and the memory file covering the surface it is about to touch.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # AGT-001 — Read the memory before writing code
23
+
24
+ **Requirement:** Before the first edit, an agent MUST read `.devia/AGENTS.md`, `.devia/10_NEVER_ALWAYS.md`, `.devia/00_OVERVIEW.md`, and the memory file covering the surface it is about to touch.
25
+
26
+ **Bad:** Editing a payment handler without reading what the project already decided about payments.
27
+
28
+ **Good:** Memory read first; the change follows the recorded decision or challenges it explicitly.
29
+
30
+ ## Validation
31
+
32
+ - The compliance output names the memory files read
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P0`
38
+ - Exceptions: `none`
39
+
40
+ ## See also
41
+
42
+ - [MEMORY.md](../../MEMORY.md)
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: AGT-002
3
+ title: No memory, no code — initialise first
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ If `.devia/` does not exist, the agent MUST run `devia init` and fill `00_OVERVIEW.md` from the actual repository before making any other change.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # AGT-002 — No memory, no code — initialise first
23
+
24
+ **Requirement:** If `.devia/` does not exist, the agent MUST run `devia init` and fill `00_OVERVIEW.md` from the actual repository before making any other change.
25
+
26
+ **Bad:** Starting a feature in an unknown repository and inferring the architecture from three files.
27
+
28
+ **Good:** `devia init`, overview filled from the real stack, then the feature.
29
+
30
+ ## Validation
31
+
32
+ - `.devia/` exists
33
+ - `00_OVERVIEW.md` has no unfilled placeholder
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P0`
39
+ - Exceptions: `none`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-003
3
+ title: Make the smallest change that satisfies the request
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ An agent MUST NOT widen the scope of a task with opportunistic refactors, renames, formatting sweeps or dependency upgrades. Improvements it notices are recorded, not smuggled in.
16
+ validation:
17
+ automated: true
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # AGT-003 — Make the smallest change that satisfies the request
23
+
24
+ **Requirement:** An agent MUST NOT widen the scope of a task with opportunistic refactors, renames, formatting sweeps or dependency upgrades. Improvements it notices are recorded, not smuggled in.
25
+
26
+ **Bad:** A one-line bug fix arriving with a 400-file reformat.
27
+
28
+ **Good:** The fix alone; the formatting proposal noted separately.
29
+
30
+ ## Validation
31
+
32
+ - The diff contains only what the request implies
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: AGT-004
3
+ title: Never invent an interface or a rule
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: agent
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ An agent MUST NOT invent endpoints, fields, configuration keys, business thresholds or third-party behaviour. Unknowns are looked up, asked about, or recorded in `.devia/11_GAPS.md` — never guessed into the code.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # AGT-004 — Never invent an interface or a rule
23
+
24
+ **Requirement:** An agent MUST NOT invent endpoints, fields, configuration keys, business thresholds or third-party behaviour. Unknowns are looked up, asked about, or recorded in `.devia/11_GAPS.md` — never guessed into the code.
25
+
26
+ **Bad:** Calling `POST /v1/refunds` because that is the usual shape, without checking that it exists.
27
+
28
+ **Good:** The endpoint list is read; the missing capability becomes a gap line or a question.
29
+
30
+ ## Validation
31
+
32
+ - Every external call in the diff exists in the contract
33
+ - Assumptions are listed
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P0`
39
+ - Exceptions: `none`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-005
3
+ title: Never claim done or production ready without evidence
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: agent
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ An agent MUST NOT report completion, success, or production readiness on the basis of code that looks right. Completion claims MUST name the checks that ran and their result.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # AGT-005 — Never claim done or production ready without evidence
23
+
24
+ **Requirement:** An agent MUST NOT report completion, success, or production readiness on the basis of code that looks right. Completion claims MUST name the checks that ran and their result.
25
+
26
+ **Bad:** 'All set, everything works' after an edit that was never executed.
27
+
28
+ **Good:** 'Tests pass (18/18); the migration was not run; the UI was not opened.'
29
+
30
+ ## Validation
31
+
32
+ - The completion claim names the checks that ran
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P0`
38
+ - Exceptions: `none`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-006
3
+ title: Report what was not verified
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P0
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Every substantial report MUST include what was not run, not tested, or not looked at. For a non-trivial change this section is never empty.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: none
20
+ ---
21
+
22
+ # AGT-006 — Report what was not verified
23
+
24
+ **Requirement:** Every substantial report MUST include what was not run, not tested, or not looked at. For a non-trivial change this section is never empty.
25
+
26
+ **Bad:** A report listing only successes, leaving the human to discover the untested path.
27
+
28
+ **Good:** 'Not verified: the webhook path, because the provider sandbox is not configured here.'
29
+
30
+ ## Validation
31
+
32
+ - The output contract's 'Not verified' section is present and substantive
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P0`
38
+ - Exceptions: `none`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-007
3
+ title: Cite rule identifiers
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Compliance statements, reviews and refusals MUST cite the rule IDs they rest on, so a human can check the claim instead of trusting the tone.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # AGT-007 — Cite rule identifiers
23
+
24
+ **Requirement:** Compliance statements, reviews and refusals MUST cite the rule IDs they rest on, so a human can check the claim instead of trusting the tone.
25
+
26
+ **Bad:** 'This is not accessible.'
27
+
28
+ **Good:** 'Fails A11Y-006: the custom button removes the focus ring and adds nothing back.'
29
+
30
+ ## Validation
31
+
32
+ - Rule IDs present in the compliance output
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-008
3
+ title: Read a file before editing it
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ An agent MUST read the current content of a file before changing it, and MUST NOT overwrite work it has not seen.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # AGT-008 — Read a file before editing it
23
+
24
+ **Requirement:** An agent MUST read the current content of a file before changing it, and MUST NOT overwrite work it has not seen.
25
+
26
+ **Bad:** Rewriting a config from a template and dropping three settings somebody added last week.
27
+
28
+ **Good:** The file is read, the change is applied to what is actually there.
29
+
30
+ ## Validation
31
+
32
+ - The edit is based on the current content
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`
@@ -0,0 +1,39 @@
1
+ ---
2
+ id: AGT-009
3
+ title: Only original work
4
+ severity: MUST NOT
5
+ status: active
6
+ domain: agent
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ Third-party documentation, schemas, code, images or copy MUST NOT be pasted into the repository as if it were ours. Sources are cited and linked; licences are respected.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # AGT-009 — Only original work
23
+
24
+ **Requirement:** Third-party documentation, schemas, code, images or copy MUST NOT be pasted into the repository as if it were ours. Sources are cited and linked; licences are respected.
25
+
26
+ **Bad:** A vendor's integration guide copied wholesale into `docs/`.
27
+
28
+ **Good:** A short summary in our words, with a link to the vendor page.
29
+
30
+ ## Validation
31
+
32
+ - No verbatim third-party text in the diff
33
+ - Sources linked
34
+
35
+ ## Lifecycle
36
+
37
+ - Status: `active`
38
+ - Priority: `P1`
39
+ - Exceptions: `documented-only`
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: AGT-010
3
+ title: Ask or record instead of guessing
4
+ severity: MUST
5
+ status: active
6
+ domain: agent
7
+ priority: P1
8
+ source:
9
+ - devia
10
+ applies_to:
11
+ - agent
12
+ success_criteria:
13
+ []
14
+ requirement: >
15
+ When a decision is missing, the agent MUST either ask the human, or implement a declared, documented default and record the open question as a gap. Choosing silently is the failure mode this rule exists to stop.
16
+ validation:
17
+ automated: false
18
+ manual: true
19
+ exceptions: documented-only
20
+ ---
21
+
22
+ # AGT-010 — Ask or record instead of guessing
23
+
24
+ **Requirement:** When a decision is missing, the agent MUST either ask the human, or implement a declared, documented default and record the open question as a gap. Choosing silently is the failure mode this rule exists to stop.
25
+
26
+ **Bad:** Picking a tax rounding rule quietly because something had to be written.
27
+
28
+ **Good:** The rounding is declared in the gap line, implemented visibly, and flagged for a decision.
29
+
30
+ ## Validation
31
+
32
+ - Undecided points appear in `.devia/11_GAPS.md`
33
+
34
+ ## Lifecycle
35
+
36
+ - Status: `active`
37
+ - Priority: `P1`
38
+ - Exceptions: `documented-only`