@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
|
@@ -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`
|