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
|
+
# Infrastructure as Code Design Principles
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/iac-design-principles.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 the four foundational principles for Infrastructure as Code
|
|
12
|
+
(IaC) authoring: **reproducible, immutable, idempotent, and versioned**. It covers
|
|
13
|
+
state management requirements (remote state with locking), drift detection
|
|
14
|
+
categories, and CI/CD integration. It is designed to ensure infrastructure
|
|
15
|
+
changes are traceable, reversible, and safe to apply repeatedly without unintended
|
|
16
|
+
side effects.
|
|
17
|
+
|
|
18
|
+
It is part of the **IaC pack** (XSPEC-065) and is the tool-agnostic foundation
|
|
19
|
+
that `container-image-standards` and `secret-management-standards` build on
|
|
20
|
+
(images and secret backends are themselves versioned, reproducible
|
|
21
|
+
infrastructure).
|
|
22
|
+
|
|
23
|
+
> **Scope.** This standard defines the *authoring principles*, *state-management*
|
|
24
|
+
> rules, and the *drift-handling taxonomy*. The specific IaC tool (Terraform /
|
|
25
|
+
> Pulumi / CloudFormation) and backend are adoption choices, not part of this
|
|
26
|
+
> standard.
|
|
27
|
+
|
|
28
|
+
## Requirements
|
|
29
|
+
|
|
30
|
+
| ID | Rule | Level |
|
|
31
|
+
|----|------|-------|
|
|
32
|
+
| REQ-001 | IaC four principles (reproducible, immutable, idempotent, versioned) | MUST |
|
|
33
|
+
| REQ-002 | State management (remote backend, locking, encryption, no local state in VCS) | MUST |
|
|
34
|
+
| REQ-003 | Drift detection (plan on PR; three-category classification) | MUST |
|
|
35
|
+
|
|
36
|
+
### REQ-001 — IaC Four Principles
|
|
37
|
+
|
|
38
|
+
All infrastructure definitions MUST adhere to four foundational principles:
|
|
39
|
+
(1) **Reproducible** — given the same inputs and state, applying IaC produces
|
|
40
|
+
identical infrastructure; (2) **Immutable** — infrastructure changes are applied
|
|
41
|
+
by replacing resources, not mutating them in-place; blue/green or rolling
|
|
42
|
+
replacement patterns are preferred over in-place mutations; (3) **Idempotent** —
|
|
43
|
+
applying the same IaC configuration multiple times produces the same result
|
|
44
|
+
without error or unintended side effects; (4) **Versioned** — all IaC definitions
|
|
45
|
+
are stored in version control with meaningful commit messages; no infrastructure
|
|
46
|
+
change is made outside the VCS workflow.
|
|
47
|
+
|
|
48
|
+
### REQ-002 — State Management
|
|
49
|
+
|
|
50
|
+
IaC state MUST be stored in a remote backend with locking enabled to prevent
|
|
51
|
+
concurrent modifications. Local state files MUST NOT be committed to version
|
|
52
|
+
control or used in CI/CD pipelines. Recommended backends: Terraform Cloud /
|
|
53
|
+
S3+DynamoDB (Terraform), Pulumi Service / S3 (Pulumi), CloudFormation native
|
|
54
|
+
stack state. State access MUST be restricted to authorized principals via IAM or
|
|
55
|
+
equivalent. State encryption at rest is REQUIRED.
|
|
56
|
+
|
|
57
|
+
### REQ-003 — Drift Detection
|
|
58
|
+
|
|
59
|
+
Teams MUST run `plan` (or equivalent) in CI on every pull request to detect
|
|
60
|
+
configuration drift. Drift outcomes MUST be classified into one of three
|
|
61
|
+
categories and handled accordingly: (1) **rollback-to-code** — actual infra
|
|
62
|
+
deviates from code due to a manual change; revert actual to match code on next
|
|
63
|
+
apply; (2) **update-code-from-actual** — actual reflects an intentional change not
|
|
64
|
+
yet codified; update IaC to match, then apply; (3) **manual-reconcile** — drift
|
|
65
|
+
requires human judgment (e.g., data volume changes); escalate to the infra owner
|
|
66
|
+
with a documented decision. Drift reports SHOULD be published to a team channel on
|
|
67
|
+
a scheduled cadence (e.g., daily).
|
|
68
|
+
|
|
69
|
+
## Anti-Patterns
|
|
70
|
+
|
|
71
|
+
- Committing local state files (`terraform.tfstate`) to version control.
|
|
72
|
+
- Applying mutable in-place changes (e.g., sed-patching running VMs) instead of replacing resources.
|
|
73
|
+
- Making manual console changes without updating the corresponding IaC definition.
|
|
74
|
+
- Using no remote locking, allowing concurrent applies that corrupt state.
|
|
75
|
+
- Pinning to `latest` provider or module versions, breaking reproducibility.
|
|
76
|
+
|
|
77
|
+
## Integration with Existing Standards
|
|
78
|
+
|
|
79
|
+
- **`container-image-standards`** — container images are versioned, reproducible
|
|
80
|
+
artifacts produced under the same principles.
|
|
81
|
+
- **`secret-management-standards`** — secret backends (Vault/KMS) are managed as
|
|
82
|
+
access-controlled infrastructure with remote state.
|
|
83
|
+
- **`deployment-standards` / `cd-deployment-strategies`** — immutable replacement
|
|
84
|
+
(REQ-001) underpins blue/green and rolling deployment patterns.
|
|
85
|
+
- **`no-cicd-deployment`** — even without a CI/CD platform, the four principles and
|
|
86
|
+
state-management rules still apply to scripted infrastructure changes.
|
|
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: IaC four principles, state management, drift detection (XSPEC-065) |
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Incident Response Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/incident-response.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-063 (cross-project/specs/XSPEC-063-uds-sre-standards-pack.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This standard defines the end-to-end **incident response lifecycle**: severity
|
|
12
|
+
classification, response-time SLAs, roles and responsibilities, communication
|
|
13
|
+
protocols, escalation paths, and blameless postmortem requirements. It is
|
|
14
|
+
designed to reduce MTTR, ensure consistent stakeholder communication during
|
|
15
|
+
incidents, and drive systemic reliability improvements through structured
|
|
16
|
+
postmortems.
|
|
17
|
+
|
|
18
|
+
It is part of the **SRE/operations pack** (XSPEC-063) and is the incident-handling
|
|
19
|
+
member alongside `slo-sli` (error-budget triggers) and `runbook` (executable
|
|
20
|
+
recovery steps). It composes with `virtual-organization-standards` — a SEV-1
|
|
21
|
+
incident spins up the incident virtual organization (IC, Communications Lead,
|
|
22
|
+
Operations Lead) — and feeds the proactive reliability ownership described in
|
|
23
|
+
XSPEC-251 (Operator).
|
|
24
|
+
|
|
25
|
+
> **Scope.** This standard defines *how incidents are classified, coordinated,
|
|
26
|
+
> communicated, and learned from*. The paging tool (PagerDuty, Opsgenie), the
|
|
27
|
+
> status-page product, and the ticketing system are adoption choices, not part of
|
|
28
|
+
> this standard.
|
|
29
|
+
|
|
30
|
+
## Requirements
|
|
31
|
+
|
|
32
|
+
| ID | Rule | Level |
|
|
33
|
+
|----|------|-------|
|
|
34
|
+
| REQ-001 | Severity classification (4-level SEV scale with response SLAs) | MUST |
|
|
35
|
+
| REQ-002 | Incident Commander role (assigned within 10 min for SEV-1/2) | MUST |
|
|
36
|
+
| REQ-003 | Stakeholder communication protocol (defined cadence + status page) | MUST |
|
|
37
|
+
| REQ-004 | Blameless postmortem requirements (5 Whys, action items tracked) | MUST |
|
|
38
|
+
| REQ-005 | On-call rotation and handoff (≥2 engineers, written handoff) | MUST |
|
|
39
|
+
| REQ-006 | Incident retrospective metrics (MTTD/MTTR reviewed monthly) | SHOULD |
|
|
40
|
+
|
|
41
|
+
### REQ-001 — Severity Classification
|
|
42
|
+
|
|
43
|
+
Every incident MUST be classified at declaration using a 4-level severity scale.
|
|
44
|
+
**SEV-1** (Critical): complete service outage or data breach affecting all users,
|
|
45
|
+
response within 15 minutes, C-suite notification. **SEV-2** (High): major feature
|
|
46
|
+
unavailable or significant performance degradation affecting >25% of users,
|
|
47
|
+
response within 30 minutes. **SEV-3** (Medium): minor feature unavailable or
|
|
48
|
+
degradation affecting <25% of users, response within 4 hours. **SEV-4** (Low):
|
|
49
|
+
cosmetic issue or very minor impact, response within 24 hours.
|
|
50
|
+
|
|
51
|
+
### REQ-002 — Incident Commander Role
|
|
52
|
+
|
|
53
|
+
Every SEV-1 and SEV-2 incident MUST have a designated Incident Commander (IC)
|
|
54
|
+
assigned within 10 minutes of declaration. The IC is responsible for coordinating
|
|
55
|
+
the response bridge, assigning roles (scribe, comms lead, technical leads),
|
|
56
|
+
driving the timeline, making go/no-go decisions on fixes, and initiating the
|
|
57
|
+
postmortem. The IC does NOT directly troubleshoot — their sole focus is
|
|
58
|
+
coordination.
|
|
59
|
+
|
|
60
|
+
### REQ-003 — Stakeholder Communication Protocol
|
|
61
|
+
|
|
62
|
+
During SEV-1/SEV-2 incidents, stakeholder updates MUST be sent on a defined
|
|
63
|
+
cadence: initial notification within 15 minutes of declaration, updates every
|
|
64
|
+
30 minutes until resolution, and an immediate update on any severity change or
|
|
65
|
+
major development. Updates MUST include current status, known impact, what is
|
|
66
|
+
being done, and the next update time. The status page MUST be updated
|
|
67
|
+
simultaneously with internal communications.
|
|
68
|
+
|
|
69
|
+
### REQ-004 — Blameless Postmortem Requirements
|
|
70
|
+
|
|
71
|
+
Every SEV-1 incident MUST have a blameless postmortem completed within 5 business
|
|
72
|
+
days; SEV-2 incidents within 10 business days. Postmortems MUST be blameless —
|
|
73
|
+
focusing on systemic causes, not individual mistakes. Required sections: timeline,
|
|
74
|
+
impact, root cause (5 Whys), contributing factors, action items with owners and
|
|
75
|
+
due dates, and lessons learned. Action items MUST be tracked to completion.
|
|
76
|
+
|
|
77
|
+
### REQ-005 — On-Call Rotation and Handoff
|
|
78
|
+
|
|
79
|
+
Every production service MUST have a documented on-call rotation with at least 2
|
|
80
|
+
engineers. Rotation schedules MUST be published at least 2 weeks in advance.
|
|
81
|
+
On-call handoff MUST include a written summary of active incidents, recent
|
|
82
|
+
incidents still under investigation, known flaky alerts, upcoming planned
|
|
83
|
+
maintenance, and any service-health concerns. Handoff MUST be acknowledged by the
|
|
84
|
+
incoming on-call.
|
|
85
|
+
|
|
86
|
+
### REQ-006 — Incident Retrospective Metrics
|
|
87
|
+
|
|
88
|
+
Teams SHOULD track and review incident metrics monthly: MTTD (Mean Time To
|
|
89
|
+
Detect), MTTR (Mean Time To Resolve), incident frequency by severity, repeat
|
|
90
|
+
incidents (same root cause within 90 days), and postmortem action-item completion
|
|
91
|
+
rate. These metrics SHOULD be reviewed in monthly reliability reviews with
|
|
92
|
+
engineering leadership.
|
|
93
|
+
|
|
94
|
+
## Integration with Existing Standards
|
|
95
|
+
|
|
96
|
+
- **`runbook`** — the IC and on-call engineers execute typed runbooks during the
|
|
97
|
+
mitigate phase; SEV runbooks are drilled per the `runbook` cadence.
|
|
98
|
+
- **`slo-sli`** — error-budget burn often triggers incident declaration; SLO
|
|
99
|
+
impact is summarized in the postmortem.
|
|
100
|
+
- **`postmortem-standards`** — REQ-004 aligns with the blameless postmortem
|
|
101
|
+
template; this standard sets the trigger and timelines.
|
|
102
|
+
- **`virtual-organization-standards`** — SEV-1 incidents instantiate the incident
|
|
103
|
+
virtual organization (IC, Communications Lead, Operations Lead).
|
|
104
|
+
- **`alerting-standards`** — alerts initiate detection and severity assessment.
|
|
105
|
+
- **`execution-history`** — automated mitigation actions are recorded as execution
|
|
106
|
+
history.
|
|
107
|
+
|
|
108
|
+
## Related Specs
|
|
109
|
+
|
|
110
|
+
- XSPEC-063 — UDS SRE/operations pack (this standard's source)
|
|
111
|
+
- XSPEC-251 — Operator proactive reliability (proactive ownership upstream of incidents)
|
|
112
|
+
- DEC-041 — EU AI Act 2026 compliance (auditability requires postmortems)
|
|
113
|
+
- DEC-042 — Guardian / Governance Agent pattern (agent-driven runbook execution)
|
|
114
|
+
|
|
115
|
+
## Changelog
|
|
116
|
+
|
|
117
|
+
| Version | Date | Changes |
|
|
118
|
+
|---------|------|---------|
|
|
119
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~006: severity classification, incident commander, communication protocol, blameless postmortem, on-call rotation/handoff, retrospective metrics (XSPEC-063) |
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
> **AI-optimized version**: `ai/standards/license-compliance.ai.yaml`
|
|
5
5
|
> **Agent Spec**: ASPEC-001 (cross-project/aspec/ASPEC-001-license-compliance-agent.md)
|
|
6
6
|
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
7
9
|
## Overview
|
|
8
10
|
|
|
9
11
|
Comprehensive license compliance for AI-augmented development, covering both general OSS practice (Tier 1) and AI-specific rules for AI-generated code (Tier 2).
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/logging-standards.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.4.0
|
|
6
|
+
**Last Updated**: 2026-06-17
|
|
7
7
|
**Applicability**: All software projects
|
|
8
8
|
**Scope**: universal
|
|
9
9
|
**Industry Standards**: RFC 5424, OpenTelemetry, W3C Trace Context
|
|
@@ -15,6 +15,81 @@
|
|
|
15
15
|
|
|
16
16
|
This document defines logging standards for consistent, structured, and actionable application logs across all environments.
|
|
17
17
|
|
|
18
|
+
## Mandatory Events
|
|
19
|
+
|
|
20
|
+
> **Closes** UDS issue [#108](https://github.com/AsiaOstrich/universal-dev-standards/issues/108) (XSPEC-234). The rest of this standard defines **how** to write a log entry (level / fields / PII mask / rotation). This section defines **when you MUST write one** — excluding "compliant on paper but materially silent" logging.
|
|
21
|
+
|
|
22
|
+
Logging that follows every formatting rule but **never fires at the moment that matters** is worse than useless: it gives false confidence during an incident. The events below are the canonical moments where a log entry is **mandatory**. Each declares `when` / `must_log` / `must_NOT_log` / `level` / `rationale`.
|
|
23
|
+
|
|
24
|
+
### Why this exists (real incidents)
|
|
25
|
+
|
|
26
|
+
A PHP→.NET migration burned 2 days diagnosing "send failed, no log", because **four layers were all silent**:
|
|
27
|
+
|
|
28
|
+
1. **Load-balancer marks backend DOWN** (503) on health-probe timeout — backend logged only probe noise, zero business events.
|
|
29
|
+
2. **Framework validation reject** (e.g. ModelState / DTO 501) — the rejecting framework returned before any handler ran, so the **payload was never logged**.
|
|
30
|
+
3. **Auth failure** logged only "Account or password error" — **no uid, no source IP** → un-investigable.
|
|
31
|
+
4. **Background worker alive but log file 0 bytes** — no mechanism detected the silence.
|
|
32
|
+
|
|
33
|
+
None of these were caught by the formatting rules alone. Mandatory events close that gap.
|
|
34
|
+
|
|
35
|
+
### Catalog (9 canonical events)
|
|
36
|
+
|
|
37
|
+
| id | when | level | Core required fields (`must_log`) | `must_NOT_log` |
|
|
38
|
+
|----|------|-------|-----------------------------------|----------------|
|
|
39
|
+
| `application_startup` | After process boot, **before** accepting requests | INFO | app_name, version, git_sha, environment, hostname, pid, listening_endpoints | secrets, full connection strings |
|
|
40
|
+
| `request_received` | First time HTTP middleware sees a request | INFO / DEBUG | method, path, source_ip, request_id | request body, auth headers |
|
|
41
|
+
| `validation_failure` | schema / ModelState / DTO validation rejects | WARN | request_id, path, missing_fields[], payload_shape (keys only) | field **values**, PII |
|
|
42
|
+
| `authentication_failure` | login / token verification fails | WARN | uid (attempted), source_ip, failure_reason | password, token value |
|
|
43
|
+
| `outbound_call_start` | An outbound HTTP/RPC call is initiated | INFO | target_url (host+path), request_id propagated, timeout_ms | credentials, bearer tokens |
|
|
44
|
+
| `outbound_call_complete` | An external call returns or fails | INFO / WARN / ERROR | status_code **or** failure_phase (dns/tcp/tls/http), elapsed_ms, retries | response body with PII |
|
|
45
|
+
| `business_event` | A state-changing business operation completes | INFO | operation_name, actor, target ids, outcome | full record payload, PII |
|
|
46
|
+
| `heartbeat` | Long-running background service, ≥ 1× / 60 s | INFO | service_name, queue_depth, items_processed_since_last_heartbeat | — |
|
|
47
|
+
| `shutdown` | Process exits (graceful or fatal) | INFO / ERROR | app_name, signal/reason, uptime_seconds, pending_work_count | — |
|
|
48
|
+
|
|
49
|
+
Each event's `rationale` ties back to a real failure mode: `validation_failure` ⇒ incident #2 (un-logged payload); `authentication_failure` field requirements ⇒ incident #3 (no uid/IP); `heartbeat` + silence detection ⇒ incident #4 (0-byte log); `application_startup`/`shutdown` ⇒ lifecycle blind spots; `outbound_call_*` ⇒ "send failed" with no trace of the call.
|
|
50
|
+
|
|
51
|
+
### Scenarios
|
|
52
|
+
|
|
53
|
+
#### Scenario: Validation failure must produce a log
|
|
54
|
+
|
|
55
|
+
- **GIVEN** an API endpoint receives a payload missing a `[Required]` field
|
|
56
|
+
- **WHEN** the framework auto-rejects (e.g. 400/501) before the handler runs
|
|
57
|
+
- **THEN** a WARN log MUST be written with `request_id`, `path`, `missing_fields[]`, `payload_shape` (keys only)
|
|
58
|
+
- **AND** a post-mortem can reconstruct the failure cause directly from the log
|
|
59
|
+
|
|
60
|
+
#### Scenario: Background service must heartbeat
|
|
61
|
+
|
|
62
|
+
- **GIVEN** a worker process is running
|
|
63
|
+
- **WHEN** no INFO/WARN/ERROR is written within 60 s
|
|
64
|
+
- **THEN** a `heartbeat` log MUST be written with current queue depth and items processed
|
|
65
|
+
- **AND** if no heartbeat appears for ≥ 2× the interval (≥ 120 s), the silence detector MUST alert
|
|
66
|
+
|
|
67
|
+
### Compliant startup log example
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"timestamp": "2026-06-17T08:00:00.000Z",
|
|
72
|
+
"level": "INFO",
|
|
73
|
+
"message": "application_startup",
|
|
74
|
+
"event": "application_startup",
|
|
75
|
+
"app_name": "payment-service",
|
|
76
|
+
"version": "2.3.1",
|
|
77
|
+
"git_sha": "a1b2c3d",
|
|
78
|
+
"environment": "production",
|
|
79
|
+
"hostname": "pod-abc123",
|
|
80
|
+
"pid": 4711,
|
|
81
|
+
"listening_endpoints": ["0.0.0.0:8080", "0.0.0.0:9090/metrics"]
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Follow-on rules
|
|
86
|
+
|
|
87
|
+
1. **Access-log separation** — health-probe / liveness traffic MUST NOT pollute the business-event log. Route probes to a separate sink/file so they cannot drown out or rotate away business events (see incident #1).
|
|
88
|
+
2. **Log-silence detection SLA** — a service SHOULD alert after N minutes with no events, with N ≤ 2× the `heartbeat` interval. Absence of expected logs is itself an alertable condition (see the "Absence of Expected Logs" alert pattern below).
|
|
89
|
+
3. **OPS-facing log discoverability** — error responses returned to the client SHOULD carry the `request_id`, so support can correlate a user-reported failure to backend logs without round-trips for log access.
|
|
90
|
+
|
|
91
|
+
> **Cross-ref**: `heartbeat` / silence detection complement the [Log File Rotation Policy](#log-file-rotation-policy) (a 0-byte / silently-dropping log is the same blind spot from two directions) and migration-assistant's Background Job / Side-Effect Completeness (these events are the observable "has-fired" evidence).
|
|
92
|
+
|
|
18
93
|
## Log Levels
|
|
19
94
|
|
|
20
95
|
### Standard Log Levels
|
|
@@ -754,6 +829,7 @@ App cannot continue? → FATAL
|
|
|
754
829
|
|
|
755
830
|
| Version | Date | Changes |
|
|
756
831
|
|---------|------|---------|
|
|
832
|
+
| 1.4.0 | 2026-06-17 | Added: Mandatory Events catalog — 9 canonical "when you MUST log" events (when/must_log/must_NOT_log/level/rationale), validation-failure + heartbeat scenarios, compliant startup example, follow-on rules (access-log separation, silence-detection SLA, request_id discoverability) (XSPEC-234 / closes issue #108) |
|
|
757
833
|
| 1.3.0 | 2026-05-26 | Added: Log File Rotation Policy — mandatory dual-trigger (time + size) rotation with hostile-default warning, recipes for .NET/Python/Java/Node, ops SOP (XSPEC-232 / closes issue #111) |
|
|
758
834
|
| 1.2.0 | 2026-01-24 | Added: OpenTelemetry Semantic Conventions, Observability Three Pillars Integration, Log-based Alerting, Advanced Correlation Patterns |
|
|
759
835
|
| 1.1.0 | 2026-01-05 | Added: References section with OWASP, RFC 5424, OpenTelemetry, and 12 Factor App |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Mock Boundary Standards
|
|
2
2
|
|
|
3
|
-
**Version**: 1.
|
|
4
|
-
**Last Updated**: 2026-
|
|
3
|
+
**Version**: 1.1.0
|
|
4
|
+
**Last Updated**: 2026-07-01
|
|
5
5
|
**Applicability**: All software projects with unit and integration tests
|
|
6
6
|
**Scope**: universal
|
|
7
7
|
**Industry Standards**: ISTQB Foundation (Test Doubles), xUnit Patterns (Gerard Meszaros)
|
|
@@ -46,6 +46,7 @@ vi.mock('node:fs/promises', ...) // I/O replaced
|
|
|
46
46
|
| Environment variables | `process.env.NODE_ENV`, `process.env.LICENSE_KEY` | Enables config variation |
|
|
47
47
|
| File system (unit tests only) | `fs.readFile`, `fs.writeFile` | Avoids I/O in fast unit tests |
|
|
48
48
|
| Cross-module boundaries (with IT counterpart) | Other modules' public APIs | Isolates unit under test |
|
|
49
|
+
| In-process background execution (via injectable runner) | `Task.Run`, unawaited promises, `setTimeout`, goroutines, thread-pool dispatch | Injecting a runner seam lets tests await deterministic completion, eliminating the race |
|
|
49
50
|
|
|
50
51
|
---
|
|
51
52
|
|
|
@@ -60,6 +61,46 @@ vi.mock('node:fs/promises', ...) // I/O replaced
|
|
|
60
61
|
|
|
61
62
|
---
|
|
62
63
|
|
|
64
|
+
## Injectable Background Execution
|
|
65
|
+
|
|
66
|
+
Fire-and-forget background work (a `Task.Run`, an unawaited promise, a `setTimeout`, a goroutine, a `java.util.concurrent` executor submission, or `asyncio.create_task`) is a **seam**, exactly like the system clock. Just as you inject a clock instead of reading wall-clock time, you inject the background dispatcher instead of spawning work directly. This lets a test drive the work to a **deterministic, awaited completion** and assert on its outcome (success, exception, or retry) — no polling, no sleeping, no race.
|
|
67
|
+
|
|
68
|
+
Abstract the dispatch behind a small interface (e.g. `IBackgroundTaskRunner` / `BackgroundDispatcher`), then provide two implementations:
|
|
69
|
+
|
|
70
|
+
- **Production**: preserves true fire-and-forget semantics — dispatch returns immediately and the work runs detached.
|
|
71
|
+
- **Test**: runs the work **inline** and **tracks the underlying Task/promise**, exposing a handle the test can `await` so completion (and any failure) is observable.
|
|
72
|
+
|
|
73
|
+
Language-neutral sketch (TypeScript pseudo-code):
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// Seam — injected wherever background work is dispatched
|
|
77
|
+
interface BackgroundDispatcher {
|
|
78
|
+
dispatch(work: () => Promise<void>): void
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Production: real fire-and-forget — returns immediately, work runs detached
|
|
82
|
+
class FireAndForgetDispatcher implements BackgroundDispatcher {
|
|
83
|
+
dispatch(work: () => Promise<void>): void {
|
|
84
|
+
void work() // intentionally not awaited
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Test: inline execution + tracked tasks so tests can await completion
|
|
89
|
+
class DeterministicDispatcher implements BackgroundDispatcher {
|
|
90
|
+
private readonly tasks: Promise<void>[] = []
|
|
91
|
+
dispatch(work: () => Promise<void>): void {
|
|
92
|
+
this.tasks.push(work()) // start inline, keep the handle
|
|
93
|
+
}
|
|
94
|
+
async settle(): Promise<void> {
|
|
95
|
+
await Promise.all(this.tasks) // test awaits deterministic completion
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The test injects `DeterministicDispatcher`, exercises the code under test, then `await dispatcher.settle()` before asserting on the result — the background side effect is now fully observable and deterministic.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
63
104
|
## Hollow Test Detection
|
|
64
105
|
|
|
65
106
|
Before submitting a test file, check:
|
|
@@ -78,6 +119,7 @@ Before submitting a test file, check:
|
|
|
78
119
|
- **Orphan Mock**: Cross-module mock with no integration test counterpart
|
|
79
120
|
- **Security Bypass Mock**: Auth/permission logic replaced with pass-through stub
|
|
80
121
|
- **Database Mock Cascade**: DB returns hardcoded data, hiding real query errors
|
|
122
|
+
- **Poll/Sleep for Background Result**: Sleeping or polling to wait for fire-and-forget work to finish. The race is still there — the timeout merely hides it most of the time while slowing the whole suite and, on a shared runner, leaking flakiness into other MRs' CI. Inject a deterministic runner and await the tracked task instead.
|
|
81
123
|
|
|
82
124
|
---
|
|
83
125
|
|
|
@@ -90,6 +132,7 @@ Before submitting a test file, check:
|
|
|
90
132
|
| IT counterpart | Mocking cross-module boundary | Ensure corresponding IT exists |
|
|
91
133
|
| No security mock | Test involves auth/permissions | Use real test user + real token |
|
|
92
134
|
| Hollow review | Mock count ≥ import count | Add output-value assertion |
|
|
135
|
+
| No poll/sleep for background work | Test asserts a fire-and-forget side effect | Inject deterministic runner; await the tracked task |
|
|
93
136
|
|
|
94
137
|
---
|
|
95
138
|
|
|
@@ -98,3 +141,12 @@ Before submitting a test file, check:
|
|
|
98
141
|
- **testing**: Mock boundary rules apply to all test levels in the testing pyramid
|
|
99
142
|
- **test-completeness-dimensions**: Dimension 8 (AI Test Quality) references these rules
|
|
100
143
|
- **flow-based-testing**: Flow tests must follow mock boundary rules
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Version History
|
|
148
|
+
|
|
149
|
+
| Version | Date | Change |
|
|
150
|
+
|---------|------|--------|
|
|
151
|
+
| 1.0.0 | 2026-05-04 | Initial standard: hollow test problem, CAN/CANNOT mock tables, detection, anti-patterns, rules summary |
|
|
152
|
+
| 1.1.0 | 2026-07-01 | Added injectable background execution as a seam (parallel to clock injection): CAN-mock row, `Injectable Background Execution` section, `Poll/Sleep for Background Result` anti-pattern, and no-poll/sleep rule (issue #143) |
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Model Provenance Policy Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/model-provenance.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-255 (cross-project/specs/XSPEC-255-model-provenance-policy.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Model selection is not only "cost × quality" — there is a **third axis: whether the
|
|
12
|
+
model's *source* is acceptable to the customer** (geopolitics / data sovereignty /
|
|
13
|
+
regulation). A regulated or geopolitically sensitive buyer (e.g. a Taiwanese
|
|
14
|
+
finance/government customer) may be unable to use models from a given jurisdiction;
|
|
15
|
+
the strictest will reject even **locally-run open weights** of that origin. This
|
|
16
|
+
standard makes the **model's provenance a first-class, enforced, auditable property**:
|
|
17
|
+
declare an acceptable-source policy, **block** non-compliant model choices fail-closed,
|
|
18
|
+
and emit auditable evidence ("this delivery used no models of the denied origin").
|
|
19
|
+
|
|
20
|
+
It is the **provenance (source)** member of the governance-gate family — alongside
|
|
21
|
+
`license-compliance` (XSPEC-193, *licensing*) and `verification-oracle` (XSPEC-256,
|
|
22
|
+
*correctness*) — which all share the same shape: **registry/check → fail-closed gate →
|
|
23
|
+
audit evidence → human-escalation ceiling**. The three are profiles of one mechanism
|
|
24
|
+
over three axes: **licensing / provenance / correctness**.
|
|
25
|
+
|
|
26
|
+
> **Scope.** This standard defines the *provenance mechanism* (origin registry, policy
|
|
27
|
+
> schema, fail-closed enforcement at model-selection points, audit evidence, ceiling).
|
|
28
|
+
> The **policy content (the concrete allow/deny lists) belongs to the customer or a
|
|
29
|
+
> compliance pack** — it is their domain decision (DEC-075 neutral mechanism / DEC-063
|
|
30
|
+
> customer-owned compliance posture). Enforcement engine wiring (e.g. a VibeOps provider
|
|
31
|
+
> abstraction / router gate) is a downstream adoption concern, not part of this standard.
|
|
32
|
+
|
|
33
|
+
## Requirements
|
|
34
|
+
|
|
35
|
+
| ID | Rule | Level |
|
|
36
|
+
|----|------|-------|
|
|
37
|
+
| REQ-001 | Model Origin Registry as a first-class artifact (model → vendor → jurisdiction/origin class) | MUST |
|
|
38
|
+
| REQ-002 | Provenance Policy schema (allow/deny origins, local-weights distinction, mode, unknown-origin) | MUST |
|
|
39
|
+
| REQ-003 | Fail-closed enforcement at every model-selection point | MUST |
|
|
40
|
+
| REQ-004 | Auditable provenance evidence (model + origin per generation; compliance report) | MUST |
|
|
41
|
+
| REQ-005 | Reference policy pack(s) demonstrating the mechanism (content owned by customer/pack) | SHOULD |
|
|
42
|
+
| REQ-006 | Unknown-origin model → fail-closed block/escalate (no silent pass) | MUST |
|
|
43
|
+
| REQ-007 | Provenance policy content sovereignty — mechanism neutral, policy owned by customer | SHOULD |
|
|
44
|
+
|
|
45
|
+
### REQ-001 — Model Origin Registry
|
|
46
|
+
|
|
47
|
+
Each known model MUST be classified by **vendor → jurisdiction → origin class**. Like the
|
|
48
|
+
`license-compliance` license DB, the registry is maintainable and extensible by the
|
|
49
|
+
ecosystem/customer. At minimum the origin classes distinguish western-frontier,
|
|
50
|
+
western-open, and other-origin so a policy can be expressed against them. Example:
|
|
51
|
+
|
|
52
|
+
| Model | Vendor | Jurisdiction | Origin class |
|
|
53
|
+
|-------|--------|--------------|--------------|
|
|
54
|
+
| Claude | Anthropic | US | western-frontier |
|
|
55
|
+
| GPT / o-series | OpenAI | US | western-frontier |
|
|
56
|
+
| Gemini | Google | US | western-frontier |
|
|
57
|
+
| Llama | Meta | US | western-open |
|
|
58
|
+
| Mistral | Mistral | EU | western-open |
|
|
59
|
+
| Gemma | Google | US | western-open |
|
|
60
|
+
| DeepSeek | DeepSeek | CN | china-origin |
|
|
61
|
+
| MiniMax | MiniMax | CN | china-origin |
|
|
62
|
+
| Qwen | Alibaba | CN | china-origin |
|
|
63
|
+
|
|
64
|
+
### REQ-002 — Provenance Policy Schema
|
|
65
|
+
|
|
66
|
+
A per-project/per-customer policy MUST be expressible with at least: `allow_origins` /
|
|
67
|
+
`deny_origins` (by origin class), a **local-weights distinction** (a model accessed via a
|
|
68
|
+
foreign API — data egress — vs the same model's open weights run locally — data stays
|
|
69
|
+
local but the weights are foreign), an enforcement `mode` (`block` / `warn` /
|
|
70
|
+
`require_human`), and an `unknown_origin` behaviour that is **fail-closed** by default.
|
|
71
|
+
|
|
72
|
+
```jsonc
|
|
73
|
+
{
|
|
74
|
+
"allow_origins": ["western-frontier", "western-open"],
|
|
75
|
+
"deny_origins": ["china-origin"],
|
|
76
|
+
"china_local_weights": "deny", // deny | allow_local_only — strict buyers deny even local foreign weights
|
|
77
|
+
"mode": "block", // block | warn | require_human
|
|
78
|
+
"unknown_origin": "block" // fail-closed
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### REQ-003 — Fail-Closed Enforcement
|
|
83
|
+
|
|
84
|
+
At **every model-selection point** (per-agent config / routing decision / BYOK), the chosen
|
|
85
|
+
model's origin MUST be checked against the active policy. A violation MUST **block (or
|
|
86
|
+
escalate)** fail-closed — never silently pass (mirrors the `license-compliance` blocklist
|
|
87
|
+
and the `verification-oracle` non-reproduction block). Enforcement plugs in *before* routing
|
|
88
|
+
so a disallowed source is swapped for an acceptable model rather than used.
|
|
89
|
+
|
|
90
|
+
### REQ-004 — Audit Evidence
|
|
91
|
+
|
|
92
|
+
Each generation MUST record the **model used + its origin class**, enabling a compliance
|
|
93
|
+
report such as *"this delivery used no models of the denied origin."* The evidence plugs
|
|
94
|
+
into the audit logger / hash chain, the `verification-oracle` correctness evidence
|
|
95
|
+
(XSPEC-256), and the telemetry allowlist (DEC-066). **This report is the outward proof of
|
|
96
|
+
the provenance/governance moat** and a compliance artifact for the customer.
|
|
97
|
+
|
|
98
|
+
### REQ-005 — Reference Policy Pack(s)
|
|
99
|
+
|
|
100
|
+
The mechanism SHOULD ship a small number of **reference policy packs** that demonstrate it
|
|
101
|
+
(for example a pack that denies a given origin including local weights). The mechanism is
|
|
102
|
+
domain-neutral; the **concrete policy content is owned by the customer or a compliance
|
|
103
|
+
partner** (mirrors the reference-pack positioning of compliance domain packs).
|
|
104
|
+
|
|
105
|
+
### REQ-006 — Unknown-Origin Fail-Closed
|
|
106
|
+
|
|
107
|
+
A model whose origin is **not in the registry** (unknown provenance) MUST NOT be silently
|
|
108
|
+
allowed. The system MUST treat unknown origin as a **fail-closed block or escalation**
|
|
109
|
+
(REQ-002 `unknown_origin`), consistent with the governance-gate "no silent pass" rule.
|
|
110
|
+
|
|
111
|
+
### REQ-007 — Provenance Policy Content Sovereignty
|
|
112
|
+
|
|
113
|
+
The provenance *mechanism* is domain-neutral (DEC-075); the *policy content* (which origins
|
|
114
|
+
are acceptable) is owned by the customer (DEC-063). Adopters SHOULD keep policies
|
|
115
|
+
customer-scoped and isolated (see `license-compliance` / `verification-oracle` per-customer
|
|
116
|
+
patterns, DEC-064).
|
|
117
|
+
|
|
118
|
+
## Principles
|
|
119
|
+
|
|
120
|
+
| ID | Principle |
|
|
121
|
+
|----|-----------|
|
|
122
|
+
| P-1 | Provenance is a Third Axis — model choice is cost × quality × *acceptable source* |
|
|
123
|
+
| P-2 | Registry First — every model carries vendor/jurisdiction/origin class before a policy can act |
|
|
124
|
+
| P-3 | Fail-Closed — a denied or unknown origin blocks or escalates; never silent pass |
|
|
125
|
+
| P-4 | Evidence-Based — every generation records model + origin; a compliance report is producible |
|
|
126
|
+
| P-5 | Human Ceiling — ambiguous/`require_human` provenance escalates to a human (DEC-076) |
|
|
127
|
+
| P-6 | Content Sovereignty — mechanism neutral, acceptable-source policy owned by the customer |
|
|
128
|
+
|
|
129
|
+
## Gate Timing
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
model-selection point (per-agent config / router / BYOK)
|
|
133
|
+
│
|
|
134
|
+
├─→ [provenance policy check] ← REQ-003 fail-closed, pre-routing
|
|
135
|
+
│ │
|
|
136
|
+
│ denied / unknown ──→ block OR escalate to human ← REQ-006 / P-5 ceiling
|
|
137
|
+
│ │
|
|
138
|
+
│ allowed ──→ proceed; record model + origin ← REQ-004
|
|
139
|
+
↓
|
|
140
|
+
provenance audit / compliance report ← REQ-004 (outward moat proof)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Relationship to the Governance-Gate Family
|
|
144
|
+
|
|
145
|
+
| Profile | Standard | Axis | Registry/Check | Block trigger |
|
|
146
|
+
|---------|----------|------|----------------|---------------|
|
|
147
|
+
| Licensing | `license-compliance` (XSPEC-193) | legal | blocklist/allowlist/greylist | prohibited license |
|
|
148
|
+
| **Provenance** | **`model-provenance` (XSPEC-255)** | **source** | **model origin registry + policy** | **denied / unknown origin** |
|
|
149
|
+
| Correctness | `verification-oracle` (XSPEC-256) | correct | ground-truth registry | non-reproduction / drift |
|
|
150
|
+
|
|
151
|
+
All three: fail-closed + audit evidence + customer override telemetered + human-escalation ceiling.
|
|
152
|
+
|
|
153
|
+
## Integration with Existing Standards
|
|
154
|
+
|
|
155
|
+
- **`license-compliance`** — sibling profile; the allowlist/denylist + fail-closed + audit +
|
|
156
|
+
override skeleton is shared (evaluate whether the two are one governance subsystem).
|
|
157
|
+
- **`verification-oracle`** — sibling profile; the provenance audit evidence sits alongside
|
|
158
|
+
the correctness evidence in the same audit/report artifact.
|
|
159
|
+
- **`model-selection`** — provenance is a *constraint* applied before the cost/quality
|
|
160
|
+
right-sizing of `model-selection`; an unacceptable source is removed from the candidate set.
|
|
161
|
+
- **`security-standards`** — data-egress concerns (foreign-API access) align with data
|
|
162
|
+
handling/security; local-weights distinction (REQ-002) is a data-sovereignty control.
|
|
163
|
+
- **`verification-evidence`** — the provenance report is a kind of verification evidence
|
|
164
|
+
(model + origin + no-denied-origin trace).
|
|
165
|
+
|
|
166
|
+
## Related Specs
|
|
167
|
+
|
|
168
|
+
- XSPEC-255 — Model Provenance Policy complete spec (this standard's source)
|
|
169
|
+
- XSPEC-193 / XSPEC-256 — sibling governance-gate profiles (licensing / correctness)
|
|
170
|
+
- DEC-075 — VibeOps domain-neutral positioning (neutral mechanism / policy belongs to ecosystem)
|
|
171
|
+
- DEC-063 — Legal & compliance strategy (regulated / sovereignty-sensitive customers)
|
|
172
|
+
- DEC-064 — Customer IP isolation strategy (per-customer policy scoping)
|
|
173
|
+
- DEC-066 — Telemetry-driven product evolution (audit/telemetry allowlist)
|
|
174
|
+
- DEC-076 — Self-serve north star (provenance = a self-serve ceiling)
|
|
175
|
+
- XSPEC-254 — Positioning pre-mortem (§7 #5 cost-structure / token economics — origin axis)
|
|
176
|
+
|
|
177
|
+
## Changelog
|
|
178
|
+
|
|
179
|
+
| Version | Date | Changes |
|
|
180
|
+
|---------|------|---------|
|
|
181
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~007: model origin registry, provenance policy schema, fail-closed enforcement at model-selection points, audit evidence, reference policy packs, unknown-origin fail-closed, policy content sovereignty (XSPEC-255) |
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/model-selection.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.0.
|
|
6
|
-
**Last Updated**: 2026-
|
|
5
|
+
**Version**: 1.0.1
|
|
6
|
+
**Last Updated**: 2026-06-10
|
|
7
7
|
**Applicability**: AI-assisted development with multiple model tiers
|
|
8
8
|
**Scope**: universal
|
|
9
9
|
**Inspired by**: [Superpowers](https://github.com/obra/superpowers) — subagent-driven-development (MIT)
|
|
@@ -231,3 +231,28 @@ Escalation means using a more capable model, not repeating the same action. The
|
|
|
231
231
|
- **能力維度(XSPEC-027)** — 基於模型能力(Can this model do it?)
|
|
232
232
|
|
|
233
233
|
兩者並用:先依複雜度選擇 Tier,再依能力維度確認選中的模型支援任務所需的 capability。
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Navigation Integration | 與下一步建議整合
|
|
238
|
+
|
|
239
|
+
The [ai-response-navigation](ai-response-navigation.md) standard (Rule R6, optional) allows each next-step suggestion option to carry a Tier annotation. The complexity signals in this standard serve as the judgment basis.
|
|
240
|
+
|
|
241
|
+
**Vendor-neutral principle**: Tier names (Fast / Standard / Capable) are tool-agnostic labels. They do not correspond to any specific vendor's model identifiers. Each platform or tool independently maintains its own Tier → concrete model mapping.
|
|
242
|
+
|
|
243
|
+
Example mapping (illustrative only, not normative):
|
|
244
|
+
|
|
245
|
+
| Tier | Typical capability level |
|
|
246
|
+
|------|--------------------------|
|
|
247
|
+
| Fast | Lightweight / instruction-following |
|
|
248
|
+
| Standard | Balanced reasoning + code generation |
|
|
249
|
+
| Capable | Advanced reasoning, architectural analysis |
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Version History
|
|
254
|
+
|
|
255
|
+
| Version | Date | Changes |
|
|
256
|
+
|---------|------|---------|
|
|
257
|
+
| 1.0.1 | 2026-06-10 | Add Navigation Integration section (R6 cross-reference; vendor-neutral principle) |
|
|
258
|
+
| 1.0.0 | 2026-03-20 | Initial release |
|