@torus-engineering/tas-kit 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/.tas/README.md +70 -70
  2. package/{.claude → .tas/_platform/claude-code}/settings.json +0 -12
  3. package/{.claude → .tas/_platform}/hooks/code-quality.js +1 -1
  4. package/{.claude → .tas/_platform}/hooks/session-end.js +20 -25
  5. package/.tas/commands/ado-create.md +28 -0
  6. package/.tas/commands/ado-delete.md +22 -0
  7. package/.tas/commands/ado-get.md +20 -0
  8. package/.tas/commands/ado-status.md +18 -0
  9. package/.tas/commands/ado-update.md +27 -0
  10. package/.tas/commands/tas-adr.md +33 -0
  11. package/.tas/commands/tas-apitest-plan.md +173 -0
  12. package/.tas/commands/tas-apitest.md +143 -0
  13. package/.tas/commands/tas-brainstorm.md +19 -0
  14. package/.tas/commands/tas-bug.md +113 -0
  15. package/.tas/commands/tas-design.md +37 -0
  16. package/.tas/commands/tas-dev.md +125 -0
  17. package/{.claude → .tas}/commands/tas-e2e-mobile.md +155 -155
  18. package/{.claude → .tas}/commands/tas-e2e-web.md +163 -163
  19. package/.tas/commands/tas-e2e.md +102 -0
  20. package/.tas/commands/tas-epic.md +35 -0
  21. package/.tas/commands/tas-feature.md +47 -0
  22. package/.tas/commands/tas-fix.md +51 -0
  23. package/.tas/commands/tas-functest-mobile.md +144 -0
  24. package/{.claude → .tas}/commands/tas-functest-web.md +192 -192
  25. package/.tas/commands/tas-functest.md +76 -0
  26. package/.tas/commands/tas-init.md +17 -0
  27. package/.tas/commands/tas-plan.md +198 -0
  28. package/.tas/commands/tas-prd.md +37 -0
  29. package/.tas/commands/tas-review.md +113 -0
  30. package/.tas/commands/tas-sad.md +43 -0
  31. package/.tas/commands/tas-security.md +87 -0
  32. package/.tas/commands/tas-spec.md +50 -0
  33. package/.tas/commands/tas-status.md +16 -0
  34. package/.tas/commands/tas-story.md +91 -0
  35. package/.tas/platforms.json +5 -0
  36. package/.tas/project-status-example.yaml +17 -17
  37. package/.tas/rules/ado-integration.md +65 -0
  38. package/{.claude/skills/api-design/SKILL.md → .tas/rules/common/api-design.md} +517 -530
  39. package/{.claude → .tas}/rules/common/code-review.md +30 -6
  40. package/.tas/rules/common/post-implementation-review.md +51 -0
  41. package/{.claude → .tas}/rules/common/project-status.md +80 -80
  42. package/.tas/rules/common/stack-detection.md +29 -0
  43. package/.tas/rules/common/story-done.md +30 -0
  44. package/.tas/rules/common/tdd.md +89 -0
  45. package/{.claude → .tas}/rules/common/testing.md +3 -8
  46. package/.tas/rules/common/token-logging.md +36 -0
  47. package/{.claude → .tas}/rules/csharp/api-testing.md +20 -20
  48. package/{.claude → .tas}/rules/csharp/coding-style.md +0 -2
  49. package/{.claude → .tas}/rules/csharp/security.md +10 -0
  50. package/{.claude → .tas}/rules/python/coding-style.md +0 -2
  51. package/{.claude → .tas}/rules/typescript/coding-style.md +0 -2
  52. package/.tas/rules/typescript/patterns.md +142 -0
  53. package/.tas/rules/typescript/security.md +88 -0
  54. package/{.claude → .tas}/rules/typescript/testing.md +0 -4
  55. package/{.claude → .tas}/rules/web/coding-style.md +0 -2
  56. package/.tas/tas-example.yaml +10 -11
  57. package/.tas/templates/ADR.md +47 -47
  58. package/.tas/templates/AGENTS.md +37 -0
  59. package/.tas/templates/API-Test-Spec.md +3 -3
  60. package/.tas/templates/Bug.md +67 -67
  61. package/.tas/templates/Design-Spec.md +36 -36
  62. package/.tas/templates/E2E-Execution-Report.md +1 -1
  63. package/.tas/templates/Epic.md +46 -46
  64. package/.tas/templates/Feature.md +10 -10
  65. package/.tas/templates/Func-Test-Spec.md +3 -3
  66. package/.tas/templates/SAD.md +106 -106
  67. package/.tas/templates/Security-Report.md +27 -27
  68. package/.tas/templates/Story.md +9 -9
  69. package/.tas/tools/tas-ado-readme.md +68 -68
  70. package/.tas/tools/tas-ado.py +621 -621
  71. package/README.md +78 -78
  72. package/bin/cli.js +91 -73
  73. package/lib/adapters/antigravity.js +137 -0
  74. package/lib/adapters/claude-code.js +35 -0
  75. package/lib/adapters/codex.js +163 -0
  76. package/lib/adapters/cursor.js +80 -0
  77. package/lib/adapters/index.js +20 -0
  78. package/lib/adapters/utils.js +81 -0
  79. package/lib/deleted-files.json +99 -0
  80. package/lib/install.js +403 -327
  81. package/package.json +4 -3
  82. package/.claude/agents/code-reviewer.md +0 -41
  83. package/.claude/agents/e2e-runner.md +0 -61
  84. package/.claude/agents/planner.md +0 -82
  85. package/.claude/agents/tdd-guide.md +0 -84
  86. package/.claude/commands/ado-create.md +0 -27
  87. package/.claude/commands/ado-delete.md +0 -21
  88. package/.claude/commands/ado-get.md +0 -20
  89. package/.claude/commands/ado-status.md +0 -18
  90. package/.claude/commands/ado-update.md +0 -26
  91. package/.claude/commands/tas-adr.md +0 -33
  92. package/.claude/commands/tas-apitest-plan.md +0 -173
  93. package/.claude/commands/tas-apitest.md +0 -143
  94. package/.claude/commands/tas-brainstorm.md +0 -19
  95. package/.claude/commands/tas-bug.md +0 -113
  96. package/.claude/commands/tas-design.md +0 -37
  97. package/.claude/commands/tas-dev.md +0 -128
  98. package/.claude/commands/tas-e2e.md +0 -102
  99. package/.claude/commands/tas-epic.md +0 -35
  100. package/.claude/commands/tas-feature.md +0 -47
  101. package/.claude/commands/tas-fix.md +0 -51
  102. package/.claude/commands/tas-functest-mobile.md +0 -144
  103. package/.claude/commands/tas-functest.md +0 -76
  104. package/.claude/commands/tas-init.md +0 -17
  105. package/.claude/commands/tas-plan.md +0 -200
  106. package/.claude/commands/tas-prd.md +0 -37
  107. package/.claude/commands/tas-review.md +0 -111
  108. package/.claude/commands/tas-sad.md +0 -43
  109. package/.claude/commands/tas-security.md +0 -87
  110. package/.claude/commands/tas-spec.md +0 -50
  111. package/.claude/commands/tas-status.md +0 -16
  112. package/.claude/commands/tas-story.md +0 -91
  113. package/.claude/commands/tas-verify.md +0 -51
  114. package/.claude/rules/common/post-review-agent.md +0 -49
  115. package/.claude/rules/common/stack-detection.md +0 -29
  116. package/.claude/rules/common/token-logging.md +0 -27
  117. package/.claude/rules/typescript/patterns.md +0 -62
  118. package/.claude/rules/typescript/security.md +0 -28
  119. package/.claude/settings.local.json +0 -38
  120. package/.claude/skills/ado-integration/SKILL.md +0 -75
  121. package/.claude/skills/ai-regression-testing/SKILL.md +0 -364
  122. package/.claude/skills/architecture-decision-records/SKILL.md +0 -184
  123. package/.claude/skills/benchmark/SKILL.md +0 -98
  124. package/.claude/skills/browser-qa/SKILL.md +0 -92
  125. package/.claude/skills/canary-watch/SKILL.md +0 -104
  126. package/.claude/skills/js-backend-patterns/SKILL.md +0 -603
  127. package/.claude/skills/tas-conventions/SKILL.md +0 -65
  128. package/.claude/skills/tas-implementation-complete/SKILL.md +0 -99
  129. package/.claude/skills/tas-tdd/SKILL.md +0 -123
  130. package/.claude/skills/token-logger/SKILL.md +0 -19
  131. package/.tas/checklists/code-review.md +0 -29
  132. package/.tas/checklists/security.md +0 -21
  133. package/.tas/checklists/story-done.md +0 -23
  134. package/CLAUDE-Example.md +0 -61
  135. /package/{.claude → .tas}/agents/architect.md +0 -0
  136. /package/{.claude → .tas}/agents/aws-reviewer.md +0 -0
  137. /package/{.claude → .tas}/agents/build-resolver.md +0 -0
  138. /package/{.claude → .tas}/agents/code-explorer.md +0 -0
  139. /package/{.claude → .tas}/agents/csharp-reviewer.md +0 -0
  140. /package/{.claude → .tas}/agents/database-reviewer.md +0 -0
  141. /package/{.claude → .tas}/agents/doc-updater.md +0 -0
  142. /package/{.claude → .tas}/agents/python-reviewer.md +0 -0
  143. /package/{.claude → .tas}/agents/security-reviewer.md +0 -0
  144. /package/{.claude → .tas}/agents/typescript-reviewer.md +0 -0
  145. /package/{.claude → .tas}/rules/.gitkeep +0 -0
  146. /package/{.claude → .tas}/rules/common/hooks.md +0 -0
  147. /package/{.claude → .tas}/rules/common/patterns.md +0 -0
  148. /package/{.claude → .tas}/rules/common/security.md +0 -0
  149. /package/{.claude → .tas}/rules/csharp/hooks.md +0 -0
  150. /package/{.claude → .tas}/rules/csharp/patterns.md +0 -0
  151. /package/{.claude → .tas}/rules/csharp/testing.md +0 -0
  152. /package/{.claude → .tas}/rules/python/hooks.md +0 -0
  153. /package/{.claude → .tas}/rules/python/patterns.md +0 -0
  154. /package/{.claude → .tas}/rules/python/security.md +0 -0
  155. /package/{.claude → .tas}/rules/python/testing.md +0 -0
  156. /package/{.claude → .tas}/rules/typescript/hooks.md +0 -0
  157. /package/{.claude → .tas}/rules/web/design-quality.md +0 -0
  158. /package/{.claude → .tas}/rules/web/hooks.md +0 -0
  159. /package/{.claude → .tas}/rules/web/patterns.md +0 -0
  160. /package/{.claude → .tas}/rules/web/performance.md +0 -0
  161. /package/{.claude → .tas}/rules/web/security.md +0 -0
  162. /package/{.claude → .tas}/rules/web/testing.md +0 -0
@@ -1,99 +0,0 @@
1
- ---
2
- name: tas-implementation-complete
3
- description: |
4
- Auto-invoke khi user báo hiệu đã hoàn thành implement: "done", "xong", "finished",
5
- "đã xong", "đã implement xong", "implementation complete", "code xong rồi",
6
- "viết xong rồi", "đã code xong". Trigger parallel post-implementation review gate.
7
- allowed-tools: Read, Bash, Grep, Glob, Agent
8
- ---
9
-
10
- # TAS Implementation Complete
11
-
12
- Khi user báo hiệu implementation xong, tự động trigger post-implementation review gate.
13
- Không chờ user chạy `/tas-review-code` thủ công.
14
-
15
- ## When to Use
16
-
17
- - User vừa implement xong một Story hoặc một feature
18
- - User nói "xong", "done", "finished" sau khi viết code
19
- - KHÔNG invoke khi: user đang hỏi về trạng thái, hỏi về plan, hay chưa có code thay đổi
20
-
21
- ## Always / Ask / Never
22
-
23
- | | Hành động |
24
- |---|---|
25
- | **Always** | Xác nhận scope với user trước khi launch agents |
26
- | **Always** | Launch code-reviewer + security-reviewer đồng thời |
27
- | **Always** | Báo cáo gate result rõ ràng: pass hoặc block với lý do |
28
- | **Ask** | Khi không chắc scope review là gì (file path? git diff? Story?) |
29
- | **Ask** | Khi có >5 files thay đổi — confirm user muốn review toàn bộ |
30
- | **Never** | Tự động commit sau khi review pass |
31
- | **Never** | Skip review và báo "looks good" mà không chạy agents |
32
-
33
- ## Process
34
-
35
- ### Bước 1 — Xác định scope
36
- Hỏi user hoặc tự suy luận từ context:
37
- - Có Story ID? → lấy danh sách files từ Story
38
- - Không có? → dùng `git diff HEAD --name-only` để lấy files vừa thay đổi
39
-
40
- ### Bước 2 — Stack Detection
41
- Đọc `CLAUDE.md` tại root, tìm section `## Tech Stack`:
42
- - Backend chứa `.NET` / `C#` → `lang_agent = csharp-reviewer`
43
- - Backend chứa `Node.js` / `TypeScript` → `lang_agent = typescript-reviewer`
44
- - Backend chứa `Python` / `FastAPI` / `Django` → `lang_agent = python-reviewer`
45
- - Frontend chứa `React` → bổ sung `typescript-reviewer`
46
-
47
- ### Bước 3 — Launch Parallel Review Gate
48
-
49
- Launch các agents ĐỒNG THỜI:
50
-
51
- **Agent 1 — `code-reviewer`** (luôn chạy):
52
- > Review [scope]. Đọc `.tas/checklists/code-review.md`.
53
- > Tập trung: acceptance criteria compliance, naming, error handling, test coverage, DRY.
54
- > Format: Critical / High / Medium / Low với file:line và fix cụ thể.
55
-
56
- **Agent 2 — `security-reviewer`** (luôn chạy):
57
- > Security audit [scope]. Đọc `.claude/rules/common/security.md`.
58
- > Nếu stack đã xác định, đọc thêm `.claude/rules/[stack]/security.md`.
59
- > Tập trung: user input handling, SQL injection, hardcoded secrets, auth checks.
60
- > Format: Critical / High / Medium / Low với file:line và remediation.
61
-
62
- **Agent 3 — Language reviewer** (theo stack detection):
63
- > Language-specific review [scope].
64
- > Đọc `.claude/rules/[stack]/coding-style.md`, `.claude/rules/[stack]/patterns.md`, `.claude/rules/[stack]/testing.md`.
65
- > Nếu stack có React: đọc thêm `.claude/rules/web/design-quality.md`, `.claude/rules/web/testing.md`, `.claude/rules/web/performance.md`.
66
- > Format: Critical / High / Medium / Low với file:line.
67
-
68
- Chờ TẤT CẢ agents hoàn thành.
69
-
70
- ### Bước 4 — Gate Decision
71
-
72
- **Có Critical/High findings:**
73
- → Liệt kê rõ từng finding, DỪNG, yêu cầu fix trước khi tiếp tục.
74
- → Không tick Definition of Done.
75
-
76
- **Chỉ có Medium/Low:**
77
- → List gợi ý, hỏi user có muốn fix không.
78
- → Sau khi user confirm: nhắc chạy `/tas-review-code` để review đầy đủ (hygiene scan + test run).
79
-
80
- ## Red Flags
81
-
82
- - User nói "xong" nhưng không có file nào thay đổi trong git diff → hỏi lại
83
- - Review gate bị skip vì "code đơn giản" → không có ngoại lệ, luôn chạy gate
84
- - Agent trả về "No issues found" trên codebase lớn → verify agent đã đọc đúng files
85
-
86
- ## Verification
87
-
88
- - [ ] `git diff HEAD --name-only` có ít nhất 1 file thay đổi
89
- - [ ] Tất cả agents đã chạy và trả về kết quả (không timeout)
90
- - [ ] Gate decision được đưa ra rõ ràng: pass hoặc block
91
- - [ ] Nếu pass: user biết bước tiếp theo là `/tas-review-code`
92
-
93
- ## Anti-Rationalization
94
-
95
- | Rationalization | Counter |
96
- |---|---|
97
- | "Code đơn giản, không cần review" | Review gate luôn chạy — đây là safety net, không phải quality judgment |
98
- | "Security reviewer sẽ slow down workflow" | Parallel execution — 3 agents chạy cùng lúc, không cộng thêm thời gian |
99
- | "User chưa hỏi về review" | Skill auto-invoke khi user nói "done" — đây là expected behavior |
@@ -1,123 +0,0 @@
1
- ---
2
- name: tas-tdd
3
- description: |
4
- TDD workflow. Auto-invoke khi: user implement feature mới, viết tests,
5
- hoặc khi use_tdd=true trong tas.yaml. Enforce Red-Green-Refactor cycle
6
- với verification gates giữa mỗi phase.
7
- allowed-tools: Read, Write, Edit, Bash, Grep
8
- ---
9
-
10
- # TAS TDD Workflow
11
-
12
- Khi `use_tdd=true` trong `tas.yaml`, enforce strict Red-Green-Refactor cycle.
13
- Không có ngoại lệ — mọi feature đều bắt đầu từ test.
14
-
15
- ## When to Use
16
-
17
- - Implement feature mới theo Story với acceptance criteria rõ ràng
18
- - Bug fix: viết regression test trước khi fix
19
- - Refactor: đảm bảo test coverage trước khi thay đổi code
20
- - KHÔNG dùng TDD cho: config changes, documentation, migration scripts thuần data
21
-
22
- ## Always / Ask / Never
23
-
24
- | | Hành động |
25
- |---|---|
26
- | **Always** | Viết test TRƯỚC, chạy để xác nhận FAIL, sau đó mới viết code |
27
- | **Always** | Commit sau mỗi Green phase thành công |
28
- | **Always** | Chạy full test suite sau Refactor phase |
29
- | **Ask** | Khi acceptance criteria mơ hồ — làm rõ trước khi viết test |
30
- | **Ask** | Khi test quá khó viết — có thể interface/design cần cải thiện |
31
- | **Never** | Viết implementation trước test (dù "chỉ để thử") |
32
- | **Never** | Bỏ qua Red phase vì "test rõ ràng sẽ fail" |
33
- | **Never** | Viết nhiều hơn code tối thiểu cần thiết để pass test ở Green phase |
34
-
35
- ## Process
36
-
37
- ### Red Phase — Viết Test Trước
38
-
39
- 1. Đọc acceptance criteria trong Story
40
- 2. Viết test cases cover từng criteria theo platform:
41
-
42
- **Mobile (React Native)**:
43
- - **Unit Tests (REQUIRED)**: Jest + React Testing Library
44
- - Components: `render`, `fireEvent`, `screen` queries
45
- - Hooks: `renderHook` từ `@testing-library/react-hooks`
46
- - Services/API: Jest mocks + MSW
47
- - Utils: Pure function testing
48
- - Zustand stores: Test actions + selectors
49
- - **E2E Tests**: Detox
50
-
51
- **Web (React + Node)**:
52
- - **Unit Tests (REQUIRED)**: Vitest/Jest + React Testing Library
53
- - Components: `render`, `fireEvent`, `screen` queries
54
- - Hooks: `renderHook`
55
- - Services: Vitest/Jest mocks + MSW
56
- - Backend services: Jest
57
- - **E2E Tests**: Playwright (Chromium, Firefox, WebKit)
58
-
59
- **Backend (.NET)**:
60
- - **Unit Tests**: xUnit cho services, repositories
61
- - **Integration Tests**: xUnit + TestServer
62
- - **API Tests**: xUnit + WebApplicationFactory
63
-
64
- 3. Chạy tests: `npm test` / `yarn test` / `dotnet test` / `python -m pytest`
65
- 4. **Verify**: tests PHẢI FAIL — nếu pass ngay → test sai, viết lại
66
-
67
- ### Green Phase — Code Tối Thiểu
68
-
69
- 1. Viết code tối thiểu để pass tests
70
- 2. Không refactor, không optimize ở phase này
71
- 3. Chạy tests: xác nhận PASS
72
- 4. **Verify**: tất cả tests mới phải pass, không có regression
73
-
74
- ### Refactor Phase — Clean Up
75
-
76
- 1. Loại bỏ duplication, cải thiện naming, giảm complexity
77
- 2. KHÔNG thay đổi behavior — tests là safety net
78
- 3. Chạy full test suite sau mỗi refactor step
79
- 4. **Verify**: coverage >= 80%, tất cả tests vẫn pass
80
- 5. Commit sau khi refactor thành công
81
-
82
- ## Red Flags
83
-
84
- - Test pass ngay lần đầu khi chưa viết implementation → test không test đúng thứ cần test
85
- - Test quá broad ("everything works") → không có giá trị, viết test cụ thể hơn
86
- - Green phase code quá nhiều logic → chỉ viết đủ để pass, không hơn
87
- - Refactor phase làm test fail → refactor sai, roll back từng bước
88
- - Viết nhiều test cùng lúc trước khi fix từng cái → chỉ fix một test tại một thời điểm
89
-
90
- ## Verification
91
-
92
- - [ ] Red: test file tồn tại và chạy ra FAIL output
93
- - [ ] Green: test output chuyển từ FAIL → PASS sau khi thêm implementation
94
- - [ ] Refactor: `npm test` / `dotnet test` / `pytest` toàn bộ suite PASS
95
- - [ ] Coverage report: >= 80% cho files vừa thay đổi
96
- - [ ] Không có test nào bị skip hay comment out
97
-
98
- ## Test Naming Convention
99
-
100
- ```
101
- {PROJECT}_E{EPIC}_F{FEATURE}_S{STORY}_{TYPE}_{NUMBER}_{MODIFIER}
102
- ```
103
-
104
- | TYPE | Ý nghĩa | Layer |
105
- |------|---------|-------|
106
- | UT | Unit Test | 1 |
107
- | IT | Integration Test | 1 |
108
- | API | API Test | 1 |
109
- | FT | Functional Test | 2 |
110
- | E2E | End-to-End Test | 3 |
111
-
112
- MODIFIER: `H` (Happy), `N` (Negative), `E` (Edge), `S` (Security), `P` (Performance)
113
-
114
- ---
115
-
116
- ## Anti-Rationalization
117
-
118
- | Rationalization | Counter |
119
- |---|---|
120
- | "Test rõ ràng sẽ fail, không cần chạy" | Bỏ qua Red phase làm mất điểm kiểm chứng — luôn chạy |
121
- | "Viết test sau nhanh hơn" | TDD tiết kiệm debugging time nhiều hơn thời gian viết test trước |
122
- | "Code này quá đơn giản cần test" | Đơn giản hôm nay, phức tạp sau refactor — test bảo vệ future changes |
123
- | "Interface chưa clear, viết code trước cho rõ" | Test khó viết là signal interface cần cải thiện — Ask, không skip |
@@ -1,19 +0,0 @@
1
- ---
2
- name: token-logger
3
- description: |
4
- Invoke khi TAS command hoàn thành để ghi AI Usage Log vào artifact file.
5
- Auto-invoke sau /tas-* commands khi có Write/Edit vào docs/.
6
- KHÔNG invoke khi user tự tay edit file hoặc dùng non-TAS commands.
7
- allowed-tools: Read, Edit, Write
8
- ---
9
-
10
- # Token Logger
11
-
12
- Ghi `## AI Usage Log` vào artifact file sau khi TAS command hoàn thành.
13
-
14
- ## Process
15
-
16
- 1. Xác định artifact file: từ lời gọi (nếu được chỉ định) hoặc file `docs/` cuối cùng được Write/Edit trong session.
17
- 2. Đọc `.claude/rules/common/token-logging.md` để lấy format và update rules.
18
- 3. Đọc artifact file — kiểm tra `## AI Usage Log` đã tồn tại chưa.
19
- 4. Ghi hoặc cập nhật section. Silent on success — không output ra conversation.
@@ -1,29 +0,0 @@
1
- # Code Review Checklist
2
-
3
- ## Architecture
4
- - [ ] Code align với SAD
5
- - [ ] Không vi phạm ADR nào
6
- - [ ] Đúng layer separation
7
-
8
- ## Code Quality
9
- - [ ] Naming theo conventions trong CLAUDE.md
10
- - [ ] Không có magic numbers/strings
11
- - [ ] Error handling đầy đủ
12
- - [ ] Logging có ý nghĩa
13
- - [ ] Không có code duplication
14
-
15
- ## Security
16
- - [ ] Input validation
17
- - [ ] No SQL injection risk
18
- - [ ] No XSS risk
19
- - [ ] Sensitive data không log
20
-
21
- ## Testing
22
- - [ ] Unit tests cover happy path
23
- - [ ] Unit tests cover edge cases
24
- - [ ] Tests có assertion rõ ràng
25
-
26
- ## Performance
27
- - [ ] Không có N+1 query
28
- - [ ] Async/await đúng cách
29
- - [ ] Dispose resources properly
@@ -1,21 +0,0 @@
1
- # Security Checklist - .NET Specific
2
-
3
- ## Authentication & Authorization
4
- - [ ] JWT validation đúng
5
- - [ ] Role-based authorization
6
- - [ ] Anti-forgery token cho forms
7
-
8
- ## Data Protection
9
- - [ ] Connection strings trong secrets, không hardcode
10
- - [ ] PII data encrypted at rest
11
- - [ ] HTTPS enforced
12
-
13
- ## Input Validation
14
- - [ ] Model validation attributes
15
- - [ ] Parameterized queries (EF Core)
16
- - [ ] File upload validation
17
-
18
- ## CORS & Headers
19
- - [ ] CORS policy restrictive
20
- - [ ] Security headers: X-Content-Type-Options, X-Frame-Options
21
- - [ ] HSTS enabled
@@ -1,23 +0,0 @@
1
- # Definition of Done Checklist
2
-
3
- ## Code
4
- - [ ] Code implemented theo acceptance criteria
5
- - [ ] Tuân thủ conventions trong CLAUDE.md
6
- - [ ] Mỗi public method có XML doc comment
7
-
8
- ## Testing
9
- - [ ] Unit tests pass (happy path + edge cases + negative cases)
10
- - [ ] No regression trên existing tests
11
-
12
- ## Review
13
- - [ ] Code review passed (theo code-review checklist)
14
- - [ ] Nếu auto_review = true, đã qua automated review
15
-
16
- ## Documentation
17
- - [ ] Technical notes trong Story cập nhật
18
- - [ ] Nếu thay đổi API, cập nhật docs tương ứng
19
-
20
- ## Status
21
- - [ ] Story status cập nhật trong file Story
22
- - [ ] project-status.yaml cập nhật
23
- - [ ] Commit message đúng format
package/CLAUDE-Example.md DELETED
@@ -1,61 +0,0 @@
1
- # Project Context
2
-
3
- ## Tech Stack
4
- - Backend: .NET 8, C#, Entity Framework Core
5
- - Frontend: ReactJS
6
- - Database: MySQL
7
- - Infrastructure: AWS
8
- - CI/CD: Azure DevOps Pipelines
9
-
10
- ## Conventions
11
- - Branching: git-flow
12
- - Commit: conventional commits
13
- - Namespace: Torus.{ProjectName}.{Layer}
14
- - Naming: PascalCase for classes/methods, camelCase for variables
15
- - Test framework: xUnit
16
-
17
- ## Legacy Patterns to Avoid (Brownfield)
18
- - Repository pattern without interface
19
- - Direct SQL queries in controllers
20
-
21
- ## Mermaid Rules (AzureDevops Wiki)
22
- - Always wrap with :::mermaid and :::
23
- - NEVER use () in node labels, use [] instead
24
- - Example: A["Web App"] --> B["API Gateway"]
25
-
26
- ## Build & Test
27
- - Build: dotnet build
28
- - Test: dotnet test
29
- - Lint: dotnet format --verify-no-changes
30
-
31
- ## TAS Kit
32
- This project uses Torus-Agentic-SDLC (TAS) kit.
33
- - Flow config: root/tas.yaml
34
- - Templates: .tas/templates/
35
- - Generated docs: docs/
36
- - Pre-commit security hook: .tas/hooks/ (see README.md there)
37
- - Config: `security:` section in tas.yaml
38
- - Bypass: `SKIP_SECURITY_SCAN=1 git commit ...` or `git commit --no-verify`
39
-
40
- ## Key Rules
41
- - Architecture: see docs/sad.md
42
- - Decisions: see docs/adr/
43
-
44
- ## Commands
45
- Type /tas-status to see current project state.
46
- Type /tas-[artifact] to create or update artifacts (prd, sad, adr, epic, feature, story, design).
47
- Type /tas-dev to implement a story.
48
- Type /tas-verify to verify a Feature on Staging (Phase 2).
49
- Type /tas-review-code, /tas-brainstorm, /tas-bug, /tas-security-check for dev workflows.
50
-
51
- ## ADO Commands
52
- Type /ado-create <type> <temp-id> [--parent-id <id>] to create work item on ADO.
53
- Type /ado-get <ado-id> to pull work item from ADO.
54
- Type /ado-update <type> <ado-id> [--assign <n>] [--status <state>] to update on ADO.
55
- Type /ado-status <ado-id> --status <state> to quick update status on ADO.
56
- Type /ado-delete <type> <ado-id> to delete work item on ADO.
57
-
58
- ## ADO Prerequisites
59
- - Azure CLI + azure-devops extension: az extension add --name azure-devops --upgrade
60
- - Python 3.8+ with pyyaml: pip install pyyaml
61
- - PAT configured in .env file: AzureDevops_Personal_AccessToken=your-pat-here
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes