@torus-engineering/tas-kit 1.14.0 → 2.1.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 (99) hide show
  1. package/.tas/_platform/claude-code/settings.json +58 -46
  2. package/.tas/_platform/hooks/code-quality.js +127 -127
  3. package/.tas/_platform/hooks/session-end.js +111 -111
  4. package/.tas/agents/architect.md +53 -53
  5. package/.tas/agents/aws-reviewer.md +71 -71
  6. package/.tas/agents/build-resolver.md +89 -59
  7. package/.tas/agents/code-explorer.md +63 -63
  8. package/.tas/agents/csharp-reviewer.md +62 -62
  9. package/.tas/agents/database-reviewer.md +73 -73
  10. package/.tas/agents/doc-updater.md +68 -66
  11. package/.tas/agents/python-reviewer.md +67 -67
  12. package/.tas/agents/security-reviewer.md +79 -79
  13. package/.tas/agents/software-engineer.md +53 -0
  14. package/.tas/agents/typescript-reviewer.md +65 -65
  15. package/.tas/commands/ado-create.md +33 -28
  16. package/.tas/commands/ado-delete.md +26 -22
  17. package/.tas/commands/ado-get.md +24 -20
  18. package/.tas/commands/ado-status.md +22 -18
  19. package/.tas/commands/ado-update.md +31 -27
  20. package/.tas/commands/tas-adr.md +37 -33
  21. package/.tas/commands/tas-apitest-plan.md +177 -173
  22. package/.tas/commands/tas-apitest.md +147 -143
  23. package/.tas/commands/tas-brainstorm.md +23 -19
  24. package/.tas/commands/tas-brd.md +50 -0
  25. package/.tas/commands/tas-bug.md +127 -113
  26. package/.tas/commands/tas-checklist.md +180 -0
  27. package/.tas/commands/tas-debug.md +103 -0
  28. package/.tas/commands/tas-design.md +41 -37
  29. package/.tas/commands/tas-dev.md +225 -125
  30. package/.tas/commands/tas-e2e-mobile.md +146 -155
  31. package/.tas/commands/tas-e2e-web.md +150 -163
  32. package/.tas/commands/tas-e2e.md +289 -102
  33. package/.tas/commands/tas-feature.md +181 -47
  34. package/.tas/commands/tas-fix.md +72 -51
  35. package/.tas/commands/tas-functest-mobile.md +138 -144
  36. package/.tas/commands/tas-functest-web.md +176 -192
  37. package/.tas/commands/tas-functest.md +225 -76
  38. package/.tas/commands/tas-init.md +22 -17
  39. package/.tas/commands/tas-master-plan.md +300 -0
  40. package/.tas/commands/tas-orchestrate.md +159 -0
  41. package/.tas/commands/tas-plan.md +152 -117
  42. package/.tas/commands/tas-prd.md +57 -37
  43. package/.tas/commands/tas-review-pr.md +174 -0
  44. package/.tas/commands/tas-review.md +115 -113
  45. package/.tas/commands/tas-sad.md +47 -43
  46. package/.tas/commands/tas-security.md +91 -87
  47. package/.tas/commands/tas-spec.md +54 -50
  48. package/.tas/commands/tas-status.md +25 -16
  49. package/.tas/project-status-example.yaml +3 -1
  50. package/.tas/rules/ado-integration.md +67 -65
  51. package/.tas/rules/common/api-design.md +517 -517
  52. package/.tas/rules/common/build-debug-loop.md +233 -0
  53. package/.tas/rules/common/code-review.md +4 -0
  54. package/.tas/rules/common/feature-done.md +42 -0
  55. package/.tas/rules/common/post-implementation-review.md +4 -0
  56. package/.tas/rules/common/project-status.md +33 -16
  57. package/.tas/rules/common/sad-impact.md +81 -0
  58. package/.tas/rules/common/tdd.md +104 -89
  59. package/.tas/rules/csharp/api-testing.md +2 -2
  60. package/.tas/rules/csharp/torus-core-framework.md +128 -0
  61. package/.tas/tas-example.yaml +9 -32
  62. package/.tas/templates/AGENTS.md +13 -0
  63. package/.tas/templates/API-Test-Spec.md +5 -4
  64. package/.tas/templates/BRD.md +133 -0
  65. package/.tas/templates/Bug.md +15 -0
  66. package/.tas/templates/E2E-Execution-Report.md +8 -8
  67. package/.tas/templates/E2E-Mobile-Spec.md +6 -8
  68. package/.tas/templates/E2E-Report.md +2 -2
  69. package/.tas/templates/E2E-Scenario.md +22 -22
  70. package/.tas/templates/E2E-Test-Spec.md +274 -0
  71. package/.tas/templates/E2E-Web-Spec.md +4 -4
  72. package/.tas/templates/Feature-Technical-Part.md +69 -0
  73. package/.tas/templates/Feature-Technical-Stack.md +74 -0
  74. package/.tas/templates/Feature-Technical.md +329 -0
  75. package/.tas/templates/Feature.md +50 -26
  76. package/.tas/templates/Func-Test-Script.md +29 -56
  77. package/.tas/templates/Func-Test-Spec.md +144 -142
  78. package/.tas/templates/PRD.md +173 -142
  79. package/.tas/templates/TestChecklist.md +96 -0
  80. package/.tas/templates/torus-dotnet-bootstrap.md +223 -0
  81. package/.tas/tools/tas-ado-readme.md +24 -27
  82. package/.tas/tools/tas-ado.py +328 -25
  83. package/.tas/tools/tas-github.py +339 -0
  84. package/README.md +131 -54
  85. package/bin/cli.js +90 -90
  86. package/lib/adapters/antigravity.js +131 -131
  87. package/lib/adapters/claude-code.js +71 -35
  88. package/lib/adapters/codex.js +157 -157
  89. package/lib/adapters/cursor.js +80 -80
  90. package/lib/adapters/index.js +20 -20
  91. package/lib/adapters/utils.js +81 -81
  92. package/lib/deleted-files.json +7 -0
  93. package/lib/install.js +546 -546
  94. package/package.json +1 -1
  95. package/.tas/commands/tas-epic.md +0 -35
  96. package/.tas/commands/tas-story.md +0 -91
  97. package/.tas/rules/common/story-done.md +0 -30
  98. package/.tas/templates/Epic.md +0 -46
  99. package/.tas/templates/Story.md +0 -90
@@ -0,0 +1,180 @@
1
+ # /tas-checklist $FEATURE_FILE
2
+
3
+ You are a Senior QA Engineer creating a comprehensive Test Checklist for a feature based on its business requirements document.
4
+
5
+ ## Purpose
6
+
7
+ Generate a structured Test Checklist by analyzing the Feature document, identifying all test scenarios across multiple categories (GUI, Validation, Business Logic, Exception Handling, Security, Performance, Integration).
8
+
9
+ ## When to Use
10
+
11
+ - Run after Feature document is approved
12
+ - Run before writing detailed Test Cases
13
+ - Run when Feature document changes (regression checklist update)
14
+
15
+ ## Prerequisites
16
+
17
+ 1. Feature document exists in current directory (pattern: `*-Feature-*.md`)
18
+ 2. Template exists at `.tas/templates/TestChecklist.md`
19
+ 3. `tas.yaml` exists at project root (for project context)
20
+
21
+ ## Step-by-Step Actions
22
+
23
+ ### Step 1: Locate and Read Feature Document
24
+
25
+ 1. If `$FEATURE_FILE` is provided, use that file
26
+ 2. Otherwise, search for Feature files in current directory:
27
+ - Pattern: `*-Feature-*.md`
28
+ - If multiple found, ask user to select
29
+ - If none found, error: "No Feature document found. Please run in feature directory."
30
+
31
+ 3. Read the Feature document and extract:
32
+ - Feature Code (e.g., TAS-Feature-001)
33
+ - Feature Name
34
+ - Feature Code from filename
35
+ - Business Requirements
36
+ - Acceptance Criteria (Given/When/Then format)
37
+ - User Stories
38
+ - Business Rules
39
+ - Technical Constraints (if mentioned)
40
+
41
+ ### Step 2: Read Template
42
+
43
+ Read `.tas/templates/TestChecklist.md` to understand the structure.
44
+
45
+ ### Step 3: Parse Requirements into Test Points
46
+
47
+ Analyze the Feature document and generate test checklist items for each category:
48
+
49
+ #### GUI & UX
50
+ - Identify UI elements mentioned (forms, buttons, tables, modals, etc.)
51
+ - Check for responsive design requirements
52
+ - Check for accessibility requirements
53
+ - Check for UX flows mentioned
54
+
55
+ #### Validation
56
+ - Extract field-level validations from requirements
57
+ - Identify required fields
58
+ - Identify data type constraints (number, email, date, etc.)
59
+ - Identify length/format constraints
60
+ - Identify range constraints (min/max values)
61
+ - Identify unique constraints
62
+
63
+ #### Business Logic (CRITICAL - P0)
64
+ - Extract all business rules from Acceptance Criteria
65
+ - Identify main user flows (happy paths)
66
+ - Identify conditional logic (if/else scenarios)
67
+ - Identify calculations/formulas
68
+ - Identify state transitions (status changes)
69
+ - Identify cross-feature dependencies
70
+
71
+ #### Exception Handling
72
+ - Identify error scenarios from requirements
73
+ - Consider edge cases (empty data, maximum values, boundary conditions)
74
+ - Consider system failures (network errors, timeouts)
75
+ - Consider invalid user actions (double-click, concurrent access)
76
+ - Consider data conflicts (duplicate, stale data)
77
+
78
+ #### Security
79
+ - Identify authentication requirements
80
+ - Identify authorization/role-based access
81
+ - Identify sensitive data handling
82
+ - Identify input validation for security (XSS, injection)
83
+ - Identify API security requirements
84
+
85
+ #### Performance
86
+ - Identify response time requirements
87
+ - Identify load/concurrency requirements
88
+ - Identify database query concerns
89
+ - Identify large data handling
90
+
91
+ #### Integration
92
+ - Identify external API calls
93
+ - Identify database operations
94
+ - Identify third-party service integrations
95
+ - Identify message queue/events (if any)
96
+
97
+ ### Step 4: Assign Priority
98
+
99
+ For each test point, assign priority:
100
+ - **P0:** Critical - Core business functionality, data integrity, security
101
+ - **P1:** High - Important business rules, error handling
102
+ - **P2:** Medium - UI/UX, non-critical validations
103
+ - **P3:** Low - Nice to have, cosmetic
104
+
105
+ ### Step 5: Generate Checklist File
106
+
107
+ Create file: `{CODE}-Feature-{NNN}-TestChecklist.md`
108
+
109
+ Fill in the template with:
110
+ 1. **Header information:**
111
+ - Feature Name, Code, Created Date, Tester, Reviewer
112
+
113
+ 2. **Feature Overview:**
114
+ - Feature Description (from Feature doc)
115
+ - Business Objective (from Feature doc)
116
+ - Scope (In scope: what's in the doc, Out of scope: assumptions)
117
+
118
+ 3. **Checklist Matrix:**
119
+ - Populate all 7 categories with parsed test points
120
+ - Include Point to Check, Priority, Requirement ID (link to AC)
121
+ - Leave Test Case ID empty (to be filled later)
122
+
123
+ 4. **Coverage Summary:**
124
+ - Calculate total points per category
125
+ - Calculate coverage percentage
126
+
127
+ 5. **Risk Assessment:**
128
+ - Identify 3-5 key risks based on complexity
129
+ - Suggest mitigations
130
+
131
+ ### Step 6: Output Summary
132
+
133
+ Report to user:
134
+ - Checklist file created: `{filename}`
135
+ - Total test points: `{count}`
136
+ - Breakdown by category
137
+ - P0 items: `{count}`
138
+ - Coverage target: 90%
139
+
140
+ ## Important Notes
141
+
142
+ 1. **One test point per row** - Don't combine multiple checks
143
+ 2. **Use requirement IDs** - Link each test point to specific Acceptance Criteria
144
+ 3. **Focus on high-risk areas** - P0 should be the core business logic
145
+ 4. **Be specific** - "Check login validation" → "Check login rejects invalid email format"
146
+ 5. **Think like a tester** - Consider edge cases, negative scenarios, security
147
+ 6. **Maintain traceability** - Every test point should map to a requirement
148
+
149
+ ## Example Output
150
+
151
+ ```
152
+ ✓ Test Checklist created: TAS-Feature-001-Login-TestChecklist.md
153
+
154
+ Summary:
155
+ ├─ Total Test Points: 47
156
+ ├─ GUI & UX: 8 (17%)
157
+ ├─ Validation: 12 (26%)
158
+ ├─ Business Logic: 10 (21%)
159
+ ├─ Exception Handling: 6 (13%)
160
+ ├─ Security: 6 (13%)
161
+ ├─ Performance: 3 (6%)
162
+ └─ Integration: 2 (4%)
163
+
164
+ Priority Breakdown:
165
+ ├─ P0 (Critical): 18
166
+ ├─ P1 (High): 15
167
+ ├─ P2 (Medium): 10
168
+ └─ P3 (Low): 4
169
+
170
+ Next Steps:
171
+ 1. Review checklist with Senior QA
172
+ 2. Create detailed Test Cases for each point
173
+ 3. Link Test Case IDs when ready
174
+ ```
175
+
176
+ ## Error Handling
177
+
178
+ - If Feature file not found: "No Feature document found in current directory. Please run in a feature directory or specify file: /tas-checklist <filename>"
179
+ - If Feature file has no Acceptance Criteria: "Warning: No Acceptance Criteria found. Checklist may be incomplete."
180
+ - If template not found: "Error: TestChecklist.md template not found in .tas/templates/"
@@ -0,0 +1,103 @@
1
+ ---
2
+ model: sonnet
3
+ ---
4
+
5
+ # /tas-debug $ARGUMENTS
6
+
7
+ Role: SE - Software Engineer
8
+ Debug and resolve build/runtime/functional errors for an already-implemented feature or stack.
9
+ Use when: feature is coded but broken, server crashes on start, browser shows errors, tests fail after merge.
10
+ Differs from /tas-fix: runs full build-debug loop (start server → capture logs → browser check → auto-resolve up to N times).
11
+ Differs from /tas-dev Step 3.5: standalone — no implementation phase, targets existing code.
12
+
13
+ ## Stack Detection
14
+ Read `.tas/rules/common/stack-detection.md`.
15
+
16
+ ## Actions
17
+
18
+ ### Step 1 — Identify target
19
+
20
+ `$ARGUMENTS` may be:
21
+ - Feature ID (e.g. `TAS-042`) → read Feature file + Technical file from `docs/features/`
22
+ - Stack directory path (e.g. `apps/web`) → skip Feature files, infer stack from contents
23
+ - Error message / stack trace (no ID) → ask user: "Which stack/dir is broken?"
24
+ - Empty → read `project-status.yaml`, find features with `status: In Development`. If multiple, list for user to choose.
25
+
26
+ From target, determine:
27
+ - `stack` — detected from Feature frontmatter OR inferred from `package.json` / `*.csproj` / `*.py` / `*.sln` in dir
28
+ - `working_dir` — root dir for that stack's server process
29
+ - `changed_files` — if Feature file exists: read Technical file `## File Changes`. Else: `git diff --name-only HEAD` in working_dir.
30
+ - `ac_list` — if Feature file exists: extract AC lines (Given/When/Then). Else: empty (skip functional check).
31
+
32
+ ### Step 2 — Snapshot current error (optional fast-path)
33
+
34
+ If `$ARGUMENTS` contains an error message or stack trace:
35
+ - Pass directly to `build-resolver` agent as pre-diagnosis context
36
+ - Apply returned fix first, then enter build-debug loop at attempt 1
37
+
38
+ If no error provided: go straight to loop.
39
+
40
+ ### Step 2.5 — Triage Ladder (before loop)
41
+
42
+ Enumerate hypotheses for the reported symptom. Probe cheapest first. Stop at first level that produces divergence from expected.
43
+
44
+ For "page broken" symptom:
45
+ - **L1. HTTP status** — `curl -sI {url}` (headers only, ~5 lines)
46
+ - **L2. Server log** — already streaming from loop; check last 20 lines
47
+ - **L3. HTML snapshot** — `curl -s {url} > .tas/tmp/snap.html` (single fetch, reuse for L4)
48
+ - **L4. Section presence** — Grep against `snap.html` for expected markers (titles, ids, data attrs)
49
+ - **L5. Template/render code** — `Read` with `offset` + `limit` at suspect range (never full file unless ≤ 80 lines)
50
+
51
+ For "API broken" symptom: L1 → L2 → curl JSON body → Grep handler → Read handler range.
52
+
53
+ For "test failing": jump to error line in test output → Grep target symbol → Read narrow range.
54
+
55
+ **Rules**:
56
+ - One snapshot per URL per session. Re-Grep the cached `snap.html`, do not re-fetch.
57
+ - Drop levels above the divergence point — do not probe further once cause located.
58
+
59
+ ### Step 3 — Build & Debug Loop
60
+
61
+ Read `.tas/rules/common/build-debug-loop.md`. Follow loop protocol exactly.
62
+
63
+ ```
64
+ max_attempts = tas.yaml[build_debug_attempts] ?? 3
65
+ ```
66
+
67
+ Run loop for each stack identified in Step 1.
68
+ If multiple stacks (monorepo): run sequentially, stack order from Technical Plan (or alphabetical if no plan).
69
+
70
+ **build-resolver call context**: stack, command, attempt N/max, exit code, last 50 lines stdout+stderr, browser errors (if any), AC text (if functional check), changed_files list.
71
+
72
+ ### Step 4 — Wrap up
73
+
74
+ **Before anything else: confirm Tear Down ran.** Loop protocol mandates kill_server() on all exit paths. Verify no dev server PID still alive (check port / process list). If orphan detected → kill via Tear Down snippet from `build-debug-loop.md` before logging.
75
+
76
+ **If loop PASSED:**
77
+ - Append `## Build Debug Log` to Technical file (or create standalone log file `docs/debug/{FEATURE_ID}-debug-{date}.md` if no Technical file)
78
+ - **SAD Impact Heuristic** — read `.tas/rules/common/sad-impact.md` "Quick Heuristic". Grep changed files for trigger patterns (deps add, ENV add, Dockerfile EXPOSE/ENV, migrations, IaC, CI, new top-level dirs).
79
+ - **Hit & target = Feature ID:** auto-invoke `/tas-sad "Feature-{NNN}: {summary of triggers hit}" --autonomous={mode}`; verify `Feature-{NNN}` in Changelog before wrap.
80
+ - **Hit & target = standalone dir (no Feature):** STOP wrap, surface: "Debug fix touches SAD trigger ({signal}). Re-run as `/tas-bug` or run `/tas-sad` manually before committing."
81
+ - **No hit:** continue normally.
82
+ - Output commit message: `fix: resolve {stack} build/runtime errors for {Feature ID or dir}`
83
+ - Suggest: "Run `/tas-functest {Feature ID}` to verify AC end-to-end."
84
+ - If fix touched ≥ 3 files or changed architecture: suggest `/tas-review {Feature ID}` for post-fix review.
85
+
86
+ **If loop FAILED (max attempts exceeded):**
87
+ - Output warning block (format from `build-debug-loop.md`)
88
+ - Do NOT commit partial fixes
89
+ - Suggest: `/tas-bug` if issue is severe enough for full tracking.
90
+
91
+ ## Principles
92
+ - DO NOT implement new features — only fix what's broken
93
+ - DO NOT read more than 5 files outside the broken stack without user confirmation
94
+ - DO NOT read sibling working files until root-cause hypothesis is named (one sentence stating which layer is suspect)
95
+ - DO NOT read migration files when a D1/SQL query result answers the same question — query first, read schema only if query result is unexpected
96
+ - Read full file only when ≤ 80 lines OR Grep has already pinpointed a line range — otherwise use `offset` + `limit`
97
+ - Fix at root cause — do not patch symptoms
98
+ - If fix requires architectural change → stop, surface to user, suggest `/tas-adr`
99
+ - If changed files match SAD Impact Heuristic → auto-invoke `/tas-sad` (Feature target) or escalate to `/tas-bug` (standalone target)
100
+
101
+ ## Final Step — Token Log
102
+
103
+ Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to Feature file (if exists) or debug log file.
@@ -1,37 +1,41 @@
1
- # /tas-design $ARGUMENTS
2
-
3
- Role: PE - Product Engineer
4
- Create or update Design Specification document (UI/UX flows, wireframe descriptions).
5
-
6
- ## Prerequisite
7
- - docs/prd.md must exist
8
-
9
- ## Actions
10
- 1. Need context from root/tas.yaml and docs/prd.md
11
- 2. Check if docs/design-spec.md already exists:
12
-
13
- ### CREATE mode (file doesn't exist):
14
- 3. Need context from .tas/templates/Design-Spec.md
15
- 4. $ARGUMENTS is design scope description. If not provided, base on PRD.
16
- 5. Create file docs/design-spec.md containing:
17
- - User flows (Mermaid flowchart)
18
- - Screen descriptions
19
- - Navigation structure
20
- - Interaction patterns
21
- - Responsive behavior notes
22
- 6. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — add `artifacts.design_spec`.
23
-
24
- ### UPDATE mode (file exists):
25
- 3. Need context from current docs/design-spec.md
26
- 4. $ARGUMENTS is change description. If not provided, ask user which section to update.
27
- 5. Update file, add changelog
28
- 6. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — update `artifacts.design_spec`.
29
-
30
- ## Principles
31
- - Focus on flows and behavior, not pixel-perfect design
32
- - Each screen needs: purpose, key elements, actions available
33
- - Mermaid compliance: :::mermaid wrapper, no () in node labels
34
-
35
- ## Final Step Token Log
36
-
37
- Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to `docs/design-spec.md`.
1
+ ---
2
+ model: sonnet
3
+ ---
4
+
5
+ # /tas-design $ARGUMENTS
6
+
7
+ Role: PE - Product Engineer
8
+ Create or update Design Specification document (UI/UX flows, wireframe descriptions).
9
+
10
+ ## Prerequisite
11
+ - docs/prd.md must exist
12
+
13
+ ## Actions
14
+ 1. Need context from root/tas.yaml and docs/prd.md
15
+ 2. Check if docs/design-spec.md already exists:
16
+
17
+ ### CREATE mode (file doesn't exist):
18
+ 3. Need context from .tas/templates/Design-Spec.md
19
+ 4. $ARGUMENTS is design scope description. If not provided, base on PRD.
20
+ 5. Create file docs/design-spec.md containing:
21
+ - User flows (Mermaid flowchart)
22
+ - Screen descriptions
23
+ - Navigation structure
24
+ - Interaction patterns
25
+ - Responsive behavior notes
26
+ 6. Update `project-status.yaml` per `.tas/rules/common/project-status.md` add `artifacts.design_spec`.
27
+
28
+ ### UPDATE mode (file exists):
29
+ 3. Need context from current docs/design-spec.md
30
+ 4. $ARGUMENTS is change description. If not provided, ask user which section to update.
31
+ 5. Update file, add changelog
32
+ 6. Update `project-status.yaml` per `.tas/rules/common/project-status.md` update `artifacts.design_spec`.
33
+
34
+ ## Principles
35
+ - Focus on flows and behavior, not pixel-perfect design
36
+ - Each screen needs: purpose, key elements, actions available
37
+ - Mermaid compliance: :::mermaid wrapper, no () in node labels
38
+
39
+ ## Final Step — Token Log
40
+
41
+ Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to `docs/design-spec.md`.