universal-dev-standards 5.4.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/bundled/ai/options/testing/integration-testing.ai.yaml +2 -2
  2. package/bundled/ai/options/testing/unit-testing.ai.yaml +2 -2
  3. package/bundled/ai/standards/adversarial-test.ai.yaml +277 -0
  4. package/bundled/ai/standards/audit-trail.ai.yaml +113 -0
  5. package/bundled/ai/standards/browser-compatibility-standards.ai.yaml +63 -0
  6. package/bundled/ai/standards/chaos-injection-tests.ai.yaml +91 -0
  7. package/bundled/ai/standards/container-image-standards.ai.yaml +88 -0
  8. package/bundled/ai/standards/container-security.ai.yaml +331 -0
  9. package/bundled/ai/standards/contract-testing-standards.ai.yaml +62 -0
  10. package/bundled/ai/standards/cost-budget-test.ai.yaml +96 -0
  11. package/bundled/ai/standards/cross-flow-regression.ai.yaml +61 -0
  12. package/bundled/ai/standards/data-contract.ai.yaml +110 -0
  13. package/bundled/ai/standards/data-migration-testing.ai.yaml +96 -0
  14. package/bundled/ai/standards/data-pipeline.ai.yaml +113 -0
  15. package/bundled/ai/standards/disaster-recovery-drill.ai.yaml +89 -0
  16. package/bundled/ai/standards/flaky-test-management.ai.yaml +89 -0
  17. package/bundled/ai/standards/flow-based-testing.ai.yaml +240 -0
  18. package/bundled/ai/standards/full-coverage-testing.ai.yaml +192 -0
  19. package/bundled/ai/standards/iac-design-principles.ai.yaml +83 -0
  20. package/bundled/ai/standards/incident-response.ai.yaml +107 -0
  21. package/bundled/ai/standards/license-compliance.ai.yaml +106 -0
  22. package/bundled/ai/standards/llm-output-validation.ai.yaml +269 -0
  23. package/bundled/ai/standards/mock-boundary.ai.yaml +250 -0
  24. package/bundled/ai/standards/mutation-testing.ai.yaml +192 -0
  25. package/bundled/ai/standards/pii-classification.ai.yaml +109 -0
  26. package/bundled/ai/standards/policy-as-code-testing.ai.yaml +227 -0
  27. package/bundled/ai/standards/prd-standards.ai.yaml +88 -0
  28. package/bundled/ai/standards/product-metrics-standards.ai.yaml +111 -0
  29. package/bundled/ai/standards/prompt-regression.ai.yaml +94 -0
  30. package/bundled/ai/standards/property-based-testing.ai.yaml +105 -0
  31. package/bundled/ai/standards/release-quality-manifest.ai.yaml +135 -0
  32. package/bundled/ai/standards/release-readiness-gate.ai.yaml +77 -0
  33. package/bundled/ai/standards/replay-test.ai.yaml +111 -0
  34. package/bundled/ai/standards/runbook.ai.yaml +104 -0
  35. package/bundled/ai/standards/sast-advanced.ai.yaml +135 -0
  36. package/bundled/ai/standards/schema-evolution.ai.yaml +111 -0
  37. package/bundled/ai/standards/secret-management-standards.ai.yaml +105 -0
  38. package/bundled/ai/standards/secure-op.ai.yaml +365 -0
  39. package/bundled/ai/standards/security-testing.ai.yaml +171 -0
  40. package/bundled/ai/standards/server-ops-security.ai.yaml +274 -0
  41. package/bundled/ai/standards/slo-sli.ai.yaml +97 -0
  42. package/bundled/ai/standards/smoke-test.ai.yaml +87 -0
  43. package/bundled/ai/standards/supply-chain-attestation.ai.yaml +109 -0
  44. package/bundled/ai/standards/test-completeness-dimensions.ai.yaml +52 -5
  45. package/bundled/ai/standards/testing.ai.yaml +20 -13
  46. package/bundled/ai/standards/user-story-mapping.ai.yaml +108 -0
  47. package/bundled/core/accessibility-standards.md +58 -0
  48. package/bundled/core/adversarial-test.md +212 -0
  49. package/bundled/core/branch-completion.md +4 -0
  50. package/bundled/core/browser-compatibility-standards.md +220 -0
  51. package/bundled/core/chaos-injection-tests.md +116 -0
  52. package/bundled/core/checkin-standards.md +1 -0
  53. package/bundled/core/container-security.md +521 -0
  54. package/bundled/core/contract-testing-standards.md +182 -0
  55. package/bundled/core/cost-budget-test.md +69 -0
  56. package/bundled/core/cross-flow-regression.md +190 -0
  57. package/bundled/core/data-migration-testing.md +110 -0
  58. package/bundled/core/disaster-recovery-drill.md +73 -0
  59. package/bundled/core/flaky-test-management.md +73 -0
  60. package/bundled/core/flow-based-testing.md +275 -0
  61. package/bundled/core/full-coverage-testing.md +183 -0
  62. package/bundled/core/llm-output-validation.md +178 -0
  63. package/bundled/core/mock-boundary.md +100 -0
  64. package/bundled/core/mutation-testing.md +97 -0
  65. package/bundled/core/performance-standards.md +65 -0
  66. package/bundled/core/policy-as-code-testing.md +188 -0
  67. package/bundled/core/prompt-regression.md +72 -0
  68. package/bundled/core/property-based-testing.md +73 -0
  69. package/bundled/core/release-quality-manifest.md +193 -0
  70. package/bundled/core/release-readiness-gate.md +184 -0
  71. package/bundled/core/replay-test.md +86 -0
  72. package/bundled/core/sast-advanced.md +300 -0
  73. package/bundled/core/secure-op.md +314 -0
  74. package/bundled/core/security-testing.md +87 -0
  75. package/bundled/core/server-ops-security.md +493 -0
  76. package/bundled/core/smoke-test.md +65 -0
  77. package/bundled/core/supply-chain-attestation.md +117 -0
  78. package/bundled/locales/zh-CN/CHANGELOG.md +3 -3
  79. package/bundled/locales/zh-CN/README.md +1 -1
  80. package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +5 -5
  81. package/bundled/locales/zh-TW/CHANGELOG.md +3 -3
  82. package/bundled/locales/zh-TW/README.md +1 -1
  83. package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +11 -0
  84. package/bundled/locales/zh-TW/core/contract-testing-standards.md +11 -0
  85. package/bundled/locales/zh-TW/core/cross-flow-regression.md +11 -0
  86. package/bundled/locales/zh-TW/core/release-readiness-gate.md +11 -0
  87. package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +183 -79
  88. package/bundled/skills/README.md +4 -3
  89. package/bundled/skills/SKILL_NAMING.md +94 -0
  90. package/bundled/skills/ai-instruction-standards/SKILL.md +181 -88
  91. package/bundled/skills/atdd-assistant/SKILL.md +8 -0
  92. package/bundled/skills/bdd-assistant/SKILL.md +7 -0
  93. package/bundled/skills/checkin-assistant/SKILL.md +8 -0
  94. package/bundled/skills/code-review-assistant/SKILL.md +7 -0
  95. package/bundled/skills/journey-test-assistant/SKILL.md +203 -0
  96. package/bundled/skills/orchestrate/SKILL.md +167 -0
  97. package/bundled/skills/plan/SKILL.md +234 -0
  98. package/bundled/skills/pr-automation-assistant/SKILL.md +8 -0
  99. package/bundled/skills/push/SKILL.md +49 -2
  100. package/bundled/skills/{process-automation → skill-builder}/SKILL.md +1 -1
  101. package/bundled/skills/{forward-derivation → spec-derivation}/SKILL.md +1 -1
  102. package/bundled/skills/spec-driven-dev/SKILL.md +7 -0
  103. package/bundled/skills/sweep/SKILL.md +145 -0
  104. package/bundled/skills/tdd-assistant/SKILL.md +7 -0
  105. package/package.json +6 -6
  106. package/src/commands/check.js +43 -0
  107. package/src/commands/flow.js +8 -0
  108. package/src/commands/init.js +2 -1
  109. package/src/commands/start.js +14 -0
  110. package/src/commands/sweep.js +8 -0
  111. package/src/commands/update.js +10 -0
  112. package/src/commands/workflow.js +8 -0
  113. package/standards-registry.json +483 -5
  114. package/bundled/locales/zh-CN/skills/ac-coverage-assistant/SKILL.md +0 -190
  115. package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +0 -71
  116. package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +0 -130
  117. package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +0 -88
  118. package/bundled/locales/zh-CN/skills/methodology-system/create-methodology.md +0 -350
  119. package/bundled/locales/zh-CN/skills/methodology-system/guide.md +0 -131
  120. package/bundled/locales/zh-CN/skills/methodology-system/runtime.md +0 -279
  121. package/bundled/locales/zh-CN/skills/process-automation/SKILL.md +0 -143
  122. package/bundled/locales/zh-TW/skills/ac-coverage-assistant/SKILL.md +0 -195
  123. package/bundled/locales/zh-TW/skills/deploy-assistant/SKILL.md +0 -178
  124. package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +0 -69
  125. package/bundled/locales/zh-TW/skills/forward-derivation/guide.md +0 -415
  126. package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +0 -86
  127. package/bundled/locales/zh-TW/skills/methodology-system/create-methodology.md +0 -350
  128. package/bundled/locales/zh-TW/skills/methodology-system/guide.md +0 -131
  129. package/bundled/locales/zh-TW/skills/methodology-system/runtime.md +0 -279
  130. package/bundled/locales/zh-TW/skills/process-automation/SKILL.md +0 -144
  131. /package/bundled/skills/{ac-coverage-assistant → ac-coverage}/SKILL.md +0 -0
  132. /package/bundled/skills/{methodology-system → dev-methodology}/SKILL.md +0 -0
  133. /package/bundled/skills/{methodology-system → dev-methodology}/create-methodology.md +0 -0
  134. /package/bundled/skills/{methodology-system → dev-methodology}/guide.md +0 -0
  135. /package/bundled/skills/{methodology-system → dev-methodology}/integrated-flow.md +0 -0
  136. /package/bundled/skills/{methodology-system → dev-methodology}/prerequisite-check.md +0 -0
  137. /package/bundled/skills/{methodology-system → dev-methodology}/runtime.md +0 -0
  138. /package/bundled/skills/{forward-derivation → spec-derivation}/guide.md +0 -0
@@ -0,0 +1,193 @@
1
+ # Release Quality Manifest
2
+
3
+ ## Overview
4
+
5
+ A Release Quality Manifest (RQM) is a machine-readable document generated automatically by CI for every release. It aggregates the results of all quality gates into a single artifact that serves as the authoritative evidence of release readiness — both for internal go/no-go automation and for customer audits.
6
+
7
+ ## Why a Manifest?
8
+
9
+ Without a manifest, quality evidence is scattered across CI logs, coverage HTML reports, SARIF files, and container scan summaries. When a customer asks "how was this release tested?", the answer is either "trust us" or a 45-minute manual aggregation exercise.
10
+
11
+ A Release Quality Manifest makes quality evidence:
12
+ - **Aggregated**: one file, all gates
13
+ - **Machine-readable**: downstream tooling can parse and enforce
14
+ - **Timestamped and commit-pinned**: tied to a specific release artifact
15
+ - **Customer-shareable**: ready to attach to a release package
16
+
17
+ ## Schema
18
+
19
+ The RQM now covers **16 quality dimensions** matching `release-readiness-gate.md`. Automated gates appear here; human-verified gates appear in the Release Readiness Sign-off document.
20
+
21
+ ```yaml
22
+ release: vibeops-commercial-1.2.0
23
+ generated_at: "2026-05-05T04:00:00Z"
24
+ commit: "abc1234"
25
+ gates:
26
+ # ── Automated quality gates ──────────────────────────────
27
+ unit_coverage:
28
+ actual: "73%"
29
+ target: "80%"
30
+ status: warn # within 10pp of target → warn, not fail
31
+ mutation_score:
32
+ actual: "62%"
33
+ target: "60%"
34
+ status: pass
35
+ sca_critical_cve:
36
+ actual: 0
37
+ target: 0
38
+ status: pass
39
+ sca_high_cve:
40
+ actual: 0
41
+ target: 0
42
+ status: pass
43
+ sast_high:
44
+ actual: 0
45
+ target: 0
46
+ status: pass
47
+ e2e_pass_rate:
48
+ actual: "96%"
49
+ target: "95%"
50
+ status: pass
51
+ container_cve_critical:
52
+ actual: 0
53
+ target: 0
54
+ status: pass
55
+ image_signed:
56
+ actual: true
57
+ target: true
58
+ status: pass
59
+ sbom_present:
60
+ actual: true
61
+ target: true
62
+ status: pass
63
+ # ── Extended dimensions (aligned with release-readiness-gate.md) ──
64
+ a11y_critical: # Dimension 3: axe-core critical violations
65
+ actual: 0
66
+ target: 0
67
+ status: pass
68
+ a11y_serious: # Dimension 3: axe-core serious violations
69
+ actual: 0
70
+ target: 0
71
+ status: pass
72
+ contract_drift: # Dimension 4: consumer contracts failing (n/a if no consumers)
73
+ actual: 0
74
+ target: 0
75
+ status: pass # or "n/a" if no API consumers
76
+ cross_flow_cuj_pass_rate: # Dimension 6: critical user journey pass rate
77
+ actual: "100%"
78
+ target: "95%"
79
+ status: pass
80
+ browser_tier1_pass_rate: # Dimension 9: Tier-1 browser matrix (n/a for non-frontend)
81
+ actual: "100%"
82
+ target: "100%"
83
+ status: pass # or "n/a" for CLI/backend
84
+ capacity_headroom_cpu_pct: # Dimension 10: CPU headroom at projected peak (n/a for small projects)
85
+ actual: "42%"
86
+ target: "30%"
87
+ status: pass # or "n/a" for small-scale projects
88
+ smoke_pass_rate: # Dimension 14: post-deploy smoke (populated after staging deploy)
89
+ actual: "100%"
90
+ target: "100%"
91
+ status: pass
92
+ flow_gate_report: # Dimension 16: Multi-Gate Flow verification
93
+ gate_0_complete: true # all flows with ≥3 steps have §2.4 + §9.4 filled
94
+ gate_1_pr_coverage: true # all PRs touching flows include terminal-state tests
95
+ gate_3_ci_pass: true # Decision Table CI all green; branch coverage ≥ 90%
96
+ gate_4_uat_signoff: true # UAT sign-off table signed
97
+ status: pass
98
+ overall: WARN # worst gate status across all dimensions (2 warns, no fails)
99
+ ```
100
+
101
+ ## Status Semantics
102
+
103
+ | Status | Meaning | Action |
104
+ |--------|---------|--------|
105
+ | `pass` | Meets or exceeds target | None required |
106
+ | `warn` | Within acceptable deviation (see per-gate policy) | Document reason; no release block |
107
+ | `fail` | Below hard minimum | **Blocks release** |
108
+
109
+ ### Per-Gate Hard Minimums
110
+
111
+ | Gate | Warn Band | Fail Threshold | Release Readiness Dimension |
112
+ |------|-----------|----------------|----------------------------|
113
+ | unit_coverage | target - 10pp to target | below target - 10pp | (core RQM) |
114
+ | mutation_score | target - 5pp to target | below target - 5pp | (core RQM) |
115
+ | sca_critical_cve | — | any critical CVE = fail | Dim 2 (Security) |
116
+ | container_cve_critical | — | any critical CVE = fail | Dim 2 (Security) |
117
+ | e2e_pass_rate | target - 3pp to target | below target - 3pp | (core RQM) |
118
+ | a11y_critical | — | > 0 = fail | Dim 3 (a11y) |
119
+ | a11y_serious | project threshold | project threshold + 1-2 | Dim 3 (a11y) |
120
+ | contract_drift | — | any red consumer contract = fail (if n/a: skip) | Dim 4 (Contract) |
121
+ | cross_flow_cuj_pass_rate | 90–95% | < 90% | Dim 6 (Cross-flow Regression) |
122
+ | browser_tier1_pass_rate | — | < 100% (if n/a: skip) | Dim 9 (Browser Compat) |
123
+ | capacity_headroom_cpu_pct | 20–30% | < 20% (if n/a: skip) | Dim 10 (Capacity) |
124
+ | smoke_pass_rate | — | any smoke failure = fail | Dim 14 (Smoke) |
125
+ | flow_gate_report | gate_3_ci_pass=false | gate_0_complete=false OR gate_4_uat_signoff=false | Dim 16 (Multi-Gate Flow) |
126
+
127
+ ## Automated Generation
128
+
129
+ Generate the manifest in CI after all gate jobs complete:
130
+
131
+ ```bash
132
+ #!/usr/bin/env bash
133
+ # scripts/generate-quality-manifest.sh
134
+ set -euo pipefail
135
+
136
+ COVERAGE=$(node -e "
137
+ const r = JSON.parse(require('fs').readFileSync('coverage/coverage-summary.json'));
138
+ console.log(r.total.lines.pct.toFixed(1) + '%')
139
+ ")
140
+
141
+ MUTATION=$(node -e "
142
+ const r = JSON.parse(require('fs').readFileSync('reports/mutation/mutation-testing-report.json'));
143
+ console.log(r.metrics.mutationScore.toFixed(1) + '%')
144
+ ")
145
+
146
+ CRITICAL_CVE=$(jq '[.Results[]?.Vulnerabilities[]? | select(.Severity == "CRITICAL")] | length' trivy-report.json)
147
+
148
+ cat > quality-manifest.yaml <<YAML
149
+ release: ${RELEASE_TAG}
150
+ generated_at: "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
151
+ commit: "${GITHUB_SHA:-$(git rev-parse HEAD)}"
152
+ gates:
153
+ unit_coverage:
154
+ actual: "${COVERAGE}"
155
+ target: "80%"
156
+ status: $([ $(echo "$COVERAGE" | tr -d '%') -ge 80 ] && echo pass || echo warn)
157
+ sca_critical_cve:
158
+ actual: ${CRITICAL_CVE}
159
+ target: 0
160
+ status: $([ "$CRITICAL_CVE" -eq 0 ] && echo pass || echo fail)
161
+ overall: $(grep -q "fail" quality-manifest.yaml && echo FAIL || grep -q "warn" quality-manifest.yaml && echo WARN || echo PASS)
162
+ YAML
163
+ ```
164
+
165
+ ## Customer-Facing Summary
166
+
167
+ Generate a Markdown table alongside the YAML for inclusion in release notes:
168
+
169
+ ```markdown
170
+ ## Release Quality Gates — vibeops-commercial-1.2.0
171
+
172
+ | Gate | Actual | Target | Status |
173
+ |------|--------|--------|--------|
174
+ | Unit Test Coverage | 73% | 80% | ⚠️ WARN |
175
+ | Mutation Score | 62% | 60% | ✅ PASS |
176
+ | Critical CVEs | 0 | 0 | ✅ PASS |
177
+ ...
178
+ | **Overall** | | | ⚠️ WARN |
179
+ ```
180
+
181
+ ## Anti-Patterns
182
+
183
+ - **Manually authoring the manifest** — defeats the purpose; must be generated from tool outputs
184
+ - **Using warn for critical security gates** — `sca_critical_cve` and `container_cve_critical` are binary
185
+ - **Generating the manifest before all gates have run** — values must reflect actual results, not estimates
186
+ - **Not attaching the manifest to the release artifact** — a manifest in git history is not accessible to customers
187
+
188
+ ## See Also
189
+
190
+ - `verification-evidence.ai.yaml` — audit evidence principles
191
+ - `supply-chain-attestation.ai.yaml` — SBOM and provenance
192
+ - `testing.ai.yaml` — overall test strategy
193
+ - `deployment-standards.ai.yaml` — release gate integration
@@ -0,0 +1,184 @@
1
+ # Release Readiness Gate
2
+
3
+ > **Language**: English | [繁體中文](../locales/zh-TW/core/release-readiness-gate.md)
4
+
5
+ **Version**: 1.0.0
6
+ **Last Updated**: 2026-05-05
7
+ **Applicability**: All software projects preparing a production release
8
+ **Scope**: universal
9
+ **Industry Standards**: ISO/IEC 25010 (Product Quality), ISTQB Advanced Test Manager
10
+ **References**: `core/release-quality-manifest.md`, `core/flow-based-testing.md`
11
+
12
+ ---
13
+
14
+ ## Purpose
15
+
16
+ This standard defines a **single, aggregated Release Readiness Gate** that unifies all quality dimensions into one explicit go/no-go decision before production deployment.
17
+
18
+ Without this gate, quality evidence is spread across 16+ separate standards. Teams pass individual checks but ship with unverified dimensions, because no one document says "you must pass *all of these* before release."
19
+
20
+ The Release Readiness Gate:
21
+ - **Aggregates** 16 quality dimensions into a tiered checklist
22
+ - **Connects** human sign-off (this document) to machine-readable evidence (`release-quality-manifest.md`)
23
+ - **Distinguishes** blocking criteria from advisory warnings
24
+ - **Scales** via Tier-1 / Tier-2 / Tier-3 classification to fit projects of different types and risk levels
25
+
26
+ ---
27
+
28
+ ## Relationship to Release Quality Manifest (RQM)
29
+
30
+ | Artifact | Format | Audience | Purpose |
31
+ |----------|--------|----------|---------|
32
+ | **Release Readiness Sign-off** (this document's template) | Markdown checklist | Humans (PM, QA, Eng Lead, Business) | Go/no-go decision, accountability, audit trail |
33
+ | **Release Quality Manifest** (`release-quality-manifest.md`) | YAML/JSON | CI, tooling, customers | Machine-readable aggregation, automated gate enforcement |
34
+
35
+ These two artifacts are generated **in parallel** for every release. The Sign-off covers human-verified dimensions; the RQM covers automated dimensions. Both must be `PASS` / `WARN` (never `FAIL`) before production deployment.
36
+
37
+ ---
38
+
39
+ ## Tier Classification
40
+
41
+ | Tier | Requirement | Miss = ? | Who Applies |
42
+ |------|-------------|---------|-------------|
43
+ | **Tier-1** | Must pass; release blocked if `FAIL` | Hard block | All projects |
44
+ | **Tier-2** | Should pass; `WARN` documented with rationale; no block | Documented WARN | All projects |
45
+ | **Tier-3** | Applicable when feature set or domain requires it; `N/A` is valid | N/A accepted | Depends on project type |
46
+
47
+ ---
48
+
49
+ ## 16-Dimension Release Readiness Matrix
50
+
51
+ | # | Dimension | Tier | Gate Type | Blocking Criterion | Evidence | Standard | Responsible |
52
+ |---|-----------|------|-----------|-------------------|----------|---------|-------------|
53
+ | 1 | **Performance / Load** | 2 | Automated | p95 latency regression > 10%; headroom < 20% | Load test report | `performance-standards.md` | Eng Lead + SRE |
54
+ | 2 | **Security** (SAST/DAST/SCA/secrets) | 1 | Automated | Any Critical/High CVE, SAST High unfixed, secret in diff | SARIF, Trivy, SBOM | `pipeline-security-gates.md` | SecEng / Eng Lead |
55
+ | 3 | **Accessibility (a11y)** | 2 | Automated + Manual | axe-core critical > 0; keyboard nav path broken | axe report, screen reader log | `accessibility-standards.md` §Release-Blocking Threshold | QA + UX |
56
+ | 4 | **API / Contract Testing** | 3 | Automated | Upstream consumer contract red; N-1 compat broken | Pact broker report | `contract-testing-standards.md` | API owner |
57
+ | 5 | **Database Migration** | 1 | Automated | up/rollback/idempotency test fails; data-preservation test fails | `data-migration-testing.md` gate results | `data-migration-testing.md` | DB Lead |
58
+ | 6 | **Cross-flow Regression** | 2 | Automated | Critical user journey pass rate < 95%; business-critical flow combo fails | Cross-flow regression report | `cross-flow-regression.md` | QA Lead |
59
+ | 7 | **Operational Readiness** | 1 | Manual | Runbook missing; alerting unconfigured; no rollback procedure | Runbook link, alert rule review | `runbook-standards.md`, `alerting-standards.md` | SRE / Ops |
60
+ | 8 | **Localization / i18n** | 2 | Automated | MISSING or MAJOR i18n gap in release (semver gap) | `check-translation-sync.sh` output | `translation-lifecycle-standards.md` | i18n Lead |
61
+ | 9 | **Browser / Device Compatibility** | 3 | Automated | Tier-1 browser/device pass rate < 100% | Playwright matrix report | `browser-compatibility-standards.md` | Frontend QA |
62
+ | 10 | **Capacity Sign-off** | 3 | Manual | Headroom < 30% at projected peak; no Eng+SRE sign-off | Capacity forecast + sign-off | `performance-standards.md` §Per-Release Capacity Sign-off | SRE + Eng Lead |
63
+ | 11 | **Compliance / Privacy** | 3 | Manual | GDPR/CCPA violation; audit log missing; retention policy broken | Privacy review checklist | `privacy-standards.md` | DPO / Legal |
64
+ | 12 | **Documentation Completeness** | 2 | Manual | CHANGELOG missing for release; customer-facing docs not updated | CHANGELOG diff, docs review | `changelog-standards.md`, `documentation-lifecycle.md` | Tech Writer / PM |
65
+ | 13 | **Rollback / Disaster Recovery** | 1 | Manual | No tested rollback procedure for this release; RTO > threshold | DR drill record; rollback script | `rollback-standards.md`, `disaster-recovery-drill.md` | SRE |
66
+ | 14 | **Production Smoke / Canary** | 1 | Automated | Post-deploy smoke fails; canary error rate > SLO | Smoke test results; canary dashboard | `smoke-test.md`, `cd-deployment-strategies.md` | SRE / DevOps |
67
+ | 15 | **Feature Flag Governance** | 2 | Manual | Default state not reviewed; kill-switch not tested | Flag audit checklist | `feature-flag-standards.md` | PM + Eng Lead |
68
+ | 16 | **Multi-Gate Flow Verification** | 2 | Automated + Manual | Gate 0 missing for any flow with ≥ 3 steps; Gate 3 CI fail; Gate 4 UAT sign-off missing | `flow_gate_report.json`; UAT sign-off table | `flow-based-testing.md` §Multi-Gate | QA Lead + Business |
69
+
70
+ > **Note on Tier-3**: Mark as `N/A` when not applicable (e.g., browser matrix for a CLI tool; contract testing for a standalone service with no API consumers). `N/A` requires a rationale comment in the sign-off.
71
+
72
+ ---
73
+
74
+ ## Release Readiness Sign-off Template
75
+
76
+ > Copy this template for each release. File as `.release-readiness/<version>.md` in the repo root, or attach to the release artifact.
77
+
78
+ ```markdown
79
+ # Release Readiness Sign-off
80
+
81
+ **Release**: [tag/version]
82
+ **Date**: [YYYY-MM-DD]
83
+ **Environment**: Pre-Production → Production
84
+ **RQM Artifact**: [link or commit SHA]
85
+
86
+ ## Tier-1 Gates (ALL must be PASS)
87
+
88
+ | # | Dimension | Status | Evidence | Sign-off |
89
+ |---|-----------|--------|----------|---------|
90
+ | 2 | Security (SAST/DAST/SCA) | PASS / FAIL | [link] | [name] |
91
+ | 5 | Database Migration | PASS / FAIL | [link] | [name] |
92
+ | 7 | Operational Readiness | PASS / FAIL | [link] | [name] |
93
+ | 13 | Rollback / DR | PASS / FAIL | [link] | [name] |
94
+ | 14 | Production Smoke/Canary | PASS / FAIL | [link] | [name] |
95
+
96
+ ## Tier-2 Gates (WARN must have rationale)
97
+
98
+ | # | Dimension | Status | Evidence | Rationale (if WARN) | Sign-off |
99
+ |---|-----------|--------|----------|---------------------|---------|
100
+ | 1 | Performance / Load | PASS / WARN / FAIL | [link] | | [name] |
101
+ | 3 | Accessibility | PASS / WARN / FAIL | [link] | | [name] |
102
+ | 6 | Cross-flow Regression | PASS / WARN / FAIL | [link] | | [name] |
103
+ | 8 | Localization / i18n | PASS / WARN / FAIL | [link] | | [name] |
104
+ | 12 | Documentation | PASS / WARN / FAIL | [link] | | [name] |
105
+ | 15 | Feature Flag Governance | PASS / WARN / FAIL | [link] | | [name] |
106
+ | 16 | Multi-Gate Flow Verification | PASS / WARN / FAIL | [link] | | [name] |
107
+
108
+ ## Tier-3 Gates (N/A with rationale allowed)
109
+
110
+ | # | Dimension | Status | Evidence | Rationale (if N/A) | Sign-off |
111
+ |---|-----------|--------|----------|---------------------|---------|
112
+ | 4 | API / Contract Testing | PASS / WARN / N/A | [link] | | [name] |
113
+ | 9 | Browser / Device Compat | PASS / WARN / N/A | [link] | | [name] |
114
+ | 10 | Capacity Sign-off | PASS / WARN / N/A | [link] | | [name] |
115
+ | 11 | Compliance / Privacy | PASS / WARN / N/A | [link] | | [name] |
116
+
117
+ ## Overall Decision
118
+
119
+ - [ ] **GO** — All Tier-1 PASS; all WARN documented; all N/A have rationale
120
+ - [ ] **NO-GO** — One or more Tier-1 FAIL, or undocumented WARN
121
+
122
+ **Decision made by**: [name, role]
123
+ **Date**: [YYYY-MM-DD]
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Status Semantics
129
+
130
+ | Status | Meaning | Release Impact |
131
+ |--------|---------|----------------|
132
+ | `PASS` | Meets or exceeds all criteria | None |
133
+ | `WARN` | Below target but above hard minimum; rationale documented | Allowed; logged |
134
+ | `FAIL` | Below hard minimum; unresolved | **Blocks release** |
135
+ | `N/A` | Dimension not applicable to this project/release; rationale documented | Allowed |
136
+
137
+ ---
138
+
139
+ ## When to Create the Sign-off
140
+
141
+ | Milestone | Action |
142
+ |-----------|--------|
143
+ | Release candidate tagged | Create `.release-readiness/<version>.md` from template; fill evidence links |
144
+ | Pre-UAT deployment | Gate 3 CI results populated; Tier-1 automated gates verified |
145
+ | UAT sign-off (Gate 4) | Tier-3 manual gates completed; Multi-Gate Flow row finalized |
146
+ | Production deployment decision | Overall GO/NO-GO decision signed by release owner |
147
+
148
+ The sign-off is **not** an afterthought — Gate 0 (PRD completeness) and Gate 1 (PR-level tests) must be satisfied long before the sign-off document is created. The sign-off aggregates evidence that was being collected throughout the release cycle.
149
+
150
+ ---
151
+
152
+ ## Anti-Patterns
153
+
154
+ - **Creating the sign-off the day of deployment** — evidence should be collected incrementally throughout the release cycle
155
+ - **Marking WARN without rationale** — WARN without documented reason is functionally equivalent to ignoring the gate
156
+ - **Skipping Tier-3 entirely without N/A rationale** — if browser testing is omitted for a web app, that must be explicitly justified
157
+ - **Treating the Sign-off as a rubber stamp** — every row requires a named sign-off owner; anonymous collective ownership means no real accountability
158
+ - **Using a shared sign-off for multiple releases** — one sign-off per release tag; do not reuse across versions
159
+
160
+ ---
161
+
162
+ ## See Also
163
+
164
+ - `release-quality-manifest.md` — machine-readable RQM (the automated counterpart to this sign-off)
165
+ - `flow-based-testing.md` — Multi-Gate Flow Model (Dimension 16)
166
+ - `branch-completion.md` — branch-level gate (prerequisite; not equivalent to release readiness)
167
+ - `verification-evidence.md` — evidence standards (all evidence links must meet this standard)
168
+ - `deployment-standards.md` — post-deploy gate integration
169
+
170
+ ---
171
+
172
+ ## Version History
173
+
174
+ | Version | Date | Changes |
175
+ |---------|------|---------|
176
+ | 1.0.0 | 2026-05-05 | Initial release: 16-dimension matrix, tiered sign-off template, RQM integration |
177
+
178
+ ---
179
+
180
+ ## License
181
+
182
+ This standard is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
183
+
184
+ **Source**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
@@ -0,0 +1,86 @@
1
+ # Replay Test Standards
2
+
3
+ ## Overview
4
+
5
+ AI agent systems interact with users through complex multi-step pipelines. When a customer reports unexpected behaviour, reproducing the exact failure is often difficult — the model output may be non-deterministic, the environment may have changed, or the exact inputs may be unclear. Golden fixture replay solves this by serialising the exact inputs and expected outputs at time of discovery, enabling deterministic regression tests.
6
+
7
+ ## Fixture Format
8
+
9
+ ```json
10
+ {
11
+ "meta": {
12
+ "recorded": "2026-05-05",
13
+ "source": "customer-report | ci-regression | red-team | incident",
14
+ "description": "Human-readable description of what this tests"
15
+ },
16
+ "input": { /* exact component input */ },
17
+ "expected": { /* expected output fields to assert */ }
18
+ }
19
+ ```
20
+
21
+ ## Fixture Naming
22
+
23
+ `<component>-<outcome>-<description>.json`
24
+
25
+ | Good | Bad |
26
+ |------|-----|
27
+ | `guardian-deny-prod-drop-table.json` | `test1.json` |
28
+ | `guardian-allow-dev-npm-test.json` | `fixture.json` |
29
+ | `guardian-hitl-prod-irreversible.json` | `scenario_3.json` |
30
+
31
+ ## Replay Test Implementation (Vitest)
32
+
33
+ ```typescript
34
+ // SPDX-License-Identifier: AGPL-3.0-only
35
+ import { readdirSync, readFileSync } from "fs"
36
+ import { join } from "path"
37
+ import { describe, it, expect } from "vitest"
38
+ import { scoreReviewable } from "../scoring/risk-engine.js"
39
+
40
+ const FIXTURES_DIR = join(__dirname, "..", "__fixtures__")
41
+
42
+ interface ReplayFixture {
43
+ meta: { recorded: string; source: string; description: string }
44
+ input: Parameters<typeof scoreReviewable>[0]
45
+ expected: { decision: string }
46
+ }
47
+
48
+ function deriveDecision(score: number): string {
49
+ if (score >= 76) return "DENY"
50
+ if (score >= 51) return "REQUIRE_HITL"
51
+ return "ALLOW"
52
+ }
53
+
54
+ describe("Guardian replay fixtures", () => {
55
+ const fixtures = readdirSync(FIXTURES_DIR)
56
+ .filter(f => f.endsWith(".json"))
57
+ .map(f => ({
58
+ name: f,
59
+ fixture: JSON.parse(readFileSync(join(FIXTURES_DIR, f), "utf-8")) as ReplayFixture,
60
+ }))
61
+
62
+ for (const { name, fixture } of fixtures) {
63
+ it(`[${fixture.meta.source}] ${fixture.meta.description}`, () => {
64
+ const result = scoreReviewable(fixture.input)
65
+ const decision = deriveDecision(result.score)
66
+ expect(decision).toBe(fixture.expected.decision)
67
+ })
68
+ }
69
+ })
70
+ ```
71
+
72
+ ## Bug Regression Workflow
73
+
74
+ 1. Customer reports unexpected Guardian verdict
75
+ 2. Capture the exact `Reviewable` input (from audit logs)
76
+ 3. Create fixture file: `guardian-<outcome>-<description>.json`
77
+ 4. Reproduce failure locally (test should fail)
78
+ 5. Fix the bug
79
+ 6. Confirm test passes
80
+ 7. The fixture now permanently prevents regression
81
+
82
+ ## Related Standards
83
+
84
+ - [Adversarial Test Standards](adversarial-test.md) — red-team corpus
85
+ - [Verification Evidence Standards](verification-evidence.md) — AC traceability
86
+ - [Testing Standards](testing.md) — overall test pyramid