ai-developer-skill-os 9.3.1 → 10.2.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/.agents/AGENTS.md +73 -40
- package/.agents/DEV_PROFILE.md +36 -2
- package/.agents/LICENSE +21 -21
- package/.agents/docs/ARCHITECTURE.md +56 -120
- package/.agents/docs/GOVERNANCE.md +3 -3
- package/.agents/docs/SPEC.md +137 -60
- package/.agents/docs/VERSIONING.md +25 -57
- package/.agents/docs/adr/0005-v10-platform-consolidation.md +50 -0
- package/.agents/docs/schemas/learning.schema.yml +22 -57
- package/.agents/docs/schemas/skill.schema.yml +116 -161
- package/.agents/docs/schemas/workflow.schema.yml +51 -26
- package/.agents/docs/skill-classification.md +1 -1
- package/.agents/registry/graph.json +193 -346
- package/.agents/registry/index.yaml +90 -233
- package/.agents/rules/coding.md +30 -12
- package/.agents/rules/command-safety.md +20 -9
- package/.agents/rules/global.md +234 -28
- package/.agents/rules/prompt-compiler.md +170 -0
- package/.agents/rules/safety.md +1 -1
- package/.agents/rules/security.md +1 -1
- package/.agents/rules/skill-quality.md +18 -3
- package/.agents/skills/_template/SKILL.md +238 -88
- package/.agents/skills/qk-api-data-discovery/SKILL.md +456 -0
- package/.agents/skills/qk-api-data-discovery/references/bronze-record-format.md +47 -0
- package/.agents/skills/qk-api-data-discovery/references/data-contract-yaml.md +72 -0
- package/.agents/skills/qk-api-data-discovery/references/discovery-report-template.md +110 -0
- package/.agents/skills/qk-backend-data/SKILL.md +339 -0
- package/.agents/skills/qk-bug-resolution/SKILL.md +328 -248
- package/.agents/skills/qk-bug-resolution/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-code-cleaner/SKILL.md +399 -0
- package/.agents/skills/qk-code-review/SKILL.md +320 -247
- package/.agents/skills/qk-code-review/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-code-review/references/ai/{v8-schema-validation.md → schema-validation.md} +2 -2
- package/.agents/skills/qk-code-review/references/cross-cutting/async-concurrency-patterns.md +515 -515
- package/.agents/skills/qk-code-review/references/cross-cutting/error-handling-principles.md +492 -492
- package/.agents/skills/qk-code-review/references/cross-cutting/n-plus-one-queries.md +309 -309
- package/.agents/skills/qk-code-review/references/cross-cutting/sql-injection-prevention.md +307 -307
- package/.agents/skills/qk-code-review/references/cross-cutting/xss-prevention.md +263 -263
- package/.agents/skills/qk-code-review/references/languages/angular.md +768 -768
- package/.agents/skills/qk-code-review/references/languages/c.md +890 -890
- package/.agents/skills/qk-code-review/references/languages/cpp.md +893 -893
- package/.agents/skills/qk-code-review/references/languages/css-less-sass.md +661 -661
- package/.agents/skills/qk-code-review/references/languages/django.md +985 -985
- package/.agents/skills/qk-code-review/references/languages/fastapi.md +580 -580
- package/.agents/skills/qk-code-review/references/languages/go.md +993 -993
- package/.agents/skills/qk-code-review/references/languages/java.md +409 -409
- package/.agents/skills/qk-code-review/references/languages/java8.md +586 -586
- package/.agents/skills/qk-code-review/references/languages/kotlin.md +1018 -1018
- package/.agents/skills/qk-code-review/references/languages/nestjs.md +593 -593
- package/.agents/skills/qk-code-review/references/languages/php.md +684 -684
- package/.agents/skills/qk-code-review/references/languages/python.md +1073 -1073
- package/.agents/skills/qk-code-review/references/languages/qt.md +757 -757
- package/.agents/skills/qk-code-review/references/languages/react.md +871 -871
- package/.agents/skills/qk-code-review/references/languages/ruby.md +964 -964
- package/.agents/skills/qk-code-review/references/languages/rust.md +846 -846
- package/.agents/skills/qk-code-review/references/languages/svelte.md +1064 -1064
- package/.agents/skills/qk-code-review/references/languages/swift.md +936 -936
- package/.agents/skills/qk-code-review/references/languages/typescript.md +1016 -1016
- package/.agents/skills/qk-code-review/references/languages/vue.md +924 -924
- package/.agents/skills/qk-code-review/references/languages/zig.md +440 -440
- package/.agents/skills/qk-devops-release/SKILL.md +294 -0
- package/.agents/skills/qk-feature-delivery/SKILL.md +331 -247
- package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-orchestrator/SKILL.md +286 -152
- package/.agents/skills/qk-orchestrator/evals/scorecard.yaml +1 -1
- package/.agents/skills/qk-orchestrator/references/routing-table.md +1 -1
- package/.agents/skills/qk-product-spec/SKILL.md +262 -0
- package/.agents/skills/qk-prompt-compiler/SKILL.md +444 -0
- package/.agents/skills/qk-ui-engineer/SKILL.md +286 -0
- package/.agents/workflows/_schema.yml +146 -146
- package/.agents/workflows/bug-resolution.yml +155 -121
- package/.agents/workflows/code-review.yml +127 -93
- package/.agents/workflows/context-discovery.yml +128 -94
- package/.agents/workflows/documentation.yml +124 -90
- package/.agents/workflows/feature-delivery.yml +158 -124
- package/.agents/workflows/production-release.yml +207 -173
- package/.agents/workflows/prompt-compilation.yml +126 -0
- package/.agents/workflows/refactor.yml +136 -102
- package/.agents/workflows/security-audit.yml +149 -115
- package/.agents/workflows/shared/quality-gate.yml +3 -1
- package/.agents/workflows/skin-governance.yml +149 -115
- package/.agents/workflows/spec-driven-development.yml +116 -87
- package/CHANGELOG.md +77 -0
- package/README.md +125 -205
- package/bin/install.js +324 -329
- package/package.json +68 -74
- package/tooling/build-registry.js +226 -208
- package/tooling/run-aar.js +55 -126
- package/tooling/sync-versions.js +2 -2
- package/tooling/validate-graph.js +100 -87
- package/tooling/validate-skills.js +32 -14
- package/.agents/README.md +0 -90
- package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
- package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
- package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
- package/.agents/docs/MIGRATION-STATUS.md +0 -35
- package/.agents/docs/MIGRATION-V8.md +0 -10
- package/.agents/docs/ROADMAP-V8.2.md +0 -78
- package/.agents/docs/V8-CERTIFICATION.md +0 -27
- package/.agents/docs/decisions/ADR-001-v8-migration.md +0 -58
- package/.agents/docs/decisions/ADR-002-workflow-separation.md +0 -50
- package/.agents/docs/decisions/ADR-003-registry-generated.md +0 -54
- package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +0 -27
- package/.agents/registry/capability-graph.yml +0 -390
- package/.agents/registry/skills-index.yml +0 -305
- package/.agents/skills/_template/capability.yaml +0 -34
- package/.agents/skills/_template/evals/scorecard.yaml +0 -19
- package/.agents/skills/qk-access-policy/SKILL.md +0 -206
- package/.agents/skills/qk-access-policy/capability.yaml +0 -23
- package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
- package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
- package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
- package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
- package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
- package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
- package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
- package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
- package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
- package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
- package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
- package/.agents/skills/qk-code-review/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/SKILL.md +0 -198
- package/.agents/skills/qk-context-loader/capability.yaml +0 -23
- package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
- package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
- package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
- package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
- package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
- package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
- package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
- package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
- package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
- package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-docs/SKILL.md +0 -193
- package/.agents/skills/qk-docs/capability.yaml +0 -23
- package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
- package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
- package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
- package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
- package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
- package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
- package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
- package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
- package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
- package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
- package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
- package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
- package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
- package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-help/SKILL.md +0 -107
- package/.agents/skills/qk-help/capability.yaml +0 -20
- package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
- package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
- package/.agents/skills/qk-product-specification/SKILL.md +0 -187
- package/.agents/skills/qk-product-specification/capability.yaml +0 -27
- package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-production-release/SKILL.md +0 -188
- package/.agents/skills/qk-production-release/capability.yaml +0 -27
- package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-audit/SKILL.md +0 -174
- package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
- package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
- package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
- package/.agents/skills/qk-project-health/SKILL.md +0 -202
- package/.agents/skills/qk-project-health/capability.yaml +0 -23
- package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-project-memory/SKILL.md +0 -303
- package/.agents/skills/qk-project-memory/capability.yaml +0 -23
- package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-refactor/SKILL.md +0 -243
- package/.agents/skills/qk-refactor/capability.yaml +0 -26
- package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-security-audit/SKILL.md +0 -280
- package/.agents/skills/qk-security-audit/capability.yaml +0 -29
- package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
- package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
- package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
- package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
- package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
- package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
- package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
- package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
- package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
- package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
- package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
- package/.agents/skills/qk-ui-builder/references/color.md +0 -115
- package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
- package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
- package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
- package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
- package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
- package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
- package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
- package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
- package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
- package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
- package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
- package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
- package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
- package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
- package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
- package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
- package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
- package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
- package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
- package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
- package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
- package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-upgrade/SKILL.md +0 -301
- package/.agents/skills/qk-upgrade/capability.yaml +0 -24
- package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
- package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
- package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
- package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
- package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
- package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
- package/.agents/workflows/research.yml +0 -75
- package/.agents/workflows/skill-evolution.yml +0 -97
- package/tooling/fix-refactor.js +0 -8
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qk-ui-engineer
|
|
3
|
+
version: 10.2.0
|
|
4
|
+
status: stable
|
|
5
|
+
subtitle: "Build UI & Component"
|
|
6
|
+
description: "Kỹ sư Giao diện & Design System toàn diện: Xây dựng Design Tokens, phát triển UI Components responsive đầy đủ interaction states, và kiểm toán 57 tiêu chí Anti-Slop UI. Dùng khi: build ui, làm giao diện, css, layout, component, figma, design tokens, token library, design system, variants, review ui, audit giao diện, lỗi spacing — TUYỆT ĐỐI KHÔNG dùng khi viết API/Database (dùng qk-backend-data) hoặc đo lường SEO/Web Vitals sâu (dùng qk-code-review)."
|
|
7
|
+
platforms: [antigravity, claude, opencode]
|
|
8
|
+
runtime_version: 1
|
|
9
|
+
tools:
|
|
10
|
+
- filesystem
|
|
11
|
+
- terminal
|
|
12
|
+
rules:
|
|
13
|
+
- global
|
|
14
|
+
- coding-standards
|
|
15
|
+
workflow: feature-delivery
|
|
16
|
+
triggers:
|
|
17
|
+
- "build ui"
|
|
18
|
+
- "làm giao diện"
|
|
19
|
+
- "css"
|
|
20
|
+
- "layout"
|
|
21
|
+
- "component"
|
|
22
|
+
- "figma"
|
|
23
|
+
- "design ui"
|
|
24
|
+
- "design tokens"
|
|
25
|
+
- "design system"
|
|
26
|
+
- "review ui"
|
|
27
|
+
- "audit giao diện"
|
|
28
|
+
- "anti-slop"
|
|
29
|
+
- "lỗi spacing"
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# qk-ui-engineer — Build UI & Component (Design Tokens & Anti-Slop Engine)
|
|
33
|
+
|
|
34
|
+
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Memory Workflow
|
|
39
|
+
|
|
40
|
+
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
41
|
+
- Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
|
|
42
|
+
- **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
|
|
43
|
+
- **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
48
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
49
|
+
bắt buộc tra cứu:
|
|
50
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
51
|
+
|
|
52
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
53
|
+
- Architecture
|
|
54
|
+
- Hard Bug
|
|
55
|
+
- Convention
|
|
56
|
+
- Pattern
|
|
57
|
+
- Tech Debt Pattern
|
|
58
|
+
|
|
59
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
60
|
+
Không được xem Memory là Source of Truth.
|
|
61
|
+
Luôn xác minh lại bằng source code, configuration và trạng thái hiện tại của dự án trước khi áp dụng.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
66
|
+
- Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
|
|
67
|
+
- Hard Bug có khả năng tái diễn.
|
|
68
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
69
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
70
|
+
- Quyết định Architecture quan trọng.
|
|
71
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
72
|
+
|
|
73
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
74
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
75
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
80
|
+
Sau khi hoàn thành task:
|
|
81
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
82
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
83
|
+
- Đề xuất người dùng xem xét.
|
|
84
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
85
|
+
- `/learn`
|
|
86
|
+
- `qk-project-memory`
|
|
87
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
94
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Ignore (Không đưa vào Memory)
|
|
99
|
+
Không lưu:
|
|
100
|
+
- Trace log của một session đơn lẻ.
|
|
101
|
+
- Temporary debugging data.
|
|
102
|
+
- Output của một lần chạy test/scan.
|
|
103
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
104
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
105
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### Golden Rule
|
|
110
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
111
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 1. Nguyên Tắc Cốt Lõi & Luật Chống Over-Engineering
|
|
116
|
+
|
|
117
|
+
> **Core Principle:** Co-locate tightly coupled UI elements. Do not over-modularize simple components into micro-files. A beautiful UI is disciplined in its tokens and clean in its markup.
|
|
118
|
+
> **Verification Principle:** PASS is a verified conclusion, never a target. Zero visual hacks.
|
|
119
|
+
|
|
120
|
+
### 🛡️ Anti-Overengineering Rule (CẤM XÉ NHỎ VÔ TỘI VẠ)
|
|
121
|
+
- **Không chia nhỏ quá đà (No micro-splitting):** Tuyệt đối KHÔNG tách một component 70 dòng thành 5 file con (`CardHeader.tsx`, `CardIcon.tsx`, `CardBadge.tsx`, `CardWrapper.tsx`) nếu các phần tử đó chỉ dùng độc quyền trong Card đó. Giữ chúng cùng một file (co-location) để dễ đọc và bảo trì.
|
|
122
|
+
- **Không lạm dụng thư viện animation nặng:** Ưu tiên CSS Transitions thuần túy (`transition: all 150ms ease-in-out`) thay vì tự ý cài đặt thêm các package nặng (Framer Motion, GSAP) nếu yêu cầu chỉ là hover/focus đơn giản.
|
|
123
|
+
|
|
124
|
+
### 🔒 No Unrelated Changes Rule (CẤM SỬA LAN MAN)
|
|
125
|
+
- Chỉ sửa các component hoặc file style trong phạm vi UI được chỉ định.
|
|
126
|
+
- **CẤM** đổi theme/palette toàn cục nếu chỉ nhận nhiệm vụ sửa 1 component.
|
|
127
|
+
- **CẤM** reformat các file layout/page không liên quan.
|
|
128
|
+
|
|
129
|
+
### 🛡️ Anti-Fake-Pass Rule (CẤM ÉP PASS ẢO - R-G-14.5)
|
|
130
|
+
- **CẤM** dùng `overflow: hidden` trên `body` hoặc root wrapper để che giấu lỗi vỡ layout / tràn viền ngang.
|
|
131
|
+
- **CẤM** dùng `as any` hoặc `@ts-ignore` để giấu lỗi props mismatch giữa UI và design token variants.
|
|
132
|
+
- **CẤM** bỏ qua contrast ratio bằng cách tự ý làm mờ text cho "nghệ thuật" mà vi phạm WCAG.
|
|
133
|
+
|
|
134
|
+
### ⚖️ Verify Before Claim Rule (XÁC MINH TRƯỚC KHI BÁO CÁO)
|
|
135
|
+
- **Không tự xưng đạt chuẩn nếu chưa rà soát:** Không tự nhận "Đạt chuẩn WCAG 4.5:1" nếu chưa đối chiếu màu chữ và màu nền theo bảng màu. Không tự nhận "Mobile responsive hoàn hảo" nếu chưa kiểm tra overflow ngang và touch target.
|
|
136
|
+
- **Báo cáo trung thực:** Nếu chưa chạy được browser preview thật, ghi rõ: `"Trạng thái: NOT VERIFIED — Đã kiểm tra tĩnh CSS & Tokens. Khuyến nghị user mở trình duyệt để verify trải nghiệm thị giác"`.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 2. Ranh Giới & Phạm Vi Kỹ Thuật (Hard Boundaries)
|
|
141
|
+
|
|
142
|
+
### ✅ Việc skill này BẮT BUỘC làm:
|
|
143
|
+
- **Design Token Discipline:** 100% màu sắc, khoảng cách, font-size và border-radius phải lấy từ theme/tokens. Cấm tuyệt đối magic numbers (`#2371e2` trần trụi hoặc `margin: 19px`).
|
|
144
|
+
- **Đầy Đủ Interaction States:** Mọi thành phần tương tác BẮT BUỘC có đủ: `Default`, `Hover`, `Focus-visible` (ring bàn phím rõ ràng), `Active`, `Disabled` (giảm opacity, cursor-not-allowed) và `Loading`.
|
|
145
|
+
- **Responsive Mobile-First:** Không bao giờ để giao diện bị tràn chiều ngang (horizontal overflow) trên màn hình hẹp (< 375px). Touch target tối thiểu 44x44px trên mobile.
|
|
146
|
+
- **Anti-Slop Polish:** Loại bỏ các lỗi thị giác: lệch trục căn chỉnh, nhảy giật layout khi tải ảnh (thiếu `aspect-ratio`), font-size quá nhỏ khó đọc.
|
|
147
|
+
- **Planning Gate & Exceptions:** Nếu tạo component mới kèm design system token ảnh hưởng ≥ 2 files, tạo `implementation_plan.md` với `RequestFeedback: true`. Ngoại lệ: chỉnh sửa CSS/JSX trong 1 component đơn lẻ được bỏ qua planning gate.
|
|
148
|
+
|
|
149
|
+
### ❌ Việc skill này TUYỆT ĐỐI KHÔNG làm (Chuyển giao quyền):
|
|
150
|
+
- Viết API handler, middleware hay query cơ sở dữ liệu → Chuyển sang `qk-backend-data`.
|
|
151
|
+
- Chạy quét bảo mật OWASP hoặc đo lường sâu hiệu năng Core Web Vitals → Chuyển sang `qk-code-review`.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 3. Quy Trình Kỹ Nghệ Giao Diện 4 Bước (Sequential Procedure)
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
[Bước 1: Token & Contract] ── Đọc theme/tokens có sẵn, xác định bảng màu ngữ nghĩa
|
|
159
|
+
│
|
|
160
|
+
▼
|
|
161
|
+
[Bước 2: Component Markup] ── Viết JSX/HTML với semantic tags, co-locate sub-elements
|
|
162
|
+
│
|
|
163
|
+
▼
|
|
164
|
+
[Bước 3: States & Polish] ── Thêm Hover, Focus-visible, Loading Skeleton & Transitions
|
|
165
|
+
│
|
|
166
|
+
▼
|
|
167
|
+
[Bước 4: Anti-Slop Audit] ── Quét 57 tiêu chí: Spacing, Contrast, Typo & Mobile Overflow
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Chi tiết các bước:
|
|
171
|
+
1. **Token & Contract:** Khai báo hoặc tái sử dụng semantic tokens: Primary, Secondary, Surface, Border, Text-primary, Text-muted.
|
|
172
|
+
2. **Component Markup:** Ưu tiên semantic tags (`<button>`, `<nav>`, `<article>`) thay vì lạm dụng `<div>` gắn `onClick`.
|
|
173
|
+
3. **States & Polish:** Đảm bảo khi bấm tab trên bàn phím, vòng focus sáng rõ. Thêm micro-transitions nhẹ nhàng.
|
|
174
|
+
4. **Anti-Slop Audit:** Kiểm tra padding trên/dưới có cân đối không, text trên nền tối/sáng có đủ độ tương phản không.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 4. Xử Lý Sự Cố Giao Diện (Failure Path Protocol)
|
|
179
|
+
|
|
180
|
+
Nếu giao diện bị vỡ layout hoặc tràn viền ngang:
|
|
181
|
+
1. **Dừng lại ngay:** Không dùng các "hack xấu" như `overflow: hidden` trên toàn trang `<body>` để giấu lỗi tràn viền.
|
|
182
|
+
2. **Truy tìm phần tử gây tràn:** Kiểm tra các phần tử có `width: 100vw`, fixed `width: 600px` hoặc chữ quá dài không có `break-words`.
|
|
183
|
+
3. **Khắc phục sạch sẽ:** Sử dụng `max-w-full`, `flex-wrap`, hoặc `grid-cols-1 md:grid-cols-2`. Nếu không khắc phục được, revert về layout baseline trước đó.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 5. Thích Ứng Theo Role Kỹ Thuật (Role Adaptation)
|
|
188
|
+
|
|
189
|
+
| Role | Trọng tâm khi làm UI | Hành vi kỹ thuật đặc thù |
|
|
190
|
+
|---|---|---|
|
|
191
|
+
| `frontend` | Component architecture, clean CSS, token mapping, state binding | Tạo reusable atoms/molecules, tách CSS module / Tailwind |
|
|
192
|
+
| `ui/ux` | Visual harmony, whitespace, typography hierarchy, design consistency | Đánh giá tỉ lệ tương phản, nhịp điệu thị giác (visual rhythm) |
|
|
193
|
+
| `fullstack` | UI kết nối thực tế với API data, form validation feedback, skeletons | Hiển thị lỗi form trực quan (inline validation), empty state có CTA |
|
|
194
|
+
| `qa` | Accessibility tags, keyboard navigation, tab order, visual regression | Kiểm tra tab-index, aria attributes, aria-expanded trên dropdown/modal |
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 6. Báo Cáo Nghiệm Thu Chuẩn Xác (Truth-First Report)
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
🎨 UI Engineering Summary [Role: <role> | Component: <Tên>]
|
|
202
|
+
─────────────────────────────────────────────────────────────────────
|
|
203
|
+
Trạng thái: [SUCCESS | BLOCKED | FAILED | PARTIAL]
|
|
204
|
+
Phạm vi thực tế: [Xây dựng Component mới / Tinh chỉnh Style]
|
|
205
|
+
Công nghệ CSS: [Tailwind CSS / CSS Modules / Vanilla CSS]
|
|
206
|
+
|
|
207
|
+
Các tệp giao diện (Laser Focus):
|
|
208
|
+
• [NEW] [ComponentName.tsx](file:///<workspace-root>/path): [Mô tả vai trò]
|
|
209
|
+
|
|
210
|
+
Kiểm soát Anti-Slop & Truth-First:
|
|
211
|
+
• Design Tokens: ✅ 100% dùng token, 0 magic colors/px
|
|
212
|
+
• Interaction States: ✅ Đầy đủ Hover, Focus-visible, Disabled
|
|
213
|
+
• Mobile View: ✅ Không tràn ngang, touch target ≥ 44px
|
|
214
|
+
• Visual Verification: [Đã verify qua browser / NOT VERIFIED (Cần user test mắt)]
|
|
215
|
+
• Zero Hack: ✅ Không dùng overflow: hidden trên body, không ép kiểu props
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 7. Mô Hình Độ Tin Cậy (Confidence Model)
|
|
221
|
+
|
|
222
|
+
| Level | Condition | Action |
|
|
223
|
+
|-------|-----------|--------|
|
|
224
|
+
| HIGH | Direct evidence available | Proceed |
|
|
225
|
+
| MEDIUM | Some assumptions needed | Note assumptions |
|
|
226
|
+
| LOW | Insufficient evidence | EXIT: BLOCKED |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 8. Thoái Ra Mã (Exit Codes)
|
|
231
|
+
|
|
232
|
+
| Code | Meaning | When |
|
|
233
|
+
|------|---------|------|
|
|
234
|
+
| SUCCESS | Task completed and verified | All acceptance criteria met |
|
|
235
|
+
| PARTIAL | Task done with minor gaps | Some checks skipped |
|
|
236
|
+
| BLOCKED | Missing precondition or info | Ask user |
|
|
237
|
+
| FAILED | Task failed after max retries | Report error |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 9. Bằng Chứng Định Dạng (Evidence Format)
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
[SEVERITY] path/to/file.ts:LINE
|
|
245
|
+
Reason: [why this matters]
|
|
246
|
+
Confidence: [HIGH|MEDIUM|LOW]
|
|
247
|
+
Fix: [suggestion]
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Platform-Specific Instructions
|
|
253
|
+
|
|
254
|
+
### Antigravity (Google Gemini)
|
|
255
|
+
- Uses `.agents/AGENTS.md` as entry point
|
|
256
|
+
- Supports Cockpit integration
|
|
257
|
+
- Rewrite absolute paths for global mode
|
|
258
|
+
- `GEMINI.md` copied for global installs
|
|
259
|
+
|
|
260
|
+
### Claude Code (Anthropic)
|
|
261
|
+
- Reads `.claude/CLAUDE.md` automatically
|
|
262
|
+
- Large context window (~200K tokens)
|
|
263
|
+
- Can handle full skill files without trimming
|
|
264
|
+
- Uses native tool format (Read, Write, Edit, Bash)
|
|
265
|
+
|
|
266
|
+
### OpenCode (Open Source)
|
|
267
|
+
- Reads `.opencode/config.yaml`
|
|
268
|
+
- Context window ~128K tokens
|
|
269
|
+
- Keep skill files lean when possible
|
|
270
|
+
- Supports custom tool format
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Compliance
|
|
275
|
+
|
|
276
|
+
| Check | Status |
|
|
277
|
+
|-------|--------|
|
|
278
|
+
| Runtime Standard | 11/11 |
|
|
279
|
+
| Frontmatter Complete | ✅ |
|
|
280
|
+
| Platforms Field | ✅ |
|
|
281
|
+
| References Valid | ✅ |
|
|
282
|
+
| Decision Trees | PASS |
|
|
283
|
+
| Thresholds Defined | PASS |
|
|
284
|
+
| schema_version | 10.2.0 |
|
|
285
|
+
| runtime_version | 1 |
|
|
286
|
+
| platforms | [antigravity, claude, opencode] |
|
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
# Workflow Schema — V8 Standard
|
|
2
|
-
# Every workflow YAML file MUST conform to this schema.
|
|
3
|
-
# Version:
|
|
4
|
-
|
|
5
|
-
schema_version:
|
|
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
|
+
# Workflow Schema — V8 Standard
|
|
2
|
+
# Every workflow YAML file MUST conform to this schema.
|
|
3
|
+
# Version: 10.2.0
|
|
4
|
+
|
|
5
|
+
schema_version: 10.2.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"
|