@torus-engineering/tas-kit 1.10.0 → 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 +70 -70
- 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/.tas/commands/ado-create.md +28 -0
- package/.tas/commands/ado-delete.md +22 -0
- package/.tas/commands/ado-get.md +20 -0
- package/.tas/commands/ado-status.md +18 -0
- package/.tas/commands/ado-update.md +27 -0
- package/.tas/commands/tas-adr.md +33 -0
- package/.tas/commands/tas-apitest-plan.md +173 -0
- package/.tas/commands/tas-apitest.md +143 -0
- package/.tas/commands/tas-brainstorm.md +19 -0
- package/.tas/commands/tas-bug.md +113 -0
- package/.tas/commands/tas-design.md +37 -0
- package/.tas/commands/tas-dev.md +125 -0
- package/{.claude → .tas}/commands/tas-e2e-mobile.md +155 -155
- package/{.claude → .tas}/commands/tas-e2e-web.md +163 -163
- package/.tas/commands/tas-e2e.md +102 -0
- package/.tas/commands/tas-epic.md +35 -0
- package/.tas/commands/tas-feature.md +47 -0
- package/.tas/commands/tas-fix.md +51 -0
- package/.tas/commands/tas-functest-mobile.md +144 -0
- package/{.claude → .tas}/commands/tas-functest-web.md +192 -192
- package/.tas/commands/tas-functest.md +76 -0
- package/.tas/commands/tas-init.md +17 -0
- package/.tas/commands/tas-plan.md +198 -0
- package/.tas/commands/tas-prd.md +37 -0
- package/.tas/commands/tas-review.md +113 -0
- package/.tas/commands/tas-sad.md +43 -0
- package/.tas/commands/tas-security.md +87 -0
- package/.tas/commands/tas-spec.md +50 -0
- package/.tas/commands/tas-status.md +16 -0
- package/.tas/commands/tas-story.md +91 -0
- package/.tas/platforms.json +5 -0
- package/.tas/project-status-example.yaml +17 -17
- package/.tas/rules/ado-integration.md +65 -0
- 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/.tas/rules/common/post-implementation-review.md +51 -0
- package/{.claude → .tas}/rules/common/project-status.md +80 -80
- package/.tas/rules/common/stack-detection.md +29 -0
- package/.tas/rules/common/story-done.md +30 -0
- package/.tas/rules/common/tdd.md +89 -0
- package/{.claude → .tas}/rules/common/testing.md +3 -8
- package/.tas/rules/common/token-logging.md +36 -0
- package/{.claude → .tas}/rules/csharp/api-testing.md +20 -20
- 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 +10 -11
- package/.tas/templates/ADR.md +47 -47
- package/.tas/templates/AGENTS.md +37 -0
- package/.tas/templates/API-Test-Spec.md +3 -3
- package/.tas/templates/Bug.md +67 -67
- package/.tas/templates/Design-Spec.md +36 -36
- package/.tas/templates/E2E-Execution-Report.md +1 -1
- package/.tas/templates/Epic.md +46 -46
- package/.tas/templates/Feature.md +10 -10
- package/.tas/templates/Func-Test-Spec.md +3 -3
- package/.tas/templates/SAD.md +106 -106
- package/.tas/templates/Security-Report.md +27 -27
- package/.tas/templates/Story.md +9 -9
- package/.tas/tools/tas-ado-readme.md +68 -68
- package/.tas/tools/tas-ado.py +621 -621
- package/README.md +78 -78
- 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/ado-create.md +0 -27
- package/.claude/commands/ado-delete.md +0 -21
- package/.claude/commands/ado-get.md +0 -20
- package/.claude/commands/ado-status.md +0 -18
- package/.claude/commands/ado-update.md +0 -26
- package/.claude/commands/tas-adr.md +0 -33
- package/.claude/commands/tas-apitest-plan.md +0 -173
- package/.claude/commands/tas-apitest.md +0 -143
- package/.claude/commands/tas-brainstorm.md +0 -19
- package/.claude/commands/tas-bug.md +0 -113
- package/.claude/commands/tas-design.md +0 -37
- package/.claude/commands/tas-dev.md +0 -128
- package/.claude/commands/tas-e2e.md +0 -102
- package/.claude/commands/tas-epic.md +0 -35
- package/.claude/commands/tas-feature.md +0 -47
- package/.claude/commands/tas-fix.md +0 -51
- package/.claude/commands/tas-functest-mobile.md +0 -144
- package/.claude/commands/tas-functest.md +0 -76
- package/.claude/commands/tas-init.md +0 -17
- package/.claude/commands/tas-plan.md +0 -200
- package/.claude/commands/tas-prd.md +0 -37
- package/.claude/commands/tas-review.md +0 -111
- package/.claude/commands/tas-sad.md +0 -43
- package/.claude/commands/tas-security.md +0 -87
- package/.claude/commands/tas-spec.md +0 -50
- package/.claude/commands/tas-status.md +0 -16
- package/.claude/commands/tas-story.md +0 -91
- package/.claude/commands/tas-verify.md +0 -51
- package/.claude/rules/common/post-review-agent.md +0 -49
- package/.claude/rules/common/stack-detection.md +0 -29
- package/.claude/rules/common/token-logging.md +0 -27
- 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/ado-integration/SKILL.md +0 -75
- 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 -99
- package/.claude/skills/tas-tdd/SKILL.md +0 -123
- 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/.tas/checklists/story-done.md +0 -23
- package/CLAUDE-Example.md +0 -61
- /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}/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
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
# TAS Kit Skill Specification: ado-integration
|
|
2
2
|
|
|
3
|
-
**Skill name**: ado-integration
|
|
4
|
-
**Version**: 0.2 (concept & spec date: March 17, 2026)
|
|
5
|
-
**Purpose**:
|
|
6
|
-
|
|
3
|
+
**Skill name**: ado-integration
|
|
4
|
+
**Version**: 0.2 (concept & spec date: March 17, 2026)
|
|
5
|
+
**Purpose**:
|
|
6
|
+
Allows AI agent in coding environment (Claude Code, Cursor, VS Code + terminal) to perform **CRUD** and two-way sync between Markdown (.md) files in repository and work items on Azure DevOps (Epic, Feature, User Story, Bug), including automatic hierarchy management (parent-child relations).
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
8
|
+
Main objectives:
|
|
9
|
+
- Transform AI into "team member" capable of self-managing backlog without leaving editor
|
|
10
|
+
- Ensure .md file is single source of truth (local ↔ ADO sync)
|
|
11
|
+
- Record sync timestamp so agent knows data freshness
|
|
12
12
|
|
|
13
|
-
## 1.
|
|
13
|
+
## 1. Environment Requirements & Dependencies
|
|
14
14
|
|
|
15
|
-
**
|
|
16
|
-
- Azure CLI
|
|
15
|
+
**Required**:
|
|
16
|
+
- Azure CLI installed + extension `azure-devops`
|
|
17
17
|
```bash
|
|
18
18
|
az extension add --name azure-devops --upgrade
|
|
19
19
|
```
|
|
20
20
|
- Python 3.8+
|
|
21
21
|
- Package: `pyyaml` (`pip install pyyaml`)
|
|
22
22
|
|
|
23
|
-
**
|
|
23
|
+
**Configuration** (file `tas.yaml` at repo root):
|
|
24
24
|
```yaml
|
|
25
25
|
ado:
|
|
26
26
|
organization: https://dev.azure.com/your-org-name
|
|
27
27
|
project: Your-Project-Name
|
|
28
|
-
# pat: PAT
|
|
29
|
-
#
|
|
28
|
+
# pat: PAT with scope Work Items (Full) + optional Read & manage wiki
|
|
29
|
+
# If no pat in file → use environment variable AZURE_DEVOPS_PAT
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
## 2.
|
|
32
|
+
## 2. Main Files to Create
|
|
33
33
|
|
|
34
|
-
- `tools/tas-ado.py` →
|
|
35
|
-
- `skills/ado-integration.md` →
|
|
34
|
+
- `tools/tas-ado.py` → Python script executing all commands
|
|
35
|
+
- `skills/ado-integration.md` → usage documentation (like this file)
|
|
36
36
|
|
|
37
|
-
## 3.
|
|
37
|
+
## 3. Supported CLI Commands
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
All commands run in form:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
python tools/tas-ado.py <command> [arguments]
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
### Create commands (
|
|
45
|
+
### Create commands (create new + auto rename file + optional parent)
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
create-epic <temp-id> [--parent-id <id>]
|
|
@@ -51,10 +51,10 @@ create-story <temp-id> [--parent-id <id>]
|
|
|
51
51
|
create-bug <temp-id> [--parent-id <id>]
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Example:
|
|
55
55
|
```bash
|
|
56
56
|
python tools/tas-ado.py create-story 789 --parent-id 456
|
|
57
|
-
# →
|
|
57
|
+
# → reads epic-789-*.md → creates User Story → renames to story-1234-*.md → adds parent relation to 456
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### Pull / Get commands
|
|
@@ -64,10 +64,10 @@ get <ado-id>
|
|
|
64
64
|
pull <ado-id> # alias
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Example:
|
|
68
68
|
```bash
|
|
69
69
|
python tools/tas-ado.py get 5345
|
|
70
|
-
# →
|
|
70
|
+
# → creates/recreates file epic-5345-slug-title.md with frontmatter + content
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
### Update commands
|
|
@@ -90,13 +90,13 @@ delete-story <ado-id>
|
|
|
90
90
|
delete-bug <ado-id>
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
## 4.
|
|
93
|
+
## 4. File .md Convention
|
|
94
94
|
|
|
95
|
-
-
|
|
95
|
+
- File name pattern: `{type}-{ado_id or temp_id}-{slug-title}.md`
|
|
96
96
|
- type: epic / feature / story / bug
|
|
97
|
-
- slug-title: lowercase,
|
|
97
|
+
- slug-title: lowercase, replace spaces with -, remove special characters
|
|
98
98
|
|
|
99
|
-
- Frontmatter YAML (
|
|
99
|
+
- Frontmatter YAML (always at file start):
|
|
100
100
|
|
|
101
101
|
```yaml
|
|
102
102
|
---
|
|
@@ -107,63 +107,63 @@ ado_state: Active
|
|
|
107
107
|
ado_assigned_to: Nguyen Van A <email@domain.com>
|
|
108
108
|
ado_created: 2026-03-10
|
|
109
109
|
last_ado_sync: 2026-03-17 15:42:08
|
|
110
|
-
# optional: parent_ado_id: 100 (
|
|
110
|
+
# optional: parent_ado_id: 100 (if want to support auto detect parent later)
|
|
111
111
|
---
|
|
112
|
-
#
|
|
112
|
+
# Title (must match ado_title)
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
Content description, acceptance criteria, steps to reproduce, etc.
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
**
|
|
118
|
-
-
|
|
117
|
+
**Important**:
|
|
118
|
+
- Every time **create / pull / update / update-status** succeeds → **update** (or add) `last_ado_sync` field with current time (format: YYYY-MM-DD HH:MM:SS)
|
|
119
119
|
|
|
120
|
-
## 5.
|
|
120
|
+
## 5. Detailed Logic Requirements
|
|
121
121
|
|
|
122
|
-
###
|
|
123
|
-
1.
|
|
124
|
-
2. Extract title (
|
|
125
|
-
3.
|
|
126
|
-
4.
|
|
127
|
-
5.
|
|
128
|
-
6.
|
|
129
|
-
7.
|
|
122
|
+
### When create:
|
|
123
|
+
1. Find file by pattern `{type}-{temp_id}-*.md`
|
|
124
|
+
2. Extract title (first # line), description (remaining content)
|
|
125
|
+
3. Create work item using `az boards work-item create`
|
|
126
|
+
4. Get new ID → rename file to `{type}-{new_id}-*.md`
|
|
127
|
+
5. If `--parent-id` → run `az boards work-item relation add --id <new_id> --relation-type parent --target-id <parent_id>`
|
|
128
|
+
6. Auto detect parent_id from frontmatter `parent_ado_id` or file name
|
|
129
|
+
7. Update `last_ado_sync` in frontmatter
|
|
130
130
|
|
|
131
|
-
###
|
|
132
|
-
1.
|
|
133
|
-
2. Convert description (HTML → Markdown
|
|
134
|
-
3.
|
|
135
|
-
4.
|
|
136
|
-
5.
|
|
131
|
+
### When pull/get:
|
|
132
|
+
1. Get work item using `az boards work-item show --id <id> --expand fields`
|
|
133
|
+
2. Convert description (HTML → basic Markdown)
|
|
134
|
+
3. Create file `{type}-{id}-{slug}.md`
|
|
135
|
+
4. Write frontmatter + content
|
|
136
|
+
5. Update `last_ado_sync`
|
|
137
137
|
|
|
138
|
-
###
|
|
139
|
-
1.
|
|
140
|
-
2.
|
|
141
|
-
3.
|
|
142
|
-
4.
|
|
138
|
+
### When update:
|
|
139
|
+
1. Find file by pattern `*-<id>-*.md`
|
|
140
|
+
2. Read title & description from file
|
|
141
|
+
3. Update using `az boards work-item update`
|
|
142
|
+
4. Update `last_ado_sync`
|
|
143
143
|
|
|
144
|
-
###
|
|
145
|
-
1.
|
|
146
|
-
2.
|
|
147
|
-
3.
|
|
144
|
+
### When update-status:
|
|
145
|
+
1. Find file by pattern
|
|
146
|
+
2. Only update state &/or assigned-to
|
|
147
|
+
3. Update `last_ado_sync` if file found
|
|
148
148
|
|
|
149
|
-
###
|
|
150
|
-
-
|
|
149
|
+
### When delete:
|
|
150
|
+
- Only delete on ADO, don't touch local files
|
|
151
151
|
|
|
152
|
-
## 6.
|
|
152
|
+
## 6. Extension Suggestions (not required for v0.2)
|
|
153
153
|
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
154
|
+
- Support additional fields: priority, effort, labels, acceptance criteria
|
|
155
|
+
- Auto git add/commit/push after sync
|
|
156
|
+
- Better HTML → Markdown conversion (table, code block, list)
|
|
157
157
|
|
|
158
|
-
## 7.
|
|
158
|
+
## 7. How to Use in Agent Prompt
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
Example prompt template for AI agent:
|
|
161
161
|
|
|
162
162
|
```
|
|
163
163
|
/ado-create-feature 042 --parent-id 100
|
|
164
|
-
/ado-create-story 789 --parent-id <feature-id
|
|
165
|
-
/ado-get 1234 #
|
|
164
|
+
/ado-create-story 789 --parent-id <feature-id just created>
|
|
165
|
+
/ado-get 1234 # fetch new bug to fix
|
|
166
166
|
/ado-update-bug 1234 --status Resolved
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
This skill is designed to integrate smoothly into agentic frameworks like TAS Kit, Superpowers, BMAD.
|