ai-developer-skill-os 8.2.0 → 8.3.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 (79) hide show
  1. package/.agents/LICENSE +21 -21
  2. package/.agents/README.md +90 -90
  3. package/.agents/docs/CHI_TIET_SKILLS.md +125 -125
  4. package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +36 -36
  5. package/.agents/docs/MIGRATION-STATUS.md +35 -35
  6. package/.agents/docs/MIGRATION-V8.md +10 -10
  7. package/.agents/docs/V8-CERTIFICATION.md +27 -27
  8. package/.agents/docs/decisions/ADR-001-v8-migration.md +58 -58
  9. package/.agents/docs/decisions/ADR-002-workflow-separation.md +50 -50
  10. package/.agents/docs/decisions/ADR-003-registry-generated.md +54 -54
  11. package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +27 -27
  12. package/.agents/registry/graph.json +4 -8
  13. package/.agents/registry/index.yaml +3 -4
  14. package/.agents/registry/skills-index.yml +525 -525
  15. package/.agents/rules/coding.md +10 -0
  16. package/.agents/rules/command-safety.md +37 -14
  17. package/.agents/rules/priorities.yml +13 -2
  18. package/.agents/rules/security.md +47 -7
  19. package/.agents/rules/skill-quality.md +32 -8
  20. package/.agents/skills/_template/SKILL.md +133 -132
  21. package/.agents/skills/_template/capability.yaml +20 -20
  22. package/.agents/skills/_template/evals/scorecard.yaml +19 -19
  23. package/.agents/skills/qk-access-policy/SKILL.md +4 -1
  24. package/.agents/skills/qk-agent-observability/SKILL.md +111 -0
  25. package/.agents/skills/qk-agent-observability/references/scorecard.yaml +80 -0
  26. package/.agents/skills/qk-ai-builder/SKILL.md +74 -5
  27. package/.agents/skills/qk-api-lifecycle/SKILL.md +4 -2
  28. package/.agents/skills/qk-bug-resolution/SKILL.md +3 -21
  29. package/.agents/skills/qk-code-review/SKILL.md +188 -189
  30. package/.agents/skills/qk-context-loader/SKILL.md +3 -47
  31. package/.agents/skills/qk-data-lifecycle/SKILL.md +7 -2
  32. package/.agents/skills/qk-db-optimizer/SKILL.md +3 -2
  33. package/.agents/skills/qk-design-system-engineering/SKILL.md +235 -112
  34. package/.agents/skills/qk-devops-platform/SKILL.md +241 -117
  35. package/.agents/skills/qk-docs/SKILL.md +3 -1
  36. package/.agents/skills/qk-engineering-standard/SKILL.md +4 -75
  37. package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +121 -0
  38. package/.agents/skills/qk-engineering-standard/rules/frontend.md +1 -1
  39. package/.agents/skills/qk-fe-api-integration/SKILL.md +13 -32
  40. package/.agents/skills/qk-feature-delivery/SKILL.md +54 -202
  41. package/.agents/skills/qk-frontend-architecture/SKILL.md +258 -134
  42. package/.agents/skills/qk-help/SKILL.md +21 -159
  43. package/.agents/skills/qk-orchestrator/SKILL.md +2 -78
  44. package/.agents/skills/qk-orchestrator/references/routing-table.md +15 -3
  45. package/.agents/skills/qk-product-specification/SKILL.md +253 -130
  46. package/.agents/skills/qk-production-release/SKILL.md +32 -67
  47. package/.agents/skills/qk-project-bootstrap/SKILL.md +59 -8
  48. package/.agents/skills/qk-project-health/SKILL.md +4 -2
  49. package/.agents/skills/qk-project-memory/SKILL.md +3 -1
  50. package/.agents/skills/qk-security-audit/SKILL.md +259 -135
  51. package/.agents/skills/qk-system-evolution/SKILL.md +18 -68
  52. package/.agents/skills/qk-test-engineering/SKILL.md +262 -139
  53. package/.agents/skills/qk-ui-audit/SKILL.md +16 -89
  54. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +2 -2
  55. package/.agents/skills/qk-ui-builder/SKILL.md +482 -509
  56. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +455 -1191
  57. package/.agents/skills/qk-ui-system-builder/SKILL.md +1 -5
  58. package/.agents/skills/qk-validation-gate/SKILL.md +0 -74
  59. package/.agents/skills/qk-web-quality-gate/SKILL.md +232 -114
  60. package/.agents/workflows/_schema.yml +146 -109
  61. package/.agents/workflows/bug-resolution.yml +121 -101
  62. package/.agents/workflows/code-review.yml +93 -77
  63. package/.agents/workflows/documentation.yml +90 -75
  64. package/.agents/workflows/feature-delivery.yml +120 -103
  65. package/.agents/workflows/refactor.yml +99 -81
  66. package/.agents/workflows/research.yml +75 -60
  67. package/.agents/workflows/security-audit.yml +115 -72
  68. package/.agents/workflows/skill-evolution.yml +97 -65
  69. package/.agents/workflows/spec-driven-development.yml +87 -57
  70. package/CHANGELOG.md +10 -0
  71. package/README.md +90 -90
  72. package/bin/install.js +330 -180
  73. package/package.json +2 -2
  74. package/.agents/CHANGELOG.md +0 -131
  75. package/.agents/learnings/draft/README.md +0 -37
  76. package/.agents/reports/RELEASE-CHECKLIST.md +0 -29
  77. package/.agents/reports/architecture-audit.md +0 -13
  78. package/.agents/reports/graph-health.md +0 -20
  79. package/.agents/reports/skill-audit.md +0 -215
@@ -1,109 +1,146 @@
1
- # Workflow Schema — V8 Standard
2
- # Every workflow YAML file MUST conform to this schema.
3
- # Version: 8.0.0
4
-
5
- schema_version: 8.0.0
6
-
7
- # ── Required top-level fields ──────────────────────────────
8
- required:
9
- - name # string: workflow identifier (kebab-case)
10
- - version # semver: 8.x.x
11
- - description # string: one sentence
12
- - owner # object: {type, maintained_by} — who owns this workflow
13
- - steps # array: minimum 2 steps
14
- - escalation # object: retry + on_failure
15
-
16
- # ── Owner field structure ───────────────────────────────────
17
- owner_fields:
18
- type: # string: engineering | security | ux | data | devops
19
- maintained_by: # string: team or person identifier
20
-
21
- # ── Required fields per step ────────────────────────────────
22
- step_required:
23
- - id # string: unique within workflow (snake_case)
24
- - name # string: human-readable step name
25
- - purpose # string: WHAT the step achieves (not HOW)
26
- - inputs # array: what this step needs to start
27
- - outputs # array: what this step produces when done
28
- - required # bool: true = cannot be skipped
29
-
30
- # ── Optional fields per step ────────────────────────────────
31
- step_optional:
32
- - skip_if # string: condition under which step can be skipped
33
- - exit_on_fail # enum: BLOCKED | PARTIAL | FAILED
34
- - min_confidence # enum: HIGH | MEDIUM (default: HIGH)
35
- - actions # array: hints for HOW to achieve the purpose
36
-
37
- # ── Complexity definitions ──────────────────────────────────
38
- complexity_levels:
39
- low:
40
- files_affected: "1"
41
- has_behavior_change: false
42
- has_external_dependency: false
43
- has_breaking_change: false
44
- examples: ["fix typo", "rename variable", "add comment"]
45
-
46
- medium:
47
- files_affected: "2-5"
48
- has_behavior_change: true
49
- has_external_dependency: false
50
- has_breaking_change: false
51
- examples: ["fix bug", "add feature to existing module", "refactor function"]
52
-
53
- high:
54
- files_affected: "5+"
55
- has_behavior_change: true
56
- has_external_dependency: true
57
- has_breaking_change: false
58
- examples: ["add new API endpoint", "database migration", "new component with state"]
59
-
60
- critical:
61
- files_affected: "many"
62
- has_behavior_change: true
63
- has_external_dependency: true
64
- has_breaking_change: true
65
- examples: ["architecture change", "breaking API change", "auth system overhaul"]
66
-
67
- # ── Verification profiles ────────────────────────────────────
68
- verification_profiles:
69
- bug-fix:
70
- - regression_check # Does the fix break anything else?
71
- - root_cause_fixed # Is the real cause addressed (not patched)?
72
- - lint_clean # No lint errors introduced
73
- - test_if_available # Run related tests if they exist
74
-
75
- refactor:
76
- - behavior_unchanged # External behavior identical before/after
77
- - test_pass # All existing tests still pass
78
- - lint_clean
79
- - no_new_complexity # Cyclomatic complexity not increased
80
-
81
- feature:
82
- - acceptance_criteria # Does it meet the stated requirements?
83
- - test_coverage # New logic has tests
84
- - integration_check # Works with existing system
85
- - lint_clean
86
-
87
- documentation:
88
- - accuracy # Content matches actual code behavior
89
- - completeness # All required sections present
90
- - no_broken_links # References are valid
91
-
92
- review:
93
- - findings_have_evidence # Each finding has file+line+quote
94
- - severity_justified # Severity level is appropriate
95
- - actionable_suggestions # Each finding has a fix suggestion
96
-
97
- # ── Escalation schema ────────────────────────────────────────
98
- escalation_required: true
99
- escalation_fields:
100
- required:
101
- - max_retries # int: max retry attempts (recommended: 2)
102
- - on_failure # string: what to do when all retries exhausted
103
-
104
- # ── Exit codes ───────────────────────────────────────────────
105
- exit_codes:
106
- SUCCESS: "Task completed and verified"
107
- BLOCKED: "Precondition not met waiting for input"
108
- FAILED: "Execution failed after max_retries"
109
- PARTIAL: "Partially completed — output + reason provided"
1
+ # Workflow Schema — V8 Standard
2
+ # Every workflow YAML file MUST conform to this schema.
3
+ # Version: 8.3.0
4
+
5
+ schema_version: 8.3.0
6
+
7
+ # ── Required top-level fields ──────────────────────────────
8
+ required:
9
+ - name # string: workflow identifier (kebab-case)
10
+ - version # semver: 8.x.x
11
+ - description # string: one sentence
12
+ - owner # object: {type, maintained_by} — who owns this workflow
13
+ - steps # array: minimum 2 steps
14
+ - escalation # object: retry + on_failure
15
+
16
+ # ── Optional top-level fields ───────────────────────────────
17
+ optional:
18
+ - verification_profile # string: key into verification_profiles table below
19
+ - triggers # array: keywords to auto-select workflow
20
+ - ide_binding # object: {slash_command, aliases} — maps workflow to an IDE command
21
+
22
+ # ── IDE binding field structure ─────────────────────────────
23
+ ide_binding_fields:
24
+ slash_command: # string: e.g. "/fix-bug" primary command to invoke this workflow
25
+ aliases: # array: alternate strings that also trigger it
26
+
27
+ # ── Owner field structure ───────────────────────────────────
28
+ owner_fields:
29
+ type: # string: engineering | security | ux | data | devops
30
+ maintained_by: # string: team or person identifier
31
+
32
+ # ── Required fields per step ────────────────────────────────
33
+ step_required:
34
+ - id # string: unique within workflow (snake_case)
35
+ - name # string: human-readable step name
36
+ - purpose # string: WHAT the step achieves (not HOW)
37
+ - inputs # array: what this step needs to start
38
+ - outputs # array: what this step produces when done
39
+ - required # bool: true = cannot be skipped
40
+
41
+ # ── Optional fields per step ────────────────────────────────
42
+ step_optional:
43
+ - skip_if # string: condition under which step can be skipped
44
+ - exit_on_fail # enum: BLOCKED | PARTIAL | FAILED
45
+ - min_confidence # enum: HIGH | MEDIUM (default: HIGH)
46
+ - actions # array: hints for HOW to achieve the purpose
47
+ - human_checkpoint # object: {condition, message} — pause and wait for human approval before proceeding past this step
48
+ - context_budget # int: max lines of code that should be read in this step (prevent token overflow)
49
+
50
+ # ── Human checkpoint field structure ────────────────────────
51
+ human_checkpoint_fields:
52
+ condition: # string: when this checkpoint triggers, e.g. "any CRITICAL finding present"
53
+ message: # string: what to show the human when asking for approval
54
+
55
+ # ── Complexity definitions ──────────────────────────────────
56
+ complexity_levels:
57
+ low:
58
+ files_affected: "1"
59
+ has_behavior_change: false
60
+ has_external_dependency: false
61
+ has_breaking_change: false
62
+ examples: ["fix typo", "rename variable", "add comment"]
63
+
64
+ medium:
65
+ files_affected: "2-5"
66
+ has_behavior_change: true
67
+ has_external_dependency: false
68
+ has_breaking_change: false
69
+ examples: ["fix bug", "add feature to existing module", "refactor function"]
70
+
71
+ high:
72
+ files_affected: "5+"
73
+ has_behavior_change: true
74
+ has_external_dependency: true
75
+ has_breaking_change: false
76
+ examples: ["add new API endpoint", "database migration", "new component with state"]
77
+
78
+ critical:
79
+ files_affected: "many"
80
+ has_behavior_change: true
81
+ has_external_dependency: true
82
+ has_breaking_change: true
83
+ examples: ["architecture change", "breaking API change", "auth system overhaul"]
84
+
85
+ # ── Verification profiles ────────────────────────────────────
86
+ verification_profiles:
87
+ bug-fix:
88
+ - regression_check # Does the fix break anything else?
89
+ - root_cause_fixed # Is the real cause addressed (not patched)?
90
+ - lint_clean # No lint errors introduced
91
+ - test_if_available # Run related tests if they exist
92
+ - security_boundary_check # Ensure R-SEC-04 is respected
93
+
94
+ refactor:
95
+ - behavior_unchanged # External behavior identical before/after
96
+ - test_pass # All existing tests still pass
97
+ - lint_clean
98
+ - no_new_complexity # Cyclomatic complexity not increased
99
+ - anti_slop_compliance # Meets R-C-09 zero-slop standard
100
+
101
+ feature:
102
+ - acceptance_criteria # Does it meet the stated requirements?
103
+ - test_coverage # New logic has tests
104
+ - integration_check # Works with existing system
105
+ - lint_clean
106
+ - anti_slop_compliance # Meets R-C-09 zero-slop standard
107
+ - security_boundary_check # Enforces R-SEC-04
108
+
109
+ documentation:
110
+ - accuracy # Content matches actual code behavior
111
+ - completeness # All required sections present
112
+ - no_broken_links # References are valid
113
+
114
+ review:
115
+ - findings_have_evidence # Each finding has file+line+quote
116
+ - severity_justified # Severity level is appropriate
117
+ - actionable_suggestions # Each finding has a fix suggestion
118
+
119
+ security-audit:
120
+ - no_unverified_critical # No CRITICAL risk left without a recommendation
121
+ - secret_scan_complete # Secret scan actually ran, not skipped
122
+ - fix_confirmed # Reported vulnerabilities re-checked after remediation
123
+
124
+ skill-evolution:
125
+ - improvement_schema_valid # Proposal passes validate-skills.js
126
+ - regression_free # Success rate not lower than baseline
127
+ - change_justified # Each change traces to a failure_pattern
128
+
129
+ spec-driven:
130
+ - spec_matches_code # Implementation matches technical_spec
131
+ - edge_cases_covered # Edge cases from spec are handled
132
+ - acceptance_criteria # Verify step confirms criteria met
133
+
134
+ # ── Escalation schema ────────────────────────────────────────
135
+ escalation_required: true
136
+ escalation_fields:
137
+ required:
138
+ - max_retries # int: max retry attempts (recommended: 2)
139
+ - on_failure # string: what to do when all retries exhausted
140
+
141
+ # ── Exit codes ───────────────────────────────────────────────
142
+ exit_codes:
143
+ SUCCESS: "Task completed and verified"
144
+ BLOCKED: "Precondition not met — waiting for input"
145
+ FAILED: "Execution failed after max_retries"
146
+ PARTIAL: "Partially completed — output + reason provided"
@@ -1,101 +1,121 @@
1
- name: bug-resolution
2
- version: 8.0.0
3
- description: "Pipeline chuẩn để diagnose và fix bugs theo chu trình: Observe → Hypothesize → Evidence → Patch → Verify."
4
-
5
- owner:
6
- type: engineering
7
- maintained_by: qk-team
8
-
9
- verification_profile: bug-fix
10
-
11
- steps:
12
- - id: observe
13
- name: "Thu thập triệu chứng"
14
- purpose: "Xác định chính xác bug xảy ra ở đâu và biểu hiện thế nào"
15
- required: true
16
- skip_if: "Stack trace + affected file đã được cung cấp đầy đủ"
17
- inputs:
18
- - error_message
19
- - stack_trace
20
- - user_description
21
- outputs:
22
- - affected_file
23
- - affected_line_range
24
- - error_signature
25
- actions:
26
- - "Đọc error message và stack trace"
27
- - "Xác định file và line range bị ảnh hưởng"
28
- - " tả triệu chứng bằng ngôn ngữ kỹ thuật"
29
- exit_on_fail: BLOCKED
30
-
31
- - id: hypothesize
32
- name: "Đặt giả thuyết nguyên nhân"
33
- purpose: "Xác định top 3 nguyên nhân có thể, xếp theo xác suất"
34
- required: true
35
- skip_if: null
36
- inputs:
37
- - error_signature
38
- - affected_file
39
- outputs:
40
- - hypothesis_list # Ordered list: [H1 (most likely), H2, H3]
41
- - selected_hypothesis # H1 unless evidence suggests otherwise
42
- min_confidence: HIGH
43
- actions:
44
- - "List 3 nguyên nhân có thể gây ra triệu chứng này"
45
- - "Xếp hạng theo xác suất dựa trên stack trace"
46
- - "Chọn H1 để kiểm chứng trước"
47
-
48
- - id: evidence
49
- name: "Tìm bằng chứng xác nhận"
50
- purpose: "Xác nhận hoặc loại bỏ hypothesis bằng code thực tế"
51
- required: true
52
- skip_if: null
53
- inputs:
54
- - selected_hypothesis
55
- - affected_file
56
- outputs:
57
- - confirmed_root_cause # File + line + quoted code
58
- - evidence_quote # Exact code causing the bug
59
- min_confidence: HIGH
60
- actions:
61
- - "Dùng grep_search để tìm pattern liên quan"
62
- - "Dùng view_file[StartLine:EndLine] để đọc section cụ thể"
63
- - "Quote chính xác đoạn code gây bug"
64
- exit_on_fail: PARTIAL
65
-
66
- - id: patch
67
- name: "Áp dụng fix"
68
- purpose: "Sửa root cause, không chỉ patch triệu chứng"
69
- required: true
70
- skip_if: null
71
- inputs:
72
- - confirmed_root_cause
73
- - evidence_quote
74
- outputs:
75
- - patched_files # List of files modified
76
- - diff_summary # What changed and why
77
- actions:
78
- - "Edit source file trực tiếp với replace_file_content hoặc multi_replace_file_content"
79
- - "Không tạo wrapper script"
80
- - "Không dùng ?. hoặc ! để silence lỗi"
81
- - "Fix root cause, không patch bề mặt"
82
-
83
- - id: verify
84
- name: "Xác minh fix"
85
- purpose: "Xác nhận bug đã được fix và không có regression"
86
- required: true
87
- skip_if: null
88
- inputs:
89
- - patched_files
90
- outputs:
91
- - verification_result # PASS | FAIL | PARTIAL
92
- - evidence_of_fix # Re-read patched section
93
- actions:
94
- - "Re-read patched code section"
95
- - "Chạy test liên quan nếu "
96
- - "Kiểm tra caller/dependent nếu interface thay đổi"
97
- exit_on_fail: FAILED
98
-
99
- escalation:
100
- max_retries: 2
101
- on_failure: "Report với full evidence chain (observe→hypothesis→evidence), escalate to human với gợi ý bước tiếp theo"
1
+ name: bug-resolution
2
+ version: 8.0.0
3
+ description: "Pipeline chuẩn để diagnose và fix bugs theo chu trình: Observe → Hypothesize → Evidence → Patch → Verify."
4
+
5
+ owner:
6
+ type: engineering
7
+ maintained_by: qk-team
8
+
9
+ verification_profile: bug-fix
10
+
11
+ triggers:
12
+ - "fix bug"
13
+ - "sửa lỗi"
14
+ - "error"
15
+ - "exception"
16
+ - "crash"
17
+ - "stack trace"
18
+ - "not working"
19
+ - "bị lỗi"
20
+
21
+ ide_binding:
22
+ slash_command: "/fix-bug"
23
+ aliases: ["/bug", "/debug"]
24
+
25
+ steps:
26
+ - id: observe
27
+ name: "Thu thập triệu chứng"
28
+ purpose: "Xác định chính xác bug xảy ra đâu và biểu hiện thế nào"
29
+ required: true
30
+ skip_if: "Stack trace + affected file đã được cung cấp đầy đủ"
31
+ inputs:
32
+ - error_message
33
+ - stack_trace
34
+ - user_description
35
+ outputs:
36
+ - affected_file
37
+ - affected_line_range
38
+ - error_signature
39
+ actions:
40
+ - "Đọc error message stack trace"
41
+ - "Xác định file line range bị ảnh hưởng"
42
+ - "Mô tả triệu chứng bằng ngôn ngữ kỹ thuật"
43
+ exit_on_fail: BLOCKED
44
+
45
+ - id: hypothesize
46
+ name: "Đặt giả thuyết nguyên nhân"
47
+ purpose: "Xác định top 3 nguyên nhân có thể, xếp theo xác suất"
48
+ required: true
49
+ skip_if: null
50
+ inputs:
51
+ - error_signature
52
+ - affected_file
53
+ outputs:
54
+ - hypothesis_list # Ordered list: [H1 (most likely), H2, H3]
55
+ - selected_hypothesis # H1 unless evidence suggests otherwise
56
+ min_confidence: HIGH
57
+ actions:
58
+ - "List 3 nguyên nhân thể gây ra triệu chứng này"
59
+ - "Xếp hạng theo xác suất dựa trên stack trace"
60
+ - "Chọn H1 để kiểm chứng trước"
61
+
62
+ - id: evidence
63
+ name: "Tìm bằng chứng xác nhận"
64
+ purpose: "Xác nhận hoặc loại bỏ hypothesis bằng code thực tế"
65
+ required: true
66
+ skip_if: null
67
+ inputs:
68
+ - selected_hypothesis
69
+ - affected_file
70
+ outputs:
71
+ - confirmed_root_cause # File + line + quoted code
72
+ - evidence_quote # Exact code causing the bug
73
+ min_confidence: HIGH
74
+ context_budget: 150
75
+ actions:
76
+ - "Dùng grep_search để tìm pattern liên quan"
77
+ - "Dùng view_file[StartLine:EndLine] để đọc section cụ thể"
78
+ - "Quote chính xác đoạn code gây bug"
79
+ exit_on_fail: PARTIAL
80
+
81
+ - id: patch
82
+ name: "Áp dụng fix"
83
+ purpose: "Sửa root cause, không chỉ patch triệu chứng"
84
+ required: true
85
+ skip_if: null
86
+ inputs:
87
+ - confirmed_root_cause
88
+ - evidence_quote
89
+ outputs:
90
+ - patched_files # List of files modified
91
+ - diff_summary # What changed and why
92
+ actions:
93
+ - "Edit source file trực tiếp với replace_file_content hoặc multi_replace_file_content"
94
+ - "Không tạo wrapper script"
95
+ - "Không dùng ?. hoặc ! để silence lỗi"
96
+ - "Fix root cause, không patch bề mặt"
97
+ human_checkpoint:
98
+ condition: "file thuộc vùng auth/payment/permission/migration"
99
+ message: "Patch này chạm vào code nhạy cảm. Xác nhận an toàn trước khi thay đổi."
100
+ - id: verify
101
+ name: "Xác minh fix"
102
+ purpose: "Xác nhận bug đã được fix và không có regression"
103
+ required: true
104
+ skip_if: null
105
+ inputs:
106
+ - patched_files
107
+ outputs:
108
+ - verification_result # PASS | FAIL | PARTIAL
109
+ - evidence_of_fix # Re-read patched section
110
+ actions:
111
+ - "Re-read patched code section"
112
+ - "Chạy test liên quan nếu có"
113
+ - "Kiểm tra caller/dependent nếu interface thay đổi"
114
+ - "Đảm bảo tuân thủ R-SEC-04 (Security Boundary)"
115
+ - "Đảm bảo tuân thủ R-C-09 (Zero-Slop)"
116
+ - "Ghi log execution trace vào evals/traces/"
117
+ exit_on_fail: FAILED
118
+
119
+ escalation:
120
+ max_retries: 2
121
+ on_failure: "Report với full evidence chain (observe→hypothesis→evidence), escalate to human với gợi ý bước tiếp theo"