@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.
- package/AGENTS.md +149 -0
- package/CHANGELOG.md +78 -0
- package/GOVERNANCE.md +51 -0
- package/LEVELS.md +78 -0
- package/LICENSE +21 -0
- package/MATURITY.md +79 -0
- package/MEMORY.md +122 -0
- package/MIGRATION.md +62 -0
- package/PRINCIPLES.md +110 -0
- package/README.md +125 -0
- package/REFERENCES.md +30 -0
- package/VERSION +5 -0
- package/bin/devia.mjs +13 -0
- package/checklists/README.md +39 -0
- package/checklists/design/accessibility-review.md +11 -0
- package/checklists/design/design-to-code-review.md +10 -0
- package/checklists/design/responsive-review.md +7 -0
- package/checklists/design/ui-review.md +8 -0
- package/checklists/design/ux-review.md +10 -0
- package/checklists/engineering/accessibility.md +8 -0
- package/checklists/engineering/api.md +12 -0
- package/checklists/engineering/architecture.md +8 -0
- package/checklists/engineering/database.md +11 -0
- package/checklists/engineering/devops.md +9 -0
- package/checklists/engineering/disaster-recovery.md +9 -0
- package/checklists/engineering/frontend.md +9 -0
- package/checklists/engineering/incident.md +9 -0
- package/checklists/engineering/performance.md +7 -0
- package/checklists/engineering/production.md +26 -0
- package/checklists/engineering/release.md +17 -0
- package/checklists/engineering/security.md +33 -0
- package/checklists/engineering/testing.md +8 -0
- package/compliance/COVERAGE.md +46 -0
- package/compliance/REQUIREMENTS.md +8 -0
- package/compliance/TRACEABILITY.md +160 -0
- package/compliance/WAIVERS.md +13 -0
- package/package.json +74 -0
- package/rules/LIFECYCLE.md +16 -0
- package/rules/README.md +166 -0
- package/rules/accessibility/A11Y-001.md +42 -0
- package/rules/accessibility/A11Y-002.md +41 -0
- package/rules/accessibility/A11Y-003.md +40 -0
- package/rules/accessibility/A11Y-004.md +40 -0
- package/rules/accessibility/A11Y-005.md +39 -0
- package/rules/accessibility/A11Y-006.md +42 -0
- package/rules/accessibility/A11Y-007.md +39 -0
- package/rules/accessibility/A11Y-008.md +40 -0
- package/rules/accessibility/A11Y-009.md +41 -0
- package/rules/accessibility/A11Y-010.md +40 -0
- package/rules/accessibility/A11Y-011.md +39 -0
- package/rules/accessibility/A11Y-012.md +39 -0
- package/rules/agent/AGT-001.md +42 -0
- package/rules/agent/AGT-002.md +39 -0
- package/rules/agent/AGT-003.md +38 -0
- package/rules/agent/AGT-004.md +39 -0
- package/rules/agent/AGT-005.md +38 -0
- package/rules/agent/AGT-006.md +38 -0
- package/rules/agent/AGT-007.md +38 -0
- package/rules/agent/AGT-008.md +38 -0
- package/rules/agent/AGT-009.md +39 -0
- package/rules/agent/AGT-010.md +38 -0
- package/rules/agent/AGT-011.md +38 -0
- package/rules/ai/AI-001.md +44 -0
- package/rules/ai/AI-002.md +39 -0
- package/rules/ai/AI-003.md +40 -0
- package/rules/ai/AI-004.md +39 -0
- package/rules/ai/AI-005.md +38 -0
- package/rules/api/API-001.md +39 -0
- package/rules/api/API-002.md +39 -0
- package/rules/api/API-003.md +39 -0
- package/rules/api/API-004.md +38 -0
- package/rules/api/API-005.md +39 -0
- package/rules/api/API-006.md +40 -0
- package/rules/architecture/ARC-001.md +41 -0
- package/rules/architecture/ARC-002.md +43 -0
- package/rules/architecture/ARC-003.md +43 -0
- package/rules/architecture/ARC-004.md +40 -0
- package/rules/architecture/ARC-005.md +39 -0
- package/rules/architecture/ARC-006.md +39 -0
- package/rules/components/CMP-001.md +39 -0
- package/rules/components/CMP-002.md +38 -0
- package/rules/components/CMP-003.md +39 -0
- package/rules/components/CMP-004.md +40 -0
- package/rules/components/CMP-005.md +39 -0
- package/rules/content/CNT-001.md +39 -0
- package/rules/data-display/DATA-001.md +39 -0
- package/rules/data-display/DATA-002.md +39 -0
- package/rules/data-display/DATA-003.md +40 -0
- package/rules/data-display/DATA-004.md +40 -0
- package/rules/database/DB-001.md +43 -0
- package/rules/database/DB-002.md +38 -0
- package/rules/database/DB-003.md +40 -0
- package/rules/database/DB-004.md +44 -0
- package/rules/database/DB-005.md +39 -0
- package/rules/database/DB-006.md +38 -0
- package/rules/database/DB-007.md +40 -0
- package/rules/database/DB-008.md +40 -0
- package/rules/design-system/DS-001.md +39 -0
- package/rules/design-system/DS-002.md +40 -0
- package/rules/design-system/DS-003.md +38 -0
- package/rules/devops/OPS-001.md +43 -0
- package/rules/devops/OPS-002.md +39 -0
- package/rules/devops/OPS-003.md +38 -0
- package/rules/devops/OPS-004.md +40 -0
- package/rules/devops/OPS-005.md +43 -0
- package/rules/devops/OPS-006.md +38 -0
- package/rules/devops/OPS-007.md +40 -0
- package/rules/interaction/INT-001.md +39 -0
- package/rules/interaction/INT-002.md +39 -0
- package/rules/localization/I18N-001.md +38 -0
- package/rules/localization/I18N-002.md +40 -0
- package/rules/localization/I18N-003.md +39 -0
- package/rules/memory/MEM-001.md +44 -0
- package/rules/memory/MEM-002.md +39 -0
- package/rules/memory/MEM-003.md +38 -0
- package/rules/memory/MEM-004.md +38 -0
- package/rules/memory/MEM-005.md +38 -0
- package/rules/memory/MEM-006.md +38 -0
- package/rules/memory/MEM-007.md +38 -0
- package/rules/memory/MEM-008.md +38 -0
- package/rules/memory/MEM-009.md +39 -0
- package/rules/memory/MEM-010.md +38 -0
- package/rules/memory/MEM-011.md +38 -0
- package/rules/motion/MOT-001.md +38 -0
- package/rules/observability/OBS-001.md +40 -0
- package/rules/observability/OBS-002.md +40 -0
- package/rules/observability/OBS-003.md +38 -0
- package/rules/observability/OBS-004.md +38 -0
- package/rules/privacy/PRIV-001.md +38 -0
- package/rules/privacy/PRIV-002.md +44 -0
- package/rules/privacy/PRIV-003.md +40 -0
- package/rules/privacy/PRIV-004.md +41 -0
- package/rules/responsive/RWD-001.md +40 -0
- package/rules/responsive/RWD-002.md +39 -0
- package/rules/responsive/RWD-003.md +39 -0
- package/rules/security/SEC-001.md +44 -0
- package/rules/security/SEC-002.md +44 -0
- package/rules/security/SEC-003.md +41 -0
- package/rules/security/SEC-004.md +40 -0
- package/rules/security/SEC-005.md +42 -0
- package/rules/security/SEC-006.md +40 -0
- package/rules/security/SEC-007.md +44 -0
- package/rules/security/SEC-008.md +39 -0
- package/rules/security/SEC-009.md +40 -0
- package/rules/security/SEC-010.md +40 -0
- package/rules/security/SEC-011.md +40 -0
- package/rules/security/SEC-012.md +40 -0
- package/rules/states/STATE-001.md +38 -0
- package/rules/states/STATE-002.md +39 -0
- package/rules/states/STATE-003.md +39 -0
- package/rules/states/STATE-004.md +38 -0
- package/rules/testing/TST-001.md +39 -0
- package/rules/testing/TST-002.md +39 -0
- package/rules/testing/TST-003.md +39 -0
- package/rules/testing/TST-004.md +38 -0
- package/rules/testing/TST-005.md +40 -0
- package/rules/testing/TST-006.md +39 -0
- package/rules/ui/UI-001.md +40 -0
- package/rules/ui/UI-002.md +38 -0
- package/rules/ui/UI-003.md +41 -0
- package/rules/ui/UI-004.md +41 -0
- package/rules/ui/UI-005.md +41 -0
- package/rules/ui/UI-006.md +40 -0
- package/rules/ui/UI-007.md +41 -0
- package/rules/ux/UX-001.md +41 -0
- package/rules/ux/UX-002.md +41 -0
- package/rules/ux/UX-003.md +39 -0
- package/rules/ux/UX-004.md +39 -0
- package/rules/ux/UX-005.md +40 -0
- package/rules/ux/UX-006.md +40 -0
- package/rules/ux/UX-007.md +44 -0
- package/rules/ux/UX-008.md +41 -0
- package/rules/ux/UX-009.md +39 -0
- package/rules/ux/UX-010.md +40 -0
- package/rules/ux/UX-011.md +40 -0
- package/rules/ux/UX-012.md +40 -0
- package/rules/ux/UX-013.md +39 -0
- package/schema/README.md +19 -0
- package/schema/checklist.schema.json +34 -0
- package/schema/component.schema.json +37 -0
- package/schema/project-config.schema.json +70 -0
- package/schema/rule.schema.json +104 -0
- package/schema/token.schema.json +15 -0
- package/schema/waiver.schema.json +33 -0
- package/scripts/build-index.mjs +178 -0
- package/scripts/validate-links.mjs +43 -0
- package/scripts/validate-rules.mjs +42 -0
- package/skills/devia/SKILL.md +114 -0
- package/src/cli.mjs +107 -0
- package/src/commands/check.mjs +483 -0
- package/src/commands/doctor.mjs +139 -0
- package/src/commands/init.mjs +186 -0
- package/src/commands/registry.mjs +154 -0
- package/src/commands/rules.mjs +101 -0
- package/src/commands/skills.mjs +97 -0
- package/src/commands/sync.mjs +83 -0
- package/src/commands/validate.mjs +194 -0
- package/src/lib/fs.mjs +89 -0
- package/src/lib/git.mjs +31 -0
- package/src/lib/rules.mjs +85 -0
- package/src/lib/ui.mjs +52 -0
- package/src/lib/vendor.mjs +74 -0
- package/src/lib/version.mjs +19 -0
- package/src/lib/yaml.mjs +152 -0
- package/standard/README.md +31 -0
- package/standard/design/README.md +51 -0
- package/standard/design/REFERENCES.md +39 -0
- package/standard/design/accessibility/aria.md +7 -0
- package/standard/design/accessibility/contrast.md +6 -0
- package/standard/design/accessibility/focus.md +6 -0
- package/standard/design/accessibility/forms.md +3 -0
- package/standard/design/accessibility/keyboard.md +6 -0
- package/standard/design/accessibility/reduced-motion.md +3 -0
- package/standard/design/accessibility/reflow.md +3 -0
- package/standard/design/accessibility/screen-readers.md +3 -0
- package/standard/design/accessibility/target-size.md +3 -0
- package/standard/design/accessibility/testing.md +3 -0
- package/standard/design/accessibility/wcag-2.2.md +16 -0
- package/standard/design/accessibility/zoom.md +3 -0
- package/standard/design/ai/ai-design-rules.md +8 -0
- package/standard/design/ai/anti-patterns.md +1 -0
- package/standard/design/ai/compliance-format.md +22 -0
- package/standard/design/ai/design-review.md +10 -0
- package/standard/design/ai/evals/README.md +1 -0
- package/standard/design/ai/instructions.md +7 -0
- package/standard/design/ai/prompts/accessibility-review.md +5 -0
- package/standard/design/ai/prompts/design-system-review.md +5 -0
- package/standard/design/ai/prompts/ui-review.md +5 -0
- package/standard/design/ai/prompts/ux-review.md +5 -0
- package/standard/design/ai/review-protocol.md +11 -0
- package/standard/design/anti-patterns/accessibility.md +7 -0
- package/standard/design/anti-patterns/ai-generated.md +6 -0
- package/standard/design/anti-patterns/dashboards.md +5 -0
- package/standard/design/anti-patterns/forms.md +5 -0
- package/standard/design/anti-patterns/responsive.md +5 -0
- package/standard/design/anti-patterns/ui.md +6 -0
- package/standard/design/anti-patterns/ux.md +5 -0
- package/standard/design/components/buttons.md +6 -0
- package/standard/design/components/dialogs.md +5 -0
- package/standard/design/components/feedback.md +3 -0
- package/standard/design/components/forms.md +3 -0
- package/standard/design/components/navigation.md +3 -0
- package/standard/design/components/tables.md +6 -0
- package/standard/design/content/error-messages.md +4 -0
- package/standard/design/content/ux-writing.md +5 -0
- package/standard/design/data-display/README.md +5 -0
- package/standard/design/data-display/currency.md +3 -0
- package/standard/design/data-display/dates.md +3 -0
- package/standard/design/data-display/density.md +3 -0
- package/standard/design/data-display/filtering.md +3 -0
- package/standard/design/data-display/localization.md +3 -0
- package/standard/design/data-display/numbers.md +3 -0
- package/standard/design/data-display/pagination.md +3 -0
- package/standard/design/data-display/percentages.md +3 -0
- package/standard/design/data-display/sorting.md +3 -0
- package/standard/design/data-display/tables.md +3 -0
- package/standard/design/data-display/time.md +3 -0
- package/standard/design/decisions/ADR-001-token-naming.md +13 -0
- package/standard/design/decisions/ADR-002-radius-scale.md +9 -0
- package/standard/design/decisions/ADR-003-color-system.md +9 -0
- package/standard/design/decisions/ADR-004-component-versioning.md +9 -0
- package/standard/design/decisions/README.md +3 -0
- package/standard/design/design-system/components.md +9 -0
- package/standard/design/design-system/naming.md +19 -0
- package/standard/design/design-system/tokens.md +7 -0
- package/standard/design/design-system/variants.md +5 -0
- package/standard/design/design-system/versioning.md +5 -0
- package/standard/design/health/coverage.md +1 -0
- package/standard/design/health/dashboard.md +14 -0
- package/standard/design/health/maturity-model.md +9 -0
- package/standard/design/health/score.md +14 -0
- package/standard/design/interaction/README.md +10 -0
- package/standard/design/interaction/keyboard.md +3 -0
- package/standard/design/interaction/mouse.md +2 -0
- package/standard/design/interaction/pen.md +1 -0
- package/standard/design/interaction/touch.md +3 -0
- package/standard/design/interaction/touchscreen.md +6 -0
- package/standard/design/interaction/voice.md +2 -0
- package/standard/design/localization/README.md +5 -0
- package/standard/design/localization/currency.md +3 -0
- package/standard/design/localization/date-time.md +3 -0
- package/standard/design/localization/i18n.md +3 -0
- package/standard/design/localization/locale-testing.md +3 -0
- package/standard/design/localization/number-formatting.md +3 -0
- package/standard/design/localization/pluralization.md +3 -0
- package/standard/design/localization/rtl.md +3 -0
- package/standard/design/localization/text-expansion.md +3 -0
- package/standard/design/motion/animation.md +6 -0
- package/standard/design/penpot/WORKFLOW.md +27 -0
- package/standard/design/platforms/README.md +12 -0
- package/standard/design/platforms/desktop/README.md +5 -0
- package/standard/design/platforms/mobile/android.md +5 -0
- package/standard/design/platforms/mobile/ios.md +5 -0
- package/standard/design/platforms/tablet/README.md +5 -0
- package/standard/design/platforms/web/README.md +1 -0
- package/standard/design/principles/design-principles.md +9 -0
- package/standard/design/principles/ui-principles.md +7 -0
- package/standard/design/principles/ux-principles.md +14 -0
- package/standard/design/references/atlassian.md +3 -0
- package/standard/design/references/carbon.md +3 -0
- package/standard/design/references/figma-sds.md +5 -0
- package/standard/design/references/govuk.md +3 -0
- package/standard/design/references/material.md +3 -0
- package/standard/design/references/nng.md +3 -0
- package/standard/design/references/openui.md +3 -0
- package/standard/design/references/primer.md +5 -0
- package/standard/design/references/storybook.md +3 -0
- package/standard/design/references/uswds.md +3 -0
- package/standard/design/references/w3c.md +3 -0
- package/standard/design/responsive/desktop.md +4 -0
- package/standard/design/responsive/mobile.md +6 -0
- package/standard/design/responsive/tablet.md +3 -0
- package/standard/design/states/async.md +3 -0
- package/standard/design/states/conflict.md +3 -0
- package/standard/design/states/empty.md +3 -0
- package/standard/design/states/error.md +3 -0
- package/standard/design/states/interaction.md +5 -0
- package/standard/design/states/loading.md +3 -0
- package/standard/design/states/offline.md +3 -0
- package/standard/design/states/optimistic.md +3 -0
- package/standard/design/states/partial.md +3 -0
- package/standard/design/states/permission-denied.md +3 -0
- package/standard/design/states/rate-limited.md +3 -0
- package/standard/design/states/read-only.md +3 -0
- package/standard/design/states/retry.md +3 -0
- package/standard/design/states/skeleton.md +3 -0
- package/standard/design/states/stale.md +3 -0
- package/standard/design/states/success.md +3 -0
- package/standard/design/states/timeout.md +3 -0
- package/standard/design/states/unsaved-changes.md +3 -0
- package/standard/design/ui/color.md +6 -0
- package/standard/design/ui/grids.md +5 -0
- package/standard/design/ui/icons.md +5 -0
- package/standard/design/ui/imagery.md +5 -0
- package/standard/design/ui/layout.md +5 -0
- package/standard/design/ui/spacing.md +5 -0
- package/standard/design/ui/typography.md +6 -0
- package/standard/design/ui/visual-design.md +7 -0
- package/standard/design/ux/cognitive-load.md +5 -0
- package/standard/design/ux/errors.md +6 -0
- package/standard/design/ux/feedback.md +5 -0
- package/standard/design/ux/forms.md +7 -0
- package/standard/design/ux/heuristics.md +14 -0
- package/standard/design/ux/information-architecture.md +6 -0
- package/standard/design/ux/navigation.md +6 -0
- package/standard/design/ux/usability.md +6 -0
- package/standard/engineering/README.md +29 -0
- package/standard/engineering/REFERENCES.md +42 -0
- package/standard/engineering/ai/AI_SECURITY.md +15 -0
- package/standard/engineering/ai/PROMPT_SECURITY.md +6 -0
- package/standard/engineering/architecture/ADR.md +11 -0
- package/standard/engineering/architecture/ARCHITECTURE.md +25 -0
- package/standard/engineering/architecture/PRINCIPLES.md +17 -0
- package/standard/engineering/architecture/THREAT_MODEL.md +14 -0
- package/standard/engineering/backend/API.md +29 -0
- package/standard/engineering/backend/BACKGROUND_JOBS.md +12 -0
- package/standard/engineering/backend/ERROR_HANDLING.md +26 -0
- package/standard/engineering/backend/LOGGING.md +12 -0
- package/standard/engineering/compliance/DATA_RETENTION.md +10 -0
- package/standard/engineering/compliance/PRIVACY.md +11 -0
- package/standard/engineering/database/BACKUPS.md +19 -0
- package/standard/engineering/database/DATABASE.md +30 -0
- package/standard/engineering/database/MIGRATIONS.md +12 -0
- package/standard/engineering/devops/BRANCH_PROTECTION.md +17 -0
- package/standard/engineering/devops/CI_CD.md +48 -0
- package/standard/engineering/devops/DEPLOYMENT.md +12 -0
- package/standard/engineering/devops/DOCKER.md +9 -0
- package/standard/engineering/devops/ENVIRONMENTS.md +12 -0
- package/standard/engineering/devops/RELEASE.md +6 -0
- package/standard/engineering/devops/ROLLBACK.md +9 -0
- package/standard/engineering/frontend/ACCESSIBILITY.md +16 -0
- package/standard/engineering/frontend/DESIGN_SYSTEM.md +10 -0
- package/standard/engineering/frontend/FRONTEND.md +17 -0
- package/standard/engineering/frontend/UX.md +15 -0
- package/standard/engineering/observability/ALERTING.md +11 -0
- package/standard/engineering/observability/INCIDENTS.md +10 -0
- package/standard/engineering/observability/MONITORING.md +17 -0
- package/standard/engineering/payments/PAYMENTS.md +15 -0
- package/standard/engineering/performance/PERFORMANCE.md +19 -0
- package/standard/engineering/security/API_SECURITY.md +22 -0
- package/standard/engineering/security/ASVS_5.0/V10_MALICIOUS_CODE.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V11_BUSINESS_LOGIC.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V12_FILES.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V13_API.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V14_CONFIGURATION.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V1_ARCHITECTURE.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V2_AUTHENTICATION.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V3_SESSION.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V4_ACCESS_CONTROL.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V5_VALIDATION.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V6_CRYPTOGRAPHY.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V7_ERROR_HANDLING.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V8_DATA_PROTECTION.md +31 -0
- package/standard/engineering/security/ASVS_5.0/V9_COMMUNICATION.md +31 -0
- package/standard/engineering/security/ASVS_REGISTRY.md +31 -0
- package/standard/engineering/security/AUTHENTICATION.md +28 -0
- package/standard/engineering/security/AUTHORIZATION.md +27 -0
- package/standard/engineering/security/DATA_SECURITY.md +14 -0
- package/standard/engineering/security/OWASP_ASVS.md +31 -0
- package/standard/engineering/security/SECRETS.md +28 -0
- package/standard/engineering/security/SECURITY.md +28 -0
- package/standard/engineering/testing/TESTING.md +27 -0
- package/templates/agents/AGENTS.md +34 -0
- package/templates/agents/CLAUDE.md +33 -0
- package/templates/agents/copilot-instructions.md +15 -0
- package/templates/agents/cursor.mdc +27 -0
- package/templates/agents/windsurfrules.md +17 -0
- package/templates/docs/ADR.md +16 -0
- package/templates/docs/FEATURE.md +19 -0
- package/templates/docs/SECURITY_REPORT.md +15 -0
- package/templates/docs/accessibility-review.md +9 -0
- package/templates/docs/component.md +9 -0
- package/templates/docs/decision-record.md +9 -0
- package/templates/docs/design-review.md +9 -0
- package/templates/docs/exception.md +9 -0
- package/templates/docs/page.md +9 -0
- package/templates/docs/pattern.md +9 -0
- package/templates/docs/user-flow.md +9 -0
- package/templates/github/workflows/app-ci.yml +91 -0
- package/templates/project/00_OVERVIEW.md +51 -0
- package/templates/project/01_ARCHITECTURE.md +37 -0
- package/templates/project/02_SURFACES.md +30 -0
- package/templates/project/03_DATA_MODEL.md +31 -0
- package/templates/project/04_PERMISSIONS.md +32 -0
- package/templates/project/05_FLOWS.md +20 -0
- package/templates/project/06_INTEGRATIONS.md +21 -0
- package/templates/project/07_DESIGN.md +33 -0
- package/templates/project/10_NEVER_ALWAYS.md +26 -0
- package/templates/project/11_GAPS.md +18 -0
- package/templates/project/12_DEBT.md +19 -0
- package/templates/project/13_RECIPES.md +35 -0
- package/templates/project/14_INDEX.md +50 -0
- package/templates/project/AGENTS.md +51 -0
- package/templates/project/README.md +49 -0
- package/templates/project/impact-map.yaml +41 -0
package/PRINCIPLES.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Principles
|
|
2
|
+
|
|
3
|
+
Non-negotiable for this standard and every project that adopts it. Rules expire and get
|
|
4
|
+
superseded; these do not.
|
|
5
|
+
|
|
6
|
+
## Core comparisons
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
Simple > Clever
|
|
10
|
+
Explicit > Implicit
|
|
11
|
+
Validated > Trusted
|
|
12
|
+
Tested > Assumed
|
|
13
|
+
Documented > Remembered
|
|
14
|
+
Automated > Manual
|
|
15
|
+
Observable > Blind
|
|
16
|
+
Recoverable > Fragile
|
|
17
|
+
Clear > Novel
|
|
18
|
+
Accessible > Decorative
|
|
19
|
+
Tokens > One-off values
|
|
20
|
+
States complete > Happy path
|
|
21
|
+
Evidence > Opinion
|
|
22
|
+
Secure by default · Least privilege · Fail safely
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Memory is part of the system
|
|
26
|
+
|
|
27
|
+
A project's truth lives in three places, and only one of them is cheap to keep honest:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Code — true by definition, unreadable at scale
|
|
31
|
+
Docs — long, authoritative, goes stale silently
|
|
32
|
+
.devia/ — short, indexed, updated in the same change as the code
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`.devia/` **points**, it does not duplicate. If the exact SQL lives in `docs/DATABASE.md`, the
|
|
36
|
+
memory records that the table exists and where its definition is — not a second copy that will
|
|
37
|
+
drift.
|
|
38
|
+
|
|
39
|
+
Corollary: a memory file that is allowed to be wrong is worse than no memory file. A false
|
|
40
|
+
registry line is worse than a missing one, because it is trusted.
|
|
41
|
+
|
|
42
|
+
## Complexity must be earned
|
|
43
|
+
|
|
44
|
+
Do not impose Redis, Kubernetes, microservices, Kafka, Elasticsearch, GraphQL, CDNs, queues,
|
|
45
|
+
extra databases, service meshes or multi-region "because serious apps have them".
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Need demonstrated?
|
|
49
|
+
↓
|
|
50
|
+
YES → implement, record the decision (ADR)
|
|
51
|
+
NO → do not introduce the complexity
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The same bar applies to the interface: extra navigation modes, custom components that duplicate
|
|
55
|
+
system ones, motion that communicates nothing, colour tokens for "branding experiments" with no
|
|
56
|
+
product need.
|
|
57
|
+
|
|
58
|
+
**Use when justified. Record the decision.**
|
|
59
|
+
|
|
60
|
+
## Every new dependency is a liability
|
|
61
|
+
|
|
62
|
+
Before adding a library, a component, or a token, answer:
|
|
63
|
+
|
|
64
|
+
| Question | Why it matters |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Why do we need it? | Feature vs convenience |
|
|
67
|
+
| Does something we already have cover this? | Drift is the default failure |
|
|
68
|
+
| Security track record? | CVEs, maintainer trust |
|
|
69
|
+
| Maintenance? | Last release, bus factor |
|
|
70
|
+
| License? | Compatible with distribution |
|
|
71
|
+
| Cost at runtime / in the bundle? | Performance is a feature |
|
|
72
|
+
| Supply-chain risk? | Typosquatting, install scripts |
|
|
73
|
+
| What states does it need? | Half-built UI is not a component |
|
|
74
|
+
|
|
75
|
+
Adding a dependency is a product decision, not a typing shortcut.
|
|
76
|
+
|
|
77
|
+
## Nothing undecided becomes a silent truth
|
|
78
|
+
|
|
79
|
+
When the answer is not known, the agent does not pick one quietly and encode it. It implements a
|
|
80
|
+
**declared** policy and records the open question in `.devia/11_GAPS.md`.
|
|
81
|
+
|
|
82
|
+
When the answer *is* known but not built, that is not "we know about it" — it is a line in
|
|
83
|
+
`.devia/12_DEBT.md`, with an ID that is never reused.
|
|
84
|
+
|
|
85
|
+
## Authoritative sources over taste
|
|
86
|
+
|
|
87
|
+
When taste conflicts with WCAG, ARIA APG, OWASP ASVS, or an adopted rule, the standard wins.
|
|
88
|
+
Sources are listed in [`REFERENCES.md`](REFERENCES.md); they are cited, not paraphrased into
|
|
89
|
+
private folklore.
|
|
90
|
+
|
|
91
|
+
## Done means verified
|
|
92
|
+
|
|
93
|
+
"Done" is a claim about evidence, not about effort:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
The change works → tests or manual steps stated
|
|
97
|
+
The change is safe → P0 gates pass
|
|
98
|
+
The change is honest → memory updated, unverified parts named
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Anything else is a draft.
|
|
102
|
+
|
|
103
|
+
## Related
|
|
104
|
+
|
|
105
|
+
- Agent behaviour: [`AGENTS.md`](AGENTS.md)
|
|
106
|
+
- Memory doctrine: [`MEMORY.md`](MEMORY.md)
|
|
107
|
+
- Enforcement levels: [`LEVELS.md`](LEVELS.md)
|
|
108
|
+
- Maturity tiers: [`MATURITY.md`](MATURITY.md)
|
|
109
|
+
- Architecture detail: [`standard/engineering/architecture/PRINCIPLES.md`](standard/engineering/architecture/PRINCIPLES.md)
|
|
110
|
+
- Design hierarchy: [`standard/design/principles/design-principles.md`](standard/design/principles/design-principles.md)
|
package/README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# devia
|
|
2
|
+
|
|
3
|
+
**One standard, one memory.** Devia is the single engineering standard for building software
|
|
4
|
+
with AI coding agents — and the living project memory those agents read before they touch
|
|
5
|
+
anything.
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
MEMORY (what this project is) → POLICY (rules) → CHECK (devia check) → ENFORCEMENT (CI)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Install it once, run `devia init`, and the project grows a `.devia/` folder. That folder is the
|
|
12
|
+
first thing every agent reads and the last thing every change updates.
|
|
13
|
+
|
|
14
|
+
## Why it exists
|
|
15
|
+
|
|
16
|
+
An agent that starts cold re-derives the project on every task: it invents APIs, re-litigates
|
|
17
|
+
decisions that were already made, ships a UI with no empty state, and reports "done" because the
|
|
18
|
+
unit tests passed. Documentation does not fix that — documentation goes stale the moment the code
|
|
19
|
+
moves.
|
|
20
|
+
|
|
21
|
+
Devia fixes it with three things that reinforce each other:
|
|
22
|
+
|
|
23
|
+
| | | |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| **Discipline** | how an agent is allowed to work | `AGENTS.md`, `rules/agent/`, `rules/memory/` |
|
|
26
|
+
| **Standard** | how the software must be built | `standard/engineering/`, `standard/design/`, `rules/`, `checklists/` |
|
|
27
|
+
| **Memory** | what *this* project actually is | `.devia/` in the target repo |
|
|
28
|
+
|
|
29
|
+
## Quick start
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -D @schneiderjoseph/devia # the binary it installs is `devia`
|
|
33
|
+
npx devia init # creates .devia/ + agent adapters
|
|
34
|
+
npx devia validate # memory integrity
|
|
35
|
+
npx devia check # production readiness (P0/P1)
|
|
36
|
+
npx devia doctor # adoption + staleness diagnosis
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`devia init` writes:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
.devia/
|
|
43
|
+
├── AGENTS.md # local work contract
|
|
44
|
+
├── 00_OVERVIEW.md # what this project is, stack, modules
|
|
45
|
+
├── 01_ARCHITECTURE.md # structure, boundaries, current vs target
|
|
46
|
+
├── 02_SURFACES.md # pages / endpoints / jobs and where they live
|
|
47
|
+
├── 03_DATA_MODEL.md
|
|
48
|
+
├── 04_PERMISSIONS.md
|
|
49
|
+
├── 05_FLOWS.md
|
|
50
|
+
├── 06_INTEGRATIONS.md
|
|
51
|
+
├── 07_DESIGN.md
|
|
52
|
+
├── 10_NEVER_ALWAYS.md # project rules earned from real incidents
|
|
53
|
+
├── 11_GAPS.md # registry: decided by nobody yet
|
|
54
|
+
├── 12_DEBT.md # registry: decided, not built
|
|
55
|
+
├── 13_RECIPES.md # how to do common tasks in THIS repo
|
|
56
|
+
├── 14_INDEX.md # where to find what
|
|
57
|
+
├── impact-map.yaml # change type → files that must be updated
|
|
58
|
+
├── devia.json # profile, modules, maturity target, pinned version
|
|
59
|
+
└── standard/ # vendored, version-pinned copy of the standard
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Plus adapters so every agent gets the same contract: `AGENTS.md` (universal), `CLAUDE.md`,
|
|
63
|
+
`.cursor/rules/devia.mdc`, `.github/copilot-instructions.md`, `.windsurfrules`.
|
|
64
|
+
|
|
65
|
+
## Rule zero
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
Work requested on a repository
|
|
69
|
+
↓
|
|
70
|
+
.devia/ exists? ──NO──► run `devia init` FIRST
|
|
71
|
+
↓ YES
|
|
72
|
+
Read .devia/AGENTS.md → 00_OVERVIEW → the surface you are touching
|
|
73
|
+
↓
|
|
74
|
+
Work
|
|
75
|
+
↓
|
|
76
|
+
Update .devia/ in the SAME change
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
An agent that codes without reading the memory, or that ships code without updating it, has
|
|
80
|
+
failed the task — not styled it differently.
|
|
81
|
+
|
|
82
|
+
## What is in the box
|
|
83
|
+
|
|
84
|
+
| Layer | Where | Content |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| Work contract | [`AGENTS.md`](AGENTS.md) | Workflow, hard stops, output contract |
|
|
87
|
+
| Principles | [`PRINCIPLES.md`](PRINCIPLES.md) | Simple > clever, complexity earned, dependency liability, evidence > opinion |
|
|
88
|
+
| Memory doctrine | [`MEMORY.md`](MEMORY.md) | Registries, sweep discipline, impact map, staleness |
|
|
89
|
+
| Rules | [`rules/`](rules/README.md) | 138 rules with stable IDs, severity, priority, validation |
|
|
90
|
+
| Engineering | [`standard/engineering/`](standard/engineering/README.md) | Architecture, security (ASVS 5.0), database, API, testing, devops, observability, privacy, payments, AI |
|
|
91
|
+
| Design | [`standard/design/`](standard/design/README.md) | UX, UI, accessibility (WCAG 2.2), states, components, data display, i18n, responsive, anti-patterns |
|
|
92
|
+
| Checklists | [`checklists/`](checklists/README.md) | Engineering + design review gates |
|
|
93
|
+
| Levels | [`LEVELS.md`](LEVELS.md) | Policy → Check → Enforcement |
|
|
94
|
+
| Maturity | [`MATURITY.md`](MATURITY.md) | P0–P3, Bronze → Platinum |
|
|
95
|
+
| Skill pack | [`skills/devia/SKILL.md`](skills/devia/SKILL.md) | Same contract for Cursor, Claude Code, Copilot, Windsurf, Aider |
|
|
96
|
+
|
|
97
|
+
## Severity and priority
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
Rules: MUST · MUST NOT · SHOULD · MAY
|
|
101
|
+
Gates: P0 blocker · P1 required · P2 recommended · P3 optional
|
|
102
|
+
Tiers: Bronze → Silver → Gold (production-ready) → Platinum
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
A rule without a check is aspirational. A check without CI enforcement is a suggestion.
|
|
106
|
+
See [`LEVELS.md`](LEVELS.md).
|
|
107
|
+
|
|
108
|
+
## Consolidation
|
|
109
|
+
|
|
110
|
+
Devia absorbs and replaces two earlier standards:
|
|
111
|
+
|
|
112
|
+
- `production-app-standard` → [`standard/engineering/`](standard/engineering/README.md)
|
|
113
|
+
- `design-system-standard` → [`standard/design/`](standard/design/README.md) + design rule IDs
|
|
114
|
+
|
|
115
|
+
Only devia is maintained. See [`MIGRATION.md`](MIGRATION.md).
|
|
116
|
+
|
|
117
|
+
## Stack assumption
|
|
118
|
+
|
|
119
|
+
Written primarily for Node.js / TypeScript, PostgreSQL, React, Docker and GitHub Actions.
|
|
120
|
+
The rules transfer to any stack; the commands may need adaptation. The memory layer is
|
|
121
|
+
stack-agnostic by construction.
|
|
122
|
+
|
|
123
|
+
## License
|
|
124
|
+
|
|
125
|
+
MIT — see [`LICENSE`](LICENSE).
|
package/REFERENCES.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Reference sources
|
|
2
|
+
|
|
3
|
+
Devia is built on recognised sources. When detail matters, read the primary document — do not
|
|
4
|
+
paraphrase from memory, and do not copy their text into this repository.
|
|
5
|
+
|
|
6
|
+
| Area | Source | Used for |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| Application security | OWASP ASVS 5.0 | Security rule spine, `standard/engineering/security/ASVS_5.0/` |
|
|
9
|
+
| Web risk | OWASP Top 10, OWASP Cheat Sheets | Threat framing, control choices |
|
|
10
|
+
| Accessibility | WCAG 2.2 (W3C) | `A11Y-*` rules, contrast, focus, target size, reflow |
|
|
11
|
+
| Accessible patterns | WAI-ARIA Authoring Practices Guide | Component keyboard behaviour (`CMP-*`) |
|
|
12
|
+
| Usability | Nielsen Norman Group heuristics | `UX-*` rules, feedback and status |
|
|
13
|
+
| Design systems | Material, Carbon, Primer, Atlassian, US Web Design System, GOV.UK | Component and token conventions |
|
|
14
|
+
| Semantics | HTML Living Standard, ARIA in HTML | Native-first guidance (`A11Y-003`) |
|
|
15
|
+
| Supply chain | SLSA, OpenSSF Scorecard | Dependency and build controls |
|
|
16
|
+
| Operations | Google SRE practice (SLO, error budgets) | Observability and alerting rules |
|
|
17
|
+
| Privacy | GDPR principles, data-minimisation practice | `PRIV-*` rules |
|
|
18
|
+
|
|
19
|
+
Detail lists:
|
|
20
|
+
|
|
21
|
+
- Engineering: [`standard/engineering/REFERENCES.md`](standard/engineering/REFERENCES.md)
|
|
22
|
+
- Design: [`standard/design/REFERENCES.md`](standard/design/REFERENCES.md)
|
|
23
|
+
|
|
24
|
+
## Rules for citing
|
|
25
|
+
|
|
26
|
+
- A rule carries at least one `source` entry naming where the obligation comes from.
|
|
27
|
+
- Cite the source, link to it, and write the requirement in your own words.
|
|
28
|
+
- Where devia is stricter than a source, say so in the rule body rather than implying the
|
|
29
|
+
source demands it.
|
|
30
|
+
- Devia interprets these standards; it does not certify against them.
|
package/VERSION
ADDED
package/bin/devia.mjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from "node:process";
|
|
3
|
+
import { run } from "../src/cli.mjs";
|
|
4
|
+
|
|
5
|
+
run(process.argv.slice(2))
|
|
6
|
+
.then((code) => {
|
|
7
|
+
process.exitCode = code || 0;
|
|
8
|
+
})
|
|
9
|
+
.catch((err) => {
|
|
10
|
+
console.error(`devia: ${err?.message || err}`);
|
|
11
|
+
if (process.env.DEVIA_DEBUG) console.error(err);
|
|
12
|
+
process.exitCode = 1;
|
|
13
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Checklists
|
|
2
|
+
|
|
3
|
+
Walk the checklist for the surface you touched before you claim the work is done. A checklist is
|
|
4
|
+
the human-readable form of the gates in [`../MATURITY.md`](../MATURITY.md); the machine-readable
|
|
5
|
+
form is `devia check`.
|
|
6
|
+
|
|
7
|
+
## Engineering
|
|
8
|
+
|
|
9
|
+
| Checklist | Use when |
|
|
10
|
+
|---|---|
|
|
11
|
+
| [`engineering/architecture.md`](engineering/architecture.md) | Adding a boundary, a service, a dependency |
|
|
12
|
+
| [`engineering/security.md`](engineering/security.md) | Any auth, data-access or input-handling change |
|
|
13
|
+
| [`engineering/database.md`](engineering/database.md) | Schema, migration, index, retention |
|
|
14
|
+
| [`engineering/api.md`](engineering/api.md) | New or changed endpoint |
|
|
15
|
+
| [`engineering/frontend.md`](engineering/frontend.md) | Client-side engineering |
|
|
16
|
+
| [`engineering/accessibility.md`](engineering/accessibility.md) | Any user-facing surface |
|
|
17
|
+
| [`engineering/testing.md`](engineering/testing.md) | Before calling coverage sufficient |
|
|
18
|
+
| [`engineering/devops.md`](engineering/devops.md) | Pipeline, environment, deploy |
|
|
19
|
+
| [`engineering/performance.md`](engineering/performance.md) | Latency, payload, query cost |
|
|
20
|
+
| [`engineering/incident.md`](engineering/incident.md) | During and after an incident |
|
|
21
|
+
| [`engineering/disaster-recovery.md`](engineering/disaster-recovery.md) | Backup and restore work |
|
|
22
|
+
| [`engineering/release.md`](engineering/release.md) | Definition of done for a feature |
|
|
23
|
+
| [`engineering/production.md`](engineering/production.md) | Before claiming production ready |
|
|
24
|
+
|
|
25
|
+
## Design
|
|
26
|
+
|
|
27
|
+
| Checklist | Use when |
|
|
28
|
+
|---|---|
|
|
29
|
+
| [`design/ux-review.md`](design/ux-review.md) | Flow, journey or IA change |
|
|
30
|
+
| [`design/ui-review.md`](design/ui-review.md) | Visual change |
|
|
31
|
+
| [`design/accessibility-review.md`](design/accessibility-review.md) | Any interface change |
|
|
32
|
+
| [`design/responsive-review.md`](design/responsive-review.md) | Layout across sizes and inputs |
|
|
33
|
+
| [`design/design-to-code-review.md`](design/design-to-code-review.md) | Implementing a design |
|
|
34
|
+
|
|
35
|
+
## Rules for using them
|
|
36
|
+
|
|
37
|
+
- A checklist item you did not check is **not verified**, and says so in the report.
|
|
38
|
+
- An item that does not apply is marked not applicable with a reason — never silently dropped.
|
|
39
|
+
- An item that keeps not applying is a bug in the checklist: fix the checklist.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Checklist — Accessibility review
|
|
2
|
+
|
|
3
|
+
- [ ] Keyboard complete for the flow
|
|
4
|
+
- [ ] Visible focus
|
|
5
|
+
- [ ] Names/labels
|
|
6
|
+
- [ ] Contrast AA (text + UI)
|
|
7
|
+
- [ ] Not color-only
|
|
8
|
+
- [ ] Forms: labels, errors, required
|
|
9
|
+
- [ ] Dialogs: APG behavior
|
|
10
|
+
- [ ] Skip/landmarks as needed
|
|
11
|
+
- [ ] Reduced motion respected
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Checklist — Design → code handoff
|
|
2
|
+
|
|
3
|
+
- [ ] Token names specified (not only hex screenshots)
|
|
4
|
+
- [ ] Component names match system
|
|
5
|
+
- [ ] States documented
|
|
6
|
+
- [ ] A11y notes (keyboard, names)
|
|
7
|
+
- [ ] Responsive behavior noted
|
|
8
|
+
- [ ] Empty/loading/error included
|
|
9
|
+
- [ ] Content finalized or marked TBD
|
|
10
|
+
- [ ] MUST rules reviewed (`AGENTS.md` output contract)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Checklist — UX review
|
|
2
|
+
|
|
3
|
+
- [ ] Primary user job clear
|
|
4
|
+
- [ ] Primary action clear
|
|
5
|
+
- [ ] Happy path + failure path
|
|
6
|
+
- [ ] Empty / loading / error states
|
|
7
|
+
- [ ] Irreversible actions confirmed
|
|
8
|
+
- [ ] Nav orientation clear
|
|
9
|
+
- [ ] Copy understandable
|
|
10
|
+
- [ ] Cognitive load acceptable
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Checklist — API
|
|
2
|
+
|
|
3
|
+
- [ ] AuthN + AuthZ on sensitive endpoints
|
|
4
|
+
- [ ] Schema validation
|
|
5
|
+
- [ ] Consistent error codes/shape
|
|
6
|
+
- [ ] Correct HTTP statuses
|
|
7
|
+
- [ ] Pagination on large collections
|
|
8
|
+
- [ ] Rate limiting where needed
|
|
9
|
+
- [ ] Idempotency for critical POSTs
|
|
10
|
+
- [ ] Webhook signature verification
|
|
11
|
+
- [ ] OpenAPI/docs updated if public
|
|
12
|
+
- [ ] Request/correlation IDs
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Checklist — Architecture
|
|
2
|
+
|
|
3
|
+
- [ ] Problem, users, and sensitive data identified
|
|
4
|
+
- [ ] UI / API / DB boundaries clear
|
|
5
|
+
- [ ] Critical components & SPOFs identified
|
|
6
|
+
- [ ] Recovery approach exists for critical failures
|
|
7
|
+
- [ ] ADRs for irreversible decisions
|
|
8
|
+
- [ ] Architecture doc updated for this change
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Checklist — Database
|
|
2
|
+
|
|
3
|
+
- [ ] Schema constraints (PK/FK/unique/check) in place
|
|
4
|
+
- [ ] Indexes reviewed for hot queries
|
|
5
|
+
- [ ] Migrations versioned
|
|
6
|
+
- [ ] No manual prod schema edits
|
|
7
|
+
- [ ] N+1 / slow queries considered
|
|
8
|
+
- [ ] Connection pooling configured
|
|
9
|
+
- [ ] Backup automated
|
|
10
|
+
- [ ] Restore tested
|
|
11
|
+
- [ ] Tenant/user scoping verified
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Checklist — DevOps
|
|
2
|
+
|
|
3
|
+
- [ ] PR required for `main`
|
|
4
|
+
- [ ] CI required checks green
|
|
5
|
+
- [ ] Dependency/secret scanning considered
|
|
6
|
+
- [ ] Staging environment exists for risky changes
|
|
7
|
+
- [ ] Deploy path documented
|
|
8
|
+
- [ ] Rollback path known
|
|
9
|
+
- [ ] Env vars documented
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Checklist — Disaster recovery
|
|
2
|
+
|
|
3
|
+
- [ ] RPO defined
|
|
4
|
+
- [ ] RTO defined
|
|
5
|
+
- [ ] Backup inventory listed (DB/files/config)
|
|
6
|
+
- [ ] Restore procedure documented
|
|
7
|
+
- [ ] Restore tested within last agreed interval
|
|
8
|
+
- [ ] Failover/owner contacts documented
|
|
9
|
+
- [ ] Post-restore verification checklist exists
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Checklist — Frontend
|
|
2
|
+
|
|
3
|
+
- [ ] Loading/empty/error/success states
|
|
4
|
+
- [ ] Form validation + server error display
|
|
5
|
+
- [ ] Responsive for claimed devices
|
|
6
|
+
- [ ] No secrets in client
|
|
7
|
+
- [ ] XSS-safe rendering
|
|
8
|
+
- [ ] Destructive action confirmations
|
|
9
|
+
- [ ] Error boundary/fallback for shell
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Checklist — Incident response
|
|
2
|
+
|
|
3
|
+
- [ ] Impact assessed (users/payments/data)
|
|
4
|
+
- [ ] Mitigation applied (rollback/flag/patch)
|
|
5
|
+
- [ ] Stakeholders/users informed if needed
|
|
6
|
+
- [ ] Timeline captured
|
|
7
|
+
- [ ] Root cause identified (best effort)
|
|
8
|
+
- [ ] Follow-up tasks filed with owners
|
|
9
|
+
- [ ] Monitoring/alerts improved if detection was slow
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Checklist — Performance
|
|
2
|
+
|
|
3
|
+
- [ ] Latency targets defined for critical endpoints
|
|
4
|
+
- [ ] Heavy work queued off request path when needed
|
|
5
|
+
- [ ] Hot queries profiled/indexed
|
|
6
|
+
- [ ] Caching deliberate (with invalidation idea)
|
|
7
|
+
- [ ] Load test before large traffic events
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Checklist — Production readiness
|
|
2
|
+
|
|
3
|
+
You may call it production only if you can honestly check these:
|
|
4
|
+
|
|
5
|
+
- [ ] Security reviewed (authn/authz/secrets/headers)
|
|
6
|
+
- [ ] Authentication tested
|
|
7
|
+
- [ ] Authorization tested (incl. cross-user/tenant)
|
|
8
|
+
- [ ] Database migrations tested
|
|
9
|
+
- [ ] Backup tested
|
|
10
|
+
- [ ] Restore tested
|
|
11
|
+
- [ ] Monitoring active
|
|
12
|
+
- [ ] Alerts active
|
|
13
|
+
- [ ] Error tracking active
|
|
14
|
+
- [ ] Logging active
|
|
15
|
+
- [ ] CI green
|
|
16
|
+
- [ ] Critical E2E/smoke green
|
|
17
|
+
- [ ] Dependencies audited
|
|
18
|
+
- [ ] Secrets secured
|
|
19
|
+
- [ ] HTTPS active
|
|
20
|
+
- [ ] Rate limiting active on abuse surfaces
|
|
21
|
+
- [ ] Rollback tested or feature-flag kill switch ready
|
|
22
|
+
- [ ] Documentation sufficient for operation
|
|
23
|
+
- [ ] Environment variables documented
|
|
24
|
+
- [ ] Privacy requirements reviewed for this product
|
|
25
|
+
- [ ] Disaster recovery notes exist
|
|
26
|
+
- [ ] Critical business workflows tested
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Checklist — Feature Definition of Done
|
|
2
|
+
|
|
3
|
+
- [ ] Requirement understood
|
|
4
|
+
- [ ] Business rules documented when non-obvious
|
|
5
|
+
- [ ] Architecture impact reviewed
|
|
6
|
+
- [ ] DB changes migrated
|
|
7
|
+
- [ ] API documented if contract changed
|
|
8
|
+
- [ ] Authorization implemented
|
|
9
|
+
- [ ] Validation implemented
|
|
10
|
+
- [ ] Error handling implemented
|
|
11
|
+
- [ ] Logging considered
|
|
12
|
+
- [ ] Tests written/updated
|
|
13
|
+
- [ ] Security reviewed for the touch area
|
|
14
|
+
- [ ] Accessibility considered for UI
|
|
15
|
+
- [ ] Docs updated
|
|
16
|
+
- [ ] CI passing
|
|
17
|
+
- [ ] Code reviewed (human)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Checklist — Security
|
|
2
|
+
|
|
3
|
+
## AuthN / AuthZ
|
|
4
|
+
- [ ] Authentication implemented correctly
|
|
5
|
+
- [ ] Authorization verified server-side
|
|
6
|
+
- [ ] Object-level authorization (no IDOR)
|
|
7
|
+
- [ ] Passwords hashed with approved algorithm
|
|
8
|
+
- [ ] Session/token expiration & revocation work
|
|
9
|
+
- [ ] Brute-force protections on auth endpoints
|
|
10
|
+
|
|
11
|
+
## Input / output
|
|
12
|
+
- [ ] Input validation on every external input
|
|
13
|
+
- [ ] SQL injection protection (parameterized queries)
|
|
14
|
+
- [ ] XSS protection
|
|
15
|
+
- [ ] CSRF protection where applicable
|
|
16
|
+
- [ ] Upload limits / type checks if uploads exist
|
|
17
|
+
|
|
18
|
+
## Secrets / config
|
|
19
|
+
- [ ] No secrets in source code
|
|
20
|
+
- [ ] `.env` ignored; `.env.example` present
|
|
21
|
+
- [ ] Credentials separated by environment
|
|
22
|
+
- [ ] Secret scanning enabled when possible
|
|
23
|
+
|
|
24
|
+
## Transport / browser
|
|
25
|
+
- [ ] HTTPS enforced in production
|
|
26
|
+
- [ ] Secure HTTP headers (baseline)
|
|
27
|
+
- [ ] CORS correctly configured
|
|
28
|
+
- [ ] Cookies Secure/HttpOnly/SameSite as applicable
|
|
29
|
+
- [ ] Rate limiting on public abuse surfaces
|
|
30
|
+
|
|
31
|
+
## Ops
|
|
32
|
+
- [ ] Audit logging for security-relevant events
|
|
33
|
+
- [ ] Dependencies audited
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Checklist — Testing
|
|
2
|
+
|
|
3
|
+
- [ ] Unit tests for domain rules touched
|
|
4
|
+
- [ ] Integration tests for API/DB/auth paths touched
|
|
5
|
+
- [ ] Denial tests for authz on sensitive resources
|
|
6
|
+
- [ ] E2E/smoke for critical journeys when UI changes
|
|
7
|
+
- [ ] Regression test for fixed prod bugs
|
|
8
|
+
- [ ] CI runs tests on PR
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Coverage
|
|
2
|
+
|
|
3
|
+
> Generated by `npm run build:index`.
|
|
4
|
+
|
|
5
|
+
| Metric | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| Rules total | 138 |
|
|
8
|
+
| Active | 138 |
|
|
9
|
+
| MUST | 103 |
|
|
10
|
+
| MUST NOT | 11 |
|
|
11
|
+
| SHOULD | 24 |
|
|
12
|
+
| P0 | 44 |
|
|
13
|
+
| P1 | 70 |
|
|
14
|
+
| P2 | 24 |
|
|
15
|
+
| Automatable | 53 |
|
|
16
|
+
| Domains | 23 |
|
|
17
|
+
|
|
18
|
+
## By domain
|
|
19
|
+
|
|
20
|
+
| Domain | Rules | P0 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| accessibility | 12 | 5 |
|
|
23
|
+
| agent | 11 | 6 |
|
|
24
|
+
| ai | 5 | 2 |
|
|
25
|
+
| api | 6 | 1 |
|
|
26
|
+
| architecture | 6 | 0 |
|
|
27
|
+
| components | 5 | 1 |
|
|
28
|
+
| content | 1 | 0 |
|
|
29
|
+
| data-display | 4 | 0 |
|
|
30
|
+
| database | 8 | 5 |
|
|
31
|
+
| design-system | 3 | 0 |
|
|
32
|
+
| devops | 7 | 4 |
|
|
33
|
+
| interaction | 2 | 0 |
|
|
34
|
+
| localization | 3 | 0 |
|
|
35
|
+
| memory | 11 | 3 |
|
|
36
|
+
| motion | 1 | 0 |
|
|
37
|
+
| observability | 4 | 0 |
|
|
38
|
+
| privacy | 4 | 0 |
|
|
39
|
+
| responsive | 3 | 2 |
|
|
40
|
+
| security | 12 | 7 |
|
|
41
|
+
| states | 4 | 0 |
|
|
42
|
+
| testing | 6 | 3 |
|
|
43
|
+
| ui | 7 | 2 |
|
|
44
|
+
| ux | 13 | 3 |
|
|
45
|
+
|
|
46
|
+
A domain with rules and no automatable check is not a failure — it is a backlog item for [`LEVELS.md`](../LEVELS.md) level 2.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Requirements model
|
|
2
|
+
|
|
3
|
+
1. **Normative** sources (WCAG, ARIA) define non-negotiable accessibility bars.
|
|
4
|
+
2. **This standard** maps them into rule IDs agents and CI can cite.
|
|
5
|
+
3. **Checklists** operationalize reviews.
|
|
6
|
+
4. **Waivers** are time-boxed exceptions (`schema/waiver.schema.json`).
|
|
7
|
+
|
|
8
|
+
This repository is an **operational standard**, not an international standards body.
|