@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.
- package/.tas/_platform/claude-code/settings.json +58 -46
- package/.tas/_platform/hooks/code-quality.js +127 -127
- package/.tas/_platform/hooks/session-end.js +111 -111
- package/.tas/agents/architect.md +53 -53
- package/.tas/agents/aws-reviewer.md +71 -71
- package/.tas/agents/build-resolver.md +89 -59
- package/.tas/agents/code-explorer.md +63 -63
- package/.tas/agents/csharp-reviewer.md +62 -62
- package/.tas/agents/database-reviewer.md +73 -73
- package/.tas/agents/doc-updater.md +68 -66
- package/.tas/agents/python-reviewer.md +67 -67
- package/.tas/agents/security-reviewer.md +79 -79
- package/.tas/agents/software-engineer.md +53 -0
- package/.tas/agents/typescript-reviewer.md +65 -65
- package/.tas/commands/ado-create.md +33 -28
- package/.tas/commands/ado-delete.md +26 -22
- package/.tas/commands/ado-get.md +24 -20
- package/.tas/commands/ado-status.md +22 -18
- package/.tas/commands/ado-update.md +31 -27
- package/.tas/commands/tas-adr.md +37 -33
- package/.tas/commands/tas-apitest-plan.md +177 -173
- package/.tas/commands/tas-apitest.md +147 -143
- package/.tas/commands/tas-brainstorm.md +23 -19
- package/.tas/commands/tas-brd.md +50 -0
- package/.tas/commands/tas-bug.md +127 -113
- package/.tas/commands/tas-checklist.md +180 -0
- package/.tas/commands/tas-debug.md +103 -0
- package/.tas/commands/tas-design.md +41 -37
- package/.tas/commands/tas-dev.md +225 -125
- package/.tas/commands/tas-e2e-mobile.md +146 -155
- package/.tas/commands/tas-e2e-web.md +150 -163
- package/.tas/commands/tas-e2e.md +289 -102
- package/.tas/commands/tas-feature.md +181 -47
- package/.tas/commands/tas-fix.md +72 -51
- package/.tas/commands/tas-functest-mobile.md +138 -144
- package/.tas/commands/tas-functest-web.md +176 -192
- package/.tas/commands/tas-functest.md +225 -76
- package/.tas/commands/tas-init.md +22 -17
- package/.tas/commands/tas-master-plan.md +300 -0
- package/.tas/commands/tas-orchestrate.md +159 -0
- package/.tas/commands/tas-plan.md +152 -117
- package/.tas/commands/tas-prd.md +57 -37
- package/.tas/commands/tas-review-pr.md +174 -0
- package/.tas/commands/tas-review.md +115 -113
- package/.tas/commands/tas-sad.md +47 -43
- package/.tas/commands/tas-security.md +91 -87
- package/.tas/commands/tas-spec.md +54 -50
- package/.tas/commands/tas-status.md +25 -16
- package/.tas/project-status-example.yaml +3 -1
- package/.tas/rules/ado-integration.md +67 -65
- package/.tas/rules/common/api-design.md +517 -517
- package/.tas/rules/common/build-debug-loop.md +233 -0
- package/.tas/rules/common/code-review.md +4 -0
- package/.tas/rules/common/feature-done.md +42 -0
- package/.tas/rules/common/post-implementation-review.md +4 -0
- package/.tas/rules/common/project-status.md +33 -16
- package/.tas/rules/common/sad-impact.md +81 -0
- package/.tas/rules/common/tdd.md +104 -89
- package/.tas/rules/csharp/api-testing.md +2 -2
- package/.tas/rules/csharp/torus-core-framework.md +128 -0
- package/.tas/tas-example.yaml +9 -32
- package/.tas/templates/AGENTS.md +13 -0
- package/.tas/templates/API-Test-Spec.md +5 -4
- package/.tas/templates/BRD.md +133 -0
- package/.tas/templates/Bug.md +15 -0
- package/.tas/templates/E2E-Execution-Report.md +8 -8
- package/.tas/templates/E2E-Mobile-Spec.md +6 -8
- package/.tas/templates/E2E-Report.md +2 -2
- package/.tas/templates/E2E-Scenario.md +22 -22
- package/.tas/templates/E2E-Test-Spec.md +274 -0
- package/.tas/templates/E2E-Web-Spec.md +4 -4
- package/.tas/templates/Feature-Technical-Part.md +69 -0
- package/.tas/templates/Feature-Technical-Stack.md +74 -0
- package/.tas/templates/Feature-Technical.md +329 -0
- package/.tas/templates/Feature.md +50 -26
- package/.tas/templates/Func-Test-Script.md +29 -56
- package/.tas/templates/Func-Test-Spec.md +144 -142
- package/.tas/templates/PRD.md +173 -142
- package/.tas/templates/TestChecklist.md +96 -0
- package/.tas/templates/torus-dotnet-bootstrap.md +223 -0
- package/.tas/tools/tas-ado-readme.md +24 -27
- package/.tas/tools/tas-ado.py +328 -25
- package/.tas/tools/tas-github.py +339 -0
- package/README.md +131 -54
- package/bin/cli.js +90 -90
- package/lib/adapters/antigravity.js +131 -131
- package/lib/adapters/claude-code.js +71 -35
- package/lib/adapters/codex.js +157 -157
- package/lib/adapters/cursor.js +80 -80
- package/lib/adapters/index.js +20 -20
- package/lib/adapters/utils.js +81 -81
- package/lib/deleted-files.json +7 -0
- package/lib/install.js +546 -546
- package/package.json +1 -1
- package/.tas/commands/tas-epic.md +0 -35
- package/.tas/commands/tas-story.md +0 -91
- package/.tas/rules/common/story-done.md +0 -30
- package/.tas/templates/Epic.md +0 -46
- 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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`.
|