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,110 @@
|
|
|
1
|
+
# API Discovery & Evidence Report: [<collection_name>]
|
|
2
|
+
|
|
3
|
+
> **Status:** DISCOVERY_COMPLETED (Awaiting User Decision)
|
|
4
|
+
> **Execution Date:** <ISO_TIMESTAMP>
|
|
5
|
+
> **Environment:** <Staging / Production / Offline Logs>
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Executive Summary
|
|
10
|
+
- **Collection Name:** `<name>`
|
|
11
|
+
- **Total Requests Analyzed:** `<total>`
|
|
12
|
+
- **Requests Executed (Evidence Collected):** `<executed_count>` (Success: `<success>`, Failed: `<failed>`)
|
|
13
|
+
- **Requests Not Executed:** `<skipped_count>` (Do phân loại rủi ro hoặc thiếu thông tin)
|
|
14
|
+
- **Average Response Latency:** `<avg_ms> ms` (Min: `<min_ms>`, Max: `<max_ms>`)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. Project Context & Detected Architecture
|
|
19
|
+
- **Backend Stack:** `<stack hoặc None>`
|
|
20
|
+
- **Data Pipeline Stack:** `<dbt / Airflow / Python scripts / Không có>`
|
|
21
|
+
- **Existing Storage Zones:** `<Bronze/Silver/Gold folders hiện có>`
|
|
22
|
+
- **Relevant Existing Modules:**
|
|
23
|
+
- `<file_link_1>`
|
|
24
|
+
- `<file_link_2>`
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3. API Inventory & Risk Classification
|
|
29
|
+
| # | Method | Endpoint Path | Risk Gate | Execution Status | HTTP Status | Response Time | Domain / Module |
|
|
30
|
+
|---|---|---|---|---|---|---|---|
|
|
31
|
+
| 1 | GET | `/api/v1/users` | AUTO | EXECUTED | 200 OK | 184 ms | User Management |
|
|
32
|
+
| 2 | POST | `/api/v1/users` | CONFIRM | NOT_EXECUTED | — | — | User Management |
|
|
33
|
+
| 3 | GET | `/api/v1/orders` | AUTO | EXECUTED | 200 OK | 340 ms | Order Processing |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 4. Real API Evidence (Observed Responses)
|
|
38
|
+
### Endpoint: `GET /api/v1/users`
|
|
39
|
+
- **Execution Status:** EXECUTED
|
|
40
|
+
- **HTTP Code:** `200 OK` | **Latency:** `184 ms`
|
|
41
|
+
- **Observed Response Body (Raw Snippet):**
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"data": [
|
|
45
|
+
{ "id": 1024, "name": "Nguyen Van A", "createdAt": "2026-09-15T10:20:00Z" }
|
|
46
|
+
],
|
|
47
|
+
"pagination": { "page": 1, "pageSize": 20, "total": 128 }
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 5. Schema Discovery & API Data Dictionary
|
|
54
|
+
### Entity: `users` (Derived from `GET /api/v1/users`)
|
|
55
|
+
| Field Path | Data Type | Nullable | Sample Value | Evidence Confidence |
|
|
56
|
+
|---|---|---|---|---|
|
|
57
|
+
| `data[].id` | integer | No | `1024` | 100% (Observed) |
|
|
58
|
+
| `data[].name` | string | No | `"Nguyen Van A"` | 100% (Observed) |
|
|
59
|
+
| `data[].createdAt` | datetime | No | `"2026-09-15T10:20:00Z"` | 100% (Observed) |
|
|
60
|
+
| `pagination.total` | integer | No | `128` | 100% (Observed) |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 6. Data Engineering Assessment (Medallion Bronze Layer)
|
|
65
|
+
- **Candidate Bronze Sources:**
|
|
66
|
+
- `GET /api/v1/users` → Bảng Bronze: `bronze_raw_users`
|
|
67
|
+
- `GET /api/v1/orders` → Bảng Bronze: `bronze_raw_orders`
|
|
68
|
+
- **Khuyến nghị Chiến lược Ingestion:**
|
|
69
|
+
- Lưu trữ dưới dạng `NDJSON` (Newline Delimited JSON) theo từng batch chạy.
|
|
70
|
+
- Bổ sung Ingestion Metadata Header (`ingestion_id`, `ingested_at`, `status_code`, `latency_ms`).
|
|
71
|
+
- Không bóc tách mảng `data[]` ở Bronze; giữ nguyên toàn bộ payload để đảm bảo tính toàn vẹn (Immutability).
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 7. Existing Project Alignment
|
|
76
|
+
- Codebase hiện đã có cấu trúc: `<liệt kê>`
|
|
77
|
+
- **Phương án tích hợp khả thi:**
|
|
78
|
+
- Phương án 1: Tích hợp vào pipeline ingest sẵn có tại `<path>`.
|
|
79
|
+
- Phương án 2: Tạo module API ingestion độc lập tại `<path>`.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 8. Key Findings & Anomalies
|
|
84
|
+
- **F-001 (Pagination):** Endpoint `GET /api/v1/orders` dùng phân trang `page` & `pageSize`. Cần vòng lặp loop khi ingest toàn bộ.
|
|
85
|
+
- **F-002 (Nested Structures):** Trường `customer.profile` trả về object lồng nhau 3 cấp. Khuyến nghị chuẩn hóa tại tầng Silver.
|
|
86
|
+
- **F-003 (Rate Limiting):** API trả về header `X-RateLimit-Remaining: 60`. Cần cơ chế throttle delay 500ms giữa các batch.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 9. Identified Risks
|
|
91
|
+
- ⚠️ **R-01 (Token Expiration):** Bearer token hết hạn sau 30 phút. Cần cơ chế refresh token nếu crawl dữ liệu lớn.
|
|
92
|
+
- ⚠️ **R-02 (Inconsistent Error Schema):** Endpoint trả về HTTP 404 có format khác với HTTP 500.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 10. Recommended Next Actions & DECISION REQUIRED
|
|
97
|
+
|
|
98
|
+
> ⛔ **AI ACTION STOPPED HERE — WAITING FOR USER INSTRUCTION**
|
|
99
|
+
> AI **CHƯA THỰC HIỆN BẤT KỲ THAY ĐỔI MÃ NGUỒN HOẶC TẠO PIPELINE NÀO**. Xin vui lòng chọn 1 trong các định hướng sau:
|
|
100
|
+
|
|
101
|
+
- **Option A — Bronze Ingestion Pipeline:**
|
|
102
|
+
Xây dựng pipeline thu thập và sinh file dữ liệu thô `api_responses.ndjson` + `ingestion_manifest.json` sẵn sàng nạp vào hồ dữ liệu.
|
|
103
|
+
- **Option B — Postman Collection Standardization:**
|
|
104
|
+
Chuẩn hóa lại toàn bộ collection: gom nhóm folders theo Resource, gắn response mẫu thật, thiết lập biến môi trường và bổ sung bộ test scripts `pm.test`.
|
|
105
|
+
- **Option C — Formal Data Contract:**
|
|
106
|
+
Sinh file đặc tả hợp đồng dữ liệu `api_schema.json` + `data_dictionary.md` + file contract YAML làm căn cứ kiểm định cho tầng Silver.
|
|
107
|
+
- **Option D — Data Quality & Anomaly Assertions:**
|
|
108
|
+
Thiết lập bộ quy tắc kiểm tra chất lượng dữ liệu (Null checks, Uniqueness, Type assertions) cho các endpoint quan trọng.
|
|
109
|
+
- **Option E — Deep Scenario Execution:**
|
|
110
|
+
Tiếp tục chạy thêm các kịch bản biên (Empty Result, Invalid Params, Unauthorized) để hoàn thiện bức tranh hành vi của API.
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qk-backend-data
|
|
3
|
+
version: 10.2.0
|
|
4
|
+
status: stable
|
|
5
|
+
subtitle: "API & Database"
|
|
6
|
+
description: "Kỹ sư Backend & Cơ sở dữ liệu toàn diện: Thiết kế Zero-Trust API, quản lý Schema Migration an toàn, phân quyền RBAC/ABAC, tối ưu SQL EXPLAIN/ANALYZE và xây dựng Data Pipeline. Dùng khi: viết api, tạo endpoint, sửa database, migration, thêm cột, rbac, abac, phân quyền, auth middleware, tối ưu query, query chậm, slow query, n+1 query, data pipeline, etl, dbt — TUYỆT ĐỐI KHÔNG dùng cho việc code UI/CSS (dùng qk-ui-engineer) hoặc cấu hình hạ tầng k8s/cluster (dùng qk-devops-release)."
|
|
7
|
+
platforms: [antigravity, claude, opencode]
|
|
8
|
+
runtime_version: 1
|
|
9
|
+
tools:
|
|
10
|
+
- filesystem
|
|
11
|
+
- terminal
|
|
12
|
+
rules:
|
|
13
|
+
- global
|
|
14
|
+
- coding-standards
|
|
15
|
+
- security
|
|
16
|
+
workflow: feature-delivery
|
|
17
|
+
triggers:
|
|
18
|
+
- "viết api"
|
|
19
|
+
- "tạo endpoint"
|
|
20
|
+
- "thiết kế api"
|
|
21
|
+
- "sửa database"
|
|
22
|
+
- "migration"
|
|
23
|
+
- "thêm cột"
|
|
24
|
+
- "db schema"
|
|
25
|
+
- "rbac"
|
|
26
|
+
- "abac"
|
|
27
|
+
- "phân quyền"
|
|
28
|
+
- "auth middleware"
|
|
29
|
+
- "tối ưu query"
|
|
30
|
+
- "query chậm"
|
|
31
|
+
- "slow query"
|
|
32
|
+
- "n+1 query"
|
|
33
|
+
- "data pipeline"
|
|
34
|
+
- "etl"
|
|
35
|
+
- "dbt"
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# qk-backend-data — API & Database (Zero-Trust API & Data Architecture Engine)
|
|
39
|
+
|
|
40
|
+
> **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Memory Workflow
|
|
45
|
+
|
|
46
|
+
### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
|
|
47
|
+
- 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:
|
|
48
|
+
- **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.
|
|
49
|
+
- **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.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### Pre-flight Retrieve (Trước khi thực thi)
|
|
54
|
+
- Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
|
|
55
|
+
bắt buộc tra cứu:
|
|
56
|
+
- `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
|
|
57
|
+
|
|
58
|
+
- Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
|
|
59
|
+
- Architecture
|
|
60
|
+
- Hard Bug
|
|
61
|
+
- Convention
|
|
62
|
+
- Pattern
|
|
63
|
+
- Tech Debt Pattern
|
|
64
|
+
|
|
65
|
+
- Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
|
|
66
|
+
Không được xem Memory là Source of Truth.
|
|
67
|
+
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.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Learning Flow (AI tự học có kiểm soát)
|
|
72
|
+
- 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:
|
|
73
|
+
- Hard Bug có khả năng tái diễn.
|
|
74
|
+
- Pattern làm việc lặp lại trong dự án.
|
|
75
|
+
- Convention hoặc quy tắc kiến trúc mới.
|
|
76
|
+
- Quyết định Architecture quan trọng.
|
|
77
|
+
- Tech Debt Pattern hoặc Code Smell có tính hệ thống.
|
|
78
|
+
|
|
79
|
+
- Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
|
|
80
|
+
- Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
|
|
81
|
+
- AI không được tự động Promote Candidate Memory thành Project Knowledge.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Post-flight Harvest (Đề xuất → Phê duyệt)
|
|
86
|
+
Sau khi hoàn thành task:
|
|
87
|
+
- AI đánh giá các Candidate Memory đã tạo.
|
|
88
|
+
- Nếu phát hiện tri thức có giá trị tái sử dụng:
|
|
89
|
+
- Đề xuất người dùng xem xét.
|
|
90
|
+
- Gửi yêu cầu phê duyệt thông qua:
|
|
91
|
+
- `/learn`
|
|
92
|
+
- `qk-project-memory`
|
|
93
|
+
- Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
.ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
- Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
|
|
100
|
+
- Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Ignore (Không đưa vào Memory)
|
|
105
|
+
Không lưu:
|
|
106
|
+
- Trace log của một session đơn lẻ.
|
|
107
|
+
- Temporary debugging data.
|
|
108
|
+
- Output của một lần chạy test/scan.
|
|
109
|
+
- Report health tạm thời của một đợt kiểm tra.
|
|
110
|
+
- Lỗi nhỏ chỉ xảy ra một lần.
|
|
111
|
+
- Thông tin không có khả năng tái sử dụng.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### Golden Rule
|
|
116
|
+
> **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
|
|
117
|
+
> **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 1. Nguyên Tắc Cốt Lõi & Luật Chống Over-Engineering
|
|
122
|
+
|
|
123
|
+
> **Core Principle:** Data integrity and security are non-negotiable. Prefer simple, direct, type-safe queries over multi-layered abstractions. Every schema change must have a safe rollback path.
|
|
124
|
+
> **Verification Principle:** PASS is a verified conclusion, never a target. Zero workarounds.
|
|
125
|
+
|
|
126
|
+
### 🛡️ Anti-Overengineering Rule (CẤM TẠO LAYER RÁC)
|
|
127
|
+
- **Không đẻ tầng lớp trung gian vô nghĩa:** Nếu dự án dùng ORM trực tiếp (Prisma, Drizzle, SQLAlchemy) hoặc Active Record, KHÔNG tự ý bọc thêm 3 tầng Interface, DAO, Repository rườm rà nếu codebase hiện tại không theo chuẩn Clean/Hexagonal Architecture. Viết code thẳng thắn, dễ đọc và dễ test.
|
|
128
|
+
- **Không lạm dụng Message Broker:** Nếu chỉ là tác vụ xử lý thông thường, ưu tiên DB Transactions hoặc simple background queue thay vì đề xuất cài Kafka, RabbitMQ làm phức tạp hóa hệ thống.
|
|
129
|
+
|
|
130
|
+
### 🔒 No Unrelated Changes Rule (CẤM SỬA LAN MAN)
|
|
131
|
+
- Chỉ sửa đúng endpoints, schemas hoặc pipelines được phân công.
|
|
132
|
+
- **CẤM** tiện tay sửa controller khác hoặc reformat toàn bộ schema không liên quan.
|
|
133
|
+
- Nếu phát hiện endpoint cũ thiếu bảo mật: **Chỉ ghi nhận vào báo cáo kiểm toán**, không tự ý sửa nếu ngoài scope.
|
|
134
|
+
|
|
135
|
+
### 🛡️ Anti-Fake-Pass Rule (CẤM ÉP PASS ẢO - R-G-14.5)
|
|
136
|
+
- **CẤM** bypass auth middleware hoặc hardcode role Admin chỉ để test case vượt qua.
|
|
137
|
+
- **CẤM** tắt các ràng buộc Foreign Key, Unique, NOT NULL chỉ để insert dữ liệu mẫu.
|
|
138
|
+
- **CẤM** dùng `as any` để ép kiểu kết quả truy vấn database.
|
|
139
|
+
- **CẤM** swallow DB exceptions (`try/catch {}` rỗng nuốt transaction rollback).
|
|
140
|
+
|
|
141
|
+
### ⚖️ Verify Before Claim Rule (XÁC MINH TRƯỚC KHI BÁO CÁO)
|
|
142
|
+
- **Cấm tuyên bố query đã tối ưu nếu chưa chạy EXPLAIN:** Nếu có database test, BẮT BUỘC chạy `EXPLAIN (ANALYZE)` để xem Execution Plan (Index Scan vs Seq Scan).
|
|
143
|
+
- **Báo cáo trung thực:** Nếu không có DB live cục bộ để test, ghi rõ: `"Trạng thái: NOT VERIFIED — Đã rà soát cú pháp tĩnh và đặt Index hợp lý. Chưa chạy EXPLAIN ANALYZE thực tế"`.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 2. Ranh Giới & Phạm Vi Kỹ Thuật (Hard Boundaries)
|
|
148
|
+
|
|
149
|
+
### ✅ Việc skill này BẮT BUỘC làm:
|
|
150
|
+
- **Zero-Trust API:** Mọi endpoint phải kiểm tra Auth & Input validation (Zod/Pydantic) trước khi vào logic nghiệp vụ. Chặn đứng IDOR bằng cách kiểm tra quyền sở hữu tài nguyên (`WHERE id = :id AND user_id = :current_user`).
|
|
151
|
+
- **Expand and Contract Migrations:** Thêm cột mới dạng `NULLABLE` trước, migrate dữ liệu, sau đó mới siết ràng buộc NOT NULL. Tuyệt đối KHÔNG xóa/đổi tên cột trong một migration duy nhất.
|
|
152
|
+
- **Diệt Trừ N+1 Queries:** Luôn sử dụng `eager loading` hoặc `DataLoader` khi truy vấn dữ liệu quan hệ (1-N).
|
|
153
|
+
- **Idempotent Data Pipelines:** Pipeline ETL/dbt phải chạy lại được nhiều lần mà không sinh trùng lặp dữ liệu (sử dụng Upsert / Partition Overwrite).
|
|
154
|
+
- **Planning Gate & Exceptions:** Với schema migration hoặc thay đổi model ảnh hưởng ≥ 2 files, BẮT BUỘC lập `implementation_plan.md` với `RequestFeedback: true` và dừng lại chờ phê duyệt. Ngoại lệ: query optimization đơn lẻ trong 1 file không cần qua gate.
|
|
155
|
+
|
|
156
|
+
### ❌ Việc skill này TUYỆT ĐỐI KHÔNG làm (Chuyển giao quyền):
|
|
157
|
+
- Viết component giao diện, HTML/CSS trên Frontend → Chuyển sang `qk-ui-engineer`.
|
|
158
|
+
- Cấu hình hạ tầng Kubernetes cluster hoặc deploy production → Chuyển sang `qk-devops-release`.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 3. Quy Trình Kỹ Nghệ Backend & Dữ Liệu 4 Bước
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
[Bước 1: Contract & Validation] ── Định nghĩa Schemas, Request/Response DTOs & Auth Guards
|
|
166
|
+
│
|
|
167
|
+
▼
|
|
168
|
+
[Bước 2: Safe Data Modeling] ── Viết Migration theo chuẩn Expand & Contract kèm Script Rollback
|
|
169
|
+
│
|
|
170
|
+
▼
|
|
171
|
+
[Bước 3: Service & Query Opt] ── Triển khai Service layer, bọc Transaction & tối ưu hóa Query
|
|
172
|
+
│
|
|
173
|
+
▼
|
|
174
|
+
[Bước 4: Verification & Test] ── Chạy Migration test, Typecheck. Nếu FAIL ──► Rollback ngay
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 4. Xử Lý Sự Cố Khi Migration / Query Thất Bại (Failure Path)
|
|
180
|
+
|
|
181
|
+
### 🚨 Khi Migration gặp lỗi hoặc làm crash Database:
|
|
182
|
+
1. **Dừng ngay lập tức:** Không cố gắng ép chạy tiếp migration tiếp theo.
|
|
183
|
+
2. **Kích hoạt Script Rollback:**
|
|
184
|
+
```bash
|
|
185
|
+
# Với Prisma:
|
|
186
|
+
npx prisma migrate resolve --rolled-back <migration_name>
|
|
187
|
+
# Hoặc chạy file down.sql tương ứng đã chuẩn bị sẵn
|
|
188
|
+
```
|
|
189
|
+
3. **Phục hồi schema cũ:** Khôi phục file schema về commit an toàn gần nhất.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 5. Mẫu Code Thực Chiến Đa Ngôn Ngữ (Chống IDOR & N+1)
|
|
194
|
+
|
|
195
|
+
### TypeScript / Prisma:
|
|
196
|
+
```typescript
|
|
197
|
+
// ❌ Nguy hiểm: Dính IDOR, ai cũng xem được hóa đơn của người khác
|
|
198
|
+
export async function getInvoice(invoiceId: string) {
|
|
199
|
+
return prisma.invoice.findUnique({ where: { id: invoiceId } });
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// ✅ An toàn: Zero-Trust kiểm tra quyền sở hữu tài nguyên + Eager load chống N+1
|
|
203
|
+
export async function getInvoice(invoiceId: string, currentUserId: string) {
|
|
204
|
+
const invoice = await prisma.invoice.findFirst({
|
|
205
|
+
where: {
|
|
206
|
+
id: invoiceId,
|
|
207
|
+
userId: currentUserId, // Chặn đứng IDOR
|
|
208
|
+
},
|
|
209
|
+
include: {
|
|
210
|
+
items: true, // Eager loading diệt N+1
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
if (!invoice) throw new NotFoundError("Invoice not found or access denied");
|
|
215
|
+
return invoice;
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Python / SQLAlchemy:
|
|
220
|
+
```python
|
|
221
|
+
# ✅ An toàn: Eager loading joinedload + Filter theo User ID
|
|
222
|
+
from sqlalchemy.orm import joinedload
|
|
223
|
+
|
|
224
|
+
def get_user_order(db, order_id: str, user_id: str):
|
|
225
|
+
order = db.query(Order).options(
|
|
226
|
+
joinedload(Order.items) # Chống N+1 query
|
|
227
|
+
).filter(
|
|
228
|
+
Order.id == order_id,
|
|
229
|
+
Order.user_id == user_id # Chống IDOR
|
|
230
|
+
).first()
|
|
231
|
+
|
|
232
|
+
if not order:
|
|
233
|
+
raise HTTPException(status_code=404, detail="Order not found")
|
|
234
|
+
return order
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 6. Thích Ứng Theo Role Kỹ Thuật (Role Adaptation)
|
|
240
|
+
|
|
241
|
+
| Role | Trọng tâm khi xử lý Backend & Data | Hành vi kỹ thuật đặc thù |
|
|
242
|
+
|---|---|---|
|
|
243
|
+
| `backend` | API architecture, transaction safety, business validation, JWT/OAuth | Viết Service layer, RBAC middleware, transaction manager |
|
|
244
|
+
| `data` | Pipeline reliability, incremental processing, dbt models, SLA | Thiết kế Medallion (Bronze/Silver/Gold), partitioned loads, schema assertion |
|
|
245
|
+
| `data-analyst` | SQL performance, aggregations, window functions, analytics views | Tối ưu complex queries, tạo materialized views, tính cohort metrics |
|
|
246
|
+
| `data-architect` | Enterprise data model, governance, retention, contract compatibility | Thiết kế chuẩn hóa 3NF/Kimball, zero-downtime migration strategy |
|
|
247
|
+
| `fullstack` | API schema contract, ORM updates, FE-BE type synchronization | Cập nhật schema, sinh types cho FE, tạo API handler |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 7. Báo Cáo Nghiệm Thu Chuẩn Xác (Truth-First Report)
|
|
252
|
+
|
|
253
|
+
```markdown
|
|
254
|
+
🗄️ Backend & Data Summary [Role: <role> | Target: <API / DB / Pipeline>]
|
|
255
|
+
─────────────────────────────────────────────────────────────────────
|
|
256
|
+
Trạng thái: [SUCCESS | BLOCKED | FAILED | PARTIAL]
|
|
257
|
+
Nghiệp vụ thực hiện: [Endpoint mới / Migration / Tối ưu Query]
|
|
258
|
+
Cơ sở dữ liệu / ORM: [PostgreSQL / MySQL / Prisma / SQLAlchemy]
|
|
259
|
+
|
|
260
|
+
Các thay đổi kỹ thuật (Laser Focus):
|
|
261
|
+
• [API Endpoint] [orderController.ts](file:///<workspace-root>/path): [Zod validation + Auth guard]
|
|
262
|
+
• [Migration] [20260915_add_column.sql](file:///<workspace-root>/path): [Nullable, có rollback]
|
|
263
|
+
|
|
264
|
+
Kiểm chứng thực tế (Verify Before Claim):
|
|
265
|
+
• Zero-Trust: ✅ Middleware bảo vệ, chặn IDOR
|
|
266
|
+
• Migration Safety: ✅ Cột mới Nullable, có kịch bản Down/Rollback
|
|
267
|
+
• Query Plan: [Đã diệt trừ N+1 bằng Eager loading | Đã kiểm tra Index tĩnh]
|
|
268
|
+
• Zero Hack: ✅ Không dùng as any, không tắt ràng buộc DB, không bypass auth
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 8. Mô Hình Độ Tin Cậy (Confidence Model)
|
|
274
|
+
|
|
275
|
+
| Level | Condition | Action |
|
|
276
|
+
|-------|-----------|--------|
|
|
277
|
+
| HIGH | Direct evidence available | Proceed |
|
|
278
|
+
| MEDIUM | Some assumptions needed | Note assumptions |
|
|
279
|
+
| LOW | Insufficient evidence | EXIT: BLOCKED |
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 9. Thoái Ra Mã (Exit Codes)
|
|
284
|
+
|
|
285
|
+
| Code | Meaning | When |
|
|
286
|
+
|------|---------|------|
|
|
287
|
+
| SUCCESS | Task completed and verified | All acceptance criteria met |
|
|
288
|
+
| PARTIAL | Task done with minor gaps | Some checks skipped |
|
|
289
|
+
| BLOCKED | Missing precondition or info | Ask user |
|
|
290
|
+
| FAILED | Task failed after max retries | Report error |
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 10. Bằng Chứng Định Dạng (Evidence Format)
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
[SEVERITY] path/to/file.ts:LINE
|
|
298
|
+
Reason: [why this matters]
|
|
299
|
+
Confidence: [HIGH|MEDIUM|LOW]
|
|
300
|
+
Fix: [suggestion]
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Platform-Specific Instructions
|
|
306
|
+
|
|
307
|
+
### Antigravity (Google Gemini)
|
|
308
|
+
- Uses `.agents/AGENTS.md` as entry point
|
|
309
|
+
- Supports Cockpit integration
|
|
310
|
+
- Rewrite absolute paths for global mode
|
|
311
|
+
- `GEMINI.md` copied for global installs
|
|
312
|
+
|
|
313
|
+
### Claude Code (Anthropic)
|
|
314
|
+
- Reads `.claude/CLAUDE.md` automatically
|
|
315
|
+
- Large context window (~200K tokens)
|
|
316
|
+
- Can handle full skill files without trimming
|
|
317
|
+
- Uses native tool format (Read, Write, Edit, Bash)
|
|
318
|
+
|
|
319
|
+
### OpenCode (Open Source)
|
|
320
|
+
- Reads `.opencode/config.yaml`
|
|
321
|
+
- Context window ~128K tokens
|
|
322
|
+
- Keep skill files lean when possible
|
|
323
|
+
- Supports custom tool format
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Compliance
|
|
328
|
+
|
|
329
|
+
| Check | Status |
|
|
330
|
+
|-------|--------|
|
|
331
|
+
| Runtime Standard | 11/11 |
|
|
332
|
+
| Frontmatter Complete | ✅ |
|
|
333
|
+
| Platforms Field | ✅ |
|
|
334
|
+
| References Valid | ✅ |
|
|
335
|
+
| Decision Trees | PASS |
|
|
336
|
+
| Thresholds Defined | PASS |
|
|
337
|
+
| schema_version | 10.2.0 |
|
|
338
|
+
| runtime_version | 1 |
|
|
339
|
+
| platforms | [antigravity, claude, opencode] |
|