@torus-engineering/tas-kit 1.7.0 → 1.8.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/.claude/commands/tas-adr.md +33 -29
- package/.claude/commands/tas-api-test.md +95 -0
- package/.claude/commands/tas-bug.md +113 -109
- package/.claude/commands/tas-design.md +37 -33
- package/.claude/commands/tas-dev.md +128 -115
- package/.claude/commands/tas-e2e-mobile.md +155 -0
- package/.claude/commands/tas-e2e-web.md +163 -0
- package/.claude/commands/tas-e2e.md +102 -0
- package/.claude/commands/tas-epic.md +35 -31
- package/.claude/commands/tas-feature.md +47 -43
- package/.claude/commands/tas-fix.md +51 -47
- package/.claude/commands/tas-functest-mobile.md +144 -0
- package/.claude/commands/tas-functest-web.md +192 -0
- package/.claude/commands/tas-functest.md +76 -0
- package/.claude/commands/tas-plan.md +200 -184
- package/.claude/commands/tas-prd.md +37 -33
- package/.claude/commands/tas-review.md +111 -104
- package/.claude/commands/tas-sad.md +43 -39
- package/.claude/commands/tas-security.md +81 -80
- package/.claude/commands/tas-story.md +91 -87
- package/.claude/commands/tas-verify.md +51 -41
- package/.claude/rules/common/post-review-agent.md +49 -39
- package/.claude/rules/common/testing.md +24 -0
- package/.claude/rules/common/token-logging.md +27 -0
- package/.claude/rules/csharp/api-testing.md +171 -0
- package/.claude/rules/csharp/patterns.md +10 -0
- package/.claude/rules/python/patterns.md +10 -0
- package/.claude/rules/typescript/patterns.md +10 -0
- package/.claude/rules/web/performance.md +9 -0
- package/.claude/skills/api-design/SKILL.md +3 -1
- package/.claude/skills/{backend-patterns → js-backend-patterns}/SKILL.md +2 -1
- package/.claude/skills/tas-implementation-complete/SKILL.md +99 -97
- package/.claude/skills/tas-tdd/SKILL.md +123 -82
- package/.claude/skills/token-logger/SKILL.md +19 -0
- package/.tas/templates/E2E-Execution-Report.md +198 -0
- package/.tas/templates/E2E-Mobile-Spec.md +130 -0
- package/.tas/templates/E2E-Report.md +174 -0
- package/.tas/templates/E2E-Scenario.md +180 -0
- package/.tas/templates/E2E-Web-Spec.md +164 -0
- package/.tas/templates/Feature.md +55 -55
- package/.tas/templates/Func-Test-Script.md +254 -0
- package/.tas/templates/Func-Test-Spec.md +187 -0
- package/.tas/templates/SAD.md +274 -274
- package/.tas/templates/Story.md +90 -88
- package/bin/cli.js +56 -56
- package/lib/deleted-files.json +33 -0
- package/lib/install.js +213 -176
- package/package.json +34 -34
- package/.claude/agents/README.md +0 -83
- package/.claude/agents/ado-agent.md +0 -39
- package/.claude/agents/code-architect.md +0 -62
- package/.claude/agents/code-simplifier.md +0 -53
- package/.claude/agents/comment-analyzer.md +0 -59
- package/.claude/agents/conversation-analyzer.md +0 -57
- package/.claude/agents/docs-lookup.md +0 -55
- package/.claude/agents/harness-optimizer.md +0 -62
- package/.claude/agents/loop-operator.md +0 -56
- package/.claude/agents/performance-optimizer.md +0 -78
- package/.claude/agents/pr-test-analyzer.md +0 -68
- package/.claude/agents/pytorch-build-resolver.md +0 -76
- package/.claude/agents/refactor-cleaner.md +0 -70
- package/.claude/agents/seo-specialist.md +0 -75
- package/.claude/agents/silent-failure-hunter.md +0 -69
- package/.claude/agents/type-design-analyzer.md +0 -75
- package/.claude/rules/common/agents.md +0 -65
- package/.claude/rules/common/coding-style.md +0 -90
- package/.claude/rules/common/development-workflow.md +0 -44
- package/.claude/rules/common/git-workflow.md +0 -24
- package/.claude/rules/common/performance.md +0 -55
- package/.claude/skills/agent-harness-construction/SKILL.md +0 -77
- package/.claude/skills/agent-introspection-debugging/SKILL.md +0 -157
package/.tas/templates/Story.md
CHANGED
|
@@ -1,88 +1,90 @@
|
|
|
1
|
-
---
|
|
2
|
-
ado_id:
|
|
3
|
-
ado_type: User Story
|
|
4
|
-
ado_title: "{Title}"
|
|
5
|
-
ado_state: New
|
|
6
|
-
ado_assigned_to:
|
|
7
|
-
ado_created:
|
|
8
|
-
last_ado_sync:
|
|
9
|
-
parent_ado_id:
|
|
10
|
-
plan_status: pending
|
|
11
|
-
plan_date:
|
|
12
|
-
---
|
|
13
|
-
# Story-{NNN}: {Title}
|
|
14
|
-
|
|
15
|
-
> **Status:** New | Committed | In Progress | Deploy Test | Verify Test | Deploy Stag | Verify Stag | Deploy Prod | Verify Prod | Done
|
|
16
|
-
> **Feature:** Feature-{NNN}
|
|
17
|
-
> **Assigned to:** {SE name}
|
|
18
|
-
> **Estimate:** {S/M/L}
|
|
19
|
-
> **Created:** {Date}
|
|
20
|
-
|
|
21
|
-
## User Story
|
|
22
|
-
As a {role}, I want {goal}, so that {benefit}.
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
## Business Requirements (nếu có)
|
|
26
|
-
*(Yêu cầu nghiệp vụ đặc biệt, business rules, constraints từ stakeholders — chỉ thêm khi cần)*
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
## Design Notes (nếu có)
|
|
30
|
-
*(UI/UX specs, mockup links, design decisions, flow diagrams — chỉ thêm khi cần)*
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
## Prerequisites (nếu có)
|
|
34
|
-
*(Dependencies từ Stories khác hoặc điều kiện phải có trước — chỉ thêm khi cần)*
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
## Acceptance Criteria
|
|
38
|
-
|
|
39
|
-
### AC-1: {title}
|
|
40
|
-
- **Given** {precondition}
|
|
41
|
-
- **When** {action}
|
|
42
|
-
- **Then** {expected result}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- [ ]
|
|
81
|
-
- [ ] Code
|
|
82
|
-
- [ ]
|
|
83
|
-
- [ ]
|
|
84
|
-
- [ ]
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
1
|
+
---
|
|
2
|
+
ado_id:
|
|
3
|
+
ado_type: User Story
|
|
4
|
+
ado_title: "{Title}"
|
|
5
|
+
ado_state: New
|
|
6
|
+
ado_assigned_to:
|
|
7
|
+
ado_created:
|
|
8
|
+
last_ado_sync:
|
|
9
|
+
parent_ado_id:
|
|
10
|
+
plan_status: pending
|
|
11
|
+
plan_date:
|
|
12
|
+
---
|
|
13
|
+
# Story-{NNN}: {Title}
|
|
14
|
+
|
|
15
|
+
> **Status:** New | Committed | In Progress | Deploy Test | Verify Test | Deploy Stag | Verify Stag | Deploy Prod | Verify Prod | Done
|
|
16
|
+
> **Feature:** Feature-{NNN}
|
|
17
|
+
> **Assigned to:** {SE name}
|
|
18
|
+
> **Estimate:** {S/M/L}
|
|
19
|
+
> **Created:** {Date}
|
|
20
|
+
|
|
21
|
+
## User Story
|
|
22
|
+
As a {role}, I want {goal}, so that {benefit}.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
## Business Requirements (nếu có)
|
|
26
|
+
*(Yêu cầu nghiệp vụ đặc biệt, business rules, constraints từ stakeholders — chỉ thêm khi cần)*
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
## Design Notes (nếu có)
|
|
30
|
+
*(UI/UX specs, mockup links, design decisions, flow diagrams — chỉ thêm khi cần)*
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
## Prerequisites (nếu có)
|
|
34
|
+
*(Dependencies từ Stories khác hoặc điều kiện phải có trước — chỉ thêm khi cần)*
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
## Acceptance Criteria
|
|
38
|
+
|
|
39
|
+
### AC-1: {title}
|
|
40
|
+
- **Given** {precondition}
|
|
41
|
+
- **When** {action}
|
|
42
|
+
- **Then** {expected result}
|
|
43
|
+
- **Functional Tests**: *(điền FT IDs sau khi chạy `/tas-functest` — vd: `{PROJECT}_E{EPIC}_F{FEATURE}_S{STORY}_FT_001_H`, `FT_002_N`)*
|
|
44
|
+
|
|
45
|
+
### AC-2: {title}
|
|
46
|
+
- **Given** {precondition}
|
|
47
|
+
- **When** {action}
|
|
48
|
+
- **Then** {expected result}
|
|
49
|
+
- **Functional Tests**: *(điền FT IDs sau khi chạy `/tas-functest`)*
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
## Unit Test Cases
|
|
53
|
+
*(PE thiết kế happy path + edge cases + negative cases. SE implement trong code.)*
|
|
54
|
+
|
|
55
|
+
### Happy Path
|
|
56
|
+
| ID | AC Ref | Description | Input | Expected Output |
|
|
57
|
+
|----|--------|-------------|-------|-----------------|
|
|
58
|
+
| UT-1 | AC-1 | {description} | {input} | {expected} |
|
|
59
|
+
|
|
60
|
+
### Edge Cases
|
|
61
|
+
| ID | AC Ref | Description | Input | Expected Output |
|
|
62
|
+
|----|--------|-------------|-------|-----------------|
|
|
63
|
+
| UT-E1 | AC-1 | {description} | {input} | {expected} |
|
|
64
|
+
|
|
65
|
+
### Negative Cases
|
|
66
|
+
| ID | AC Ref | Description | Input | Expected Output |
|
|
67
|
+
|----|--------|-------------|-------|-----------------|
|
|
68
|
+
| UT-N1 | AC-1 | {description} | {input} | {expected} |
|
|
69
|
+
|
|
70
|
+
### Dependencies to Mock
|
|
71
|
+
- {external API, database state, third-party service...}
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
<!-- ═══════════════════════════════════════════════════════════════════
|
|
75
|
+
TECHNICAL PLAN — generated by /tas-plan, do not edit manually
|
|
76
|
+
═══════════════════════════════════════════════════════════════════ -->
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
## Definition of Done
|
|
80
|
+
- [ ] Technical plan completed (`/tas-plan`)
|
|
81
|
+
- [ ] Code implemented
|
|
82
|
+
- [ ] Unit tests pass
|
|
83
|
+
- [ ] Code review passed
|
|
84
|
+
- [ ] Acceptance criteria verified
|
|
85
|
+
- [ ] No regression
|
|
86
|
+
- [ ] Documentation updated (if needed)
|
|
87
|
+
|
|
88
|
+
## Changelog
|
|
89
|
+
| Date | Changes | Author |
|
|
90
|
+
|------|---------|--------|
|
package/bin/cli.js
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { install, update } from '../lib/install.js';
|
|
3
|
-
|
|
4
|
-
const args = process.argv.slice(2);
|
|
5
|
-
const command = args[0];
|
|
6
|
-
|
|
7
|
-
function printHelp() {
|
|
8
|
-
console.log(`
|
|
9
|
-
tas-kit — Torus Agentic SDLC Kit installer
|
|
10
|
-
|
|
11
|
-
Usage:
|
|
12
|
-
npx @torus-engineering/tas-kit <command> [options]
|
|
13
|
-
|
|
14
|
-
Commands:
|
|
15
|
-
install Copy TAS Kit files into a project (first-time setup)
|
|
16
|
-
update Overwrite .claude/ and .tas/ with the latest kit version
|
|
17
|
-
(preserves CLAUDE.md, tas.yaml, .env.example)
|
|
18
|
-
|
|
19
|
-
Options:
|
|
20
|
-
--directory <path> Target directory (default: current working directory)
|
|
21
|
-
--yes, -y Skip confirmation prompts
|
|
22
|
-
--help, -h Show this help message
|
|
23
|
-
|
|
24
|
-
Examples:
|
|
25
|
-
npx @torus-engineering/tas-kit install
|
|
26
|
-
npx @torus-engineering/tas-kit install --directory /path/to/my-project
|
|
27
|
-
npx @torus-engineering/tas-kit update
|
|
28
|
-
npx @torus-engineering/tas-kit update --yes
|
|
29
|
-
`.trim());
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (!command || command === '--help' || command === '-h') {
|
|
33
|
-
printHelp();
|
|
34
|
-
process.exit(0);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (command !== 'install' && command !== 'update') {
|
|
38
|
-
console.error(`Unknown command: "${command}"\n`);
|
|
39
|
-
printHelp();
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const opts = { directory: process.cwd(), yes: false };
|
|
44
|
-
for (let i = 1; i < args.length; i++) {
|
|
45
|
-
if ((args[i] === '--directory' || args[i] === '-d') && args[i + 1]) {
|
|
46
|
-
opts.directory = args[++i];
|
|
47
|
-
} else if (args[i] === '--yes' || args[i] === '-y') {
|
|
48
|
-
opts.yes = true;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const runner = command === 'update' ? update : install;
|
|
53
|
-
runner(opts).catch((err) => {
|
|
54
|
-
console.error(`\n${command === 'update' ? 'Update' : 'Install'} failed:`, err.message);
|
|
55
|
-
process.exit(1);
|
|
56
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { install, update } from '../lib/install.js';
|
|
3
|
+
|
|
4
|
+
const args = process.argv.slice(2);
|
|
5
|
+
const command = args[0];
|
|
6
|
+
|
|
7
|
+
function printHelp() {
|
|
8
|
+
console.log(`
|
|
9
|
+
tas-kit — Torus Agentic SDLC Kit installer
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
npx @torus-engineering/tas-kit <command> [options]
|
|
13
|
+
|
|
14
|
+
Commands:
|
|
15
|
+
install Copy TAS Kit files into a project (first-time setup)
|
|
16
|
+
update Overwrite .claude/ and .tas/ with the latest kit version
|
|
17
|
+
(preserves CLAUDE.md, tas.yaml, .env.example)
|
|
18
|
+
|
|
19
|
+
Options:
|
|
20
|
+
--directory <path> Target directory (default: current working directory)
|
|
21
|
+
--yes, -y Skip confirmation prompts
|
|
22
|
+
--help, -h Show this help message
|
|
23
|
+
|
|
24
|
+
Examples:
|
|
25
|
+
npx @torus-engineering/tas-kit install
|
|
26
|
+
npx @torus-engineering/tas-kit install --directory /path/to/my-project
|
|
27
|
+
npx @torus-engineering/tas-kit update
|
|
28
|
+
npx @torus-engineering/tas-kit update --yes
|
|
29
|
+
`.trim());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (!command || command === '--help' || command === '-h') {
|
|
33
|
+
printHelp();
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (command !== 'install' && command !== 'update') {
|
|
38
|
+
console.error(`Unknown command: "${command}"\n`);
|
|
39
|
+
printHelp();
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const opts = { directory: process.cwd(), yes: false };
|
|
44
|
+
for (let i = 1; i < args.length; i++) {
|
|
45
|
+
if ((args[i] === '--directory' || args[i] === '-d') && args[i + 1]) {
|
|
46
|
+
opts.directory = args[++i];
|
|
47
|
+
} else if (args[i] === '--yes' || args[i] === '-y') {
|
|
48
|
+
opts.yes = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const runner = command === 'update' ? update : install;
|
|
53
|
+
runner(opts).catch((err) => {
|
|
54
|
+
console.error(`\n${command === 'update' ? 'Update' : 'Install'} failed:`, err.message);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"1.6.0": [
|
|
3
|
+
".claude/commands/tas-dev-story.md",
|
|
4
|
+
".claude/commands/tas-review-code.md",
|
|
5
|
+
".claude/commands/tas-security-check.md"
|
|
6
|
+
],
|
|
7
|
+
"1.8.0": [
|
|
8
|
+
".claude/agents/README.md",
|
|
9
|
+
".claude/agents/ado-agent.md",
|
|
10
|
+
".claude/agents/code-architect.md",
|
|
11
|
+
".claude/agents/code-simplifier.md",
|
|
12
|
+
".claude/agents/comment-analyzer.md",
|
|
13
|
+
".claude/agents/conversation-analyzer.md",
|
|
14
|
+
".claude/agents/docs-lookup.md",
|
|
15
|
+
".claude/agents/harness-optimizer.md",
|
|
16
|
+
".claude/agents/loop-operator.md",
|
|
17
|
+
".claude/agents/performance-optimizer.md",
|
|
18
|
+
".claude/agents/pr-test-analyzer.md",
|
|
19
|
+
".claude/agents/pytorch-build-resolver.md",
|
|
20
|
+
".claude/agents/refactor-cleaner.md",
|
|
21
|
+
".claude/agents/seo-specialist.md",
|
|
22
|
+
".claude/agents/silent-failure-hunter.md",
|
|
23
|
+
".claude/agents/type-design-analyzer.md",
|
|
24
|
+
".claude/rules/common/agents.md",
|
|
25
|
+
".claude/rules/common/coding-style.md",
|
|
26
|
+
".claude/rules/common/development-workflow.md",
|
|
27
|
+
".claude/rules/common/git-workflow.md",
|
|
28
|
+
".claude/rules/common/performance.md",
|
|
29
|
+
".claude/skills/agent-harness-construction/SKILL.md",
|
|
30
|
+
".claude/skills/agent-introspection-debugging/SKILL.md",
|
|
31
|
+
".claude/skills/backend-patterns/SKILL.md"
|
|
32
|
+
]
|
|
33
|
+
}
|