@torus-engineering/tas-kit 1.11.1 → 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.
- package/.tas/README.md +334 -334
- package/{.claude → .tas/_platform/claude-code}/settings.json +0 -12
- package/{.claude → .tas/_platform}/hooks/code-quality.js +1 -1
- package/{.claude → .tas/_platform}/hooks/session-end.js +20 -25
- package/{.claude → .tas}/commands/ado-create.md +5 -4
- package/{.claude → .tas}/commands/ado-delete.md +5 -4
- package/{.claude → .tas}/commands/ado-update.md +5 -4
- package/{.claude → .tas}/commands/tas-adr.md +3 -3
- package/{.claude → .tas}/commands/tas-apitest-plan.md +2 -2
- package/{.claude → .tas}/commands/tas-apitest.md +4 -4
- package/{.claude → .tas}/commands/tas-bug.md +6 -6
- package/{.claude → .tas}/commands/tas-design.md +3 -3
- package/{.claude → .tas}/commands/tas-dev.md +11 -14
- package/{.claude → .tas}/commands/tas-epic.md +3 -3
- package/{.claude → .tas}/commands/tas-feature.md +4 -4
- package/{.claude → .tas}/commands/tas-fix.md +5 -5
- package/{.claude → .tas}/commands/tas-init.md +1 -1
- package/{.claude → .tas}/commands/tas-plan.md +198 -198
- package/{.claude → .tas}/commands/tas-prd.md +3 -3
- package/{.claude → .tas}/commands/tas-review.md +17 -15
- package/{.claude → .tas}/commands/tas-sad.md +3 -3
- package/{.claude → .tas}/commands/tas-security.md +4 -4
- package/{.claude → .tas}/commands/tas-story.md +3 -3
- package/.tas/platforms.json +5 -0
- package/.tas/project-status-example.yaml +17 -17
- package/{.claude/skills/ado-integration/SKILL.md → .tas/rules/ado-integration.md} +5 -15
- package/{.claude/skills/api-design/SKILL.md → .tas/rules/common/api-design.md} +517 -530
- package/{.claude → .tas}/rules/common/code-review.md +30 -6
- package/{.claude/rules/common/post-review-agent.md → .tas/rules/common/post-implementation-review.md} +51 -49
- package/{.claude → .tas}/rules/common/project-status.md +80 -80
- package/{.claude → .tas}/rules/common/stack-detection.md +29 -29
- package/.tas/{checklists → rules/common}/story-done.md +12 -5
- package/{.claude/skills/tas-tdd/SKILL.md → .tas/rules/common/tdd.md} +4 -38
- package/{.claude → .tas}/rules/common/testing.md +3 -8
- package/{.claude → .tas}/rules/common/token-logging.md +36 -27
- package/{.claude → .tas}/rules/csharp/api-testing.md +171 -171
- package/{.claude → .tas}/rules/csharp/coding-style.md +0 -2
- package/{.claude → .tas}/rules/csharp/security.md +10 -0
- package/{.claude → .tas}/rules/python/coding-style.md +0 -2
- package/{.claude → .tas}/rules/typescript/coding-style.md +0 -2
- package/.tas/rules/typescript/patterns.md +142 -0
- package/.tas/rules/typescript/security.md +88 -0
- package/{.claude → .tas}/rules/typescript/testing.md +0 -4
- package/{.claude → .tas}/rules/web/coding-style.md +0 -2
- package/.tas/tas-example.yaml +125 -126
- package/.tas/templates/ADR.md +47 -47
- package/.tas/templates/Bug.md +67 -67
- package/.tas/templates/Design-Spec.md +36 -36
- package/.tas/templates/Epic.md +46 -46
- package/.tas/templates/Feature.md +1 -1
- package/.tas/templates/Security-Report.md +27 -27
- package/.tas/tools/tas-ado-readme.md +169 -169
- package/.tas/tools/tas-ado.py +621 -621
- package/README.md +334 -334
- package/bin/cli.js +91 -73
- package/lib/adapters/antigravity.js +137 -0
- package/lib/adapters/claude-code.js +35 -0
- package/lib/adapters/codex.js +163 -0
- package/lib/adapters/cursor.js +80 -0
- package/lib/adapters/index.js +20 -0
- package/lib/adapters/utils.js +81 -0
- package/lib/deleted-files.json +99 -0
- package/lib/install.js +403 -327
- package/package.json +4 -3
- package/.claude/agents/code-reviewer.md +0 -41
- package/.claude/agents/e2e-runner.md +0 -61
- package/.claude/agents/planner.md +0 -82
- package/.claude/agents/tdd-guide.md +0 -84
- package/.claude/commands/tas-verify.md +0 -51
- package/.claude/rules/typescript/patterns.md +0 -62
- package/.claude/rules/typescript/security.md +0 -28
- package/.claude/settings.local.json +0 -38
- package/.claude/skills/ai-regression-testing/SKILL.md +0 -364
- package/.claude/skills/architecture-decision-records/SKILL.md +0 -184
- package/.claude/skills/benchmark/SKILL.md +0 -98
- package/.claude/skills/browser-qa/SKILL.md +0 -92
- package/.claude/skills/canary-watch/SKILL.md +0 -104
- package/.claude/skills/js-backend-patterns/SKILL.md +0 -603
- package/.claude/skills/tas-conventions/SKILL.md +0 -65
- package/.claude/skills/tas-implementation-complete/SKILL.md +0 -100
- package/.claude/skills/token-logger/SKILL.md +0 -19
- package/.tas/checklists/code-review.md +0 -29
- package/.tas/checklists/security.md +0 -21
- /package/{.claude → .tas}/agents/architect.md +0 -0
- /package/{.claude → .tas}/agents/aws-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/build-resolver.md +0 -0
- /package/{.claude → .tas}/agents/code-explorer.md +0 -0
- /package/{.claude → .tas}/agents/csharp-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/database-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/doc-updater.md +0 -0
- /package/{.claude → .tas}/agents/python-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/security-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/typescript-reviewer.md +0 -0
- /package/{.claude → .tas}/commands/ado-get.md +0 -0
- /package/{.claude → .tas}/commands/ado-status.md +0 -0
- /package/{.claude → .tas}/commands/tas-brainstorm.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e-mobile.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e-web.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest-mobile.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest-web.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest.md +0 -0
- /package/{.claude → .tas}/commands/tas-spec.md +0 -0
- /package/{.claude → .tas}/commands/tas-status.md +0 -0
- /package/{.claude → .tas}/rules/.gitkeep +0 -0
- /package/{.claude → .tas}/rules/common/hooks.md +0 -0
- /package/{.claude → .tas}/rules/common/patterns.md +0 -0
- /package/{.claude → .tas}/rules/common/security.md +0 -0
- /package/{.claude → .tas}/rules/csharp/hooks.md +0 -0
- /package/{.claude → .tas}/rules/csharp/patterns.md +0 -0
- /package/{.claude → .tas}/rules/csharp/testing.md +0 -0
- /package/{.claude → .tas}/rules/python/hooks.md +0 -0
- /package/{.claude → .tas}/rules/python/patterns.md +0 -0
- /package/{.claude → .tas}/rules/python/security.md +0 -0
- /package/{.claude → .tas}/rules/python/testing.md +0 -0
- /package/{.claude → .tas}/rules/typescript/hooks.md +0 -0
- /package/{.claude → .tas}/rules/web/design-quality.md +0 -0
- /package/{.claude → .tas}/rules/web/hooks.md +0 -0
- /package/{.claude → .tas}/rules/web/patterns.md +0 -0
- /package/{.claude → .tas}/rules/web/performance.md +0 -0
- /package/{.claude → .tas}/rules/web/security.md +0 -0
- /package/{.claude → .tas}/rules/web/testing.md +0 -0
- /package/{CLAUDE-Example.md → .tas/templates/AGENTS.md} +0 -0
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tas-implementation-complete
|
|
3
|
-
description: |
|
|
4
|
-
Auto-invoke when user signals implementation complete: "done", "xong", "finished",
|
|
5
|
-
"đã xong", "đã implement xong", "implementation complete", "code xong rồi",
|
|
6
|
-
"viết xong rồi", "đã code xong", "completed", "code done", "finished coding".
|
|
7
|
-
Trigger parallel post-implementation review gate.
|
|
8
|
-
allowed-tools: Read, Bash, Grep, Glob, Agent
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# TAS Implementation Complete
|
|
12
|
-
|
|
13
|
-
When user signals implementation complete, automatically trigger post-implementation review gate.
|
|
14
|
-
Don't wait for user to manually run `/tas-review-code`.
|
|
15
|
-
|
|
16
|
-
## When to Use
|
|
17
|
-
|
|
18
|
-
- User just finished implementing a Story or feature
|
|
19
|
-
- User says "xong", "done", "finished" after writing code
|
|
20
|
-
- DO NOT invoke when: user is asking about status, asking about plan, or no code changes yet
|
|
21
|
-
|
|
22
|
-
## Always / Ask / Never
|
|
23
|
-
|
|
24
|
-
| | Action |
|
|
25
|
-
|---|---|
|
|
26
|
-
| **Always** | Confirm scope with user before launching agents |
|
|
27
|
-
| **Always** | Launch code-reviewer + security-reviewer simultaneously |
|
|
28
|
-
| **Always** | Report gate result clearly: pass or block with reason |
|
|
29
|
-
| **Ask** | When unsure about review scope (file path? git diff? Story?) |
|
|
30
|
-
| **Ask** | When >5 files changed — confirm user wants full review |
|
|
31
|
-
| **Never** | Auto-commit after review passes |
|
|
32
|
-
| **Never** | Skip review and report "looks good" without running agents |
|
|
33
|
-
|
|
34
|
-
## Process
|
|
35
|
-
|
|
36
|
-
### Step 1 — Determine scope
|
|
37
|
-
Ask user or infer from context:
|
|
38
|
-
- Story ID available? → get file list from Story
|
|
39
|
-
- Not available? → use `git diff HEAD --name-only` to get recently changed files
|
|
40
|
-
|
|
41
|
-
### Step 2 — Stack Detection
|
|
42
|
-
Read `CLAUDE.md` at root, find `## Tech Stack` section:
|
|
43
|
-
- Backend contains `.NET` / `C#` → `lang_agent = csharp-reviewer`
|
|
44
|
-
- Backend contains `Node.js` / `TypeScript` → `lang_agent = typescript-reviewer`
|
|
45
|
-
- Backend contains `Python` / `FastAPI` / `Django` → `lang_agent = python-reviewer`
|
|
46
|
-
- Frontend contains `React` → add `typescript-reviewer`
|
|
47
|
-
|
|
48
|
-
### Step 3 — Launch Parallel Review Gate
|
|
49
|
-
|
|
50
|
-
Launch agents SIMULTANEOUSLY:
|
|
51
|
-
|
|
52
|
-
**Agent 1 — `code-reviewer`** (always run):
|
|
53
|
-
> Review [scope]. Read `.tas/checklists/code-review.md`.
|
|
54
|
-
> Focus: acceptance criteria compliance, naming, error handling, test coverage, DRY.
|
|
55
|
-
> Format: Critical / High / Medium / Low with file:line and specific fix.
|
|
56
|
-
|
|
57
|
-
**Agent 2 — `security-reviewer`** (always run):
|
|
58
|
-
> Security audit [scope]. Read `.claude/rules/common/security.md`.
|
|
59
|
-
> If stack identified, also read `.claude/rules/[stack]/security.md`.
|
|
60
|
-
> Focus: user input handling, SQL injection, hardcoded secrets, auth checks.
|
|
61
|
-
> Format: Critical / High / Medium / Low with file:line and remediation.
|
|
62
|
-
|
|
63
|
-
**Agent 3 — Language reviewer** (per stack detection):
|
|
64
|
-
> Language-specific review [scope].
|
|
65
|
-
> Read `.claude/rules/[stack]/coding-style.md`, `.claude/rules/[stack]/patterns.md`, `.claude/rules/[stack]/testing.md`.
|
|
66
|
-
> If stack has React: also read `.claude/rules/web/design-quality.md`, `.claude/rules/web/testing.md`, `.claude/rules/web/performance.md`.
|
|
67
|
-
> Format: Critical / High / Medium / Low with file:line.
|
|
68
|
-
|
|
69
|
-
Wait for ALL agents to complete.
|
|
70
|
-
|
|
71
|
-
### Step 4 — Gate Decision
|
|
72
|
-
|
|
73
|
-
**Has Critical/High findings:**
|
|
74
|
-
→ List each finding clearly, STOP, require fix before continuing.
|
|
75
|
-
→ Don't tick Definition of Done.
|
|
76
|
-
|
|
77
|
-
**Only Medium/Low:**
|
|
78
|
-
→ List suggestions, ask if user wants to fix.
|
|
79
|
-
→ After user confirms: remind to run `/tas-review-code` for full review (hygiene scan + test run).
|
|
80
|
-
|
|
81
|
-
## Red Flags
|
|
82
|
-
|
|
83
|
-
- User says "xong" but no files changed in git diff → ask again
|
|
84
|
-
- Review gate skipped because "code is simple" → no exceptions, always run gate
|
|
85
|
-
- Agent returns "No issues found" on large codebase → verify agent read correct files
|
|
86
|
-
|
|
87
|
-
## Verification
|
|
88
|
-
|
|
89
|
-
- [ ] `git diff HEAD --name-only` has at least 1 changed file
|
|
90
|
-
- [ ] All agents ran and returned results (no timeout)
|
|
91
|
-
- [ ] Gate decision made clearly: pass or block
|
|
92
|
-
- [ ] If pass: user knows next step is `/tas-review-code`
|
|
93
|
-
|
|
94
|
-
## Anti-Rationalization
|
|
95
|
-
|
|
96
|
-
| Rationalization | Counter |
|
|
97
|
-
|---|---|
|
|
98
|
-
| "Code is simple, no need to review" | Review gate always runs — this is safety net, not quality judgment |
|
|
99
|
-
| "Security reviewer will slow down workflow" | Parallel execution — 3 agents run simultaneously, no added time |
|
|
100
|
-
| "User didn't ask about review" | Skill auto-invokes when user says "done" — this is expected behavior |
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: token-logger
|
|
3
|
-
description: |
|
|
4
|
-
Invoke when TAS command completes to write AI Usage Log into artifact file.
|
|
5
|
-
Auto-invoke after /tas-* commands when there's Write/Edit to docs/.
|
|
6
|
-
DO NOT invoke when user manually edits file or uses non-TAS commands.
|
|
7
|
-
allowed-tools: Read, Edit, Write
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Token Logger
|
|
11
|
-
|
|
12
|
-
Write `## AI Usage Log` into artifact file after TAS command completes.
|
|
13
|
-
|
|
14
|
-
## Process
|
|
15
|
-
|
|
16
|
-
1. Identify artifact file: from invocation (if specified) or last `docs/` file Write/Edit in session.
|
|
17
|
-
2. Read `.claude/rules/common/token-logging.md` for format and update rules.
|
|
18
|
-
3. Read artifact file — check if `## AI Usage Log` already exists.
|
|
19
|
-
4. Write or update section. Silent on success — no output to conversation.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Code Review Checklist
|
|
2
|
-
|
|
3
|
-
## Architecture
|
|
4
|
-
- [ ] Code aligns with SAD
|
|
5
|
-
- [ ] No ADR violations
|
|
6
|
-
- [ ] Correct layer separation
|
|
7
|
-
|
|
8
|
-
## Code Quality
|
|
9
|
-
- [ ] Naming follows conventions in CLAUDE.md
|
|
10
|
-
- [ ] No magic numbers/strings
|
|
11
|
-
- [ ] Error handling complete
|
|
12
|
-
- [ ] Meaningful logging
|
|
13
|
-
- [ ] No code duplication
|
|
14
|
-
|
|
15
|
-
## Security
|
|
16
|
-
- [ ] Input validation
|
|
17
|
-
- [ ] No SQL injection risk
|
|
18
|
-
- [ ] No XSS risk
|
|
19
|
-
- [ ] Sensitive data not logged
|
|
20
|
-
|
|
21
|
-
## Testing
|
|
22
|
-
- [ ] Unit tests cover happy path
|
|
23
|
-
- [ ] Unit tests cover edge cases
|
|
24
|
-
- [ ] Tests have clear assertions
|
|
25
|
-
|
|
26
|
-
## Performance
|
|
27
|
-
- [ ] No N+1 queries
|
|
28
|
-
- [ ] Async/await used correctly
|
|
29
|
-
- [ ] Resources disposed properly
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Security Checklist - .NET Specific
|
|
2
|
-
|
|
3
|
-
## Authentication & Authorization
|
|
4
|
-
- [ ] JWT validation correct
|
|
5
|
-
- [ ] Role-based authorization
|
|
6
|
-
- [ ] Anti-forgery token for forms
|
|
7
|
-
|
|
8
|
-
## Data Protection
|
|
9
|
-
- [ ] Connection strings in secrets, not hardcoded
|
|
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
|
|
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
|
|
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
|