@longph2102/v-flow 1.5.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.md +265 -0
- package/CHANGELOG.md +318 -0
- package/LICENSE +21 -0
- package/README.md +326 -0
- package/agents/ba-agent.md +437 -0
- package/agents/ba-critic-agent.md +156 -0
- package/agents/ba-to-ptyc-agent.md +112 -0
- package/agents/bugfix-analyst-agent.md +221 -0
- package/agents/constitute-agent.md +155 -0
- package/agents/help-agent.md +168 -0
- package/agents/implement-agent.md +220 -0
- package/agents/import-ba-docs-agent.md +164 -0
- package/agents/master-check-agent.md +228 -0
- package/agents/metrics-agent.md +180 -0
- package/agents/operations-agent.md +123 -0
- package/agents/plan-agent.md +218 -0
- package/agents/prototype-agent.md +191 -0
- package/agents/retrospective-agent.md +196 -0
- package/agents/review-agent.md +210 -0
- package/agents/sprint-agent.md +191 -0
- package/agents/status-agent.md +186 -0
- package/agents/sync-agent.md +201 -0
- package/agents/test-agent.md +166 -0
- package/agents/understand-agent.md +339 -0
- package/cli/commands/check.js +96 -0
- package/cli/commands/dev-quiz.js +107 -0
- package/cli/commands/doctor.js +348 -0
- package/cli/commands/feature.js +259 -0
- package/cli/commands/hooks.js +163 -0
- package/cli/commands/init.js +189 -0
- package/cli/commands/log.js +199 -0
- package/cli/commands/plugin.js +230 -0
- package/cli/commands/score-card.js +203 -0
- package/cli/commands/status.js +269 -0
- package/cli/commands/sync.js +59 -0
- package/cli/commands/upgrade.js +150 -0
- package/cli/commands/validate.js +1259 -0
- package/cli/commands/watch.js +151 -0
- package/cli/index.js +46 -0
- package/cli/lib/ac-test-gate.js +89 -0
- package/cli/lib/activity-log.js +209 -0
- package/cli/lib/cli-error.js +183 -0
- package/cli/lib/constitution-lint.js +561 -0
- package/cli/lib/dev-quiz-grade.js +127 -0
- package/cli/lib/governance.js +78 -0
- package/cli/lib/hook-targets.js +167 -0
- package/cli/lib/i18n.js +375 -0
- package/cli/lib/knowledge-oracle.js +379 -0
- package/cli/lib/logger.js +203 -0
- package/cli/lib/module-card-lint.js +304 -0
- package/cli/lib/module-card-score.js +223 -0
- package/cli/lib/plugins.js +481 -0
- package/cli/lib/scanner.js +692 -0
- package/cli/lib/sync-core.js +232 -0
- package/cli/lib/sync-targets.js +84 -0
- package/cli/lib/templates.js +268 -0
- package/cli/lib/yaml-parser.js +203 -0
- package/commands/v.ba-critic.md +101 -0
- package/commands/v.ba-to-ptyc.md +71 -0
- package/commands/v.bugfix.md +86 -0
- package/commands/v.check.md +131 -0
- package/commands/v.constitute.md +87 -0
- package/commands/v.constitution.md +84 -0
- package/commands/v.fork.md +127 -0
- package/commands/v.help.md +73 -0
- package/commands/v.hotfix.md +200 -0
- package/commands/v.implement.md +92 -0
- package/commands/v.import-ba-docs.md +222 -0
- package/commands/v.metrics.md +74 -0
- package/commands/v.operations.md +70 -0
- package/commands/v.plan.md +78 -0
- package/commands/v.prototype.md +121 -0
- package/commands/v.quickfix.md +169 -0
- package/commands/v.retrospective.md +80 -0
- package/commands/v.review.md +78 -0
- package/commands/v.rewind.md +127 -0
- package/commands/v.specify.md +118 -0
- package/commands/v.sprint.md +75 -0
- package/commands/v.status.md +62 -0
- package/commands/v.sync.md +81 -0
- package/commands/v.test.md +67 -0
- package/commands/v.understand.md +112 -0
- package/package.json +65 -0
- package/skills/_shared/constitution-reader/SKILL.md +109 -0
- package/skills/_shared/constitution-reader/config.json +52 -0
- package/skills/_shared/constitution-reader/examples/good/b1-phase-output.md +48 -0
- package/skills/_shared/constitution-reader/gotchas.md +46 -0
- package/skills/_shared/context-reader/SKILL.md +111 -0
- package/skills/_shared/context-reader/config.json +54 -0
- package/skills/_shared/context-reader/examples/good/legacy-nodejs-output.md +35 -0
- package/skills/_shared/context-reader/gotchas.md +49 -0
- package/skills/_shared/ears-notation/SKILL.md +63 -0
- package/skills/_shared/ears-notation/config.json +55 -0
- package/skills/_shared/ears-notation/examples/good/plan-test-interpretation.md +29 -0
- package/skills/_shared/ears-notation/gotchas.md +43 -0
- package/skills/check/cross-validator/SKILL.md +206 -0
- package/skills/check/cross-validator/config.json +33 -0
- package/skills/check/cross-validator/examples/good/validation-report-pass-with-concerns.md +105 -0
- package/skills/check/cross-validator/gotchas.md +43 -0
- package/skills/implement/constitution-enforcer/SKILL.md +134 -0
- package/skills/implement/constitution-enforcer/config.json +16 -0
- package/skills/implement/constitution-enforcer/examples/bad/vague-report.md +42 -0
- package/skills/implement/constitution-enforcer/examples/good/compliance-report.md +57 -0
- package/skills/implement/constitution-enforcer/gotchas.md +26 -0
- package/skills/implement/constitution-enforcer/scripts/check-constitution.sh +88 -0
- package/skills/implement/no-go-zone-guard/SKILL.md +173 -0
- package/skills/implement/no-go-zone-guard/config.json +28 -0
- package/skills/implement/no-go-zone-guard/examples/good/adapter-workaround.md +46 -0
- package/skills/implement/no-go-zone-guard/gotchas.md +27 -0
- package/skills/implement/no-go-zone-guard/scripts/check-nogo-zones.sh +148 -0
- package/skills/implement/no-go-zone-guard/scripts/nogo-precommit.sh +96 -0
- package/skills/implement/tdd-driver/SKILL.md +159 -0
- package/skills/implement/tdd-driver/config.json +33 -0
- package/skills/implement/tdd-driver/examples/good/tdd-cycle-product-repo.md +81 -0
- package/skills/implement/tdd-driver/gotchas.md +34 -0
- package/skills/metrics/metrics-collector/SKILL.md +133 -0
- package/skills/metrics/metrics-collector/config.json +16 -0
- package/skills/metrics/metrics-collector/examples/bad/incomplete-report.md +48 -0
- package/skills/metrics/metrics-collector/examples/good/full-metrics-report.md +101 -0
- package/skills/metrics/metrics-collector/gotchas.md +26 -0
- package/skills/operations/incident-runbook/SKILL.md +167 -0
- package/skills/operations/incident-runbook/config.json +21 -0
- package/skills/operations/incident-runbook/examples/bad/vague-incident-report.md +48 -0
- package/skills/operations/incident-runbook/examples/good/p1-hotfix-response.md +119 -0
- package/skills/operations/incident-runbook/gotchas.md +26 -0
- package/skills/plan/architecture-designer/SKILL.md +228 -0
- package/skills/plan/architecture-designer/config.json +32 -0
- package/skills/plan/architecture-designer/examples/bad/vague-plan.md +62 -0
- package/skills/plan/architecture-designer/examples/good/expand-contract-migration.md +56 -0
- package/skills/plan/architecture-designer/examples/good/plan-structure.md +58 -0
- package/skills/plan/architecture-designer/gotchas.md +45 -0
- package/skills/plan/task-breakdown/SKILL.md +208 -0
- package/skills/plan/task-breakdown/config.json +26 -0
- package/skills/plan/task-breakdown/examples/bad/vague-tasks.md +77 -0
- package/skills/plan/task-breakdown/examples/good/spike-clarify-tasks.md +66 -0
- package/skills/plan/task-breakdown/examples/good/tasks-login-feature.md +111 -0
- package/skills/plan/task-breakdown/gotchas.md +39 -0
- package/skills/prototype/LOGIC.md +240 -0
- package/skills/prototype/SKILL.md +185 -0
- package/skills/prototype/UI.md +407 -0
- package/skills/prototype/config.json +104 -0
- package/skills/prototype/examples/bad/prototype-notes.md +68 -0
- package/skills/prototype/examples/good/prototype-notes-ui.md +109 -0
- package/skills/prototype/examples/good/prototype-notes.md +67 -0
- package/skills/prototype/gotchas.md +128 -0
- package/skills/prototype/scripts/check-flow-state.ps1 +112 -0
- package/skills/prototype/scripts/check-flow-state.sh +104 -0
- package/skills/prototype/scripts/check-prototype-cleanup.ps1 +124 -0
- package/skills/prototype/scripts/check-prototype-cleanup.sh +109 -0
- package/skills/prototype/scripts/check-prototype-notes.ps1 +107 -0
- package/skills/prototype/scripts/check-prototype-notes.sh +102 -0
- package/skills/review/adversarial-reviewer/SKILL.md +137 -0
- package/skills/review/adversarial-reviewer/config.json +32 -0
- package/skills/review/adversarial-reviewer/examples/good/review-report-template.md +56 -0
- package/skills/review/adversarial-reviewer/gotchas.md +46 -0
- package/skills/review/adversarial-reviewer/scripts/quick-security-scan.sh +52 -0
- package/skills/specify/ba-bpmn-doc-gen/SKILL.md +108 -0
- package/skills/specify/ba-bpmn-doc-gen/reference/reference-bpmn-generation.md +528 -0
- package/skills/specify/ba-bpmn-doc-gen/reference/reference-drawio-flowchart.md +466 -0
- package/skills/specify/ba-critic/SKILL.md +172 -0
- package/skills/specify/ba-critic/config.json +32 -0
- package/skills/specify/ba-critic/examples/good/critic-report-round1.md +51 -0
- package/skills/specify/ba-critic/gotchas.md +40 -0
- package/skills/specify/ba-critic/scripts/check-spec-quality.sh +72 -0
- package/skills/specify/ba-doc-generator/SKILL.md +102 -0
- package/skills/specify/ba-doc-generator/references/template-clevel.md +84 -0
- package/skills/specify/ba-doc-generator/references/template-compliance.md +83 -0
- package/skills/specify/ba-doc-generator/references/template-dev.md +138 -0
- package/skills/specify/ba-doc-generator/references/template-partner.md +167 -0
- package/skills/specify/ba-doc-generator/references/template-pm.md +92 -0
- package/skills/specify/ba-doc-generator/references/template-review.md +114 -0
- package/skills/specify/ba-doc-generator/references/template-tester.md +108 -0
- package/skills/specify/ba-doc-generator/references/template-user.md +98 -0
- package/skills/specify/bugfix-analyst/SKILL.md +296 -0
- package/skills/specify/bugfix-analyst/config.json +41 -0
- package/skills/specify/bugfix-analyst/examples/bad/common-mistakes.md +71 -0
- package/skills/specify/bugfix-analyst/examples/good/email-validation-bugfix.md +53 -0
- package/skills/specify/bugfix-analyst/gotchas.md +51 -0
- package/skills/specify/ears-writer/SKILL.md +129 -0
- package/skills/specify/ears-writer/config.json +20 -0
- package/skills/specify/ears-writer/examples/bad/common-mistakes.md +17 -0
- package/skills/specify/ears-writer/examples/good/login-requirements.md +41 -0
- package/skills/specify/ears-writer/gotchas.md +43 -0
- package/skills/specify/ears-writer/scripts/check-ears-compliance.sh +51 -0
- package/skills/test/test-case-generator/SKILL.md +161 -0
- package/skills/test/test-case-generator/config.json +33 -0
- package/skills/test/test-case-generator/examples/good/test-cases-login.md +104 -0
- package/skills/test/test-case-generator/gotchas.md +43 -0
- package/skills/understand/ba-docs-scanner/SKILL.md +239 -0
- package/skills/understand/ba-docs-scanner/config.json +47 -0
- package/skills/understand/ba-docs-scanner/examples/good/work-order-br-extract.md +28 -0
- package/skills/understand/ba-docs-scanner/gotchas.md +44 -0
- package/skills/understand/ba-docs-scanner/merge-rules.md +47 -0
- package/skills/understand/codebase-scanner/SKILL.md +260 -0
- package/skills/understand/codebase-scanner/config.json +56 -0
- package/skills/understand/codebase-scanner/examples/good/menu-module-output.md +44 -0
- package/skills/understand/codebase-scanner/gotchas.md +42 -0
- package/skills/understand/codebase-scanner/scripts/scan-project-structure.sh +64 -0
- package/templates/DESIGN.md +456 -0
- package/templates/agent-command-template.yaml +240 -0
- package/templates/agent-config-template.md +170 -0
- package/templates/agent-definition-template.md +145 -0
- package/templates/agent-metrics-template.md +150 -0
- package/templates/api-contract-template.md +72 -0
- package/templates/bugfix-report-template.md +195 -0
- package/templates/bugfix-spec-template.md +134 -0
- package/templates/code-review-report-template.md +119 -0
- package/templates/constitution-template.md +234 -0
- package/templates/context-template.md +94 -0
- package/templates/data-model-template.md +95 -0
- package/templates/decision-log-template.md +92 -0
- package/templates/flow-state-template.yaml +208 -0
- package/templates/github/workflows/v-flow-validate.yml +30 -0
- package/templates/knowledge/adr-template.md +70 -0
- package/templates/knowledge/api-contract-template.md +140 -0
- package/templates/knowledge/domain-glossary.md +29 -0
- package/templates/knowledge/golden-tests-readme.md +115 -0
- package/templates/knowledge/lessons-learned.md +41 -0
- package/templates/knowledge/patterns.md +103 -0
- package/templates/module-card/SKILL.md +85 -0
- package/templates/module-card/api-specs.md +96 -0
- package/templates/module-card/business-quiz.md +119 -0
- package/templates/module-card/cross-service.md +125 -0
- package/templates/module-card/db.md +85 -0
- package/templates/module-card/dev-quiz.md +62 -0
- package/templates/module-card/permissions.md +83 -0
- package/templates/module-card/state-diagram.md +64 -0
- package/templates/module-card/tech-context.md +90 -0
- package/templates/module-card/ui-flows.md +91 -0
- package/templates/module-card/use-cases.md +142 -0
- package/templates/module-template.yaml +161 -0
- package/templates/operations-report-template.md +108 -0
- package/templates/plan-template.md +308 -0
- package/templates/prototype-notes-template.md +116 -0
- package/templates/ptyc/PTYC.template.docx +0 -0
- package/templates/ptyc/ptyc.meta.example.yaml +44 -0
- package/templates/retrospective-report-template.md +136 -0
- package/templates/security-review-template.md +84 -0
- package/templates/session-template.md +167 -0
- package/templates/spec-review-log-template.md +75 -0
- package/templates/spec-template.md +229 -0
- package/templates/sprint-status-template.md +101 -0
- package/templates/tasks-template.md +275 -0
- package/templates/test-cases-template.md +124 -0
- package/templates/ux-checklist-template.md +79 -0
- package/templates/validation-report-template.md +125 -0
- package/templates/vflow-config-template.yaml +22 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ba-docs-scanner
|
|
3
|
+
description: "Hướng dẫn Import BA Docs Agent đọc sâu tài liệu BA để generate Module Card drafts có giá trị. Agent PHẢI đọc skill này trước khi generate bất kỳ draft nào."
|
|
4
|
+
trigger: "Khi /v.import-ba-docs cần generate AI drafts (Bước 5)"
|
|
5
|
+
phase: "U.0d"
|
|
6
|
+
used_by:
|
|
7
|
+
- /v.import-ba-docs
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# BA Docs Scanner — Chiến Lược Đọc Sâu Tài Liệu BA
|
|
11
|
+
|
|
12
|
+
> ⚠️ Đây là **Skill bắt buộc** cho Import BA Docs Agent khi generate module card drafts.
|
|
13
|
+
> Đọc trước khi generate bất kỳ draft nào. Không có chiến lược đọc → output chỉ paraphrase, vô giá trị.
|
|
14
|
+
>
|
|
15
|
+
> → Xem `gotchas.md` cho Anti-patterns (output vô giá trị) và Quality Gate.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Nguyên tắc chung: Deep Document Reading
|
|
20
|
+
|
|
21
|
+
Đọc tài liệu BA **KHÁC HOÀN TOÀN** đọc code:
|
|
22
|
+
|
|
23
|
+
| Đọc Code (U.0b) | Đọc BA Docs (U.0d) |
|
|
24
|
+
|---|---|
|
|
25
|
+
| Grep `if`, `throw`, `validate` | Tìm câu "phải", "bắt buộc", "không được" |
|
|
26
|
+
| Enum definitions → states | Flowchart, bảng trạng thái trong doc |
|
|
27
|
+
| Controller → Service → DB | Actor → Action → Result |
|
|
28
|
+
| Code là truth | Doc có thể outdated — luôn gắn `[❓ CẦN BA VERIFY]` |
|
|
29
|
+
|
|
30
|
+
**5 nguyên tắc đọc BA docs:**
|
|
31
|
+
|
|
32
|
+
1. **Đọc TOÀN BỘ fulltext** — Không chỉ overview. Business rules thường nằm giữa hoặc cuối tài liệu.
|
|
33
|
+
2. **Tìm patterns ngôn ngữ** — Dùng bảng keywords bên dưới để nhận diện thông tin có giá trị.
|
|
34
|
+
3. **Cross-reference giữa sources** — Nhiều sources nói cùng 1 topic → merge + phát hiện mâu thuẫn.
|
|
35
|
+
4. **Trích dẫn nguyên văn** — Quote đoạn gốc, kèm tên source file. KHÔNG paraphrase.
|
|
36
|
+
5. **Chuyển text → structured data** — Đoạn văn mô tả → bảng, diagram, danh sách có cấu trúc.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Thứ tự đọc Raw Materials
|
|
41
|
+
|
|
42
|
+
Đọc theo thứ tự ưu tiên để xây dựng understanding dần dần:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
1. overview.md (briefing doc) → Bức tranh tổng thể, hiểu module làm gì
|
|
46
|
+
2. domain-map.json (mind map) → Hierarchy concepts, relationships giữa entities
|
|
47
|
+
3. study-guide.md (nếu có) → Key concepts, Q&A giúp validate understanding
|
|
48
|
+
4. sources/*.txt (fulltext) → Chi tiết: business rules, constraints, exceptions
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Cross-reference checklist:**
|
|
52
|
+
- [ ] Entities trong mind-map có match với entities mô tả trong fulltext?
|
|
53
|
+
- [ ] Q&A trong study-guide có bổ sung info nào mà fulltext không nói rõ?
|
|
54
|
+
- [ ] Có mâu thuẫn giữa các sources? → Gắn `[⚠️ CONFLICTING SOURCES: source_A vs source_B]`
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Bảng Keywords — Nhận Diện Thông Tin Có Giá Trị
|
|
59
|
+
|
|
60
|
+
> Dùng bảng này để scan fulltext. Khi gặp keywords → ĐỌC KỸ đoạn xung quanh → trích xuất structured data.
|
|
61
|
+
|
|
62
|
+
| Mục tiêu trích xuất | Keywords tiếng Việt | Keywords tiếng Anh | Extract thành |
|
|
63
|
+
|---|---|---|---|
|
|
64
|
+
| **Business Rules** | "phải", "bắt buộc", "không được", "chỉ khi", "nếu...thì", "quy định", "điều kiện", "ràng buộc" | "must", "required", "shall", "only if", "condition", "constraint" | → BR-xx trong use-cases.md |
|
|
65
|
+
| **States / Transitions** | "trạng thái", "chuyển sang", "sau khi", "trước khi", "quy trình", "bước", "luồng", "flow" | "status", "state", "transition", "workflow", "step", "after", "before" | → state-diagram.md |
|
|
66
|
+
| **Actors / Roles** | "người dùng", "quản lý", "admin", "nhân viên", "phê duyệt", "tạo bởi", "vai trò" | "user", "manager", "admin", "role", "approver", "creator" | → permissions.md |
|
|
67
|
+
| **Permissions** | "quyền", "được phép", "không được", "chỉ", "cấm", "hạn chế", "phân quyền" | "permission", "access", "deny", "restrict", "authorize" | → permissions.md |
|
|
68
|
+
| **Data / Entities** | "thông tin", "dữ liệu", "trường", "bảng", "danh sách", "mã", "ID", "thuộc tính" | "field", "table", "entity", "attribute", "data", "record" | → db.md |
|
|
69
|
+
| **SLAs / Constraints** | "trong vòng", "tối đa", "tối thiểu", "deadline", "thời hạn", "KPI", "SLA" | "within", "maximum", "minimum", "deadline", "SLA", "KPI" | → SKILL.md (Constraints) |
|
|
70
|
+
| **Exceptions** | "ngoại lệ", "trường hợp đặc biệt", "trừ khi", "tuy nhiên", "nhưng", "ngoại trừ" | "exception", "special case", "unless", "however", "except" | → BR-xx (Exceptions) |
|
|
71
|
+
| **Integrations** | "kết nối", "tích hợp", "đồng bộ", "gửi", "nhận", "API", "hệ thống khác" | "integrate", "sync", "send", "receive", "API", "external" | → cross-service.md |
|
|
72
|
+
| **UI / Screens** | "màn hình", "form", "nút", "giao diện", "hiển thị", "nhập", "chọn" | "screen", "form", "button", "UI", "display", "input", "select" | → ui-flows.md |
|
|
73
|
+
| **Glossary** | "viết tắt", "thuật ngữ", "định nghĩa", "gọi là", "tức là", "ký hiệu" | "abbreviation", "term", "definition", "aka", "means" | → SKILL.md (Glossary) |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Scan Strategy cho từng file Module Card
|
|
78
|
+
|
|
79
|
+
### SKILL.md — Entry Point + Domain Glossary
|
|
80
|
+
|
|
81
|
+
**Cách đọc BA docs:**
|
|
82
|
+
1. Đọc `overview.md` → rút **mục đích module** (module tồn tại để giải quyết vấn đề gì cho business).
|
|
83
|
+
2. Scan tất cả sources → tìm **thuật ngữ đặc thù** (viết tắt, từ chuyên ngành, định nghĩa riêng).
|
|
84
|
+
3. Tìm **business constraints** — SLA, KPI, deadline, limits (số lượng tối đa, thời gian tối đa).
|
|
85
|
+
4. Tìm **stakeholders** — ai liên quan, vai trò gì, quyết định gì.
|
|
86
|
+
5. Đọc `domain-map.json` → entities chính và mối quan hệ.
|
|
87
|
+
|
|
88
|
+
**Output phải có:**
|
|
89
|
+
- **description**: KHÔNG phải "Module quản lý X". Phải mô tả GIÁ TRỊ NGHIỆP VỤ — VD: "Module xử lý vòng đời Phiếu công tác (Work Order) từ tạo mới → phê duyệt → thực hiện → hoàn thành, phục vụ quy trình bảo trì thiết bị tại các chi nhánh".
|
|
90
|
+
- **Quick Summary**: 3-4 câu tóm tắt từ góc BA — actors chính, luồng chính, hệ thống liên quan.
|
|
91
|
+
- **Key Business Rules**: Trích xuất TỪ TÀI LIỆU CỤ THỂ. Mỗi rule phải kèm **trích dẫn gốc** + tên source file.
|
|
92
|
+
```
|
|
93
|
+
VD: BR-01: WO phải được Manager duyệt trước khi thực hiện
|
|
94
|
+
- Trích dẫn: "Mọi phiếu công tác phải có sự phê duyệt của Trưởng bộ phận trước khi giao cho kỹ thuật viên"
|
|
95
|
+
- Source: WO-spec.pdf, trang 12
|
|
96
|
+
- [⚠️ AI-inferred from NotebookLM]
|
|
97
|
+
```
|
|
98
|
+
- **Key Entities**: Rút từ mind-map + fulltext, kèm description nghiệp vụ (không phải technical).
|
|
99
|
+
- **Domain Glossary**: Bảng thuật ngữ — Thuật ngữ, Định nghĩa, Viết tắt, Ghi chú.
|
|
100
|
+
- **Business Constraints & SLAs**: Bảng ràng buộc — Constraint, Mô tả, Giá trị, Source.
|
|
101
|
+
- **No-Go Zones**: `[❓ CẦN CODE SCAN — U.0d chỉ có tài liệu BA]`
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### use-cases.md — Logic & Flow
|
|
106
|
+
|
|
107
|
+
**Cách đọc BA docs:**
|
|
108
|
+
1. Tìm **mô tả quy trình / workflow** — tài liệu BA thường mô tả luồng nghiệp vụ dạng text hoặc flowchart.
|
|
109
|
+
2. Với mỗi luồng: xác định **Trigger** (ai/cái gì kích hoạt), **Steps** (các bước tuần tự), **Result** (kết quả).
|
|
110
|
+
3. Tìm **business rules** bằng keywords: "phải", "bắt buộc", "không được", "chỉ khi" → trích xuất nguyên văn.
|
|
111
|
+
4. Tìm **exceptions / edge cases**: "trừ khi", "ngoại lệ", "trường hợp đặc biệt".
|
|
112
|
+
5. Tìm **mô tả trạng thái / state**: "trạng thái", "chuyển sang", "bước tiếp theo".
|
|
113
|
+
|
|
114
|
+
**Output phải có:**
|
|
115
|
+
- **E2E Flows**: Mô tả LUỒNG NGHIỆP VỤ (không phải code flow vì chưa có code). Format:
|
|
116
|
+
```
|
|
117
|
+
### Flow 1: Tạo Work Order mới
|
|
118
|
+
|
|
119
|
+
**Trigger**: Kỹ thuật viên phát hiện thiết bị cần bảo trì
|
|
120
|
+
**Actor chính**: Kỹ thuật viên (USER role)
|
|
121
|
+
|
|
122
|
+
**Các bước nghiệp vụ:**
|
|
123
|
+
1. Kỹ thuật viên mở hệ thống, chọn "Tạo phiếu công tác mới"
|
|
124
|
+
2. Điền thông tin: tiêu đề, mô tả lỗi, thiết bị, mức ưu tiên
|
|
125
|
+
- Trường bắt buộc: tiêu đề, thiết bị, mức ưu tiên (Source: WO-spec.pdf)
|
|
126
|
+
3. Hệ thống tạo phiếu với trạng thái DRAFT, sinh mã tự động WO-YYYYMMDD-SEQ
|
|
127
|
+
4. Kỹ thuật viên "Gửi duyệt" → hệ thống chuyển trạng thái sang PENDING_APPROVAL
|
|
128
|
+
5. Gửi thông báo cho Manager cùng chi nhánh
|
|
129
|
+
|
|
130
|
+
**Kết quả**: Phiếu công tác được tạo, Manager nhận thông báo duyệt
|
|
131
|
+
**SLA**: [❓ CẦN BA BỔ SUNG — có thời hạn duyệt không?]
|
|
132
|
+
[⚠️ AI-inferred from NotebookLM — Source: WO-flow.docx]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
- **Business Rules**: TRÍCH DẪN NGUYÊN VĂN từ tài liệu, kèm phân tích:
|
|
136
|
+
```
|
|
137
|
+
### BR-01: Chỉ cho phép sửa WO ở trạng thái DRAFT
|
|
138
|
+
|
|
139
|
+
- **Trích dẫn gốc**: "Phiếu công tác chỉ được chỉnh sửa khi ở trạng thái Bản nháp.
|
|
140
|
+
Sau khi gửi duyệt, mọi thay đổi phải thông qua quy trình từ chối và tạo lại."
|
|
141
|
+
- **Source**: WO-spec.pdf, mục 3.2 "Quy định chỉnh sửa"
|
|
142
|
+
- **Điều kiện**: status === DRAFT
|
|
143
|
+
- **Hành động**: Cho phép sửa tất cả fields
|
|
144
|
+
- **Ngoại lệ**: Admin có thể sửa ở mọi trạng thái? [❓ CẦN BA VERIFY — tài liệu không đề cập]
|
|
145
|
+
- [⚠️ AI-inferred from NotebookLM]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
- **State Machine**: Vẽ mermaid stateDiagram-v2 NẾU tài liệu BA mô tả trạng thái. Ghi rõ trạng thái nào lấy từ doc, trạng thái nào suy luận.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### state-diagram.md — State Machine (NẾU BA docs mô tả)
|
|
153
|
+
|
|
154
|
+
**Cách đọc BA docs:**
|
|
155
|
+
1. Tìm **danh sách trạng thái** — bảng, bullet list, hoặc mô tả trong text.
|
|
156
|
+
2. Tìm **quy tắc chuyển đổi** — "sau khi duyệt, chuyển sang...", "nếu từ chối, quay lại..."
|
|
157
|
+
3. Tìm **ai được phép** trigger transition — "Manager duyệt", "Admin hủy".
|
|
158
|
+
4. Tìm **side-effects** — "sau khi duyệt, gửi email", "khi hoàn thành, đồng bộ SAP".
|
|
159
|
+
5. Tìm **trạng thái cuối** (terminal states) — "đã hoàn thành", "đã hủy".
|
|
160
|
+
|
|
161
|
+
**Output phải có:**
|
|
162
|
+
- Mermaid stateDiagram-v2 với states từ tài liệu (KHÔNG BỊA).
|
|
163
|
+
- Bảng States: Mã, Tên hiển thị, Ý nghĩa — lấy nguyên văn từ BA docs.
|
|
164
|
+
- Bảng Transitions: Từ → Sang, Event, Guards, Actor — kèm source reference.
|
|
165
|
+
- Side-Effects: Liệt kê từ tài liệu (email, notification, sync...).
|
|
166
|
+
- `[⚠️ AI-inferred from NotebookLM — CẦN CODE SCAN VERIFY enum values]`
|
|
167
|
+
|
|
168
|
+
**Khi nào KHÔNG tạo**: Nếu tài liệu BA không đề cập trạng thái → bỏ qua, KHÔNG bịa.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
### permissions.md — Roles & Permissions (NẾU BA docs mô tả)
|
|
173
|
+
|
|
174
|
+
**Cách đọc BA docs:**
|
|
175
|
+
1. Tìm **danh sách vai trò** — "người dùng", "quản lý", "admin", bảng phân quyền.
|
|
176
|
+
2. Tìm **ma trận quyền** — "được phép xem/tạo/sửa/xóa", "chỉ truy cập data..."
|
|
177
|
+
3. Tìm **phạm vi dữ liệu** — "chỉ xem data chi nhánh mình", "chỉ data do mình tạo".
|
|
178
|
+
4. Tìm **quy tắc phê duyệt** — "cần Manager duyệt", "Admin có toàn quyền".
|
|
179
|
+
|
|
180
|
+
**Output phải có:**
|
|
181
|
+
- Bảng Roles: Mã, Tên, Phạm vi, Mô tả — từ tài liệu BA.
|
|
182
|
+
- Ma trận Role × Chức năng: ✅/❌ kèm điều kiện bổ sung.
|
|
183
|
+
- Data Scope: Mô tả cách phân quyền data (VPS, owner, global).
|
|
184
|
+
- `[⚠️ AI-inferred from NotebookLM — CẦN CODE SCAN VERIFY guards/decorators]`
|
|
185
|
+
|
|
186
|
+
**Khi nào KHÔNG tạo**: Nếu tài liệu BA không đề cập vai trò/quyền → bỏ qua.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### db.md — Database / Data Model (NẾU BA docs mô tả)
|
|
191
|
+
|
|
192
|
+
**Cách đọc BA docs:**
|
|
193
|
+
1. Tìm **ERD, data dictionary, bảng dữ liệu** — BA docs thường có mô tả entity/fields.
|
|
194
|
+
2. Tìm **mô tả entities** — "thông tin phiếu công tác gồm: mã, tiêu đề, mô tả, trạng thái..."
|
|
195
|
+
3. Tìm **relationships** — "mỗi phiếu có nhiều items", "phiếu thuộc 1 chi nhánh".
|
|
196
|
+
4. Tìm **constraints** — "mã phiếu không trùng", "tiêu đề bắt buộc".
|
|
197
|
+
|
|
198
|
+
**Output phải có:**
|
|
199
|
+
- Bảng Entities: Tên, Mô tả nghiệp vụ — từ góc BA không phải kỹ thuật.
|
|
200
|
+
- Fields chính: Tên field (nghiệp vụ), Mô tả, Bắt buộc?, Ghi chú.
|
|
201
|
+
- Relationships: Entity A → Quan hệ → Entity B — bằng ngôn ngữ nghiệp vụ.
|
|
202
|
+
- ER Diagram (mermaid) nếu đủ thông tin.
|
|
203
|
+
- `[⚠️ AI-inferred from NotebookLM — CẦN CODE SCAN VERIFY schema thực tế]`
|
|
204
|
+
|
|
205
|
+
**Khi nào KHÔNG tạo**: Nếu tài liệu BA không mô tả data model → bỏ qua.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### ui-flows.md — UI / Screens (NẾU BA docs mô tả)
|
|
210
|
+
|
|
211
|
+
**Cách đọc BA docs:**
|
|
212
|
+
1. Tìm **wireframes, mockups** — hình ảnh, mô tả giao diện.
|
|
213
|
+
2. Tìm **mô tả màn hình** — "màn hình danh sách", "form tạo mới", "trang chi tiết".
|
|
214
|
+
3. Tìm **user flow** — "user mở app → chọn menu → thấy danh sách → tap vào 1 item".
|
|
215
|
+
4. Tìm **form fields** — "trường tiêu đề", "dropdown chọn loại", "nút submit".
|
|
216
|
+
|
|
217
|
+
**Output phải có:**
|
|
218
|
+
- Danh sách màn hình: Tên, Mô tả chức năng — từ tài liệu BA.
|
|
219
|
+
- User Flow: Step-by-step thao tác người dùng.
|
|
220
|
+
- Form Fields: Tên field, Loại input, Bắt buộc?, Validation rules — từ BA docs.
|
|
221
|
+
- `[⚠️ AI-inferred from NotebookLM — CẦN CODE SCAN VERIFY component thực tế]`
|
|
222
|
+
|
|
223
|
+
**Khi nào KHÔNG tạo**: Nếu tài liệu BA không mô tả giao diện → bỏ qua.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### cross-service.md — Integrations
|
|
228
|
+
|
|
229
|
+
**Cách đọc BA docs:**
|
|
230
|
+
1. Tìm **hệ thống liên quan** — "đồng bộ với SAP", "gửi email", "kết nối hệ thống nhân sự".
|
|
231
|
+
2. Tìm **data exchange** — "gửi thông tin WO sang ERP", "nhận danh sách nhân viên từ HR".
|
|
232
|
+
3. Tìm **triggers** — "khi duyệt xong, tự động sync".
|
|
233
|
+
4. Tìm **fallback / error handling** — "nếu đồng bộ thất bại..."
|
|
234
|
+
|
|
235
|
+
**Output phải có:**
|
|
236
|
+
- Bảng integrations: System, Direction (gửi/nhận), Mục đích, Trigger.
|
|
237
|
+
- Payload mô tả (nếu BA docs có chi tiết): fields gửi đi / nhận về.
|
|
238
|
+
- Error handling / SLA (nếu có).
|
|
239
|
+
- `[⚠️ AI-inferred from NotebookLM]`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ba-docs-scanner",
|
|
3
|
+
"version": "1.0",
|
|
4
|
+
"description": "Import và trích xuất tài liệu BA từ NotebookLM hoặc raw sources",
|
|
5
|
+
"agent": "understand",
|
|
6
|
+
"phase": ["U.0d"],
|
|
7
|
+
"triggers": ["import_ba_docs", "import_ba_docs_refresh"],
|
|
8
|
+
"dependencies": ["understand/codebase-scanner"],
|
|
9
|
+
"config": {
|
|
10
|
+
"source_types": ["notebooklm", "pdf", "markdown", "html"],
|
|
11
|
+
"output_dir": ".v-flow/modules/{domain}/raw/",
|
|
12
|
+
"merge_strategy": "append_with_dedup",
|
|
13
|
+
"extraction_fields": ["business_rules", "domain_concepts", "user_stories", "acceptance_criteria", "glossary_terms"]
|
|
14
|
+
},
|
|
15
|
+
"setup_questions": [
|
|
16
|
+
{
|
|
17
|
+
"id": "source_type",
|
|
18
|
+
"question": "Nguồn tài liệu BA?",
|
|
19
|
+
"options": ["notebooklm", "pdf", "markdown", "html", "mixed"],
|
|
20
|
+
"default": "mixed",
|
|
21
|
+
"description": "mixed = auto-detect. notebooklm = dùng notebooklm-py (unofficial, có thể fail)."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "auto_glossary",
|
|
25
|
+
"question": "Tự động extract domain glossary từ tài liệu?",
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": true,
|
|
28
|
+
"description": "Extract thuật ngữ nghiệp vụ → append vào knowledge/domain-glossary.md"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "conflict_resolution",
|
|
32
|
+
"question": "Khi tài liệu mới conflict với module cards hiện có?",
|
|
33
|
+
"options": ["overwrite", "merge", "flag"],
|
|
34
|
+
"default": "flag",
|
|
35
|
+
"description": "flag = highlight conflict, để human quyết định. merge = ưu tiên tài liệu mới."
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"hooks": {
|
|
39
|
+
"pre_import": "Check source files exist → validate format → check dependency (notebooklm-py nếu cần)",
|
|
40
|
+
"post_import": "Generate AI drafts cho Module Cards → mark [⚠️ AI-inferred] → suggest BA review"
|
|
41
|
+
},
|
|
42
|
+
"memory": {
|
|
43
|
+
"file": "ba-import-history.log",
|
|
44
|
+
"format": "[date] | [source_type] | [files_imported] | [glossary_terms] | [conflicts] | [modules_updated]",
|
|
45
|
+
"purpose": "Track BA doc imports — detect stale modules cần refresh"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Good Example — BA Docs Scanner Output cho `work-order` module
|
|
2
|
+
|
|
3
|
+
> Mẫu extract từ tài liệu BA (không phải code scan).
|
|
4
|
+
> Chú ý: MỌI thông tin kèm trích dẫn source + AI-inferred tag.
|
|
5
|
+
|
|
6
|
+
## Business Rule trích xuất
|
|
7
|
+
|
|
8
|
+
```markdown
|
|
9
|
+
### BR-01: Chỉ cho phép sửa WO ở trạng thái DRAFT
|
|
10
|
+
|
|
11
|
+
- **Trích dẫn gốc**: "Phiếu công tác chỉ được chỉnh sửa khi ở trạng thái
|
|
12
|
+
Bản nháp. Sau khi gửi duyệt, mọi thay đổi phải thông qua quy trình
|
|
13
|
+
từ chối và tạo lại."
|
|
14
|
+
- **Source**: WO-spec.pdf, mục 3.2 "Quy định chỉnh sửa"
|
|
15
|
+
- **Điều kiện**: status === DRAFT
|
|
16
|
+
- **Hành động**: Cho phép sửa tất cả fields
|
|
17
|
+
- **Ngoại lệ**: Admin có thể sửa ở mọi trạng thái?
|
|
18
|
+
[❓ CẦN BA VERIFY — tài liệu không đề cập]
|
|
19
|
+
- [⚠️ AI-inferred from NotebookLM]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Điểm đáng chú ý
|
|
23
|
+
|
|
24
|
+
✅ **Trích dẫn nguyên văn** — không paraphrase
|
|
25
|
+
✅ **Source file + section** — truy xuất được
|
|
26
|
+
✅ **Ngoại lệ ghi rõ** — [❓ CẦN BA VERIFY] khi thiếu info
|
|
27
|
+
✅ **AI-inferred tag** — mọi thông tin từ NotebookLM
|
|
28
|
+
❌ **KHÔNG nên**: "BR-01: Không cho sửa WO đã gửi" — quá ngắn, thiếu source
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Gotchas — BA Docs Scanner
|
|
2
|
+
|
|
3
|
+
> Cập nhật liên tục khi Agent gặp edge case mới.
|
|
4
|
+
> Rule of thumb: Nếu Agent mắc cùng một lỗi 2 lần → bắt buộc phải có gotcha.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Anti-patterns — Output VÔ GIÁ TRỊ từ BA Docs
|
|
9
|
+
|
|
10
|
+
| Anti-pattern | Ví dụ BAD | Ví dụ GOOD |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| Paraphrase overview | "Module này quản lý Work Order theo quy trình nghiệp vụ" | "Module xử lý vòng đời WO: DRAFT→duyệt→thực hiện→hoàn thành. 3 roles: User tạo, Manager duyệt, Admin toàn quyền. Tích hợp SAP khi duyệt." |
|
|
13
|
+
| Business rule không trích dẫn | "BR-01: Phải validate input [⚠️ AI-inferred]" | "BR-01: 'Mọi PCT phải có ít nhất 1 item công việc' (Source: WO-spec.pdf, mục 2.3) [⚠️ AI-inferred from NotebookLM]" |
|
|
14
|
+
| Liệt kê entities không mô tả | "Entities: WorkOrder, WoItem, User" | "WorkOrder — Phiếu công tác bảo trì, fields chính: mã (tự sinh), tiêu đề, mô tả lỗi, mức ưu tiên (4 cấp), trạng thái (7 states)" |
|
|
15
|
+
| State diagram bịa | "Có 3 trạng thái: Mới, Xử lý, Xong" | "Theo WO-flow.docx mục 4: 7 trạng thái — Bản nháp, Chờ duyệt, Đã duyệt, Từ chối, Đang thực hiện, Hoàn thành, Đã hủy" |
|
|
16
|
+
| Chỉ tóm tắt, không structured | "BA docs mô tả quy trình tạo và duyệt WO" | Bảng E2E Flow 5 bước + Bảng BR-xx 8 rules + Mermaid state diagram |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quality Gate — Tự kiểm tra trước khi output BA drafts
|
|
21
|
+
|
|
22
|
+
| Tiêu chí | Câu hỏi tự kiểm | Nếu KHÔNG → |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| **Depth** | "Tôi đã đọc TOÀN BỘ fulltext, hay chỉ đọc overview?" | Đọc lại tất cả sources/*.txt |
|
|
25
|
+
| **Extraction** | "Mỗi business rule có kèm TRÍCH DẪN NGUYÊN VĂN + source file?" | Thêm quote + source ref |
|
|
26
|
+
| **Structure** | "Tôi đã convert text mô tả → bảng/diagram chưa?" | Convert sang structured format |
|
|
27
|
+
| **Value-add** | "BA đọc draft thấy info ĐÃ ĐƯỢC TỔ CHỨC LẠI, hay chỉ là copy-paste?" | Phân tích, nhóm, cross-ref |
|
|
28
|
+
| **Completeness** | "Tôi đã cross-reference GIỮA các sources? Có source nào chưa đọc?" | Đọc thêm sources |
|
|
29
|
+
| **Actionability** | "Spec writer đọc xong có ĐỦ CONTEXT để viết spec không cần mở tài liệu gốc?" | Bổ sung chi tiết |
|
|
30
|
+
| **Honesty** | "Tôi có bịa? Mọi suy luận đã gắn [⚠️ AI-inferred]?" | Gắn nhãn, thêm [❓] |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Gotchas phổ biến
|
|
35
|
+
|
|
36
|
+
1. ❌ ĐỪNG chỉ đọc overview.md rồi tóm tắt — phải đọc TOÀN BỘ fulltext trong sources/
|
|
37
|
+
2. ❌ ĐỪNG paraphrase tài liệu BA — phải TRÍCH DẪN NGUYÊN VĂN kèm source reference
|
|
38
|
+
3. ❌ ĐỪNG bịa state diagram — chỉ vẽ states thực sự được mô tả trong tài liệu
|
|
39
|
+
4. ❌ ĐỪNG tạo permissions.md nếu BA docs không đề cập roles/quyền → tạo placeholder
|
|
40
|
+
5. ❌ ĐỪNG quên cross-reference giữa overview, mind-map, study-guide và fulltext
|
|
41
|
+
6. ✅ Luôn gắn `[⚠️ AI-inferred from NotebookLM]` cho mọi suy luận
|
|
42
|
+
7. ✅ Gắn `[❓ CẦN BA VERIFY]` khi thiếu thông tin — không suy diễn
|
|
43
|
+
8. ✅ Chuyển text mô tả → bảng/diagram — đây là VALUE-ADD chính
|
|
44
|
+
9. ✅ Khi phát hiện mâu thuẫn giữa sources → gắn `[⚠️ CONFLICTING SOURCES]`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Merge Rules — U.0d (BA Docs) ↔ U.0b (Code Scan)
|
|
2
|
+
|
|
3
|
+
> Khi chạy `/v.understand --module {tên}` trên module đã có U.0d data,
|
|
4
|
+
> Agent PHẢI tuân thủ merge rules dưới đây để tránh ghi đè nội dung BA.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Bảng Merge
|
|
9
|
+
|
|
10
|
+
| File | U.0d đã tạo? | U.0b hành động |
|
|
11
|
+
|------|-------------|---------------|
|
|
12
|
+
| SKILL.md | ✅ Có draft (+ Glossary, Constraints) | **Merge**: giữ business rules + glossary từ U.0d, bổ sung tech info từ code scan |
|
|
13
|
+
| use-cases.md | ✅ Có draft (trích dẫn nguyên văn) | **Merge**: giữ BA content + quotes, bổ sung code references (`Source code: file:line`) |
|
|
14
|
+
| api-specs.md | ⏳ Placeholder | **Fill**: Generate từ code scan |
|
|
15
|
+
| tech-context.md | ⏳ Placeholder | **Fill**: Generate từ code scan |
|
|
16
|
+
| state-diagram.md | ✅ Có draft / ⏳ Placeholder | **Merge**: giữ states từ BA docs, verify + bổ sung enum values từ code. Nếu placeholder → **Fill** |
|
|
17
|
+
| permissions.md | ✅ Có draft / ⏳ Placeholder | **Merge**: giữ role matrix từ BA docs, verify + bổ sung guards/decorators từ code. Nếu placeholder → **Fill** |
|
|
18
|
+
| db.md | ✅ Có draft / ⏳ Placeholder | **Merge**: giữ entity descriptions từ BA, verify + bổ sung schema chi tiết từ code. Nếu placeholder → **Fill** |
|
|
19
|
+
| ui-flows.md | ✅ Có draft / ⏳ Placeholder | **Merge**: giữ user flows từ BA, verify + bổ sung component mapping từ code. Nếu placeholder → **Fill** |
|
|
20
|
+
| cross-service.md | ✅ Có draft | **Merge**: giữ BA context, bổ sung code-level dependencies |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Merge Rules
|
|
25
|
+
|
|
26
|
+
1. **Giữ nguyên nội dung BA**: Nội dung có tag `[⚠️ AI-inferred from NotebookLM]` → giữ nguyên, bổ sung code evidence bên dưới.
|
|
27
|
+
|
|
28
|
+
2. **Conflict resolution**:
|
|
29
|
+
- Nếu code **mâu thuẫn** với BA docs → gắn `[⚠️ CONFLICT: code vs BA doc — CẦN BA VERIFY]`
|
|
30
|
+
- Nếu code **xác nhận** BA docs → xóa tag `[⚠️ AI-inferred]`, thay bằng `[✅ Verified by code scan]`
|
|
31
|
+
|
|
32
|
+
3. **Placeholder → Fill**: Nếu file U.0d là placeholder → U.0b generate đầy đủ (không cần merge).
|
|
33
|
+
|
|
34
|
+
4. **Human-verified content**: Nội dung đã được BA xóa tag `[⚠️ AI-inferred]` → KHÔNG ghi đè. Chỉ bổ sung code references bên dưới.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Detect U.0d Data
|
|
39
|
+
|
|
40
|
+
Cách nhận biết module đã có U.0d data:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Nếu tồn tại .v-flow/modules/{module}/raw/sources/*.txt
|
|
44
|
+
→ Module có U.0d data → áp dụng Merge rules
|
|
45
|
+
Nếu không
|
|
46
|
+
→ Module chưa có U.0d → U.0b generate bình thường
|
|
47
|
+
```
|