@torus-engineering/tas-kit 1.5.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 (50) hide show
  1. package/.claude/agents/ado-agent.md +39 -0
  2. package/.claude/agents/code-reviewer.md +41 -0
  3. package/.claude/commands/ado-create.md +26 -0
  4. package/.claude/commands/ado-delete.md +20 -0
  5. package/.claude/commands/ado-get.md +19 -0
  6. package/.claude/commands/ado-status.md +17 -0
  7. package/.claude/commands/ado-update.md +25 -0
  8. package/.claude/commands/tas-adr.md +28 -0
  9. package/.claude/commands/tas-brainstorm.md +19 -0
  10. package/.claude/commands/tas-bug.md +62 -0
  11. package/.claude/commands/tas-design.md +31 -0
  12. package/.claude/commands/tas-dev-story.md +61 -0
  13. package/.claude/commands/tas-epic.md +29 -0
  14. package/.claude/commands/tas-feature.md +41 -0
  15. package/.claude/commands/tas-init.md +17 -0
  16. package/.claude/commands/tas-prd.md +31 -0
  17. package/.claude/commands/tas-review-code.md +42 -0
  18. package/.claude/commands/tas-sad.md +37 -0
  19. package/.claude/commands/tas-security-check.md +30 -0
  20. package/.claude/commands/tas-status.md +16 -0
  21. package/.claude/commands/tas-story.md +50 -0
  22. package/.claude/commands/tas-verify.md +33 -0
  23. package/.claude/settings.json +21 -0
  24. package/.claude/skills/ado-integration/SKILL.md +32 -0
  25. package/.claude/skills/tas-conventions/SKILL.md +17 -0
  26. package/.claude/skills/tas-tdd/SKILL.md +26 -0
  27. package/.env.example +1 -0
  28. package/.tas/README.md +1583 -0
  29. package/.tas/checklists/code-review.md +29 -0
  30. package/.tas/checklists/security.md +21 -0
  31. package/.tas/checklists/story-done.md +23 -0
  32. package/.tas/project-status-example.yaml +17 -0
  33. package/.tas/tas-example.yaml +108 -0
  34. package/.tas/templates/ADR.md +47 -0
  35. package/.tas/templates/Bug.md +67 -0
  36. package/.tas/templates/Design-Spec.md +36 -0
  37. package/.tas/templates/Epic.md +46 -0
  38. package/.tas/templates/Feature.md +55 -0
  39. package/.tas/templates/PRD.md +142 -0
  40. package/.tas/templates/Performance-Report.md +30 -0
  41. package/.tas/templates/SAD.md +64 -0
  42. package/.tas/templates/Security-Report.md +27 -0
  43. package/.tas/templates/Story.md +88 -0
  44. package/.tas/tools/tas-ado-readme.md +169 -0
  45. package/.tas/tools/tas-ado.py +621 -0
  46. package/CLAUDE-Example.md +58 -0
  47. package/README.md +67 -0
  48. package/bin/cli.js +49 -0
  49. package/lib/install.js +114 -0
  50. package/package.json +34 -0
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # TAS Kit
2
+
3
+ **Torus Agentic SDLC Kit** — Claude Code commands, skills and templates for modern AI-assisted SDLC.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ npx tas-kit install
9
+ ```
10
+
11
+ ## Options
12
+
13
+ ```bash
14
+ npx tas-kit install --directory /path/to/my-project
15
+ npx tas-kit install --yes # skip confirmation prompts
16
+ ```
17
+
18
+ ## What gets installed
19
+
20
+ ```
21
+ .claude/
22
+ commands/ 20 slash commands (/tas-*, /ado-*)
23
+ skills/ 3 auto-invoked skills
24
+ agents/ 2 specialized subagents
25
+ .tas/
26
+ templates/ Markdown templates (PRD, SAD, ADR, Epic, Feature, Story...)
27
+ checklists/ Code review, story done, security checklists
28
+ tools/ ADO integration script (tas-ado.py)
29
+ CLAUDE.md Project context template (edit this for your project)
30
+ tas.yaml Flow configuration template (edit this for your project)
31
+ .env.example Environment variable template
32
+ ```
33
+
34
+ ## After install
35
+
36
+ 1. Edit `CLAUDE.md` — add your project's tech stack and conventions
37
+ 2. Edit `tas.yaml` — set project name, team and ADO config
38
+ 3. Create `.env` — add `AZURE_DEVOPS_PAT` (see `.env.example`)
39
+ 4. Open Claude Code — run `/tas-init` to initialize your project
40
+
41
+ ## Commands
42
+
43
+ | Command | Description |
44
+ |---------|-------------|
45
+ | `/tas-init` | Initialize TAS for a new project |
46
+ | `/tas-status` | Show current project state |
47
+ | `/tas-prd` | Create/update Product Requirements Document |
48
+ | `/tas-sad` | Create/update Solution Architecture Document |
49
+ | `/tas-epic` | Create/update Epic |
50
+ | `/tas-feature` | Create/update Feature |
51
+ | `/tas-story` | Create/update Story |
52
+ | `/tas-dev-story` | Implement a story (agentic) |
53
+ | `/tas-review-code` | Code review with checklist |
54
+ | `/tas-brainstorm` | Brainstorm solutions |
55
+ | `/tas-bug` | Create bug report |
56
+ | `/tas-security-check` | Security review |
57
+ | `/tas-verify` | Verify feature on staging |
58
+ | `/ado-*` | Azure DevOps integration |
59
+
60
+ ## Requirements
61
+
62
+ - Node.js 18+
63
+ - [Claude Code](https://claude.ai/code)
64
+
65
+ ## Documentation
66
+
67
+ See `.tas/README.md` after install for full kit documentation.
package/bin/cli.js ADDED
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ import { install } 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 tas-kit install [options]
13
+
14
+ Options:
15
+ --directory <path> Target directory (default: current working directory)
16
+ --yes, -y Skip confirmation prompts
17
+ --help, -h Show this help message
18
+
19
+ Examples:
20
+ npx tas-kit install
21
+ npx tas-kit install --directory /path/to/my-project
22
+ npx tas-kit install --yes
23
+ `.trim());
24
+ }
25
+
26
+ if (!command || command === '--help' || command === '-h') {
27
+ printHelp();
28
+ process.exit(0);
29
+ }
30
+
31
+ if (command !== 'install') {
32
+ console.error(`Unknown command: "${command}"\n`);
33
+ printHelp();
34
+ process.exit(1);
35
+ }
36
+
37
+ const opts = { directory: process.cwd(), yes: false };
38
+ for (let i = 1; i < args.length; i++) {
39
+ if ((args[i] === '--directory' || args[i] === '-d') && args[i + 1]) {
40
+ opts.directory = args[++i];
41
+ } else if (args[i] === '--yes' || args[i] === '-y') {
42
+ opts.yes = true;
43
+ }
44
+ }
45
+
46
+ install(opts).catch((err) => {
47
+ console.error('\nInstall failed:', err.message);
48
+ process.exit(1);
49
+ });
package/lib/install.js ADDED
@@ -0,0 +1,114 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import readline from 'node:readline';
4
+ import { fileURLToPath } from 'node:url';
5
+
6
+ const PACKAGE_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
7
+
8
+ async function confirm(question) {
9
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
10
+ return new Promise((resolve) => {
11
+ rl.question(`${question} [y/N] `, (answer) => {
12
+ rl.close();
13
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
14
+ });
15
+ });
16
+ }
17
+
18
+ async function exists(p) {
19
+ return fs.access(p).then(() => true).catch(() => false);
20
+ }
21
+
22
+ async function copyDir(src, dest) {
23
+ await fs.cp(src, dest, { recursive: true });
24
+ }
25
+
26
+ export async function install({ directory, yes }) {
27
+ const target = path.resolve(directory);
28
+
29
+ // Ensure target directory exists
30
+ await fs.mkdir(target, { recursive: true });
31
+
32
+ console.log(`\nInstalling TAS Kit into: ${target}\n`);
33
+
34
+ // Warn if .claude/ or .tas/ already exist
35
+ const claudeExists = await exists(path.join(target, '.claude'));
36
+ const tasExists = await exists(path.join(target, '.tas'));
37
+
38
+ if ((claudeExists || tasExists) && !yes) {
39
+ const existing = [claudeExists && '.claude/', tasExists && '.tas/'].filter(Boolean).join(', ');
40
+ console.warn(` WARNING: ${existing} already exist in target directory.`);
41
+ console.warn(` Existing files with the same names will be overwritten.\n`);
42
+ const ok = await confirm('Continue?');
43
+ if (!ok) {
44
+ console.log('Installation cancelled.');
45
+ process.exit(0);
46
+ }
47
+ console.log();
48
+ }
49
+
50
+ // Copy .claude/
51
+ await copyDir(
52
+ path.join(PACKAGE_DIR, '.claude'),
53
+ path.join(target, '.claude')
54
+ );
55
+ console.log(' [ok] .claude/');
56
+
57
+ // Copy .tas/
58
+ await copyDir(
59
+ path.join(PACKAGE_DIR, '.tas'),
60
+ path.join(target, '.tas')
61
+ );
62
+ console.log(' [ok] .tas/');
63
+
64
+ // Copy CLAUDE-Example.md as CLAUDE.md (only if absent)
65
+ const claudeMdTarget = path.join(target, 'CLAUDE.md');
66
+ if (!(await exists(claudeMdTarget))) {
67
+ await fs.copyFile(
68
+ path.join(PACKAGE_DIR, 'CLAUDE-Example.md'),
69
+ claudeMdTarget
70
+ );
71
+ console.log(' [ok] CLAUDE.md (from CLAUDE-Example.md)');
72
+ } else {
73
+ console.log(' [--] CLAUDE.md already exists, skipped');
74
+ }
75
+
76
+ // Copy .env.example
77
+ await fs.copyFile(
78
+ path.join(PACKAGE_DIR, '.env.example'),
79
+ path.join(target, '.env.example')
80
+ );
81
+ console.log(' [ok] .env.example');
82
+
83
+ // Copy tas-example.yaml as tas.yaml (only if absent)
84
+ const tasYamlTarget = path.join(target, 'tas.yaml');
85
+ if (!(await exists(tasYamlTarget))) {
86
+ await fs.copyFile(
87
+ path.join(PACKAGE_DIR, '.tas', 'tas-example.yaml'),
88
+ tasYamlTarget
89
+ );
90
+ console.log(' [ok] tas.yaml (from .tas/tas-example.yaml)');
91
+ } else {
92
+ console.log(' [--] tas.yaml already exists, skipped');
93
+ }
94
+
95
+ // Set executable bit on tas-ado.py (Unix/macOS)
96
+ if (process.platform !== 'win32') {
97
+ const adoPy = path.join(target, '.tas', 'tools', 'tas-ado.py');
98
+ if (await exists(adoPy)) {
99
+ await fs.chmod(adoPy, 0o755);
100
+ }
101
+ }
102
+
103
+ console.log(`
104
+ TAS Kit installed successfully!
105
+
106
+ Next steps:
107
+ 1. Edit CLAUDE.md — add your project's tech stack and conventions
108
+ 2. Edit tas.yaml — set project name, team and ADO config
109
+ 3. Create .env — add AZURE_DEVOPS_PAT (see .env.example)
110
+ 4. Open Claude Code — run /tas-init to initialize your project
111
+
112
+ Docs: .tas/README.md
113
+ `);
114
+ }
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@torus-engineering/tas-kit",
3
+ "version": "1.5.0",
4
+ "description": "Torus Agentic SDLC Kit — Claude Code commands, skills and workflows for modern AI-assisted SDLC",
5
+ "type": "module",
6
+ "bin": {
7
+ "tas-kit": "bin/cli.js"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "lib/",
12
+ ".claude/",
13
+ ".tas/",
14
+ "CLAUDE-Example.md",
15
+ ".env.example"
16
+ ],
17
+ "engines": {
18
+ "node": ">=18.0.0"
19
+ },
20
+ "keywords": [
21
+ "claude-code",
22
+ "sdlc",
23
+ "ai",
24
+ "torus",
25
+ "tas",
26
+ "agentic"
27
+ ],
28
+ "author": "Torus BelleSoft",
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/torus-bellesoft/agentic-sdlc-kit.git"
33
+ }
34
+ }