universal-dev-standards 5.5.0 → 5.7.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 (123) 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/agent-communication-protocol.ai.yaml +8 -9
  4. package/bundled/ai/standards/agent-dispatch.ai.yaml +8 -9
  5. package/bundled/ai/standards/branch-completion.ai.yaml +8 -10
  6. package/bundled/ai/standards/browser-compatibility-standards.ai.yaml +63 -0
  7. package/bundled/ai/standards/capability-declaration.ai.yaml +4 -4
  8. package/bundled/ai/standards/change-batching-standards.ai.yaml +8 -10
  9. package/bundled/ai/standards/circuit-breaker.ai.yaml +7 -7
  10. package/bundled/ai/standards/contract-testing-standards.ai.yaml +62 -0
  11. package/bundled/ai/standards/cross-flow-regression.ai.yaml +61 -0
  12. package/bundled/ai/standards/disaster-recovery-drill.ai.yaml +1 -1
  13. package/bundled/ai/standards/dual-phase-output.ai.yaml +3 -3
  14. package/bundled/ai/standards/execution-history.ai.yaml +8 -10
  15. package/bundled/ai/standards/failure-source-taxonomy.ai.yaml +8 -10
  16. package/bundled/ai/standards/full-coverage-testing.ai.yaml +192 -0
  17. package/bundled/ai/standards/git-worktree.ai.yaml +1 -1
  18. package/bundled/ai/standards/governance-layer.ai.yaml +114 -0
  19. package/bundled/ai/standards/mock-boundary.ai.yaml +1 -1
  20. package/bundled/ai/standards/model-selection.ai.yaml +1 -1
  21. package/bundled/ai/standards/packaging-standards.ai.yaml +8 -8
  22. package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +8 -9
  23. package/bundled/ai/standards/pipeline-security-gates.ai.yaml +4 -0
  24. package/bundled/ai/standards/recovery-recipe-registry.ai.yaml +6 -10
  25. package/bundled/ai/standards/release-readiness-gate.ai.yaml +77 -0
  26. package/bundled/ai/standards/security-decision.ai.yaml +3 -3
  27. package/bundled/ai/standards/server-ops-security.ai.yaml +1 -1
  28. package/bundled/ai/standards/standard-admission-criteria.ai.yaml +1 -1
  29. package/bundled/ai/standards/standard-lifecycle-management.ai.yaml +1 -1
  30. package/bundled/ai/standards/supply-chain-attestation.ai.yaml +1 -1
  31. package/bundled/ai/standards/testing.ai.yaml +20 -13
  32. package/bundled/ai/standards/token-budget.ai.yaml +3 -3
  33. package/bundled/ai/standards/workflow-enforcement.ai.yaml +8 -11
  34. package/bundled/ai/standards/workflow-state-protocol.ai.yaml +8 -10
  35. package/bundled/core/accessibility-standards.md +58 -0
  36. package/bundled/core/adversarial-test.md +1 -1
  37. package/bundled/core/agent-behavior-discipline.md +4 -4
  38. package/bundled/core/agent-communication-protocol.md +5 -5
  39. package/bundled/core/branch-completion.md +4 -0
  40. package/bundled/core/browser-compatibility-standards.md +220 -0
  41. package/bundled/core/checkin-standards.md +1 -0
  42. package/bundled/core/circuit-breaker.md +4 -4
  43. package/bundled/core/container-security.md +8 -8
  44. package/bundled/core/contract-testing-standards.md +182 -0
  45. package/bundled/core/cross-flow-regression.md +190 -0
  46. package/bundled/core/disaster-recovery-drill.md +3 -3
  47. package/bundled/core/dual-phase-output.md +1 -1
  48. package/bundled/core/failure-source-taxonomy.md +3 -3
  49. package/bundled/core/flow-based-testing.md +135 -2
  50. package/bundled/core/full-coverage-testing.md +183 -0
  51. package/bundled/core/git-worktree.md +1 -1
  52. package/bundled/core/governance-layer.md +151 -0
  53. package/bundled/core/llm-output-validation.md +2 -2
  54. package/bundled/core/mock-boundary.md +1 -1
  55. package/bundled/core/packaging-standards.md +14 -14
  56. package/bundled/core/performance-standards.md +65 -0
  57. package/bundled/core/policy-as-code-testing.md +9 -9
  58. package/bundled/core/recovery-recipe-registry.md +2 -2
  59. package/bundled/core/release-quality-manifest.md +58 -12
  60. package/bundled/core/release-readiness-gate.md +184 -0
  61. package/bundled/core/sast-advanced.md +5 -5
  62. package/bundled/core/secure-op.md +5 -5
  63. package/bundled/core/security-decision.md +1 -1
  64. package/bundled/core/server-ops-security.md +15 -15
  65. package/bundled/core/smoke-test.md +1 -1
  66. package/bundled/core/standard-admission-criteria.md +1 -1
  67. package/bundled/core/standard-lifecycle-management.md +1 -1
  68. package/bundled/core/supply-chain-attestation.md +4 -4
  69. package/bundled/core/token-budget.md +3 -3
  70. package/bundled/locales/zh-CN/CHANGELOG.md +51 -4
  71. package/bundled/locales/zh-CN/README.md +11 -27
  72. package/bundled/locales/zh-CN/core/agent-communication-protocol.md +5 -5
  73. package/bundled/locales/zh-CN/core/circuit-breaker.md +1 -1
  74. package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
  75. package/bundled/locales/zh-CN/core/packaging-standards.md +14 -14
  76. package/bundled/locales/zh-CN/core/recovery-recipe-registry.md +6 -9
  77. package/bundled/locales/zh-CN/core/standard-admission-criteria.md +1 -1
  78. package/bundled/locales/zh-CN/core/standard-lifecycle-management.md +1 -1
  79. package/bundled/locales/zh-CN/core/token-budget.md +1 -1
  80. package/bundled/locales/zh-TW/CHANGELOG.md +51 -4
  81. package/bundled/locales/zh-TW/README.md +11 -27
  82. package/bundled/locales/zh-TW/core/agent-communication-protocol.md +5 -5
  83. package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +11 -0
  84. package/bundled/locales/zh-TW/core/capability-declaration.md +4 -4
  85. package/bundled/locales/zh-TW/core/circuit-breaker.md +7 -7
  86. package/bundled/locales/zh-TW/core/contract-testing-standards.md +11 -0
  87. package/bundled/locales/zh-TW/core/cross-flow-regression.md +11 -0
  88. package/bundled/locales/zh-TW/core/dual-phase-output.md +3 -3
  89. package/bundled/locales/zh-TW/core/failure-source-taxonomy.md +7 -9
  90. package/bundled/locales/zh-TW/core/governance-layer.md +159 -0
  91. package/bundled/locales/zh-TW/core/packaging-standards.md +14 -14
  92. package/bundled/locales/zh-TW/core/recovery-recipe-registry.md +6 -9
  93. package/bundled/locales/zh-TW/core/release-readiness-gate.md +11 -0
  94. package/bundled/locales/zh-TW/core/security-decision.md +3 -3
  95. package/bundled/locales/zh-TW/core/standard-admission-criteria.md +1 -1
  96. package/bundled/locales/zh-TW/core/standard-lifecycle-management.md +1 -1
  97. package/bundled/locales/zh-TW/core/token-budget.md +3 -3
  98. package/bundled/skills/README.md +23 -0
  99. package/bundled/skills/atdd-assistant/SKILL.md +4 -5
  100. package/bundled/skills/bdd-assistant/SKILL.md +4 -5
  101. package/bundled/skills/checkin-assistant/SKILL.md +4 -6
  102. package/bundled/skills/code-review-assistant/SKILL.md +4 -5
  103. package/bundled/skills/commands/observability.md +42 -0
  104. package/bundled/skills/commands/runbook.md +44 -0
  105. package/bundled/skills/commands/slo.md +45 -0
  106. package/bundled/skills/journey-test-assistant/SKILL.md +1 -1
  107. package/bundled/skills/orchestrate/SKILL.md +1 -1
  108. package/bundled/skills/plan/SKILL.md +1 -1
  109. package/bundled/skills/pr-automation-assistant/SKILL.md +4 -5
  110. package/bundled/skills/push/SKILL.md +1 -1
  111. package/bundled/skills/spec-driven-dev/SKILL.md +4 -5
  112. package/bundled/skills/sweep/SKILL.md +3 -3
  113. package/bundled/skills/tdd-assistant/SKILL.md +4 -5
  114. package/package.json +6 -6
  115. package/src/commands/check.js +43 -0
  116. package/src/commands/flow.js +7 -5
  117. package/src/commands/init.js +2 -1
  118. package/src/commands/start.js +7 -6
  119. package/src/commands/sweep.js +7 -6
  120. package/src/commands/update.js +10 -0
  121. package/src/commands/workflow.js +7 -6
  122. package/src/core/agent-communication-protocol.js +10 -3
  123. package/standards-registry.json +107 -51
@@ -0,0 +1,192 @@
1
+ # Full Coverage Testing Standards - AI Optimized
2
+ # XSPEC-178: Replaces pyramid threshold model with behavior-completeness paradigm
3
+ # Source: core/full-coverage-testing.md
4
+
5
+ standard:
6
+ id: full-coverage-testing
7
+ name: Full Coverage Testing Standards
8
+ description: Behavior-completeness full coverage paradigm replacing pyramid thresholds. Enforces anti-fake-test rules, STUB marker protocol, ratchet CI, and @ac traceability.
9
+
10
+ meta:
11
+ version: "1.0.0"
12
+ updated: "2026-05-06"
13
+ source: core/full-coverage-testing.md
14
+ replaces: "testing pyramid thresholds (UT≥80%/IT≥70%/E2E happy-path-only)"
15
+ xspec: "XSPEC-178"
16
+ description: AI-era full coverage paradigm — cost of writing tests equals cost of writing code, so there is no reason to set lower thresholds for any test layer.
17
+
18
+ rationale: |
19
+ Traditional pyramid thresholds (UT≥80%, IT≥70%) assumed tests were expensive to write.
20
+ AI code generation eliminates this cost differential — code and tests are produced at the
21
+ same speed. Therefore: maximize coverage everywhere, with behavior-completeness as the
22
+ measure, not a percentage floor.
23
+
24
+ coverage_model:
25
+ type: behavior_completeness
26
+ description: Every public function must have tests for all three behavioral paths
27
+ required_paths:
28
+ - id: happy_path
29
+ description: Normal input produces correct output
30
+ example: "calculateDiscount(100, 0.1) → 90"
31
+ - id: edge_case
32
+ description: Boundary values do not cause unexpected errors
33
+ example: "calculateDiscount(0, 1.0) → 0 without throwing"
34
+ - id: error_path
35
+ description: Invalid input raises clear error or returns error state
36
+ example: "calculateDiscount(-1, 2.0) → throws ArgumentError"
37
+
38
+ ratchet_policy:
39
+ enabled: true
40
+ description: Coverage can only increase, never decrease. PR that regresses coverage is blocked.
41
+ mechanism:
42
+ - Store baseline in .coverage-baseline.json on main branch
43
+ - Every PR compares current coverage against baseline
44
+ - Regression = PR blocked, not merged
45
+ - Improvement = new baseline set on merge
46
+ note: No fixed floor threshold. The current coverage IS the threshold.
47
+
48
+ rules:
49
+ # ── Behavior completeness ──────────────────────────────────────
50
+ - id: three-path-coverage
51
+ trigger: writing tests for any public function
52
+ instruction: |
53
+ Write at least three tests per public function:
54
+ 1. happy_path — normal inputs, expected output
55
+ 2. edge_case — boundary values (zero, max, empty, null)
56
+ 3. error_path — invalid inputs trigger explicit error or error state
57
+ priority: required
58
+
59
+ - id: ac-traceability
60
+ trigger: writing any test
61
+ instruction: |
62
+ Tag each test with the Acceptance Criteria it covers using JSDoc @ac tag.
63
+ Format: /** @ac AC-ID */ above the test function.
64
+ If no AC maps to this test, use: /** @ac UNTRACED */
65
+ priority: recommended
66
+ example: |
67
+ /**
68
+ * @ac AC-US03-2
69
+ */
70
+ it('should block PR when coverage regresses', () => { ... })
71
+
72
+ # ── Anti-fake test rules ───────────────────────────────────────
73
+ - id: no-tautology-assertions
74
+ trigger: writing any test assertion
75
+ instruction: |
76
+ FORBIDDEN: Tautology assertions that always pass regardless of behavior.
77
+ These add false coverage without verifying anything.
78
+ priority: required
79
+ forbidden_patterns:
80
+ - "expect(true).toBe(true)"
81
+ - "expect(false).toBe(false)"
82
+ - "expect(result).toBeDefined() // without specific value"
83
+ - "expect(result).not.toBeNull() // without specific value"
84
+ required_instead: "expect(result).toBe(<specific expected value>)"
85
+
86
+ - id: no-mock-business-logic
87
+ trigger: deciding what to mock
88
+ instruction: |
89
+ FORBIDDEN: Mocking core business logic or your own service functions.
90
+ Mocking your own code means the business logic is never actually executed.
91
+ priority: required
92
+ allowed_to_mock:
93
+ - External HTTP APIs (payment gateways, OAuth providers)
94
+ - Hardware interfaces (sensors, GPIO, Docker daemon)
95
+ - Third-party SDKs with no test mode
96
+ - File system (use tmpdir, not mock)
97
+ forbidden_to_mock:
98
+ - Core business calculation functions
99
+ - Your own service layer methods
100
+ - Database queries (use in-memory SQLite instead)
101
+ - Your own utility functions
102
+
103
+ - id: mock-must-have-reason
104
+ trigger: writing any mock/stub/spy
105
+ instruction: |
106
+ Every jest.mock(), vi.mock(), jest.spyOn(), or sinon.stub() must be preceded
107
+ by a comment explaining WHY this dependency must be mocked.
108
+ Format: // MOCK: <reason — what external dependency and why it cannot be real>
109
+ priority: required
110
+ example: |
111
+ // MOCK: External Stripe payment API — no sandbox available in CI
112
+ jest.mock('./payment-gateway', () => ({ charge: jest.fn().mockResolvedValue({ id: 'ch_test' }) }))
113
+
114
+ # ── STUB marker protocol ───────────────────────────────────────
115
+ - id: stub-marker-required
116
+ trigger: writing any temporary/placeholder implementation
117
+ instruction: |
118
+ ALL temporary implementations, placeholder functions, and fake returns
119
+ MUST be marked with the standard STUB marker.
120
+ Format: // WARNING: STUB — Remove before UAT
121
+ This marker is scanned by pre-push hooks and deploy.sh.
122
+ STUB markers block pushes to main and deployments to UAT/production.
123
+ priority: required
124
+ example: |
125
+ // WARNING: STUB — Remove before UAT
126
+ async function validatePayment(card: Card): Promise<boolean> {
127
+ return true; // Always approve — replace with real Stripe call
128
+ }
129
+
130
+ - id: coverage-exempt-format
131
+ trigger: dealing with genuinely untestable external dependencies
132
+ instruction: |
133
+ If a dependency truly cannot be tested (hardware, live external API with no sandbox),
134
+ declare an explicit exemption with a mandatory reason.
135
+ Format: // COVERAGE_EXEMPT: <specific reason why real test is impossible>
136
+ This exemption is respected by STUB scanners and will not trigger blocking.
137
+ The reason MUST be non-empty and specific.
138
+ priority: required
139
+ example: |
140
+ // COVERAGE_EXEMPT: Hardware temperature sensor — no simulation available in CI
141
+ async function readTemperature(): Promise<number> {
142
+ return hardwareSensor.read();
143
+ }
144
+
145
+ - id: no-silent-stub
146
+ trigger: reviewing code before commit
147
+ instruction: |
148
+ Stubbed/placeholder code without // WARNING: STUB is a violation.
149
+ Common patterns to watch for: functions that always return hardcoded values,
150
+ empty function bodies that should have logic, TODO comments without STUB marker.
151
+ These will eventually reach production undetected.
152
+ priority: required
153
+
154
+ deployment_gates:
155
+ pre_push_to_main:
156
+ action: block
157
+ trigger: "// WARNING: STUB" marker found in src/
158
+ message: "[STUB-BLOCK] STUB markers detected. Push to main rejected."
159
+ deploy_to_uat:
160
+ action: block
161
+ trigger: "// WARNING: STUB" marker found in src/
162
+ message: "[DEPLOY-BLOCK] STUB markers detected. UAT deployment aborted."
163
+ deploy_to_production:
164
+ action: block
165
+ trigger: "// WARNING: STUB" marker found in src/
166
+ message: "[CRITICAL] Production deployment with STUB markers is strictly prohibited."
167
+ deploy_to_staging:
168
+ action: warn
169
+ trigger: "// WARNING: STUB" marker found in src/
170
+ message: "[STUB-WARN] Deploying with STUB markers to staging. NOT permitted in UAT/production."
171
+ feature_branch_push:
172
+ action: warn
173
+ trigger: "// WARNING: STUB" marker found in src/
174
+ message: "[STUB-WARN] STUB markers found. Must remove before merging to main."
175
+
176
+ migration_from_pyramid:
177
+ deprecated:
178
+ - "UT ≥ 80% coverage threshold"
179
+ - "IT ≥ 70% coverage threshold"
180
+ - "E2E happy-path-only requirement"
181
+ replaced_by:
182
+ - "Behavior-completeness: happy/edge/error per public function"
183
+ - "Ratchet CI: coverage can only increase"
184
+ - "Anti-fake rules: no tautology, no business-logic mocks"
185
+ - "STUB protocol: deployment gates on all environments"
186
+
187
+ physical_spec:
188
+ type: custom_script
189
+ validator:
190
+ command: >
191
+ test -f scripts/check-stubs.sh && test -f scripts/check-anti-fake-tests.sh
192
+ rule: "xspec178_enforcement_scripts_present"
@@ -23,7 +23,7 @@ standard:
23
23
  lifecycle:
24
24
  - phase: setup
25
25
  steps:
26
- - "選擇 worktree 目錄位置(優先順序:existing → .devap/worktrees → 詢問使用者)"
26
+ - "選擇 worktree 目錄位置(優先順序:existing → .uds/worktrees → 詢問使用者)"
27
27
  - "執行 git check-ignore 確認目錄被忽略"
28
28
  - "建立 worktree + 新分支"
29
29
  - "安裝依賴(若需要)"
@@ -0,0 +1,114 @@
1
+ # Governance Layer Standard - AI Optimized
2
+ # Source: core/governance-layer.md
3
+
4
+ id: governance-layer
5
+ meta:
6
+ version: "1.0.0"
7
+ updated: "2026-05-07"
8
+ source: core/governance-layer.md
9
+ description: "治理層標準(Vision/Mission/Goals 三層架構 + KPI + 紅線清單)"
10
+ scope: universal
11
+ priority: meta
12
+
13
+ # This is Standard #0 — evaluated before all other standards
14
+ priority_order:
15
+ rule: "Governance layer overrides all other standards on conflict"
16
+ resolution_order:
17
+ 1: governance-layer (this standard)
18
+ 2: domain standards (testing, commit, deployment, etc.)
19
+ 3: project-specific overrides
20
+
21
+ # Three-layer schema requirements
22
+ schema:
23
+ vision:
24
+ required: true
25
+ format: "Single sentence, ≤ 50 tokens"
26
+ content: "Long-term direction; timeless; no metrics"
27
+ change_frequency: annual
28
+
29
+ mission:
30
+ required: true
31
+ format: "3–5 commitments + red_lines table (≤ 300 tokens total)"
32
+ content: "What we do / don't do; red lines with trigger conditions + actions"
33
+ change_frequency: quarterly
34
+ red_lines:
35
+ required_fields:
36
+ - id # Unique identifier (e.g., R1, GUARD-001)
37
+ - category # quality | safety | compliance | ethics
38
+ - clause # Human-readable forbidden/required statement
39
+ - action # block | warn | escalate_to_human
40
+ recommended_fields:
41
+ - mission_clause_ref # Reference to the mission commitment this enforces
42
+
43
+ goals:
44
+ required: true
45
+ format: "KPI table, ≤ 500 tokens"
46
+ change_frequency: per_sprint
47
+ falsifiability: "Every KPI must be measurable — no 'improve', 'enhance', 'better'"
48
+ kpi:
49
+ required_fields:
50
+ - id # Unique identifier (e.g., KPI-01)
51
+ - metric_name # Name of the tracked metric
52
+ - threshold # Quantified target (e.g., ≥ 95%, < 200 ms)
53
+ - measurement_method # How and when the metric is measured
54
+
55
+ # Red line action semantics
56
+ red_line_actions:
57
+ block:
58
+ description: "Halt pipeline immediately; do not proceed"
59
+ warn:
60
+ description: "Log violation and continue; escalate if threshold exceeded"
61
+ escalate_to_human:
62
+ description: "Pause and require human decision before continuing"
63
+
64
+ # AI evaluator integration
65
+ evaluator:
66
+ scoring_axes:
67
+ correctness:
68
+ weight: 0.4
69
+ veto_threshold: 0.3
70
+ mission_alignment:
71
+ weight: 0.3
72
+ veto_threshold: 0.3
73
+ goal_achievement:
74
+ weight: 0.3
75
+ veto_threshold: 0.3
76
+ veto_rule: "Any single axis < 0.3 → FAIL regardless of weighted sum"
77
+
78
+ # Risk acceptance for relaxed gates
79
+ risk_acceptance:
80
+ trigger: "gate.mode = trace_only (or any human gate bypass)"
81
+ required_fields:
82
+ - date
83
+ - signatory
84
+ - gates_bypassed
85
+ - risks_accepted
86
+ fail_closed: "Pipeline MUST refuse to start without a valid Risk Acceptance Clause"
87
+
88
+ # Governance file structure
89
+ file_structure:
90
+ directory: "governance/"
91
+ files:
92
+ - name: "vision.md"
93
+ content: "Single-sentence vision statement"
94
+ - name: "mission.md"
95
+ content: "Commitments + red lines table; Risk Acceptance Clause if applicable"
96
+ - name: "goals.md"
97
+ content: "KPI table (updated each Sprint)"
98
+
99
+ # Compliance checklist (AI-verifiable)
100
+ compliance_checks:
101
+ - id: CK-01
102
+ check: "Vision is a single sentence ≤ 50 tokens with no metrics"
103
+ - id: CK-02
104
+ check: "Mission has 3–5 commitments and a red_lines table"
105
+ - id: CK-03
106
+ check: "Every red line has: id, category, clause, action"
107
+ - id: CK-04
108
+ check: "Goals table present with all KPIs containing required fields"
109
+ - id: CK-05
110
+ check: "No KPI uses vague language (improve / enhance / better)"
111
+ - id: CK-06
112
+ check: "If gate.mode=trace_only, Risk Acceptance Clause exists in mission.md"
113
+ - id: CK-07
114
+ check: "Evaluator weights 0.4/0.3/0.3 with fail-closed veto at < 0.3"
@@ -20,7 +20,7 @@ core_problem:
20
20
  a specification of mock behavior rather than system behavior.
21
21
  The tests pass in CI while the real system silently fails.
22
22
  real_world_example: |
23
- // SPEC-002.test.ts (VibeOps) — hollow test example
23
+ // SPEC-002.test.ts (multi-agent pipeline project) — hollow test example
24
24
  vi.mock('../../src/runner/agent-runner.js') // Core dependency mocked
25
25
  vi.mock('../../src/runner/guardian-hooks.js') // Core dependency mocked
26
26
  vi.mock('../../src/runner/prototyper.js') // Core dependency mocked
@@ -103,7 +103,7 @@ standard:
103
103
  description: "數學推理準確率"
104
104
  benchmark: "gsm8k"
105
105
  instruction_following:
106
- description: "複雜多步驟指令遵循率(VibeOps 最重視)"
106
+ description: "複雜多步驟指令遵循率(多 Agent pipeline 場景最重視)"
107
107
  benchmark: "internal-instruction-bench"
108
108
  long_context_quality:
109
109
  description: "長文件中間段資訊存取(Lost-in-the-Middle)"
@@ -4,12 +4,12 @@
4
4
  standard:
5
5
  id: packaging
6
6
  name: Packaging Standards
7
- description: Recipe-based packaging framework for user projects using UDS/DevAP toolchain
7
+ description: Recipe-based packaging framework for user projects using a UDS-aware toolchain
8
8
  guidelines:
9
9
  - "Recipe-based: use built-in or custom recipes for each packaging target"
10
- - "Declarative: declare targets in .devap/packaging.yaml"
10
+ - "Declarative: declare targets in your project's packaging config (path is adoption-layer specific)"
11
11
  - "Customizable: override config, inject hooks, or write custom recipes"
12
- - "Pipeline-integrated: packaging runs between Review and Deploy in VibeOps"
12
+ - "Pipeline-integrated: packaging runs between Review and Deploy in the adoption-layer pipeline"
13
13
 
14
14
  meta:
15
15
  version: "1.0.0"
@@ -19,7 +19,7 @@ standard:
19
19
  principles:
20
20
  core:
21
21
  - recipe_based: "Every packaging target references a named Recipe; no ad-hoc scripts in pipeline YAML"
22
- - declarative_targets: "Projects declare targets in .devap/packaging.yaml; DevAP resolves and executes"
22
+ - declarative_targets: "Projects declare targets in their packaging config (file path is adoption-layer specific); the adoption-layer runtime resolves and executes"
23
23
  - customizable: "Four customization layers allow config overrides, hook injection, custom Recipes, and escape hatches"
24
24
  - pipeline_integrated: "Packaging runs as a named stage between Review and Deploy"
25
25
 
@@ -82,15 +82,15 @@ built_in_recipes:
82
82
  customization_layers:
83
83
  L1:
84
84
  name: config_override
85
- mechanism: "config: block in .devap/packaging.yaml"
85
+ mechanism: "config: block in .uds/packaging.yaml"
86
86
  when: "Change default values (registry URL, tag, output dir)"
87
87
  L2:
88
88
  name: hook_injection
89
- mechanism: "hooks: block in .devap/packaging.yaml"
89
+ mechanism: "hooks: block in .uds/packaging.yaml"
90
90
  when: "Run extra commands before/after build or publish"
91
91
  L3:
92
92
  name: custom_recipe
93
- mechanism: "New .yaml file in project's .devap/recipes/"
93
+ mechanism: "New .yaml file in project's .uds/recipes/"
94
94
  when: "Entirely different build process; built-ins don't apply"
95
95
  L4:
96
96
  name: escape_hatch
@@ -138,5 +138,5 @@ recipe_selection_guide:
138
138
  physical_spec:
139
139
  type: custom_script
140
140
  validator:
141
- command: "test -f .devap/packaging.yaml"
141
+ command: "test -f .uds/packaging.yaml"
142
142
  rule: "packaging_config_declared"
@@ -1,6 +1,6 @@
1
1
  # Pipeline Integration Standards - DEPRECATED STUB
2
- # This file has been migrated to DevAP per DEC-049 (UDS/DevAP responsibility split).
3
- # Canonical location: dev-autopilot/standards/flow/pipeline-integration-standards.ai.yaml
2
+ # Runtime details relocated to adoption layer (runtime moved to adoption layer 2026-04-28).
3
+ # Adoption layer must implement an equivalent runtime; UDS retains only the human-readable concept under core/.
4
4
  # Migration: XSPEC-086 Phase 2 (2026-04-27)
5
5
  #
6
6
  # Human-readable standard: core/pipeline-integration-standards.md (remains in UDS)
@@ -14,20 +14,19 @@ standard:
14
14
  deprecated: true
15
15
  deprecated_since: "5.4.0"
16
16
  removal_version: "6.0.0"
17
- canonical_owner: devap
18
- canonical_path: "dev-autopilot/standards/flow/pipeline-integration-standards.ai.yaml"
17
+ canonical_owner: adoption-layer
18
+ canonical_path: "" # adoption-layer responsibility
19
19
  source: core/pipeline-integration-standards.md
20
20
  description: >
21
- DEPRECATED: This standard has moved to DevAP (flow orchestration layer).
22
- Install DevAP and load standards/flow/pipeline-integration-standards.ai.yaml instead.
21
+ DEPRECATED: Runtime details relocated to adoption layer (runtime moved to adoption layer 2026-04-28).
22
+ Adoption layer must implement an equivalent runtime.
23
23
 
24
24
  rules:
25
25
  - id: deprecation-notice
26
26
  trigger: starting pipeline execution
27
27
  instruction: >
28
- This standard (pipeline-integration-standards.ai.yaml) has been migrated to DevAP.
28
+ Runtime details for this standard are now adoption-layer responsibility (runtime moved to adoption layer 2026-04-28).
29
29
  For the canonical executable definition, load:
30
- dev-autopilot/standards/flow/pipeline-integration-standards.ai.yaml
31
30
 
32
31
  The human-readable standard remains at:
33
32
  universal-dev-standards/core/pipeline-integration-standards.md
@@ -36,7 +35,7 @@ standard:
36
35
  - id: fail-safe-defaults
37
36
  trigger: toggle not found in configuration
38
37
  instruction: >
39
- DEPRECATED — load dev-autopilot/standards/flow/pipeline-integration-standards.ai.yaml
38
+ DEPRECATED — see universal-dev-standards/core/ for human-readable concept; runtime is adoption-layer responsibility
40
39
  for the current executable pipeline integration rules.
41
40
 
42
41
  Minimal fallback: Default all unset pipeline toggles to OFF (manual mode).
@@ -1,5 +1,9 @@
1
1
  # Pipeline Security Gates (AI-Optimized v1)
2
2
  # Source: core/pipeline-security-gates.md
3
+ # DEPRECATION NOTICE (XSPEC-086 Phase 3, 2026-04-28):
4
+ # Security gate orchestration (pipeline stage ordering, escalation flow) is now
5
+ # adoption-layer responsibility — UDS no longer ships an executable runtime.
6
+ # This file retains gate definitions, tools, severity levels, and failure_behavior only.
3
7
 
4
8
  standard:
5
9
  id: pipeline-security-gates
@@ -187,14 +187,10 @@ standard:
187
187
  on_exhaust: RecoveryStrategy
188
188
  message: "string (optional)"
189
189
 
190
+ # Integration guidance (informative; concrete file paths are adoption-layer concerns).
190
191
  integration_points:
191
- devap:
192
- files:
193
- - "packages/core/src/types.tsRecoveryRecipe / RecoveryStrategy type"
194
- - "packages/core/src/recovery-registry.tsRegistry 實作與預設 recipe"
195
- - "packages/core/src/orchestrator.tsfix loop 前查詢 Registry"
196
- vibeops:
197
- files:
198
- - "src/types/index.ts — 獨立定義 RecoveryRecipe(AGPL 隔離)"
199
- - "src/runner/recovery-registry.ts — 獨立實作"
200
- - "recovery-recipes.yaml — 預設 recipe 配置"
192
+ expected_call_sites:
193
+ - "core types module — RecoveryRecipe / RecoveryStrategy type"
194
+ - "recovery-registry module Registry 實作與預設 recipe"
195
+ - "orchestrator module fix loop 前查詢 Registry"
196
+ - "recovery-recipes config 預設 recipe 配置(檔名由採用層決定)"
@@ -0,0 +1,77 @@
1
+ # Release Readiness Gate Standards - AI Optimized
2
+ # Source: core/release-readiness-gate.md
3
+
4
+ id: release-readiness-gate
5
+ meta:
6
+ version: "1.0.0"
7
+ updated: "2026-05-05"
8
+ source: core/release-readiness-gate.md
9
+ description: Single aggregated release gate covering 16 quality dimensions with tiered sign-off template and RQM integration
10
+
11
+ requirements:
12
+ REQ-1:
13
+ id: REQ-RRG-001
14
+ title: 16-Dimension Coverage
15
+ rule: >
16
+ Every production release MUST evaluate all 16 quality dimensions defined in
17
+ core/release-readiness-gate.md. Tier-1 dimensions block release if FAIL.
18
+ Tier-2 dimensions require documented rationale if WARN. Tier-3 dimensions
19
+ require rationale if N/A.
20
+ rationale: >
21
+ Without explicit multi-dimension coverage, teams pass individual gate checks
22
+ but ship with unverified quality dimensions, creating systematic blind spots.
23
+
24
+ REQ-2:
25
+ id: REQ-RRG-002
26
+ title: Release Readiness Sign-off
27
+ rule: >
28
+ A Release Readiness Sign-off document MUST be created from the template in
29
+ core/release-readiness-gate.md for every release tag. It must be stored at
30
+ .release-readiness/<version>.md. The Overall Decision field must be explicitly
31
+ set to GO or NO-GO by a named release owner.
32
+ rationale: >
33
+ Anonymous or implicit GO decisions remove accountability; the sign-off creates
34
+ a named, dated, auditable record of the go/no-go decision and its evidence.
35
+
36
+ REQ-3:
37
+ id: REQ-RRG-003
38
+ title: Tier-1 Hard Block
39
+ rule: >
40
+ ANY Tier-1 dimension at FAIL status MUST block production deployment.
41
+ Tier-1 dimensions are: Security (Dim 2), DB Migration (Dim 5), Operational
42
+ Readiness (Dim 7), Rollback/DR (Dim 13), Production Smoke (Dim 14).
43
+ rationale: >
44
+ Tier-1 dimensions represent existential risks: security vulnerabilities,
45
+ broken rollback, misconfigured monitoring. No business justification
46
+ overrides a Tier-1 FAIL.
47
+
48
+ REQ-4:
49
+ id: REQ-RRG-004
50
+ title: RQM Alignment
51
+ rule: >
52
+ The machine-readable Release Quality Manifest (release-quality-manifest.md)
53
+ MUST include entries for all automated dimensions (a11y_critical, contract_drift,
54
+ cross_flow_cuj_pass_rate, browser_tier1_pass_rate, capacity_headroom_cpu_pct,
55
+ smoke_pass_rate, flow_gate_report). The RQM overall field must be PASS or WARN
56
+ (never FAIL) before deployment.
57
+ rationale: >
58
+ Human sign-off and machine manifest are complementary; the manifest enables
59
+ automated enforcement while the sign-off provides human accountability.
60
+
61
+ REQ-5:
62
+ id: REQ-RRG-005
63
+ title: Incremental Collection
64
+ rule: >
65
+ Release Readiness Sign-off evidence MUST be collected incrementally throughout
66
+ the release cycle (Gate 0 at PRD, Gate 3 pre-UAT, Gate 4 post-UAT). Creating
67
+ the sign-off on the day of deployment is an anti-pattern.
68
+ rationale: >
69
+ Last-minute sign-offs are rubber stamps; evidence collected late cannot
70
+ be acted upon without delaying the release.
71
+
72
+ quick_reference:
73
+ tier_1_dimensions: "Security, DB Migration, Operational Readiness, Rollback/DR, Production Smoke"
74
+ tier_2_dimensions: "Performance, a11y, Cross-flow Regression, i18n, Docs, Feature Flags, Multi-Gate Flow"
75
+ tier_3_dimensions: "Contract Testing, Browser Compat, Capacity, Compliance/Privacy"
76
+ sign_off_location: ".release-readiness/<version>.md"
77
+ rqm_integration: "flow_gate_report.json → release-quality-manifest.yaml field flow_gate_report"
@@ -76,9 +76,9 @@ standard:
76
76
  message: "[WARN] projectSettings security override rejected: {operation}"
77
77
 
78
78
  applicable_components:
79
- - "DevAP Safety Hook"
80
- - "VibeOps CommandPolicy"
81
- - "VibeOps Governance Framework (SPEC-049)"
79
+ - "Safety Hook 實作(採用層)"
80
+ - "CommandPolicy 實作(採用層)"
81
+ - "Governance Framework(採用層;OPA / Cedar / 自訂 policy engine 皆可)"
82
82
  - "任何多來源規則合併的安全仲裁場景"
83
83
 
84
84
  error_codes:
@@ -180,7 +180,7 @@ categories:
180
180
  aws: [Security Groups, NACLs, VPC Flow Logs]
181
181
  gcp: [VPC Firewall Rules, Cloud Armor]
182
182
  outbound_allowlist_format: |
183
- # Example: /etc/vibeops/outbound-allowlist.conf
183
+ # Example: /etc/ai-agent/outbound-allowlist.conf
184
184
  ALLOW api.openai.com:443
185
185
  ALLOW registry.npmjs.org:443
186
186
  DENY *:* (default deny)
@@ -54,7 +54,7 @@ standard:
54
54
  rejection_example: "與既有 `retry-standards` 80% 內容重複 — 應合併,不通過"
55
55
 
56
56
  ai_executable:
57
- description: "至少一個 DevAP QualityGate / VibeOps Agent prompt / Skill 能消費此標準"
57
+ description: "至少一個採用層元件(Quality Gate / Agent prompt / Skill / IDE rule)能消費此標準"
58
58
  checks:
59
59
  - "定義清楚的 guidelines(bullet point,每條可驗證)"
60
60
  - "至少包含 2 個具體 scenarios(Given-When-Then 格式)"
@@ -104,7 +104,7 @@ standard:
104
104
  scenarios:
105
105
  scenario_1_trial_to_active:
106
106
  given: "retry-standards 處於 trial 狀態,since=2026-04-17, expires=2026-10-17"
107
- when: "2026-08-01 審視使用情況,發現 DevAP Fix Loop VibeOps Builder 都已採用,無重大缺陷"
107
+ when: "2026-08-01 審視使用情況,發現多個採用層(Fix Loop / Builder Agent 等)都已採用,無重大缺陷"
108
108
  then: "轉移到 Active,更新 status=active, since=2026-08-01,移除 expires 欄位"
109
109
  note: "Trial → Active 的典型路徑"
110
110
 
@@ -85,7 +85,7 @@ examples:
85
85
  {
86
86
  "_type": "https://in-toto.io/Statement/v0.1",
87
87
  "predicateType": "https://slsa.dev/provenance/v0.2",
88
- "subject": [{"name": "vibeops", "digest": {"sha256": "${IMAGE_DIGEST}"}}],
88
+ "subject": [{"name": "your-app", "digest": {"sha256": "${IMAGE_DIGEST}"}}],
89
89
  "predicate": {
90
90
  "buildType": "https://github.com/Attestations/GitHubActionsWorkflow@v1",
91
91
  "builder": {"id": "https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"},