@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,27 @@
1
+ # Testing
2
+
3
+ ## Pyramid
4
+
5
+ ```text
6
+ E2E (critical journeys)
7
+ / \
8
+ Integration (API/DB/auth)
9
+ / \
10
+ Unit (domain rules, validators)
11
+ ```
12
+
13
+ ## P0
14
+
15
+ 1. Features that touch authz/payments/data isolation ship with tests in the same change
16
+ 2. CI runs tests on every PR; red builds do not merge
17
+ 3. Every production bug gets a regression test
18
+
19
+ ## P1
20
+
21
+ 1. Critical business journeys covered by E2E/smoke
22
+ 2. LLM features have frozen eval fixtures when output is contractual
23
+ 3. Load testing before expected traffic spikes
24
+
25
+ ## Rule
26
+
27
+ Test business-critical paths — not only trivial pure functions.
@@ -0,0 +1,34 @@
1
+ # AGENTS.md
2
+
3
+ This repository uses **devia**: a standard plus a living project memory in `.devia/`.
4
+
5
+ ## Before any work
6
+
7
+ 1. Read [`.devia/AGENTS.md`](.devia/AGENTS.md) — the work contract for this repository
8
+ 2. Read [`.devia/10_NEVER_ALWAYS.md`](.devia/10_NEVER_ALWAYS.md) — what is already banned here
9
+ 3. Read [`.devia/00_OVERVIEW.md`](.devia/00_OVERVIEW.md) — what this project is
10
+ 4. Read the memory file for the surface you are touching — see
11
+ [`.devia/14_INDEX.md`](.devia/14_INDEX.md)
12
+
13
+ If `.devia/` is missing, run `npx devia init` and fill `00_OVERVIEW.md` before writing code.
14
+
15
+ ## While working
16
+
17
+ - Never invent endpoints, fields, config keys or business rules. Unknown means ask, or record it
18
+ in `.devia/11_GAPS.md`
19
+ - Decided but not built goes in `.devia/12_DEBT.md`, even when you are not fixing it
20
+ - Smallest change that satisfies the request
21
+ - Never disable a test, bypass a hook, or weaken a rule to make a check pass
22
+
23
+ ## Before reporting
24
+
25
+ ```bash
26
+ npx devia validate # memory integrity
27
+ npx devia check # readiness gates
28
+ ```
29
+
30
+ Update `.devia/` in the same change (see `.devia/impact-map.yaml`), then report what you changed
31
+ **and what you did not verify**.
32
+
33
+ Full standard: [`.devia/standard/AGENTS.md`](.devia/standard/AGENTS.md) ·
34
+ rules by ID: [`.devia/standard/rules/README.md`](.devia/standard/rules/README.md)
@@ -0,0 +1,33 @@
1
+ # CLAUDE.md
2
+
3
+ This repository runs on **devia**. The project memory lives in `.devia/` and is read before any
4
+ work, updated with every change.
5
+
6
+ ## Start here, every session
7
+
8
+ 1. `.devia/AGENTS.md` — the work contract
9
+ 2. `.devia/10_NEVER_ALWAYS.md` — what this project has banned
10
+ 3. `.devia/00_OVERVIEW.md` — what this project is
11
+ 4. The memory file for the surface you are touching (`.devia/14_INDEX.md`)
12
+
13
+ No `.devia/`? Run `npx devia init` and fill `00_OVERVIEW.md` before writing code.
14
+
15
+ ## Rules that override default behaviour
16
+
17
+ - Never invent an endpoint, field, config key or business rule. Record the unknown in
18
+ `.devia/11_GAPS.md` or ask.
19
+ - Decided but not built goes to `.devia/12_DEBT.md`. Never delete a line you did not discharge.
20
+ - Smallest change that satisfies the request; no drive-by refactors.
21
+ - Never skip a hook, disable a test, or weaken a rule to make a check pass.
22
+ - Update `.devia/` in the same change (`.devia/impact-map.yaml` says which files).
23
+
24
+ ## Before you report
25
+
26
+ ```bash
27
+ npx devia validate
28
+ npx devia check
29
+ ```
30
+
31
+ Report the checks that ran, the rule IDs involved, and what you did **not** verify.
32
+
33
+ Full contract: `.devia/standard/AGENTS.md`. Rules by ID: `.devia/standard/rules/README.md`.
@@ -0,0 +1,15 @@
1
+ # Copilot instructions
2
+
3
+ This repository runs on devia. The project memory is `.devia/`.
4
+
5
+ - Read `.devia/AGENTS.md`, `.devia/10_NEVER_ALWAYS.md` and `.devia/00_OVERVIEW.md` before
6
+ suggesting changes; read the memory file for the surface you are touching
7
+ (`.devia/14_INDEX.md`).
8
+ - Do not invent endpoints, fields, config keys or business rules. Follow the contracts recorded
9
+ in `.devia/02_SURFACES.md` and `.devia/03_DATA_MODEL.md`.
10
+ - Authorization is server-side; input is validated at the boundary; no secrets in source; schema
11
+ changes are versioned migrations.
12
+ - UI changes need an accessible name, a keyboard path, visible focus, persistent labels, and
13
+ complete states — including empty, loading and error.
14
+ - Suggest the matching `.devia/` update alongside the code change.
15
+ - Never suggest disabling a test, skipping a hook, or loosening a check to make CI pass.
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: devia — read .devia memory before coding, update it in the same change
3
+ alwaysApply: true
4
+ ---
5
+
6
+ This repository runs on devia. `.devia/` is the project memory and it is not optional.
7
+
8
+ 1. Before the first edit, read `.devia/AGENTS.md`, `.devia/10_NEVER_ALWAYS.md`,
9
+ `.devia/00_OVERVIEW.md`, and the memory file for the surface you are touching
10
+ (`.devia/14_INDEX.md`). If `.devia/` does not exist, run `npx devia init` first (AGT-001,
11
+ AGT-002).
12
+ 2. Never invent an endpoint, field, config key or business rule. Unknown goes to
13
+ `.devia/11_GAPS.md` or to the human — never into the code as a quiet default (AGT-004,
14
+ MEM-001).
15
+ 3. Decided but not built goes in `.devia/12_DEBT.md`, even when you are not fixing it (MEM-002).
16
+ Never delete a registry line you did not discharge (MEM-011).
17
+ 4. Smallest change that satisfies the request (AGT-003). No opportunistic refactors.
18
+ 5. Never disable a test, bypass a hook, or weaken a rule or threshold to go green (TST-003,
19
+ OPS-003, AGT-011).
20
+ 6. Server-side authorization, validated input, no secrets, versioned migrations (SEC-001,
21
+ SEC-002, SEC-003, DB-001).
22
+ 7. Any UI change satisfies the design MUSTs: accessible name, keyboard path, visible focus,
23
+ persistent labels, complete states, never colour alone (A11Y-001, A11Y-004, A11Y-006, UX-007,
24
+ UI-004).
25
+ 8. Update `.devia/` in the same change, per `.devia/impact-map.yaml` (MEM-009).
26
+ 9. Cite rule IDs, and always report what you did **not** verify (AGT-006, AGT-007).
27
+ 10. Never claim done or production ready without naming the checks that ran (AGT-005).
@@ -0,0 +1,17 @@
1
+ # devia rules
2
+
3
+ This repository runs on devia. `.devia/` is the project memory.
4
+
5
+ 1. Read `.devia/AGENTS.md`, `.devia/10_NEVER_ALWAYS.md`, `.devia/00_OVERVIEW.md` and the memory
6
+ file for the surface you are touching before editing anything. No `.devia/`? Run
7
+ `npx devia init` first.
8
+ 2. Never invent an endpoint, field, config key or business rule — record the unknown in
9
+ `.devia/11_GAPS.md` or ask.
10
+ 3. Decided but not built goes to `.devia/12_DEBT.md`; never delete a line you did not discharge.
11
+ 4. Smallest change that satisfies the request.
12
+ 5. Server-side authorization, validated input, no secrets, versioned migrations.
13
+ 6. UI: accessible name, keyboard path, visible focus, persistent labels, complete states, never
14
+ colour alone.
15
+ 7. Never disable a test, bypass a hook, or weaken a rule to go green.
16
+ 8. Update `.devia/` in the same change (`.devia/impact-map.yaml`).
17
+ 9. Report the checks you ran, the rule IDs, and what you did not verify.
@@ -0,0 +1,16 @@
1
+ # ADR: Title
2
+
3
+ - Status: Proposed | Accepted | Superseded
4
+ - Date:
5
+ - Deciders:
6
+
7
+ ## Context
8
+
9
+ ## Options
10
+
11
+ 1.
12
+ 2.
13
+
14
+ ## Decision
15
+
16
+ ## Consequences
@@ -0,0 +1,19 @@
1
+ # Feature spec
2
+
3
+ ## Problem
4
+
5
+ ## User / persona
6
+
7
+ ## Business rules
8
+
9
+ ## Out of scope
10
+
11
+ ## Data impact
12
+
13
+ ## API impact
14
+
15
+ ## Authz rules
16
+
17
+ ## Test plan
18
+
19
+ ## Rollout / flag
@@ -0,0 +1,15 @@
1
+ # Security finding
2
+
3
+ - Severity: P0 | P1 | P2
4
+ - Component:
5
+ - Reporter:
6
+
7
+ ## Summary
8
+
9
+ ## Reproduction
10
+
11
+ ## Impact
12
+
13
+ ## Recommended fix
14
+
15
+ ## References (OWASP/CWE)
@@ -0,0 +1,9 @@
1
+ # Template — accessibility review
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — component
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — decision record
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — design review
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — exception
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — page
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — pattern
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,9 @@
1
+ # Template — user flow
2
+
3
+ ## Context
4
+
5
+ ## Details
6
+
7
+ ## Related rule IDs
8
+
9
+ -
@@ -0,0 +1,91 @@
1
+ # Copy into your APPLICATION repo as .github/workflows/ci.yml,
2
+ # then mark these jobs as required status checks on the default branch (OPS-001, OPS-002).
3
+ name: ci
4
+
5
+ on:
6
+ push:
7
+ branches: [main]
8
+ pull_request:
9
+
10
+ concurrency:
11
+ group: ci-${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ quality:
16
+ name: Lint · Typecheck · Unit
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: actions/setup-node@v4
21
+ with:
22
+ node-version: "22"
23
+ cache: npm
24
+ - run: npm ci
25
+ - run: npm run lint --if-present
26
+ - run: npm run typecheck --if-present
27
+ - run: npm test --if-present
28
+
29
+ integration:
30
+ name: Integration tests
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-node@v4
35
+ with:
36
+ node-version: "22"
37
+ cache: npm
38
+ - run: npm ci
39
+ - run: npm run test:integration --if-present
40
+
41
+ dependency-audit:
42
+ name: Dependency audit
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+ - uses: actions/setup-node@v4
47
+ with:
48
+ node-version: "22"
49
+ cache: npm
50
+ - run: npm ci
51
+ - run: npm run security:audit --if-present
52
+ - name: npm audit
53
+ if: ${{ hashFiles('package.json') != '' }}
54
+ run: npm audit --audit-level=high
55
+
56
+ secret-scan:
57
+ name: Secret scan
58
+ runs-on: ubuntu-latest
59
+ steps:
60
+ - uses: actions/checkout@v4
61
+ with:
62
+ fetch-depth: 0
63
+ - name: Gitleaks
64
+ uses: gitleaks/gitleaks-action@v2
65
+ env:
66
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67
+
68
+ devia:
69
+ name: Devia — memory + readiness gates
70
+ runs-on: ubuntu-latest
71
+ steps:
72
+ - uses: actions/checkout@v4
73
+ - uses: actions/setup-node@v4
74
+ with:
75
+ node-version: "22"
76
+ - name: Memory integrity
77
+ run: npx --yes devia validate
78
+ - name: Readiness gates (P0 blocks)
79
+ run: npx --yes devia check
80
+
81
+ e2e:
82
+ name: E2E / smoke
83
+ runs-on: ubuntu-latest
84
+ steps:
85
+ - uses: actions/checkout@v4
86
+ - uses: actions/setup-node@v4
87
+ with:
88
+ node-version: "22"
89
+ cache: npm
90
+ - run: npm ci
91
+ - run: npm run test:e2e --if-present
@@ -0,0 +1,51 @@
1
+ # 00 — Overview
2
+
3
+ > What this project **is**. No progress, no counters, no plans — those live in the registries
4
+ > and the tracker (`MEM-007`).
5
+
6
+ ## What it is
7
+
8
+ TODO(devia): one paragraph. What does this product do, for whom, and what would be lost if it
9
+ did not exist?
10
+
11
+ ## Who uses it
12
+
13
+ TODO(devia): the roles that matter to the code — anonymous visitor, customer, staff, admin,
14
+ machine client. Permissions detail goes in `04_PERMISSIONS.md`.
15
+
16
+ ## Stack
17
+
18
+ | Layer | Technology | Notes |
19
+ |---|---|---|
20
+ | Language / runtime | TODO(devia) | |
21
+ | Framework | TODO(devia) | |
22
+ | Data store | TODO(devia) | |
23
+ | Frontend | TODO(devia) | |
24
+ | Hosting / deploy | TODO(devia) | |
25
+ | CI | TODO(devia) | |
26
+
27
+ ## Modules
28
+
29
+ TODO(devia): the three to eight parts of the system a newcomer must know, one line each, with
30
+ where each lives.
31
+
32
+ | Module | Responsibility | Where |
33
+ |---|---|---|
34
+ | | | |
35
+
36
+ ## Non-goals
37
+
38
+ TODO(devia): what this project deliberately does **not** do. This is the cheapest way to stop an
39
+ agent from helpfully building the wrong thing.
40
+
41
+ ## Where the truth lives
42
+
43
+ | Question | Source of truth |
44
+ |---|---|
45
+ | Product intent | TODO(devia) |
46
+ | Data model | TODO(devia) |
47
+ | Permissions | TODO(devia) |
48
+ | API contract | TODO(devia) |
49
+ | Design tokens | TODO(devia) |
50
+
51
+ This memory **points** at those documents. It never copies them (`MEM-008`).
@@ -0,0 +1,37 @@
1
+ # 01 — Architecture
2
+
3
+ > How the system is organised, and which boundaries must not be crossed (`ARC-001`).
4
+
5
+ ## Shape
6
+
7
+ TODO(devia): the diagram in words. Client → API → service → store, or whatever is actually true.
8
+
9
+ ```text
10
+ TODO(devia)
11
+ ```
12
+
13
+ ## Layers and boundaries
14
+
15
+ | Layer | Owns | Must not |
16
+ |---|---|---|
17
+ | TODO(devia) | | |
18
+
19
+ ## Directory map
20
+
21
+ | Path | Contains |
22
+ |---|---|
23
+ | TODO(devia) | |
24
+
25
+ ## Decisions that constrain new work
26
+
27
+ TODO(devia): the decisions an agent must not silently reverse, each with a link to the ADR or the
28
+ discussion that settled it (`ARC-002`).
29
+
30
+ | Decision | Recorded in |
31
+ |---|---|
32
+ | | |
33
+
34
+ ## Current vs target
35
+
36
+ Where the code and the intended architecture differ, the difference is a **debt line** in
37
+ [`12_DEBT.md`](12_DEBT.md) — not a note here.
@@ -0,0 +1,30 @@
1
+ # 02 — Surfaces
2
+
3
+ > Everything the outside world can reach: pages, endpoints, jobs, events, commands.
4
+ > One capability, one surface (`API-006`).
5
+
6
+ ## Pages / screens
7
+
8
+ | Route | Purpose | Component | Auth |
9
+ |---|---|---|---|
10
+ | TODO(devia) | | | |
11
+
12
+ ## Endpoints
13
+
14
+ | Method + path | Purpose | Authorization | Handler |
15
+ |---|---|---|---|
16
+ | TODO(devia) | | | |
17
+
18
+ ## Background work
19
+
20
+ | Job | Trigger | Idempotent | Where |
21
+ |---|---|---|---|
22
+ | TODO(devia) | | | |
23
+
24
+ ## Inbound events / webhooks
25
+
26
+ | Source | Event | Verified how | Handler |
27
+ |---|---|---|---|
28
+ | TODO(devia) | | | |
29
+
30
+ Adding any of these updates this file in the same change (`MEM-009`).
@@ -0,0 +1,31 @@
1
+ # 03 — Data model
2
+
3
+ > What is stored, and where its definition lives. The schema itself stays in the migrations
4
+ > (`MEM-008`).
5
+
6
+ ## Entities
7
+
8
+ | Entity | Meaning | Defined in | Notes |
9
+ |---|---|---|---|
10
+ | TODO(devia) | | | |
11
+
12
+ ## Invariants
13
+
14
+ TODO(devia): what must always hold — money exact and carrying its currency (`DB-003`), archive
15
+ instead of delete where history matters (`DB-005`), append-only audit trail (`DB-007`).
16
+
17
+ ## Lifecycles
18
+
19
+ TODO(devia): the state machines that matter (order, payment, subscription): states, allowed
20
+ transitions, and where the transition code lives. A transition not listed here does not exist.
21
+
22
+ ## Migrations
23
+
24
+ | Convention | Value |
25
+ |---|---|
26
+ | Location | TODO(devia) |
27
+ | Naming | TODO(devia) |
28
+ | How they run | TODO(devia) |
29
+ | Rollback strategy | TODO(devia) |
30
+
31
+ Applied migrations are immutable; corrections ship forward (`DB-002`).
@@ -0,0 +1,32 @@
1
+ # 04 — Permissions
2
+
3
+ > Who can do what, enforced on the server (`SEC-001`), and what leaves an audit trail
4
+ > (`DB-007`).
5
+
6
+ ## Roles
7
+
8
+ | Role | Can | Cannot |
9
+ |---|---|---|
10
+ | TODO(devia) | | |
11
+
12
+ ## Enforcement
13
+
14
+ | Surface | Enforced where | Test |
15
+ |---|---|---|
16
+ | TODO(devia) | | |
17
+
18
+ Hiding a control in the interface is never enforcement.
19
+
20
+ ## Isolation
21
+
22
+ TODO(devia): what scopes the data — user, organisation, tenant — and where that predicate is
23
+ applied. Cross-scope access is covered by a test that fails when the predicate is removed
24
+ (`SEC-005`, `TST-002`).
25
+
26
+ ## Audited actions
27
+
28
+ TODO(devia): the actions that always write an audit row, with actor, target and outcome.
29
+
30
+ | Action | Written where |
31
+ |---|---|
32
+ | | |
@@ -0,0 +1,20 @@
1
+ # 05 — Flows
2
+
3
+ > The journeys the product cannot afford to break (`TST-005`).
4
+
5
+ ## Critical journeys
6
+
7
+ | Journey | Steps | Covered by |
8
+ |---|---|---|
9
+ | TODO(devia) | | |
10
+
11
+ ## Failure behaviour
12
+
13
+ For each critical journey: what the user sees when it fails, and what the system does — retry,
14
+ refund, queue, alert (`STATE-002`, `UX-012`).
15
+
16
+ | Journey | Failure mode | User sees | System does |
17
+ |---|---|---|---|
18
+ | TODO(devia) | | | |
19
+
20
+ A journey with no stated failure behaviour is a journey whose failure behaviour is an accident.
@@ -0,0 +1,21 @@
1
+ # 06 — Integrations
2
+
3
+ > External services this project depends on. Secret **names** only — never values (`SEC-002`).
4
+
5
+ | Service | Used for | Environment variable | Failure behaviour |
6
+ |---|---|---|---|
7
+ | TODO(devia) | | | |
8
+
9
+ ## Webhooks in
10
+
11
+ | Provider | Verification | Idempotency key | Handler |
12
+ |---|---|---|---|
13
+ | TODO(devia) | | | |
14
+
15
+ Signature verified against the raw body, stale timestamps rejected, replays are no-ops
16
+ (`SEC-007`).
17
+
18
+ ## When one is down
19
+
20
+ TODO(devia): degrade, queue, or fail closed — per integration. "It breaks" is an acceptable
21
+ answer only if it is a deliberate one.
@@ -0,0 +1,33 @@
1
+ # 07 — Design
2
+
3
+ > The interface decisions specific to this project. The general rules live in the standard
4
+ > (`standard/standard/design/`); this file records what is local.
5
+
6
+ ## Tokens
7
+
8
+ | Token set | Source of truth | Consumed by |
9
+ |---|---|---|
10
+ | TODO(devia) | | |
11
+
12
+ Git is the source of truth for tokens (`DS-001`); components consume semantic tokens, not raw
13
+ values (`DS-002`, `UI-003`).
14
+
15
+ ## Components
16
+
17
+ | Component | Where | States implemented |
18
+ |---|---|---|
19
+ | TODO(devia) | | |
20
+
21
+ Complete means default, hover, focus, active, disabled, loading, empty, error, success — plus
22
+ permission-denied and offline where they can occur (`STATE-001`, `STATE-002`, `STATE-003`).
23
+
24
+ ## Patterns fixed for this product
25
+
26
+ TODO(devia): the choices that must stay consistent — table density, date and currency format,
27
+ empty-state voice, how destructive actions are confirmed (`UX-011`).
28
+
29
+ ## Interface decisions
30
+
31
+ | Decision | Why | Recorded in |
32
+ |---|---|---|
33
+ | TODO(devia) | | |
@@ -0,0 +1,26 @@
1
+ # 10 — Never / Always
2
+
3
+ > Rules this project earned. Each line comes from a real incident or a decision that was actually
4
+ > contested, and names the trap **and** the correct move (`MEM-010`).
5
+
6
+ ## Never
7
+
8
+ - TODO(devia): the first line goes here, after the first mistake worth remembering.
9
+
10
+ ## Always
11
+
12
+ - Always read the memory file for a surface before changing it (`AGT-001`).
13
+ - Always update `.devia/` in the same change as the code (`MEM-009`).
14
+ - TODO(devia): add this project's own.
15
+
16
+ ## How a line gets added
17
+
18
+ ```text
19
+ Something broke, or a decision was argued twice
20
+
21
+ Fix it
22
+
23
+ Add ONE line: what not to do, and what to do instead
24
+ ```
25
+
26
+ A line nobody has ever violated is noise, and noise teaches agents to skim. Delete it.