universal-dev-standards 5.17.0 → 6.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/bin/uds.js +13 -135
- package/bundled/ai/options/commit-message/bilingual.ai.yaml +19 -1
- package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +13 -4
- package/bundled/ai/standards/accessibility-standards.ai.yaml +1 -1
- package/bundled/ai/standards/ai-response-navigation.ai.yaml +15 -2
- package/bundled/ai/standards/api-design-standards.ai.yaml +27 -4
- package/bundled/ai/standards/behavior-snapshot.ai.yaml +86 -9
- package/bundled/ai/standards/checkin-standards.ai.yaml +3 -3
- package/bundled/ai/standards/code-review.ai.yaml +2 -2
- package/bundled/ai/standards/context-aware-loading.ai.yaml +3 -3
- package/bundled/ai/standards/data-migration-testing.ai.yaml +79 -3
- package/bundled/ai/standards/deprecation-standards.ai.yaml +10 -2
- package/bundled/ai/standards/developer-memory.ai.yaml +4 -3
- package/bundled/ai/standards/documentation-writing-standards.ai.yaml +1 -1
- package/bundled/ai/standards/flow-based-testing.ai.yaml +2 -2
- package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
- package/bundled/ai/standards/frontend-design-standards.ai.yaml +33 -3
- package/bundled/ai/standards/full-coverage-testing.ai.yaml +34 -2
- package/bundled/ai/standards/git-worktree.ai.yaml +3 -3
- package/bundled/ai/standards/logging.ai.yaml +97 -3
- package/bundled/ai/standards/mock-boundary.ai.yaml +48 -2
- package/bundled/ai/standards/model-provenance.ai.yaml +297 -0
- package/bundled/ai/standards/model-selection.ai.yaml +11 -2
- package/bundled/ai/standards/observability-standards.ai.yaml +10 -0
- package/bundled/ai/standards/performance-standards.ai.yaml +46 -1
- package/bundled/ai/standards/pii-classification.ai.yaml +15 -1
- package/bundled/ai/standards/pipeline-security-gates.ai.yaml +10 -0
- package/bundled/ai/standards/privacy-standards.ai.yaml +2 -2
- package/bundled/ai/standards/project-context-memory.ai.yaml +2 -2
- package/bundled/ai/standards/push-standards.ai.yaml +14 -3
- package/bundled/ai/standards/refactoring-standards.ai.yaml +68 -3
- package/bundled/ai/standards/requirement-engineering.ai.yaml +42 -3
- package/bundled/ai/standards/resource-cost-boundary.ai.yaml +279 -0
- package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +55 -2
- package/bundled/ai/standards/security-testing.ai.yaml +13 -2
- package/bundled/ai/standards/self-review-protocol.ai.yaml +15 -10
- package/bundled/ai/standards/skill-standard-alignment-check.ai.yaml +37 -2
- package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
- package/bundled/ai/standards/verification-evidence.ai.yaml +88 -5
- package/bundled/ai/standards/verification-oracle.ai.yaml +278 -0
- package/bundled/ai/standards/versioning.ai.yaml +32 -38
- package/bundled/core/acceptance-criteria-traceability.md +15 -5
- package/bundled/core/accessibility-standards.md +8 -4
- package/bundled/core/ai-friendly-architecture.md +1 -1
- package/bundled/core/ai-response-navigation.md +31 -3
- package/bundled/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/core/api-design-standards.md +92 -7
- package/bundled/core/audit-trail.md +119 -0
- package/bundled/core/behavior-snapshot.md +94 -7
- package/bundled/core/browser-compatibility-standards.md +15 -2
- package/bundled/core/checkin-standards.md +10 -3
- package/bundled/core/code-review-checklist.md +10 -2
- package/bundled/core/container-image-standards.md +97 -0
- package/bundled/core/context-aware-loading.md +2 -2
- package/bundled/core/cost-budget-test.md +1 -1
- package/bundled/core/cross-flow-regression.md +3 -2
- package/bundled/core/data-contract.md +104 -0
- package/bundled/core/data-migration-testing.md +90 -0
- package/bundled/core/data-pipeline.md +113 -0
- package/bundled/core/deprecation-standards.md +16 -2
- package/bundled/core/developer-memory.md +13 -8
- package/bundled/core/documentation-writing-standards.md +2 -2
- package/bundled/core/error-code-standards.md +4 -3
- package/bundled/core/feature-discovery-standards.md +191 -0
- package/bundled/core/flaky-test-management.md +1 -1
- package/bundled/core/flow-based-testing.md +3 -3
- package/bundled/core/forward-derivation-standards.md +33 -5
- package/bundled/core/frontend-design-standards.md +93 -4
- package/bundled/core/full-coverage-testing.md +72 -0
- package/bundled/core/git-worktree.md +4 -4
- package/bundled/core/guides/performance-guide.md +1 -1
- package/bundled/core/guides/security-guide.md +1 -1
- package/bundled/core/health-check-standards.md +2 -2
- package/bundled/core/iac-design-principles.md +97 -0
- package/bundled/core/incident-response.md +119 -0
- package/bundled/core/license-compliance.md +2 -0
- package/bundled/core/logging-standards.md +78 -2
- package/bundled/core/mock-boundary.md +54 -2
- package/bundled/core/model-provenance.md +181 -0
- package/bundled/core/model-selection.md +27 -2
- package/bundled/core/multi-environment-e2e-testing.md +195 -0
- package/bundled/core/packaging-standards.md +1 -0
- package/bundled/core/performance-standards.md +96 -2
- package/bundled/core/pii-classification.md +148 -0
- package/bundled/core/pipeline-security-gates.md +22 -2
- package/bundled/core/postmortem-standards.md +2 -0
- package/bundled/core/prd-standards.md +91 -0
- package/bundled/core/privacy-standards.md +14 -3
- package/bundled/core/product-metrics-standards.md +100 -0
- package/bundled/core/project-context-memory.md +8 -2
- package/bundled/core/prompt-regression.md +1 -1
- package/bundled/core/push-standards.md +82 -0
- package/bundled/core/refactoring-standards.md +44 -3
- package/bundled/core/replay-test.md +1 -1
- package/bundled/core/requirement-engineering.md +2 -2
- package/bundled/core/resource-cost-boundary.md +180 -0
- package/bundled/core/reverse-engineering-standards.md +66 -2
- package/bundled/core/runbook.md +113 -0
- package/bundled/core/schema-evolution.md +105 -0
- package/bundled/core/secret-management-standards.md +110 -0
- package/bundled/core/security-testing.md +26 -2
- package/bundled/core/self-review-protocol.md +15 -10
- package/bundled/core/skill-standard-alignment-check.md +53 -0
- package/bundled/core/slo-sli.md +109 -0
- package/bundled/core/smoke-test.md +1 -1
- package/bundled/core/tech-debt-standards.md +1 -1
- package/bundled/core/test-data-standards.md +2 -2
- package/bundled/core/user-journey-testing.md +102 -0
- package/bundled/core/user-story-mapping.md +96 -0
- package/bundled/core/verification-evidence.md +170 -10
- package/bundled/core/verification-oracle.md +167 -0
- package/bundled/core/versioning.md +133 -109
- package/bundled/locales/COVERAGE.md +94 -77
- package/bundled/locales/zh-CN/CHANGELOG.md +94 -6
- package/bundled/locales/zh-CN/CLAUDE.md +1 -1
- package/bundled/locales/zh-CN/MAINTENANCE.md +42 -661
- package/bundled/locales/zh-CN/README.md +25 -12
- package/bundled/locales/zh-CN/SECURITY.md +2 -2
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +4 -6
- package/bundled/locales/zh-CN/core/accessibility-standards.md +1 -1
- package/bundled/locales/zh-CN/core/adversarial-test.md +226 -0
- package/bundled/locales/zh-CN/core/agent-behavior-discipline.md +187 -0
- package/bundled/locales/zh-CN/core/ai-response-navigation.md +32 -6
- package/bundled/locales/zh-CN/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/locales/zh-CN/core/api-design-standards.md +1 -1
- package/bundled/locales/zh-CN/core/behavior-snapshot.md +335 -0
- package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +239 -0
- package/bundled/locales/zh-CN/core/cd-deployment-strategies.md +135 -0
- package/bundled/locales/zh-CN/core/chaos-injection-tests.md +130 -0
- package/bundled/locales/zh-CN/core/checkin-standards.md +1 -1
- package/bundled/locales/zh-CN/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-CN/core/container-security.md +535 -0
- package/bundled/locales/zh-CN/core/context-aware-loading.md +1 -1
- package/bundled/locales/zh-CN/core/contract-testing-standards.md +191 -0
- package/bundled/locales/zh-CN/core/cost-budget-test.md +86 -0
- package/bundled/locales/zh-CN/core/cross-flow-regression.md +200 -0
- package/bundled/locales/zh-CN/core/data-migration-testing.md +217 -0
- package/bundled/locales/zh-CN/core/deployment-standards.md +328 -9
- package/bundled/locales/zh-CN/core/deprecation-standards.md +1 -1
- package/bundled/locales/zh-CN/core/developer-memory.md +2 -2
- package/bundled/locales/zh-CN/core/disaster-recovery-drill.md +87 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +1 -1
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +1 -1
- package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
- package/bundled/locales/zh-CN/core/feature-manifest-standard.md +222 -0
- package/bundled/locales/zh-CN/core/flaky-test-management.md +87 -0
- package/bundled/locales/zh-CN/core/flow-based-testing.md +284 -0
- package/bundled/locales/zh-CN/core/forward-derivation-standards.md +3 -4
- package/bundled/locales/zh-CN/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-CN/core/full-coverage-testing.md +269 -0
- package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
- package/bundled/locales/zh-CN/core/governance-layer.md +160 -0
- package/bundled/locales/zh-CN/core/guides/performance-guide.md +515 -0
- package/bundled/locales/zh-CN/core/guides/security-guide.md +494 -0
- package/bundled/locales/zh-CN/core/knowledge-graph-memory.md +128 -0
- package/bundled/locales/zh-CN/core/license-compliance.md +131 -0
- package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
- package/bundled/locales/zh-CN/core/logging-standards.md +205 -7
- package/bundled/locales/zh-CN/core/mock-boundary.md +161 -0
- package/bundled/locales/zh-CN/core/model-selection.md +28 -5
- package/bundled/locales/zh-CN/core/mutation-testing.md +106 -0
- package/bundled/locales/zh-CN/core/no-cicd-deployment.md +219 -0
- package/bundled/locales/zh-CN/core/packaging-standards.md +77 -5
- package/bundled/locales/zh-CN/core/pipeline-security-gates.md +146 -0
- package/bundled/locales/zh-CN/core/policy-as-code-testing.md +203 -0
- package/bundled/locales/zh-CN/core/privacy-standards.md +1 -1
- package/bundled/locales/zh-CN/core/project-context-memory.md +1 -1
- package/bundled/locales/zh-CN/core/prompt-regression.md +88 -0
- package/bundled/locales/zh-CN/core/property-based-testing.md +87 -0
- package/bundled/locales/zh-CN/core/release-quality-manifest.md +207 -0
- package/bundled/locales/zh-CN/core/release-readiness-gate.md +193 -0
- package/bundled/locales/zh-CN/core/replay-test.md +102 -0
- package/bundled/locales/zh-CN/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +46 -1
- package/bundled/locales/zh-CN/core/rollback-standards.md +120 -0
- package/bundled/locales/zh-CN/core/sast-advanced.md +309 -0
- package/bundled/locales/zh-CN/core/secure-op.md +328 -0
- package/bundled/locales/zh-CN/core/security-testing.md +113 -0
- package/bundled/locales/zh-CN/core/self-review-protocol.md +172 -0
- package/bundled/locales/zh-CN/core/server-ops-security.md +507 -0
- package/bundled/locales/zh-CN/core/smoke-test.md +79 -0
- package/bundled/locales/zh-CN/core/spec-driven-development.md +39 -3
- package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
- package/bundled/locales/zh-CN/core/verification-evidence.md +252 -41
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +36 -7
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +71 -53
- package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +88 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +2 -2
- package/bundled/locales/zh-CN/docs/USER-MANUAL.md +14 -14
- package/bundled/locales/zh-CN/docs/specs/system/memory-adoption-strategy.md +105 -0
- package/bundled/locales/zh-CN/docs/user/FAQ.md +132 -0
- package/bundled/locales/zh-CN/docs/user/GETTING-STARTED.md +144 -0
- package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +178 -0
- package/bundled/locales/zh-CN/docs/user/README.md +70 -0
- package/bundled/locales/zh-CN/docs/user/TROUBLESHOOTING.md +190 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +1 -1
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +3 -3
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +3 -3
- package/bundled/locales/zh-CN/methodologies/guides/sdd-guide.md +836 -0
- package/bundled/locales/zh-CN/options/changelog/auto-generated.md +166 -0
- package/bundled/locales/zh-CN/options/changelog/keep-a-changelog.md +140 -0
- package/bundled/locales/zh-CN/options/code-review/automated-review.md +214 -0
- package/bundled/locales/zh-CN/options/code-review/pair-programming.md +166 -0
- package/bundled/locales/zh-CN/options/code-review/pr-review.md +167 -0
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-CN/options/documentation/api-docs.md +191 -0
- package/bundled/locales/zh-CN/options/documentation/markdown-docs.md +150 -0
- package/bundled/locales/zh-CN/options/documentation/wiki-style.md +131 -0
- package/bundled/locales/zh-CN/options/project-structure/kotlin.md +144 -0
- package/bundled/locales/zh-CN/options/project-structure/php.md +168 -0
- package/bundled/locales/zh-CN/options/project-structure/ruby.md +156 -0
- package/bundled/locales/zh-CN/options/project-structure/rust.md +136 -0
- package/bundled/locales/zh-CN/options/project-structure/swift.md +165 -0
- package/bundled/locales/zh-CN/options/testing/contract-testing.md +237 -0
- package/bundled/locales/zh-CN/options/testing/industry-pyramid.md +200 -0
- package/bundled/locales/zh-CN/options/testing/istqb-framework.md +144 -0
- package/bundled/locales/zh-CN/options/testing/performance-testing.md +251 -0
- package/bundled/locales/zh-CN/options/testing/security-testing.md +192 -0
- package/bundled/locales/zh-CN/skills/README.md +89 -126
- package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +5 -7
- package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/agents/code-architect.md +263 -0
- package/bundled/locales/zh-CN/skills/agents/doc-writer.md +410 -0
- package/bundled/locales/zh-CN/skills/agents/reviewer.md +357 -0
- package/bundled/locales/zh-CN/skills/agents/spec-analyst.md +410 -0
- package/bundled/locales/zh-CN/skills/agents/test-specialist.md +368 -0
- package/bundled/locales/zh-CN/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +3 -4
- package/bundled/locales/zh-CN/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +1 -2
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +115 -17
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +37 -12
- package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +50 -0
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +5 -5
- package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/atdd.md +3 -3
- package/bundled/locales/zh-CN/skills/commands/bdd.md +2 -2
- package/bundled/locales/zh-CN/skills/commands/brainstorm.md +26 -17
- package/bundled/locales/zh-CN/skills/commands/{review.md → code-review.md} +4 -4
- package/bundled/locales/zh-CN/skills/commands/derive-all.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +2 -3
- package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +2 -2
- package/bundled/locales/zh-CN/skills/commands/methodology.md +4 -4
- package/bundled/locales/zh-CN/skills/commands/pr.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/tdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/dev-methodology/create-methodology.md +456 -0
- package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +6 -6
- package/bundled/locales/zh-CN/skills/dev-methodology/runtime.md +296 -0
- package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +5 -5
- package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/e2e-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +169 -142
- package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/project-discovery/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +3 -3
- package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +8 -9
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/sweep/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/testing-guide/testing-theory.md +2298 -0
- package/bundled/locales/zh-CN/skills/workflows/README.md +451 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +94 -6
- package/bundled/locales/zh-TW/CLAUDE.md +1 -1
- package/bundled/locales/zh-TW/MAINTENANCE.md +51 -4
- package/bundled/locales/zh-TW/README.md +25 -12
- package/bundled/locales/zh-TW/SECURITY.md +2 -2
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +8 -48
- package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +4 -6
- package/bundled/locales/zh-TW/core/accessibility-standards.md +1 -1
- package/bundled/locales/zh-TW/core/adversarial-test.md +226 -0
- package/bundled/locales/zh-TW/core/agent-behavior-discipline.md +187 -0
- package/bundled/locales/zh-TW/core/ai-response-navigation.md +32 -6
- package/bundled/locales/zh-TW/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/locales/zh-TW/core/api-design-standards.md +91 -9
- package/bundled/locales/zh-TW/core/audit-trail.md +110 -0
- package/bundled/locales/zh-TW/core/behavior-snapshot.md +335 -0
- package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +1 -0
- package/bundled/locales/zh-TW/core/cd-deployment-strategies.md +135 -0
- package/bundled/locales/zh-TW/core/chaos-injection-tests.md +130 -0
- package/bundled/locales/zh-TW/core/checkin-standards.md +1 -1
- package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-TW/core/container-image-standards.md +93 -0
- package/bundled/locales/zh-TW/core/container-security.md +535 -0
- package/bundled/locales/zh-TW/core/cost-budget-test.md +86 -0
- package/bundled/locales/zh-TW/core/cross-flow-regression.md +1 -0
- package/bundled/locales/zh-TW/core/data-contract.md +101 -0
- package/bundled/locales/zh-TW/core/data-migration-testing.md +217 -0
- package/bundled/locales/zh-TW/core/data-pipeline.md +105 -0
- package/bundled/locales/zh-TW/core/deployment-standards.md +363 -25
- package/bundled/locales/zh-TW/core/deprecation-standards.md +17 -4
- package/bundled/locales/zh-TW/core/developer-memory.md +2 -2
- package/bundled/locales/zh-TW/core/disaster-recovery-drill.md +87 -0
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +1 -1
- package/bundled/locales/zh-TW/core/error-code-standards.md +2 -2
- package/bundled/locales/zh-TW/core/feature-manifest-standard.md +222 -0
- package/bundled/locales/zh-TW/core/flaky-test-management.md +87 -0
- package/bundled/locales/zh-TW/core/flow-based-testing.md +284 -0
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +3 -4
- package/bundled/locales/zh-TW/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-TW/core/full-coverage-testing.md +250 -0
- package/bundled/locales/zh-TW/core/git-worktree.md +1 -1
- package/bundled/locales/zh-TW/core/guides/performance-guide.md +515 -0
- package/bundled/locales/zh-TW/core/guides/security-guide.md +494 -0
- package/bundled/locales/zh-TW/core/iac-design-principles.md +90 -0
- package/bundled/locales/zh-TW/core/incident-response.md +111 -0
- package/bundled/locales/zh-TW/core/license-compliance.md +131 -0
- package/bundled/locales/zh-TW/core/llm-output-validation.md +192 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +208 -4
- package/bundled/locales/zh-TW/core/mock-boundary.md +161 -0
- package/bundled/locales/zh-TW/core/model-provenance.md +173 -0
- package/bundled/locales/zh-TW/core/model-selection.md +28 -5
- package/bundled/locales/zh-TW/core/mutation-testing.md +106 -0
- package/bundled/locales/zh-TW/core/no-cicd-deployment.md +219 -0
- package/bundled/locales/zh-TW/core/packaging-standards.md +77 -5
- package/bundled/locales/zh-TW/core/performance-standards.md +84 -5
- package/bundled/locales/zh-TW/core/pii-classification.md +102 -0
- package/bundled/locales/zh-TW/core/pipeline-security-gates.md +146 -0
- package/bundled/locales/zh-TW/core/policy-as-code-testing.md +203 -0
- package/bundled/locales/zh-TW/core/prd-standards.md +88 -0
- package/bundled/locales/zh-TW/core/privacy-standards.md +1 -1
- package/bundled/locales/zh-TW/core/product-metrics-standards.md +96 -0
- package/bundled/locales/zh-TW/core/project-context-memory.md +1 -1
- package/bundled/locales/zh-TW/core/prompt-regression.md +88 -0
- package/bundled/locales/zh-TW/core/property-based-testing.md +87 -0
- package/bundled/locales/zh-TW/core/refactoring-standards.md +43 -6
- package/bundled/locales/zh-TW/core/release-quality-manifest.md +207 -0
- package/bundled/locales/zh-TW/core/replay-test.md +102 -0
- package/bundled/locales/zh-TW/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-TW/core/resource-cost-boundary.md +175 -0
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +64 -5
- package/bundled/locales/zh-TW/core/rollback-standards.md +120 -0
- package/bundled/locales/zh-TW/core/runbook.md +110 -0
- package/bundled/locales/zh-TW/core/sast-advanced.md +309 -0
- package/bundled/locales/zh-TW/core/schema-evolution.md +98 -0
- package/bundled/locales/zh-TW/core/secret-management-standards.md +101 -0
- package/bundled/locales/zh-TW/core/secure-op.md +328 -0
- package/bundled/locales/zh-TW/core/security-testing.md +113 -0
- package/bundled/locales/zh-TW/core/self-review-protocol.md +18 -13
- package/bundled/locales/zh-TW/core/server-ops-security.md +507 -0
- package/bundled/locales/zh-TW/core/slo-sli.md +108 -0
- package/bundled/locales/zh-TW/core/smoke-test.md +79 -0
- package/bundled/locales/zh-TW/core/spec-driven-development.md +19 -11
- package/bundled/locales/zh-TW/core/supply-chain-attestation.md +131 -0
- package/bundled/locales/zh-TW/core/user-journey-testing.md +111 -0
- package/bundled/locales/zh-TW/core/user-story-mapping.md +94 -0
- package/bundled/locales/zh-TW/core/verification-evidence.md +260 -31
- package/bundled/locales/zh-TW/core/verification-oracle.md +159 -0
- package/bundled/locales/zh-TW/core/versioning.md +112 -112
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +36 -7
- package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +71 -53
- package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +88 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +2 -2
- package/bundled/locales/zh-TW/docs/USER-MANUAL.md +14 -14
- package/bundled/locales/zh-TW/docs/specs/system/memory-adoption-strategy.md +105 -0
- package/bundled/locales/zh-TW/docs/user/FAQ.md +132 -0
- package/bundled/locales/zh-TW/docs/user/GETTING-STARTED.md +144 -0
- package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +178 -0
- package/bundled/locales/zh-TW/docs/user/README.md +70 -0
- package/bundled/locales/zh-TW/docs/user/TROUBLESHOOTING.md +190 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
- package/bundled/locales/zh-TW/integrations/github-copilot/README.md +1 -1
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +3 -3
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +3 -3
- package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +523 -26
- package/bundled/locales/zh-TW/options/changelog/auto-generated.md +166 -0
- package/bundled/locales/zh-TW/options/changelog/keep-a-changelog.md +140 -0
- package/bundled/locales/zh-TW/options/code-review/automated-review.md +214 -0
- package/bundled/locales/zh-TW/options/code-review/pair-programming.md +166 -0
- package/bundled/locales/zh-TW/options/code-review/pr-review.md +167 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-TW/options/documentation/api-docs.md +191 -0
- package/bundled/locales/zh-TW/options/documentation/markdown-docs.md +150 -0
- package/bundled/locales/zh-TW/options/documentation/wiki-style.md +131 -0
- package/bundled/locales/zh-TW/options/project-structure/kotlin.md +144 -0
- package/bundled/locales/zh-TW/options/project-structure/php.md +168 -0
- package/bundled/locales/zh-TW/options/project-structure/ruby.md +156 -0
- package/bundled/locales/zh-TW/options/project-structure/rust.md +136 -0
- package/bundled/locales/zh-TW/options/project-structure/swift.md +165 -0
- package/bundled/locales/zh-TW/options/testing/contract-testing.md +237 -0
- package/bundled/locales/zh-TW/options/testing/industry-pyramid.md +200 -0
- package/bundled/locales/zh-TW/options/testing/istqb-framework.md +144 -0
- package/bundled/locales/zh-TW/options/testing/performance-testing.md +251 -0
- package/bundled/locales/zh-TW/options/testing/security-testing.md +192 -0
- package/bundled/locales/zh-TW/skills/README.md +91 -128
- package/bundled/locales/zh-TW/skills/ac-coverage/SKILL.md +4 -6
- package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/agents/code-architect.md +263 -0
- package/bundled/locales/zh-TW/skills/agents/doc-writer.md +410 -0
- package/bundled/locales/zh-TW/skills/agents/reviewer.md +357 -0
- package/bundled/locales/zh-TW/skills/agents/spec-analyst.md +410 -0
- package/bundled/locales/zh-TW/skills/agents/test-specialist.md +368 -0
- package/bundled/locales/zh-TW/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +3 -4
- package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +1 -2
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +116 -18
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +38 -11
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +50 -0
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +7 -5
- package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/atdd.md +3 -3
- package/bundled/locales/zh-TW/skills/commands/bdd.md +2 -2
- package/bundled/locales/zh-TW/skills/commands/brainstorm.md +26 -17
- package/bundled/locales/zh-TW/skills/commands/{review.md → code-review.md} +5 -5
- package/bundled/locales/zh-TW/skills/commands/derive-all.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +2 -3
- package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +2 -2
- package/bundled/locales/zh-TW/skills/commands/methodology.md +4 -4
- package/bundled/locales/zh-TW/skills/commands/pr.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/tdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/dev-methodology/create-methodology.md +456 -0
- package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +5 -5
- package/bundled/locales/zh-TW/skills/dev-methodology/runtime.md +296 -0
- package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +5 -5
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/e2e-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +52 -27
- package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/project-discovery/guide.md +2 -2
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +7 -8
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/sweep/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/testing-guide/testing-theory.md +2298 -0
- package/bundled/locales/zh-TW/skills/workflows/README.md +451 -0
- package/bundled/skills/README.md +1 -1
- package/bundled/skills/ac-coverage/SKILL.md +17 -7
- package/bundled/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/skills/agents/code-architect.md +1 -1
- package/bundled/skills/agents/doc-writer.md +1 -1
- package/bundled/skills/agents/reviewer.md +2 -2
- package/bundled/skills/agents/spec-analyst.md +1 -1
- package/bundled/skills/agents/test-specialist.md +1 -1
- package/bundled/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/skills/atdd-assistant/SKILL.md +7 -0
- package/bundled/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/skills/atdd-assistant/atdd-workflow.md +6 -8
- package/bundled/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/skills/bdd-assistant/SKILL.md +7 -0
- package/bundled/skills/bdd-assistant/guide.md +1 -2
- package/bundled/skills/brainstorm-assistant/SKILL.md +139 -15
- package/bundled/skills/brainstorm-assistant/guide.md +39 -8
- package/bundled/skills/checkin-assistant/SKILL.md +8 -1
- package/bundled/skills/ci-cd-assistant/SKILL.md +57 -0
- package/bundled/skills/code-review-assistant/SKILL.md +15 -8
- package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +2 -2
- package/bundled/skills/commands/COMMAND-INDEX.json +3 -3
- package/bundled/skills/commands/README.md +2 -2
- package/bundled/skills/commands/ac-coverage.md +1 -1
- package/bundled/skills/commands/atdd.md +2 -2
- package/bundled/skills/commands/bdd.md +2 -2
- package/bundled/skills/commands/brainstorm.md +25 -14
- package/bundled/skills/commands/{review.md → code-review.md} +6 -6
- package/bundled/skills/commands/derive-all.md +1 -1
- package/bundled/skills/commands/derive-atdd.md +1 -1
- package/bundled/skills/commands/derive-bdd.md +2 -3
- package/bundled/skills/commands/derive-tdd.md +1 -1
- package/bundled/skills/commands/derive.md +1 -1
- package/bundled/skills/commands/dev-workflow.md +1 -1
- package/bundled/skills/commands/journey-test.md +45 -0
- package/bundled/skills/commands/methodology.md +4 -4
- package/bundled/skills/commands/pr.md +1 -1
- package/bundled/skills/commands/skill-builder.md +42 -0
- package/bundled/skills/commands/tdd.md +1 -1
- package/bundled/skills/dev-methodology/create-methodology.md +1 -1
- package/bundled/skills/dev-methodology/guide.md +1 -1
- package/bundled/skills/dev-methodology/runtime.md +1 -1
- package/bundled/skills/dev-workflow-guide/SKILL.md +3 -3
- package/bundled/skills/dev-workflow-guide/workflow-phases.md +3 -3
- package/bundled/skills/docs-generator/SKILL.md +3 -3
- package/bundled/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/skills/logging-guide/SKILL.md +38 -2
- package/bundled/skills/migration-assistant/SKILL.md +226 -0
- package/bundled/skills/observability-assistant/SKILL.md +74 -0
- package/bundled/skills/pr-automation-assistant/SKILL.md +5 -1
- package/bundled/skills/project-discovery/guide.md +2 -2
- package/bundled/skills/push/SKILL.md +1 -1
- package/bundled/skills/release-standards/SKILL.md +19 -5
- package/bundled/skills/security-assistant/SKILL.md +1 -1
- package/bundled/skills/skill-builder/SKILL.md +1 -1
- package/bundled/skills/spec-derivation/guide.md +3 -4
- package/bundled/skills/spec-driven-dev/SKILL.md +13 -2
- package/bundled/skills/sweep/SKILL.md +1 -1
- package/bundled/skills/tdd-assistant/SKILL.md +8 -1
- package/bundled/skills/testing-guide/SKILL.md +1 -1
- package/bundled/skills/testing-guide/testing-theory.md +1 -1
- package/bundled/skills/workflows/README.md +2 -2
- package/package.json +4 -4
- package/src/commands/audit.js +30 -9
- package/src/commands/config.js +33 -2
- package/src/commands/hitl.js +14 -1
- package/src/commands/init.js +168 -75
- package/src/commands/quickstart.js +1 -2
- package/src/commands/release.js +51 -6
- package/src/commands/run-intent.js +9 -0
- package/src/commands/spec-split.js +27 -2
- package/src/commands/update.js +22 -6
- package/src/config/ai-agent-paths.js +3 -1
- package/src/i18n/messages.js +3 -102
- package/src/missions/MissionManager.js +44 -12
- package/src/utils/build-manifest.js +35 -3
- package/src/utils/friction-detector.js +71 -22
- package/src/utils/health-checker.js +29 -2
- package/src/utils/transaction.js +111 -0
- package/src/utils/version-promote.js +16 -0
- package/standards-registry.json +61 -149
- package/bundled/ai/standards/agent-communication-protocol.ai.yaml +0 -42
- package/bundled/ai/standards/agent-dispatch.ai.yaml +0 -42
- package/bundled/ai/standards/branch-completion.ai.yaml +0 -44
- package/bundled/ai/standards/change-batching-standards.ai.yaml +0 -44
- package/bundled/ai/standards/execution-history.ai.yaml +0 -42
- package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +0 -42
- package/bundled/ai/standards/workflow-enforcement.ai.yaml +0 -44
- package/bundled/ai/standards/workflow-state-protocol.ai.yaml +0 -43
- package/src/commands/flow.js +0 -260
- package/src/commands/start.js +0 -372
- package/src/commands/sweep.js +0 -151
- package/src/commands/workflow.js +0 -681
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Container Image Build and Security Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/container-image-standards.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-065 (cross-project/specs/XSPEC-065-uds-infrastructure-pack.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This standard defines security and compliance requirements for container image
|
|
12
|
+
build pipelines. It covers five Dockerfile authoring principles (multi-stage
|
|
13
|
+
builds, non-root execution, minimal base images, secret-free build args, SBOM
|
|
14
|
+
metadata), SBOM generation and embedding using `syft` or `trivy`, and image
|
|
15
|
+
scanning policies that block Critical/High CVEs.
|
|
16
|
+
|
|
17
|
+
It is part of the **IaC pack** (XSPEC-065) and complements the existing
|
|
18
|
+
`containerization-standards` (layer ordering and tagging) by focusing on
|
|
19
|
+
supply-chain security and compliance attestation.
|
|
20
|
+
|
|
21
|
+
> **Scope.** This standard defines *what* a production image must guarantee
|
|
22
|
+
> (rootless, minimal, scanned, SBOM-attested) and the *severity policy* for CVEs.
|
|
23
|
+
> The concrete SBOM tool (`syft`/`trivy`), scanner, and registry are adoption
|
|
24
|
+
> choices, not part of this standard.
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
| ID | Rule | Level |
|
|
29
|
+
|----|------|-------|
|
|
30
|
+
| REQ-001 | Dockerfile five principles (multi-stage, non-root, minimal base, no secrets, SBOM label) | MUST |
|
|
31
|
+
| REQ-002 | SBOM embedding (generated in CI, embedded or attested, retained ≥12 months) | MUST |
|
|
32
|
+
| REQ-003 | Image scanning (Critical/High block; Medium ticketed; auto base updates) | MUST |
|
|
33
|
+
|
|
34
|
+
### REQ-001 — Dockerfile Five Principles
|
|
35
|
+
|
|
36
|
+
Every production Dockerfile MUST follow five principles: (1) **Multi-stage build**
|
|
37
|
+
— separate builder and runtime stages to minimize final image size and attack
|
|
38
|
+
surface; (2) **Non-root final user** — the runtime stage MUST set a non-root
|
|
39
|
+
`USER` (UID ≥ 1000); running as root in production containers is prohibited;
|
|
40
|
+
(3) **Distroless or Alpine base** — use distroless (`gcr.io/distroless`) or
|
|
41
|
+
Alpine-based images as the final stage to minimize CVE exposure; avoid full
|
|
42
|
+
Debian/Ubuntu unless justified and documented; (4) **No hardcoded secrets** —
|
|
43
|
+
build ARGs and ENV variables MUST NOT contain secrets; secrets are injected at
|
|
44
|
+
runtime via volume mounts or secret managers (see `secret-management-standards`);
|
|
45
|
+
(5) **SBOM metadata label** — the final image MUST include an OCI label
|
|
46
|
+
`org.opencontainers.image.source` and a build-time label
|
|
47
|
+
`org.opencontainers.image.revision` containing the git commit SHA.
|
|
48
|
+
|
|
49
|
+
### REQ-002 — SBOM Embedding
|
|
50
|
+
|
|
51
|
+
Every production container image MUST have a Software Bill of Materials (SBOM)
|
|
52
|
+
generated during the CI build step, using `syft` or `trivy` in CycloneDX or SPDX
|
|
53
|
+
format. The SBOM MUST be either (a) embedded as an OCI image annotation
|
|
54
|
+
(preferred for OCI-compliant registries), or (b) attached as a `cosign`
|
|
55
|
+
attestation to the image digest. SBOM artifacts MUST be stored alongside the
|
|
56
|
+
image in the container registry and retained for at least 12 months for
|
|
57
|
+
compliance audits.
|
|
58
|
+
|
|
59
|
+
### REQ-003 — Image Scanning
|
|
60
|
+
|
|
61
|
+
All container images MUST be scanned for known CVEs before being pushed to a
|
|
62
|
+
production registry, using `trivy`, `grype`, or equivalent integrated into the CI
|
|
63
|
+
pipeline. Severity policy: **Critical and High** CVEs MUST block the build and
|
|
64
|
+
prevent promotion to production; **Medium** CVEs MUST generate a warning and
|
|
65
|
+
create a tracked ticket; **Low and Negligible** CVEs are informational only.
|
|
66
|
+
Base image updates MUST be triggered automatically when upstream images receive
|
|
67
|
+
CVE patches (e.g., via Dependabot or Renovate for Dockerfile base image pins).
|
|
68
|
+
|
|
69
|
+
## Anti-Patterns
|
|
70
|
+
|
|
71
|
+
- Using the `latest` tag for base images in production Dockerfiles (non-reproducible builds).
|
|
72
|
+
- Running container processes as root (UID 0) in the final runtime stage.
|
|
73
|
+
- Embedding secrets in Docker build ARGs or ENV variables that persist in image layers.
|
|
74
|
+
- Skipping SBOM generation to save CI time, losing supply-chain traceability.
|
|
75
|
+
- Pushing images to production without CVE scanning results.
|
|
76
|
+
|
|
77
|
+
## Integration with Existing Standards
|
|
78
|
+
|
|
79
|
+
- **`containerization-standards`** — covers layer ordering and tagging; this
|
|
80
|
+
standard adds the supply-chain-security and attestation layer on top.
|
|
81
|
+
- **`secret-management-standards`** — runtime secret injection replaces any
|
|
82
|
+
build-time secret in ARGs/ENV (REQ-001 principle 4).
|
|
83
|
+
- **`supply-chain-security-standards`** — the SBOM and CVE-scanning policy here is
|
|
84
|
+
the container-image facet of the broader supply-chain posture.
|
|
85
|
+
- **`iac-design-principles`** — image build/promotion is itself versioned,
|
|
86
|
+
reproducible infrastructure.
|
|
87
|
+
|
|
88
|
+
## Related Specs
|
|
89
|
+
|
|
90
|
+
- XSPEC-065 — UDS infrastructure (IaC) pack (this standard's source)
|
|
91
|
+
- DEC-043 — UDS coverage completeness roadmap (Wave 4 scope)
|
|
92
|
+
|
|
93
|
+
## Changelog
|
|
94
|
+
|
|
95
|
+
| Version | Date | Changes |
|
|
96
|
+
|---------|------|---------|
|
|
97
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~003: Dockerfile five principles, SBOM embedding, image scanning (XSPEC-065) |
|
|
@@ -46,7 +46,7 @@ These standards are fundamental to every AI interaction and must always be loade
|
|
|
46
46
|
|--------|-----------|---------------------|
|
|
47
47
|
| `testing` | testing, unit-testing, integration-testing, test-completeness-dimensions, tdd, bdd, atdd | Writing tests, test file edits, "test coverage" discussion |
|
|
48
48
|
| `specification` | spec-driven-development, forward-derivation, reverse-engineering, requirement-engineering | `/sdd`, `/spec` commands, spec file edits |
|
|
49
|
-
| `quality` | code-review, refactoring, security, performance, accessibility | `/review` command, PR review, "refactor" discussion |
|
|
49
|
+
| `quality` | code-review, refactoring, security, performance, accessibility | `/code-review` command, PR review, "refactor" discussion |
|
|
50
50
|
| `documentation` | documentation-structure, documentation-writing, ai-instruction, changelog | Writing docs, README/CHANGELOG edits |
|
|
51
51
|
| `workflow` | git-workflow, github-flow, squash-merge, versioning, deployment | Branch operations, release preparation, merging |
|
|
52
52
|
| `architecture` | ai-friendly-architecture, project-structure, error-codes, logging | Architecture decisions, project setup |
|
|
@@ -62,7 +62,7 @@ Session Start
|
|
|
62
62
|
├─ Load all always-on standards
|
|
63
63
|
├─ Scan user request for trigger keywords
|
|
64
64
|
├─ Match file patterns if user is editing files
|
|
65
|
-
├─ Detect slash commands (/sdd, /review, etc.)
|
|
65
|
+
├─ Detect slash commands (/sdd, /code-review, etc.)
|
|
66
66
|
└─ Load matching on-demand standards
|
|
67
67
|
```
|
|
68
68
|
|
|
@@ -65,7 +65,7 @@ describe("PipelineBudgetConfig semantics", () => {
|
|
|
65
65
|
## Related Standards
|
|
66
66
|
|
|
67
67
|
- [Mutation Testing Standards](mutation-testing.md) — constants without test coverage survive mutations
|
|
68
|
-
- [Testing Standards](testing.md) — overall test pyramid
|
|
68
|
+
- [Testing Standards](testing-standards.md) — overall test pyramid
|
|
69
69
|
- [LLM Output Validation](llm-output-validation.md) — output-layer budget constraints
|
|
70
70
|
|
|
71
71
|
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/cross-flow-regression.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.0.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.0.1
|
|
6
|
+
**Last Updated**: 2026-06-18
|
|
7
7
|
**Applicability**: All software projects with multiple user flows or business processes
|
|
8
8
|
**Scope**: universal
|
|
9
|
+
**Owning Spec**: XSPEC-294 (complements flow-based-testing; non-overlapping)
|
|
9
10
|
**Industry Standards**: ISTQB Advanced Test Analyst (Regression Test Strategy)
|
|
10
11
|
**References**: `core/flow-based-testing.md`, `core/testing-standards.md`
|
|
11
12
|
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Data Contract Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/data-contract.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-068 (cross-project/specs/XSPEC-068-uds-data-engineering-pack.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This standard defines how **data contracts** are established, versioned, and
|
|
12
|
+
enforced between data producers and consumers. A data contract is a formal
|
|
13
|
+
agreement specifying the schema, quality guarantees, SLAs, and ownership of a
|
|
14
|
+
dataset or stream. It covers the contract specification format, freshness and
|
|
15
|
+
quality SLOs, breaking-change governance, consumer registration/notification, and
|
|
16
|
+
automated contract testing. It reduces pipeline failures caused by undiscovered
|
|
17
|
+
upstream changes.
|
|
18
|
+
|
|
19
|
+
It is part of the **data-engineering pack** (XSPEC-068) and is the **anchor
|
|
20
|
+
standard** for the existing `contract-test-assistant` skill (data-side contracts).
|
|
21
|
+
|
|
22
|
+
> **Scope.** This standard defines the *contract artifact* (format, SLOs,
|
|
23
|
+
> governance, registration). The concrete data-quality engine (Great
|
|
24
|
+
> Expectations) and catalog (DataHub/Amundsen) are adoption choices.
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
| ID | Rule | Level |
|
|
29
|
+
|----|------|-------|
|
|
30
|
+
| REQ-001 | Data-contract specification format | MUST |
|
|
31
|
+
| REQ-002 | Data-quality SLOs | MUST |
|
|
32
|
+
| REQ-003 | Contract versioning and breaking-change governance | MUST |
|
|
33
|
+
| REQ-004 | Automated contract testing | MUST |
|
|
34
|
+
| REQ-005 | Consumer registration and notification | MUST |
|
|
35
|
+
| REQ-006 | Contract discoverability | SHOULD |
|
|
36
|
+
|
|
37
|
+
### REQ-001 — Data Contract Specification Format
|
|
38
|
+
|
|
39
|
+
Every shared dataset or stream MUST have a data contract in a machine-readable
|
|
40
|
+
YAML file (`data-contract.yaml`) committed alongside the producer code. The
|
|
41
|
+
contract MUST include: `contract_id`, `version`, `owner` (team + contact),
|
|
42
|
+
description, `schema` (field names, types, nullability), `data_quality` SLOs
|
|
43
|
+
(completeness, freshness, uniqueness), `sla` (delivery time), and the consumer
|
|
44
|
+
list.
|
|
45
|
+
|
|
46
|
+
### REQ-002 — Data Quality SLOs
|
|
47
|
+
|
|
48
|
+
Every contract MUST define explicit data-quality SLOs across these dimensions:
|
|
49
|
+
**completeness** (% non-null for required fields ≥ threshold), **freshness** (data
|
|
50
|
+
updated within N minutes/hours of source), **uniqueness** (% distinct for key
|
|
51
|
+
fields), and **validity** (% conforming to defined format/range). Quality SLO
|
|
52
|
+
violations MUST trigger alerts to both producer and registered consumers.
|
|
53
|
+
|
|
54
|
+
### REQ-003 — Contract Versioning and Breaking-Change Governance
|
|
55
|
+
|
|
56
|
+
Contracts MUST use semantic versioning. **PATCH** (backward-compatible additions,
|
|
57
|
+
docs) requires only producer approval. **MINOR** (new optional fields, relaxed
|
|
58
|
+
constraints) requires consumer notification with 7-day notice. **MAJOR** (field
|
|
59
|
+
removal, type/semantic changes) requires consumer approval and MUST NOT deploy
|
|
60
|
+
until all registered consumers confirm readiness.
|
|
61
|
+
|
|
62
|
+
### REQ-004 — Automated Contract Testing
|
|
63
|
+
|
|
64
|
+
Contract compliance MUST be verified automatically. Producers MUST run contract
|
|
65
|
+
tests on every pipeline execution, validating output against the declared schema
|
|
66
|
+
and quality SLOs: schema conformance (no unexpected nulls, correct types),
|
|
67
|
+
freshness within the SLO window, uniqueness of key fields, and row count within
|
|
68
|
+
range. Contract test failures MUST halt the pipeline and page the data owner.
|
|
69
|
+
|
|
70
|
+
### REQ-005 — Consumer Registration and Notification
|
|
71
|
+
|
|
72
|
+
Teams consuming a shared dataset MUST register as consumers in the producer's
|
|
73
|
+
`data-contract.yaml`, including team name, contact, use-case description, and
|
|
74
|
+
fields consumed. Registered consumers MUST receive automated notifications when:
|
|
75
|
+
the contract is modified, quality SLOs are breached, the dataset is deprecated, or
|
|
76
|
+
planned maintenance affects availability.
|
|
77
|
+
|
|
78
|
+
### REQ-006 — Contract Discoverability
|
|
79
|
+
|
|
80
|
+
All data contracts SHOULD be discoverable through a central data catalog providing:
|
|
81
|
+
a searchable index by team/domain, current health status (SLO compliance), schema
|
|
82
|
+
browsing, lineage visualization (which pipelines produce/consume each dataset), and
|
|
83
|
+
a self-service consumer-registration workflow.
|
|
84
|
+
|
|
85
|
+
## Integration with Existing Standards
|
|
86
|
+
|
|
87
|
+
- **`contract-test-assistant` (skill)** — this standard is its data-side anchor;
|
|
88
|
+
the skill's data-contract guidance references these requirements.
|
|
89
|
+
- **`data-pipeline`** — pipelines run contract tests (REQ-004) on every execution.
|
|
90
|
+
- **`schema-evolution`** — MAJOR contract versions correspond to breaking schema
|
|
91
|
+
changes governed by expand-contract.
|
|
92
|
+
- **`audit-trail` / `pii-classification`** — contract retention and field-level
|
|
93
|
+
sensitivity align with the compliance pack (XSPEC-066).
|
|
94
|
+
|
|
95
|
+
## Related Specs
|
|
96
|
+
|
|
97
|
+
- XSPEC-068 — UDS data-engineering pack (this standard's source)
|
|
98
|
+
- XSPEC-066 — Compliance & audit pack (retention, PII tiering)
|
|
99
|
+
|
|
100
|
+
## Changelog
|
|
101
|
+
|
|
102
|
+
| Version | Date | Changes |
|
|
103
|
+
|---------|------|---------|
|
|
104
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~006: spec format, quality SLOs, versioning/governance, automated testing, consumer registration, discoverability (XSPEC-068) |
|
|
@@ -13,6 +13,8 @@ Database schema migrations are high-risk operations: they transform persistent d
|
|
|
13
13
|
| REQ-DMT-003 | Applying the same migration twice must not fail | CI retries can trigger double-apply |
|
|
14
14
|
| REQ-DMT-004 | Migrations that alter data must include a data preservation test | Schema correctness ≠ data correctness |
|
|
15
15
|
| REQ-DMT-005 | Each test must use an isolated database | Shared state causes non-deterministic failures |
|
|
16
|
+
| REQ-DMT-006 | Migrations that cross encodings or DB engines must include a byte-level encoding conversion test | "Looks equal" hides codepoint/normalization/collation corruption |
|
|
17
|
+
| REQ-DMT-007 | Migrations of business-critical data must include an aggregate invariant test | Row-by-row sampling misses distribution-level drift |
|
|
16
18
|
|
|
17
19
|
## Test Structure
|
|
18
20
|
|
|
@@ -78,6 +80,91 @@ it('preserves existing user rows', async () => {
|
|
|
78
80
|
})
|
|
79
81
|
```
|
|
80
82
|
|
|
83
|
+
### Encoding Conversion Test
|
|
84
|
+
|
|
85
|
+
Schema-level and row-level tests both pass when a string "looks equal" on screen — yet the underlying bytes can be silently corrupted by a cross-encoding or cross-engine move (UTF-8 → UTF-16/`NVARCHAR`, `VARCHAR` → `NVARCHAR`, an implicit collation change). A migration that crosses encodings or DB engines MUST assert equality at the **byte / codepoint / normalization** level, not the display level.
|
|
86
|
+
|
|
87
|
+
What to assert:
|
|
88
|
+
|
|
89
|
+
- **Byte / codepoint identity** — the migrated value has the same Unicode codepoints (and, where the target stores UTF-16, the expected unit count), not just the same rendered glyphs.
|
|
90
|
+
- **Normalization form** — NFC vs NFD: `"é"` (U+00E9) and `"e"+◌́` (U+0065 U+0301) render identically but are different byte sequences; assert the form is preserved (or deliberately normalized).
|
|
91
|
+
- **Multi-byte boundaries** — values truncated to a *character* limit on the source must not be truncated to a *byte* limit on the target (a 4-byte emoji must survive a `NVARCHAR(n)` column).
|
|
92
|
+
- **CJK / emoji / combining marks** — exercise supplementary-plane codepoints (emoji, rare CJK) and combining sequences explicitly; these are where surrogate-pair and collation-folding bugs hide.
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
it('preserves bytes across UTF-8 -> target encoding (no display-only equality)', async () => {
|
|
96
|
+
// Mix BMP CJK, a supplementary-plane emoji, and an NFD combining sequence
|
|
97
|
+
const samples = [
|
|
98
|
+
'繁體中文', // CJK (BMP)
|
|
99
|
+
'😀 family 👨👩👧', // emoji incl. ZWJ sequence (supplementary plane)
|
|
100
|
+
'é' // NFD: 'e' + combining acute (renders like 'é')
|
|
101
|
+
]
|
|
102
|
+
samples.forEach((s, i) =>
|
|
103
|
+
db.prepare('INSERT INTO notes (id, body) VALUES (?, ?)').run(i, s))
|
|
104
|
+
|
|
105
|
+
await migrate.up(db)
|
|
106
|
+
|
|
107
|
+
samples.forEach((expected, i) => {
|
|
108
|
+
const row = db.prepare('SELECT body FROM notes WHERE id = ?').get(i) as { body: string }
|
|
109
|
+
// ❌ Anti-pattern: expect(row.body).toBe(expected) // passes even on partial corruption if both render the same
|
|
110
|
+
// ✅ Assert at the byte and codepoint level:
|
|
111
|
+
expect(Buffer.from(row.body, 'utf8')).toEqual(Buffer.from(expected, 'utf8'))
|
|
112
|
+
expect([...row.body]).toEqual([...expected]) // codepoint-by-codepoint
|
|
113
|
+
expect(row.body.normalize('NFC')).toBe(expected.normalize('NFC')) // explicit normalization intent
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
> **Anti-pattern**: asserting only `expect(actual).toBe(expected)` on the decoded string. Two different byte/normalization sequences can decode to glyphs that *look* identical, so a display-level assertion passes while the stored bytes (and any downstream `LIKE`/unique-key/collation behavior) are corrupted.
|
|
119
|
+
|
|
120
|
+
### Aggregate Invariant Test
|
|
121
|
+
|
|
122
|
+
Row sampling proves individual rows survived; it does **not** prove the *distribution* survived. Seed a representative dataset, capture aggregate invariants over business-critical columns **before** the migration, and assert they are unchanged **after**. This is the same oracle used for post-cutover production reconciliation (aggregate equality across the cutover boundary), run here at migration-test time.
|
|
123
|
+
|
|
124
|
+
Invariants to capture: `COUNT(*)`, `SUM(money_column)`, `COUNT(DISTINCT key)`, and a content `checksum` (e.g. summed hash) grouped by a business dimension such as status or period.
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
it('preserves aggregate invariants over financial data', async () => {
|
|
128
|
+
seedRepresentativeOrders(db) // statuses, amounts, currencies
|
|
129
|
+
|
|
130
|
+
const invariantQuery = `
|
|
131
|
+
SELECT status,
|
|
132
|
+
COUNT(*) AS cnt,
|
|
133
|
+
SUM(amount_cents) AS total_cents,
|
|
134
|
+
COUNT(DISTINCT customer_id) AS distinct_customers
|
|
135
|
+
FROM orders
|
|
136
|
+
GROUP BY status
|
|
137
|
+
ORDER BY status`
|
|
138
|
+
const before = db.prepare(invariantQuery).all()
|
|
139
|
+
|
|
140
|
+
await migrate.up(db)
|
|
141
|
+
|
|
142
|
+
const after = db.prepare(invariantQuery).all()
|
|
143
|
+
// Distribution must be identical — not just "some rows still exist"
|
|
144
|
+
expect(after).toEqual(before)
|
|
145
|
+
})
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
> Because aggregates collapse the whole table into a few numbers, a single mismatched `SUM`/`COUNT` flags drift that row-by-row sampling — which only inspects the rows you happened to pick — would miss entirely.
|
|
149
|
+
|
|
150
|
+
## Cross-Dialect Migration: SQLite → SQL Server Risk Table
|
|
151
|
+
|
|
152
|
+
When a migration also changes the database engine (not just the schema), the source and target dialects disagree on type semantics, comparison, and ordering. Each disagreement below is a place where data can silently change meaning, and is a derive-list input for the encoding and aggregate tests above (and for the non-HTTP implicit-rule scan in reverse-engineering-standards.md).
|
|
153
|
+
|
|
154
|
+
| Risk point | SQLite | SQL Server | What the migration must verify |
|
|
155
|
+
|---|---|---|---|
|
|
156
|
+
| **Type system** | Dynamic typing (per-value type affinity) | Static / strong typing | Declare a type per column; scan for out-of-range / mixed-type values that SQLite tolerated |
|
|
157
|
+
| **Boolean** | Usually stored as `0/1` integer | `BIT` | `0/1` ↔ `BIT` mapping; handling of NULL booleans |
|
|
158
|
+
| **Date / time** | Often stored as `TEXT` / `REAL` / `INTEGER` | `datetime2` / `datetimeoffset` | Format parse, time-zone handling, precision truncation |
|
|
159
|
+
| **Auto-increment PK** | `AUTOINCREMENT` | `IDENTITY` | Continuity of existing ids; correct seed/reseed value |
|
|
160
|
+
| **Case / collation** | `LIKE` case-insensitive by default; `NOCASE` | Determined by column collation | Align collation; check for unique-key folding collisions |
|
|
161
|
+
| **NULL ordering** | NULLs sort first (smallest) | Depends on configuration | `ORDER BY` result-order invariant across engines |
|
|
162
|
+
| **Float precision** | `REAL` | `float` / `decimal` | Move money/exact values to `decimal` to avoid rounding error |
|
|
163
|
+
| **String concat** | `\|\|` | `+` / `CONCAT` | Rewrite queries; reconcile NULL-concatenation semantics |
|
|
164
|
+
| **Pagination** | `LIMIT` / `OFFSET` | `OFFSET .. FETCH` / `TOP` | Rewrite + guarantee a stable sort key for deterministic pages |
|
|
165
|
+
|
|
166
|
+
> Each "query rewrite / semantics differs" cell may also hide an **implicit business rule** — feed this table into the Implicit Rule Scan stage of reverse engineering.
|
|
167
|
+
|
|
81
168
|
## Tooling
|
|
82
169
|
|
|
83
170
|
### SQLite / Drizzle ORM
|
|
@@ -102,12 +189,15 @@ Use `testcontainers` to spin up a fresh PostgreSQL container per test suite. The
|
|
|
102
189
|
- **Skipping down migration tests** — rollbacks fail during production incidents
|
|
103
190
|
- **Writing migration tests after the fact without seeding data** — misses data preservation bugs entirely
|
|
104
191
|
- **Committing a migration without a corresponding test** — the migration is untested until production
|
|
192
|
+
- **Asserting string equality only on the decoded value** — display-level equality passes even when bytes, normalization form, or codepoints were corrupted across an encoding/engine change
|
|
193
|
+
- **Validating a cross-engine migration with row sampling alone** — distribution-level drift (a wrong `SUM`/`COUNT`/`DISTINCT`) escapes any sample that happens to miss the affected rows
|
|
105
194
|
|
|
106
195
|
## See Also
|
|
107
196
|
|
|
108
197
|
- `database-standards.ai.yaml` — schema design principles
|
|
109
198
|
- `testing.ai.yaml` — general test structure and pyramid
|
|
110
199
|
- `verification-evidence.ai.yaml` — audit evidence requirements
|
|
200
|
+
- `behavior-snapshot.ai.yaml` — same "don't compare what merely *looks* equal" principle, applied at the oracle/serialization layer rather than the DB storage layer
|
|
111
201
|
|
|
112
202
|
|
|
113
203
|
**Scope**: universal
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Data Pipeline Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/data-pipeline.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-068 (cross-project/specs/XSPEC-068-uds-data-engineering-pack.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This standard defines engineering requirements for building **reliable,
|
|
12
|
+
observable, and maintainable data pipelines**. It covers idempotency and
|
|
13
|
+
exactly-once semantics, error handling and dead-letter queues, checkpoint and
|
|
14
|
+
recovery, data-lineage tracking, pipeline observability and SLOs, and testing
|
|
15
|
+
requirements. It applies to batch ETL, streaming pipelines, and ML feature
|
|
16
|
+
pipelines.
|
|
17
|
+
|
|
18
|
+
It is part of the **data-engineering pack** (XSPEC-068). It extends
|
|
19
|
+
`database-standards` (which covers static DB schema) into the movement and
|
|
20
|
+
transformation of data, and reuses the reliability and observability primitives
|
|
21
|
+
of the SRE family (`observability-standards`, `slo-sli`).
|
|
22
|
+
|
|
23
|
+
> **Scope.** This standard defines the *pipeline design principles* (idempotency,
|
|
24
|
+
> error handling, recovery, lineage, observability, testing). The concrete
|
|
25
|
+
> orchestrator (Airflow/Dagster), lineage store (Marquez/DataHub), and DLQ
|
|
26
|
+
> transport are adoption choices.
|
|
27
|
+
|
|
28
|
+
## Requirements
|
|
29
|
+
|
|
30
|
+
| ID | Rule | Level |
|
|
31
|
+
|----|------|-------|
|
|
32
|
+
| REQ-001 | Idempotency and exactly-once processing | MUST |
|
|
33
|
+
| REQ-002 | Error handling and dead-letter queues | MUST |
|
|
34
|
+
| REQ-003 | Checkpoint and recovery | MUST |
|
|
35
|
+
| REQ-004 | Data-lineage tracking | MUST |
|
|
36
|
+
| REQ-005 | Pipeline observability and SLOs | MUST |
|
|
37
|
+
| REQ-006 | Pipeline testing requirements | MUST |
|
|
38
|
+
|
|
39
|
+
### REQ-001 — Idempotency and Exactly-Once Processing
|
|
40
|
+
|
|
41
|
+
Every pipeline MUST be designed for **idempotent** execution: re-running the same
|
|
42
|
+
pipeline for the same time window or batch MUST produce identical output without
|
|
43
|
+
duplication or data loss. Pipelines MUST use deterministic keys for
|
|
44
|
+
deduplication. Batch pipelines MUST support clean re-processing of historical
|
|
45
|
+
partitions. Streaming pipelines MUST implement exactly-once, or at-least-once with
|
|
46
|
+
deduplication using unique event IDs. For batch jobs, overwriting output
|
|
47
|
+
partitions is preferred over appending.
|
|
48
|
+
|
|
49
|
+
### REQ-002 — Error Handling and Dead-Letter Queues
|
|
50
|
+
|
|
51
|
+
Pipelines MUST implement structured error handling with categorized failure modes.
|
|
52
|
+
**Transient** errors (network timeout, API rate limit) MUST use exponential
|
|
53
|
+
backoff retry (max 3 attempts). **Permanent** errors (schema violation, invalid
|
|
54
|
+
data) MUST route records to a Dead-Letter Queue (DLQ) carrying the original
|
|
55
|
+
record, error type, error message, and processing timestamp. DLQ records MUST be
|
|
56
|
+
monitored and addressed within the pipeline's SLA.
|
|
57
|
+
|
|
58
|
+
### REQ-003 — Checkpoint and Recovery
|
|
59
|
+
|
|
60
|
+
Long-running batch pipelines and stateful streaming pipelines MUST implement
|
|
61
|
+
**checkpointing** to recover from mid-run failures without full reprocessing.
|
|
62
|
+
Checkpoints MUST record the last successfully processed partition/offset/watermark,
|
|
63
|
+
the job run ID, and a timestamp. Recovery MUST resume from the last checkpoint,
|
|
64
|
+
not from the beginning. Checkpoint state MUST be stored in durable external
|
|
65
|
+
storage, not local disk.
|
|
66
|
+
|
|
67
|
+
### REQ-004 — Data Lineage Tracking
|
|
68
|
+
|
|
69
|
+
Every pipeline MUST emit **lineage metadata** describing its data flow: source
|
|
70
|
+
datasets (with versions/timestamps), transformation logic applied, and output
|
|
71
|
+
datasets produced. Lineage MUST be machine-readable and ingested into a central
|
|
72
|
+
lineage store or data catalog, enabling root-cause analysis of data-quality
|
|
73
|
+
issues and impact assessment of upstream changes.
|
|
74
|
+
|
|
75
|
+
### REQ-005 — Pipeline Observability and SLOs
|
|
76
|
+
|
|
77
|
+
Every production pipeline MUST expose: records processed (counter), processing
|
|
78
|
+
latency (histogram), error rate (gauge), DLQ depth (gauge), and last successful
|
|
79
|
+
run timestamp. Pipelines MUST define SLOs for **freshness** (data available within
|
|
80
|
+
N hours of source), **completeness** (≥ X% records successfully processed), and
|
|
81
|
+
**latency** (p95 within threshold). SLO violations MUST trigger alerts.
|
|
82
|
+
|
|
83
|
+
### REQ-006 — Pipeline Testing Requirements
|
|
84
|
+
|
|
85
|
+
Pipelines MUST have automated tests covering: unit tests for transformation logic
|
|
86
|
+
(sample input/output), integration tests validating end-to-end flow with synthetic
|
|
87
|
+
data, and schema-conformance tests validating output against the declared data
|
|
88
|
+
contract (`data-contract`). Pipelines SHOULD have regression tests for
|
|
89
|
+
historically problematic edge cases (nulls in key fields, negative amounts,
|
|
90
|
+
duplicate records). Test coverage MUST be ≥ 80% for transformation logic.
|
|
91
|
+
|
|
92
|
+
## Integration with Existing Standards
|
|
93
|
+
|
|
94
|
+
- **`data-contract`** — schema-conformance tests validate pipeline output against
|
|
95
|
+
the producer's declared contract and quality SLOs.
|
|
96
|
+
- **`schema-evolution`** — pipelines must tolerate backward-compatible schema
|
|
97
|
+
changes in their sources.
|
|
98
|
+
- **`observability-standards` / `slo-sli`** — pipeline metrics and freshness/
|
|
99
|
+
completeness SLOs reuse the SRE observability and SLO primitives.
|
|
100
|
+
- **`database-standards`** — extends the static-schema standard into data movement.
|
|
101
|
+
- **`audit-trail`** — backfills and reprocessing record an audit event (reason).
|
|
102
|
+
|
|
103
|
+
## Related Specs
|
|
104
|
+
|
|
105
|
+
- XSPEC-068 — UDS data-engineering pack (this standard's source)
|
|
106
|
+
- XSPEC-066 — Compliance & audit pack (`audit-trail` for backfill reasons)
|
|
107
|
+
- XSPEC-063 — SRE pack (`observability-standards`, `slo-sli`)
|
|
108
|
+
|
|
109
|
+
## Changelog
|
|
110
|
+
|
|
111
|
+
| Version | Date | Changes |
|
|
112
|
+
|---------|------|---------|
|
|
113
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~006: idempotency, error handling/DLQ, checkpoint/recovery, lineage, observability/SLO, testing (XSPEC-068) |
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/deprecation-standards.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.1.0
|
|
6
|
+
**Last Updated**: 2026-06-24
|
|
7
7
|
**Applicability**: All software projects
|
|
8
8
|
**Scope**: universal
|
|
9
9
|
**Industry Standards**: RFC 8594 (Sunset Header), RFC 8288 (Web Linking)
|
|
@@ -57,6 +57,19 @@ When a new version is released, the old version MUST be maintained for at least
|
|
|
57
57
|
|
|
58
58
|
This ensures consumers have adequate time to migrate without service disruption.
|
|
59
59
|
|
|
60
|
+
### Minimum Deprecation Period by API Tier
|
|
61
|
+
|
|
62
|
+
The 6-stage Sunset Timeline above shows the **default cadence for a public API** (roughly 6 months of notice from Announce to Sunset). The *minimum* deprecation period scales with the API's audience and criticality. Apply the **longer** of the tier minimum below and the Version Parallel Period above:
|
|
63
|
+
|
|
64
|
+
| API Tier | Minimum Deprecation Period |
|
|
65
|
+
|----------|----------------------------|
|
|
66
|
+
| **Internal API** | 1 minor version |
|
|
67
|
+
| **Partner API** | 2 minor versions + 3 months |
|
|
68
|
+
| **Public API** | 2 minor versions + 6 months |
|
|
69
|
+
| **Critical Infrastructure** | 1 year minimum |
|
|
70
|
+
|
|
71
|
+
These are minimums; a longer period may be required by an SLA or contractual commitment (see [Feature Sunset → Impact Analysis](#impact-analysis)). What *counts* as a breaking change that triggers deprecation, and the API versioning mechanics themselves, live in [API Design Standards](api-design-standards.md#api-versioning-strategies) — this standard is the single source of truth only for the deprecation timeline and these notice periods.
|
|
72
|
+
|
|
60
73
|
---
|
|
61
74
|
|
|
62
75
|
## Consumer Notification Strategy
|
|
@@ -200,6 +213,7 @@ No alternative exists? → Build alternative first
|
|
|
200
213
|
|
|
201
214
|
| Version | Date | Changes |
|
|
202
215
|
|---------|------|---------|
|
|
216
|
+
| 1.1.0 | 2026-06-24 | Added: Minimum Deprecation Period by API Tier — establishes this standard as the single source of truth for deprecation periods, consolidated from versioning.md and harmonized with the Sunset Timeline and Version Parallel Period (XSPEC-298 R8, UDS #126) |
|
|
203
217
|
| 1.0.0 | 2026-03-31 | Initial release: API Deprecation, Feature Sunset, System Decommission, Retirement Metrics |
|
|
204
218
|
|
|
205
219
|
---
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/developer-memory.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.1.1
|
|
6
|
+
**Last Updated**: 2026-06-18
|
|
7
7
|
**Applicability**: All software projects using AI assistants
|
|
8
8
|
**Scope**: universal
|
|
9
|
+
**Owning Spec**: XSPEC-291 (developer-memory has no dedicated feature XSPEC; XSPEC-291 owns it)
|
|
9
10
|
**Industry Standards**: None (UDS original)
|
|
10
11
|
|
|
11
12
|
---
|
|
@@ -233,11 +234,14 @@ AI scans the memory store and generates a review report covering:
|
|
|
233
234
|
|
|
234
235
|
#### Retirement Suggestions
|
|
235
236
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
|
240
|
-
|
|
237
|
+
Thresholds are UDS defaults (configurable per project); the rationale is
|
|
238
|
+
recorded so each value is auditable rather than arbitrary.
|
|
239
|
+
|
|
240
|
+
| Trigger | Action | Rationale |
|
|
241
|
+
|---------|--------|-----------|
|
|
242
|
+
| `confidence < 0.2` | Suggest retirement | Repeatedly invalidated knowledge is more noise than signal |
|
|
243
|
+
| Not surfaced in 180+ days AND `confidence < 0.5` | Suggest retirement | Half-year dormancy combined with low confidence means the memory is no longer relevant to active work; the 180-day window matches the staleness/decay model in Staleness Detection below |
|
|
244
|
+
| 5+ `invalid` feedback entries | Suggest retirement | Sustained negative feedback signals the memory is wrong or obsolete |
|
|
241
245
|
|
|
242
246
|
#### Staleness Detection
|
|
243
247
|
|
|
@@ -548,7 +552,7 @@ Developer Persistent Memory is classified as an **Always-On Protocol**, not a Us
|
|
|
548
552
|
|
|
549
553
|
| Pattern | Characteristics | Examples | Skill Required? |
|
|
550
554
|
|---------|----------------|----------|-----------------|
|
|
551
|
-
| **User-Triggered** | User explicitly invokes, multi-step guided workflow | `/commit`, `/review`, `/sdd` | Yes |
|
|
555
|
+
| **User-Triggered** | User explicitly invokes, multi-step guided workflow | `/commit`, `/code-review`, `/sdd` | Yes |
|
|
552
556
|
| **Always-On Protocol** | AI continuously follows rules after loading ai.yaml | Anti-hallucination, Developer Memory | No |
|
|
553
557
|
|
|
554
558
|
### Rationale: No CLI / Skill / Slash Command Needed
|
|
@@ -587,6 +591,7 @@ If user feedback reveals:
|
|
|
587
591
|
|
|
588
592
|
| Version | Date | Changes |
|
|
589
593
|
|---------|------|---------|
|
|
594
|
+
| 1.1.0 | 2026-06-18 | Added: rationale column + configurable note to Retirement Suggestions thresholds (XSPEC-292 T8) |
|
|
590
595
|
| 1.0.0 | 2026-02-07 | Initial standard: schema, 4 operations, proactive protocol, noise control, architecture decision (Always-On Protocol) |
|
|
591
596
|
|
|
592
597
|
---
|
|
@@ -818,7 +818,7 @@ Track translation status in translated document headers:
|
|
|
818
818
|
---
|
|
819
819
|
translation_status: current | needs_update | in_progress
|
|
820
820
|
source_version: 1.2.0
|
|
821
|
-
source_hash:
|
|
821
|
+
source_hash: a1b2c3d4e5f6 # first 12 chars of `git hash-object <source>`
|
|
822
822
|
translated_by: human | machine | machine+human-review
|
|
823
823
|
last_synced: 2026-03-17
|
|
824
824
|
---
|
|
@@ -991,7 +991,7 @@ Ensure documentation is accessible to all users, following WCAG 2.1 Level A guid
|
|
|
991
991
|
| Requirement | Description | Example |
|
|
992
992
|
|-------------|-------------|---------|
|
|
993
993
|
| **Plain language** | Use clear, simple language; target grade 8 reading level | Avoid: "utilize" → Use: "use" |
|
|
994
|
-
| **Alt text for images** | Provide descriptive alt text for all non-decorative images | `` |
|
|
994
|
+
| **Alt text for images** | Provide descriptive alt text for all non-decorative images | `` |
|
|
995
995
|
| **Heading hierarchy** | Use proper heading levels (h1→h2→h3), never skip levels | Don't jump from `#` to `###` |
|
|
996
996
|
| **Link text** | Use descriptive link text, not "click here" | Avoid: [click here] → Use: [installation guide] |
|
|
997
997
|
| **Code blocks** | Use fenced code blocks with language identifiers | ` ```javascript ` not ` ``` ` |
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/error-code-standards.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.2.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.2.1
|
|
6
|
+
**Last Updated**: 2026-06-18
|
|
7
7
|
**Applicability**: All software projects
|
|
8
8
|
**Scope**: universal
|
|
9
|
+
**Owning Spec**: XSPEC-291 (no dedicated feature XSPEC; XSPEC-291 owns this standard)
|
|
9
10
|
**Industry Standards**: RFC 7807, RFC 9457
|
|
10
11
|
**References**: [datatracker.ietf.org](https://datatracker.ietf.org/doc/html/rfc7807)
|
|
11
12
|
|
|
@@ -580,7 +581,7 @@ AUTH_VAL_001
|
|
|
580
581
|
|
|
581
582
|
**Related Standards:**
|
|
582
583
|
- [Logging Standards](logging-standards.md) - Error logging practices
|
|
583
|
-
- [API Documentation Standards](api-
|
|
584
|
+
- [API Documentation Standards](api-design-standards.md) - Error response documentation
|
|
584
585
|
|
|
585
586
|
---
|
|
586
587
|
|