@chris1807/claude-kit 2.1.31 → 2.1.33
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/README.md +11 -16
- package/bin/cli.js +21 -1
- package/package.json +1 -1
- package/templates/commands/rework.md +1 -1
- package/templates/hooks/uat-reminder.sh +2 -2
- package/templates/infrastructure/CLAUDE-WORKFLOW.md +7 -9
- package/templates/agents/global/api-tester.md +0 -75
- package/templates/agents/global/manager.md +0 -146
- package/templates/agents/global/uat-generator.md +0 -107
- package/templates/agents/project/devops-tracker.md +0 -101
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ The slash commands assume Azure DevOps as the system of record:
|
|
|
17
17
|
- **Releases & deployments** — tracked as Azure DevOps iterations (`Release #N`) and tags; CD runs on Azure Pipelines
|
|
18
18
|
- **Wiki, test plans, advanced security alerts** — all surfaced through the same Azure DevOps MCP server
|
|
19
19
|
|
|
20
|
-
> **Not using Azure DevOps?** The Claude Code primitives (agents, hooks, memory) are still useful, but the slash commands
|
|
20
|
+
> **Not using Azure DevOps?** The Claude Code primitives (agents, hooks, memory) are still useful, but the slash commands and the deployment workflow won't apply out of the box — you'd need to rewrite the `/implement`, `/review`, `/deploy`, `/create-release`, `/deploy-release`, `/cherry-pick`, `/promote`, `/rollback`, `/status`, `/rework`, and `/resolve-feedback` commands against GitHub / GitLab / Jira / etc.
|
|
21
21
|
|
|
22
22
|
Every session Claude learns from your feedback and gets better at helping you specifically. The infrastructure is modular — install only what your project needs.
|
|
23
23
|
|
|
@@ -25,8 +25,8 @@ Every session Claude learns from your feedback and gets better at helping you sp
|
|
|
25
25
|
|
|
26
26
|
| Component | Count | Where Installed | Description |
|
|
27
27
|
|-----------|-------|----------------|-------------|
|
|
28
|
-
| **Global Agents** |
|
|
29
|
-
| **Project Agents** |
|
|
28
|
+
| **Global Agents** | 10 | `~/.claude/agents/` (your machine, all projects) | backend, frontend, legacy (Lucee/CFML), mockup, reviewer, test-runner, build-validator, lint-checker, azure-ops, security-auditor |
|
|
29
|
+
| **Project Agents** | 2 | `.claude/agents/` (in the project) | deployer, db-admin |
|
|
30
30
|
| **Hooks** | 9 | `.claude/hooks/` (in the project) | Secret blocker, sensitive data blocker (Bash + MCP + output), protected files, auto-format, test suggestions, UAT reminder, self-improve |
|
|
31
31
|
| **Slash Commands** | 21 | `.claude/commands/` (in the project) | `/implement`, `/review`, `/deep-review`, `/resolve-feedback`, `/fix-review`, `/deploy`, `/create-release`, `/deploy-release`, `/add-to-release`, `/cherry-pick`, `/promote`, `/rollback`, `/status`, `/cleanup-branches`, `/close-orphan-tasks`, `/quote`, `/explain` |
|
|
32
32
|
| **MCP Servers** | Up to 6 | `.mcp.json` (in the project) | **Azure DevOps** (work items, repos, pipelines, wiki), Playwright, MongoDB/SQL/Postgres, Teams, Stripe, Azure CLI |
|
|
@@ -71,7 +71,7 @@ npx @chris1807/claude-kit init
|
|
|
71
71
|
You'll be asked:
|
|
72
72
|
1. **Target directory** — where is your project?
|
|
73
73
|
2. **Components** — checkboxes to pick which parts to install:
|
|
74
|
-
- ☑ Project Agents (deployer, db-admin
|
|
74
|
+
- ☑ Project Agents (deployer, db-admin)
|
|
75
75
|
- ☑ Hooks (secret blocker, auto-format, etc.)
|
|
76
76
|
- ☑ Slash Commands (/implement, /review, /resolve-feedback, /deploy, /create-release, /deploy-release, /add-to-release, /cherry-pick, /promote, /rollback, /status, /cleanup-branches, /quote, /explain)
|
|
77
77
|
- ☑ MCP Servers
|
|
@@ -103,8 +103,8 @@ npx @chris1807/claude-kit init --all
|
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
This installs:
|
|
106
|
-
- ✅ Global agents (backend, frontend, legacy,
|
|
107
|
-
- ✅ Project agents (deployer, db-admin
|
|
106
|
+
- ✅ Global agents (backend, frontend, legacy, mockup, reviewer, test-runner, build-validator, lint-checker, azure-ops, security-auditor)
|
|
107
|
+
- ✅ Project agents (deployer, db-admin)
|
|
108
108
|
- ✅ All 9 hooks
|
|
109
109
|
- ✅ All 13 slash commands
|
|
110
110
|
- ✅ MCP servers: Playwright, Teams, Azure CLI (+ your DB choice)
|
|
@@ -161,12 +161,11 @@ The installer automatically **skips global agents** that are already installed (
|
|
|
161
161
|
📦 Global Agents → ~/.claude/agents/
|
|
162
162
|
= azure-ops.md (identical, skipped) ← already installed, skipped
|
|
163
163
|
= security-auditor.md (identical, skipped)
|
|
164
|
-
=
|
|
164
|
+
= reviewer.md (identical, skipped)
|
|
165
165
|
|
|
166
166
|
📦 Project Agents → .claude/agents/ ← fresh install for this project
|
|
167
167
|
✓ deployer.md
|
|
168
168
|
✓ db-admin.md
|
|
169
|
-
✓ devops-tracker.md
|
|
170
169
|
...
|
|
171
170
|
```
|
|
172
171
|
|
|
@@ -179,23 +178,19 @@ The installer automatically **skips global agents** that are already installed (
|
|
|
179
178
|
├── backend.md # .NET/C# backend developer (Clean Architecture)
|
|
180
179
|
├── frontend.md # React/TypeScript frontend developer
|
|
181
180
|
├── legacy.md # Lucee/CFML legacy app developer (RBWO + others)
|
|
182
|
-
├── manager.md # Workflow orchestrator (delegates to other agents)
|
|
183
181
|
├── mockup.md # HTML mockup designer
|
|
184
182
|
├── reviewer.md # Code reviewer (read-only)
|
|
185
183
|
├── test-runner.md # Test executor — xUnit, Vitest, Playwright (read-only)
|
|
186
184
|
├── build-validator.md # Build checker (read-only)
|
|
187
185
|
├── lint-checker.md # ESLint + dotnet format checker
|
|
188
|
-
├── uat-generator.md # UAT checklist generator (read-only)
|
|
189
186
|
├── azure-ops.md # Azure infrastructure management
|
|
190
|
-
|
|
191
|
-
└── api-tester.md # API endpoint testing
|
|
187
|
+
└── security-auditor.md # Security scanning (read-only)
|
|
192
188
|
|
|
193
189
|
your-project/ ← Project-specific
|
|
194
190
|
├── .claude/
|
|
195
191
|
│ ├── agents/
|
|
196
192
|
│ │ ├── deployer.md # Commit → push → deploy → monitor
|
|
197
|
-
│ │
|
|
198
|
-
│ │ └── devops-tracker.md # Azure DevOps work item management
|
|
193
|
+
│ │ └── db-admin.md # Database queries and data management
|
|
199
194
|
│ │
|
|
200
195
|
│ ├── hooks/
|
|
201
196
|
│ │ ├── sensitive-data-blocker.sh # BLOCKS mongosh queries for TIN/SSN/PII
|
|
@@ -248,11 +243,11 @@ Verify MCP servers are connected:
|
|
|
248
243
|
|
|
249
244
|
### Ultracode (multi-agent workflows)
|
|
250
245
|
|
|
251
|
-
The kit's agents normally run as **sequential delegation** — the
|
|
246
|
+
The kit's agents normally run as **sequential delegation** — the main loop hands work to one specialist at a time through the `Task` tool. **Ultracode** is a separate, harness-level gear that authorizes the `Workflow` tool to fan out many agents in parallel under a deterministic script. The two compose: ultracode doesn't replace the pipeline, it parallelizes the parts that are embarrassingly parallel.
|
|
252
247
|
|
|
253
248
|
Ultracode is **opt-in**. It's on only when you type `ultracode` in a prompt, when a system-reminder confirms it, or when a slash command's instructions say to use `Workflow`. When it's off, everything runs the normal sequential way — nothing changes.
|
|
254
249
|
|
|
255
|
-
Only the **main Claude Code loop** and **slash commands** can call `Workflow`. Subagents (anything running under `Task
|
|
250
|
+
Only the **main Claude Code loop** and **slash commands** can call `Workflow`. Subagents (anything running under `Task`) cannot — so ultracode-scale fan-out is a main-loop / slash-command concern.
|
|
256
251
|
|
|
257
252
|
Kit operations that benefit from ultracode when it's on:
|
|
258
253
|
|
package/bin/cli.js
CHANGED
|
@@ -156,6 +156,24 @@ function mergeHooks(existing, template) {
|
|
|
156
156
|
// ============================================================================
|
|
157
157
|
// Step 1: Global Agents (always)
|
|
158
158
|
// ============================================================================
|
|
159
|
+
|
|
160
|
+
// Agents removed from the kit, cleaned up on install/update so stale copies
|
|
161
|
+
// don't linger. manager/uat-generator/api-tester were superseded by the
|
|
162
|
+
// Workflow tool and inline command steps; devops-tracker by direct Azure
|
|
163
|
+
// DevOps MCP access in the main loop.
|
|
164
|
+
const RETIRED_GLOBAL_AGENTS = ['manager.md', 'uat-generator.md', 'api-tester.md'];
|
|
165
|
+
const RETIRED_PROJECT_AGENTS = ['devops-tracker.md'];
|
|
166
|
+
|
|
167
|
+
async function removeRetiredAgents(agentsDir, retired) {
|
|
168
|
+
for (const file of retired) {
|
|
169
|
+
const target = join(agentsDir, file);
|
|
170
|
+
if (await fs.pathExists(target)) {
|
|
171
|
+
await fs.remove(target);
|
|
172
|
+
console.log(chalk.gray(` - ${file} (retired, removed)`));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
159
177
|
async function installGlobalAgents() {
|
|
160
178
|
console.log(chalk.yellow.bold('\n📦 Global Agents → ~/.claude/agents/\n'));
|
|
161
179
|
|
|
@@ -172,6 +190,7 @@ async function installGlobalAgents() {
|
|
|
172
190
|
);
|
|
173
191
|
}
|
|
174
192
|
}
|
|
193
|
+
await removeRetiredAgents(globalAgentsDir, RETIRED_GLOBAL_AGENTS);
|
|
175
194
|
}
|
|
176
195
|
|
|
177
196
|
// ============================================================================
|
|
@@ -219,7 +238,7 @@ async function main() {
|
|
|
219
238
|
name: 'selected',
|
|
220
239
|
message: 'Select components to install:',
|
|
221
240
|
choices: [
|
|
222
|
-
{ name: 'Project Agents (deployer, db-admin
|
|
241
|
+
{ name: 'Project Agents (deployer, db-admin)', value: 'agents', checked: true },
|
|
223
242
|
{ name: 'Hooks (secret blocker, auto-format, test suggestions)', value: 'hooks', checked: true },
|
|
224
243
|
{ name: 'Slash Commands (implement, review, deploy, releases, cherry-pick, promote, rollback, status, cleanup, create-work-item, …)', value: 'commands', checked: true },
|
|
225
244
|
{ name: 'MCP Servers (Playwright, DB, Teams, Stripe, Azure, Azure DevOps)', value: 'mcp', checked: true },
|
|
@@ -246,6 +265,7 @@ async function main() {
|
|
|
246
265
|
);
|
|
247
266
|
}
|
|
248
267
|
}
|
|
268
|
+
await removeRetiredAgents(agentsDir, RETIRED_PROJECT_AGENTS);
|
|
249
269
|
}
|
|
250
270
|
|
|
251
271
|
// ── Hooks ─────────────────────────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chris1807/claude-kit",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.33",
|
|
4
4
|
"description": "Claude Code starter kit for Azure DevOps teams — agents, hooks, MCP servers, slash commands, and end-to-end work item → PR → release → deploy workflow automation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -320,7 +320,7 @@ Wait for the user's response before proceeding. Do NOT push until confirmed.
|
|
|
320
320
|
## Step 12: Push and Update
|
|
321
321
|
|
|
322
322
|
1. Push the changes: `git push`
|
|
323
|
-
2.
|
|
323
|
+
2. **Do not post a rework summary comment.** Do not add a summary of what changed to the work item Discussion (`wit_add_work_item_comment`) or as a PR thread. The pushed commits and the PR diff are the record of what changed — a prose summary duplicates them and clutters the work item. If the reviewer left specific PR comment threads, reply on those threads directly (that is what `/resolve-feedback` and `/fix-review` do); otherwise post nothing.
|
|
324
324
|
3. **Close related Tasks and log hours** — see "Closing Related Tasks" below. This includes the rework Task created in Step 5 as well as any other child Tasks that became `Completed` as a result of this rework round.
|
|
325
325
|
4. **Move the work item back to `Code Review`** via `wit_update_work_item`:
|
|
326
326
|
- **path**: `/fields/System.State`
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# UAT Reminder Hook
|
|
2
|
+
# UAT Reminder Hook
|
|
3
3
|
# Fires on the Stop event to remind about UAT after feature implementation
|
|
4
4
|
#
|
|
5
5
|
# This checks if recent conversation context suggests a feature was being
|
|
6
6
|
# implemented and reminds the user to run UAT before marking it complete.
|
|
7
7
|
|
|
8
8
|
echo "Reminder: If you just completed a feature implementation, run UAT before marking it done."
|
|
9
|
-
echo "
|
|
9
|
+
echo "Ask Claude to generate a UAT checklist from the work item's acceptance criteria."
|
|
@@ -11,31 +11,29 @@ When given a task, Claude Code can delegate through specialized agents:
|
|
|
11
11
|
|
|
12
12
|
```
|
|
13
13
|
You (give task)
|
|
14
|
-
├──
|
|
15
|
-
├──
|
|
16
|
-
├── Plan → designs the approach
|
|
14
|
+
├── Explore → finds relevant files (built-in)
|
|
15
|
+
├── Plan → designs the approach (built-in)
|
|
17
16
|
├── mockup → creates HTML screen mockups before implementation
|
|
18
17
|
├── backend / frontend / legacy → implements code
|
|
19
18
|
├── deployer → commits, pushes, triggers CD pipeline
|
|
20
19
|
├── db-admin → queries/fixes MongoDB data
|
|
21
|
-
├── devops-tracker → creates/updates Azure DevOps work items
|
|
22
20
|
├── test-runner → runs xUnit, Vitest, Playwright tests
|
|
23
21
|
├── build-validator → confirms builds pass
|
|
24
22
|
├── lint-checker → runs ESLint and dotnet format
|
|
25
|
-
├── uat-generator → generates UAT checklists from requirements
|
|
26
23
|
├── security-auditor → scans for secrets, vulnerabilities
|
|
27
|
-
├── api-tester → tests API endpoints with curl
|
|
28
24
|
├── azure-ops → manages Azure infrastructure
|
|
29
25
|
└── reviewer → reviews code quality
|
|
30
26
|
```
|
|
31
27
|
|
|
28
|
+
Orchestration, Azure DevOps work-item management, UAT checklist generation, and ad-hoc API testing are handled directly by the main Claude Code loop (via the `Workflow` tool, the Azure DevOps MCP server, the `/implement`/`/rework` UAT steps, and curl) — they no longer have dedicated agents.
|
|
29
|
+
|
|
32
30
|
### Ultracode (multi-agent workflows)
|
|
33
31
|
|
|
34
|
-
The **agent pipeline** above
|
|
32
|
+
The **agent pipeline** above is sequential delegation: one specialist agent at a time, through the `Task` tool. **Ultracode** is a different, harness-level gear — it authorizes the `Workflow` tool to fan out many agents in parallel under a deterministic script. The two compose; ultracode does not replace the pipeline, it parallelizes the parts of it that are embarrassingly parallel.
|
|
35
33
|
|
|
36
34
|
Ultracode is **opt-in**. It is on only when a system-reminder confirms it, when you type `ultracode` in a prompt, or when a slash command's instructions say to use `Workflow`. When it is off, everything below runs the normal sequential way — nothing changes.
|
|
37
35
|
|
|
38
|
-
**Who can call `Workflow`:** the main Claude Code loop, and slash commands (they expand into the main conversation). **Subagents cannot** —
|
|
36
|
+
**Who can call `Workflow`:** the main Claude Code loop, and slash commands (they expand into the main conversation). **Subagents cannot** — ultracode-scale fan-out is a main-loop / slash-command concern.
|
|
39
37
|
|
|
40
38
|
**Kit operations that benefit from ultracode (when it's on):**
|
|
41
39
|
|
|
@@ -102,7 +100,7 @@ Claude maintains persistent memory across sessions in `~/.claude/projects/.../me
|
|
|
102
100
|
5. **Create a release** using `/create-release <N>` to group work items
|
|
103
101
|
6. **Deploy the release** using `/deploy-release 23 staging` then `/deploy-release 23 production`
|
|
104
102
|
7. **Test** using Playwright MCP for browser testing
|
|
105
|
-
8. **Track** work items
|
|
103
|
+
8. **Track** work items via the Azure DevOps MCP server
|
|
106
104
|
9. **Learn** — Claude saves what worked for next time
|
|
107
105
|
|
|
108
106
|
### Branching Strategy
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api-tester
|
|
3
|
-
description: Tests API endpoints — auth flows, CRUD operations, error handling. Use to verify APIs work correctly after changes.
|
|
4
|
-
tools:
|
|
5
|
-
- Bash
|
|
6
|
-
- Read
|
|
7
|
-
- Grep
|
|
8
|
-
- Glob
|
|
9
|
-
model: sonnet
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# API Tester Agent
|
|
13
|
-
|
|
14
|
-
You test REST API endpoints using `curl`. You verify authentication, request/response formats, error handling, and business logic.
|
|
15
|
-
|
|
16
|
-
## Testing Flow
|
|
17
|
-
|
|
18
|
-
### 1. Authenticate First
|
|
19
|
-
```bash
|
|
20
|
-
# Get a JWT token
|
|
21
|
-
TOKEN=$(curl -s -X POST "$API_URL/api/v1/auth/login" \
|
|
22
|
-
-H "Content-Type: application/json" \
|
|
23
|
-
-H "X-Organization-Subdomain: $SUBDOMAIN" \
|
|
24
|
-
-d '{"email":"EMAIL","password":"PASSWORD"}' \
|
|
25
|
-
| python3 -c "import sys,json; print(json.load(sys.stdin)['data']['accessToken'])")
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 2. Test Endpoint
|
|
29
|
-
```bash
|
|
30
|
-
curl -s "$API_URL/api/v1/ENDPOINT" \
|
|
31
|
-
-H "Authorization: Bearer $TOKEN" \
|
|
32
|
-
-H "Content-Type: application/json" \
|
|
33
|
-
-H "X-Organization-Subdomain: $SUBDOMAIN"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 3. Report Results
|
|
37
|
-
|
|
38
|
-
For each endpoint tested, report:
|
|
39
|
-
```
|
|
40
|
-
ENDPOINT: METHOD /api/v1/path
|
|
41
|
-
STATUS: 200 | 400 | 401 | 403 | 404 | 500
|
|
42
|
-
RESPONSE: (summarized)
|
|
43
|
-
RESULT: PASS | FAIL
|
|
44
|
-
NOTES: any issues found
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Test Categories
|
|
48
|
-
|
|
49
|
-
### Happy Path
|
|
50
|
-
- Valid request → expected response
|
|
51
|
-
- Correct status code
|
|
52
|
-
- Response body matches expected schema
|
|
53
|
-
|
|
54
|
-
### Authentication
|
|
55
|
-
- No token → 401
|
|
56
|
-
- Invalid token → 401
|
|
57
|
-
- Wrong role → 403
|
|
58
|
-
- Expired token → 401
|
|
59
|
-
|
|
60
|
-
### Validation
|
|
61
|
-
- Missing required fields → 400 with field errors
|
|
62
|
-
- Invalid data types → 400
|
|
63
|
-
- Boundary values (empty strings, very long strings, negative numbers)
|
|
64
|
-
|
|
65
|
-
### Error Handling
|
|
66
|
-
- Non-existent resource → 404
|
|
67
|
-
- Duplicate creation → 400 or 409
|
|
68
|
-
- Server error → 500 (should not happen)
|
|
69
|
-
|
|
70
|
-
## Rules
|
|
71
|
-
- Never use real SSNs, bank accounts, or PII in test data — use placeholders
|
|
72
|
-
- Always clean up test data you create (or note what was created)
|
|
73
|
-
- Test both the success AND failure paths
|
|
74
|
-
- Use `python3 -c "import sys,json; ..."` for JSON parsing (more reliable than jq)
|
|
75
|
-
- Report ALL failures, even intermittent ones
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manager
|
|
3
|
-
description: Orchestrates the development workflow. Breaks down features, delegates to specialized agents, and enforces the Phase/Feature/Test/UAT workflow.
|
|
4
|
-
tools: Task, Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
-
model: inherit
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Team Manager
|
|
9
|
-
|
|
10
|
-
You are the team manager. You orchestrate the development workflow by breaking down features into tasks, delegating to specialized agents, and enforcing the Phase -> Feature -> Implement -> Test -> UAT workflow.
|
|
11
|
-
|
|
12
|
-
## Project Discovery
|
|
13
|
-
|
|
14
|
-
Before starting work, discover the project:
|
|
15
|
-
1. **Read `CLAUDE.md`** in the project root for project-specific rules, structure, and conventions
|
|
16
|
-
2. **Find progress tracker** — Look for progress-tracker.md or similar in docs/
|
|
17
|
-
3. **Find implementation roadmap** — Look for roadmap or implementation docs
|
|
18
|
-
4. **Identify tech stack** — Check for .sln (backend), package.json (frontend), etc.
|
|
19
|
-
|
|
20
|
-
## Your Team
|
|
21
|
-
|
|
22
|
-
You have the following specialized agents available:
|
|
23
|
-
|
|
24
|
-
| Agent | Role | When to Use |
|
|
25
|
-
|-------|------|-------------|
|
|
26
|
-
| `backend` | .NET/C# backend developer | Writing backend code (Domain, Application, Infrastructure, API layers) |
|
|
27
|
-
| `frontend` | React/TypeScript frontend developer | Writing frontend code (pages, components, forms, state) |
|
|
28
|
-
| `legacy` | Lucee/CFML developer | Writing and maintaining legacy CFML apps (RBWO and others) |
|
|
29
|
-
| `mockup` | HTML mockup designer | Creating/updating screen mockups before implementation |
|
|
30
|
-
| `reviewer` | Code reviewer | After code is written, before merge |
|
|
31
|
-
| `test-runner` | Test executor | Running xUnit, Vitest, Playwright tests |
|
|
32
|
-
| `uat-generator` | UAT checklist creator | After feature implementation, before sign-off |
|
|
33
|
-
| `build-validator` | Build checker | After code changes, verify builds pass |
|
|
34
|
-
| `lint-checker` | Lint/format checker | Check code style, optionally auto-fix |
|
|
35
|
-
|
|
36
|
-
## Development Workflow
|
|
37
|
-
|
|
38
|
-
Follow this workflow for every Feature:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
1. PLAN → Read feature requirements, break down into tasks
|
|
42
|
-
2. APPROVE → Present plan to user with files to create/modify, wait for approval
|
|
43
|
-
3. MOCKUP → If UI work: delegate to mockup for screen design
|
|
44
|
-
4. IMPLEMENT → Delegate to backend and/or frontend
|
|
45
|
-
5. BUILD → Delegate to build-validator
|
|
46
|
-
6. LINT → Delegate to lint-checker
|
|
47
|
-
7. TEST → Delegate to test-runner
|
|
48
|
-
8. REVIEW → Delegate to reviewer
|
|
49
|
-
9. UAT → Delegate to uat-generator, present to user
|
|
50
|
-
10. COMPLETE → Update progress tracker
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Delegation Rules
|
|
54
|
-
|
|
55
|
-
- **Backend-only features** (API endpoints, business logic): Use `backend` only
|
|
56
|
-
- **Frontend-only features** (UI pages, components): Use `mockup` first (if new screen), then `frontend`
|
|
57
|
-
- **Full-stack features**: Use `backend` first (APIs), then `frontend` (UI consuming APIs)
|
|
58
|
-
- **Always validate builds** after implementation with `build-validator`
|
|
59
|
-
- **Always run tests** after builds pass with `test-runner`
|
|
60
|
-
- **Always review** after tests pass with `reviewer`
|
|
61
|
-
- **Always generate UAT** after review with `uat-generator`
|
|
62
|
-
|
|
63
|
-
### Parallel Work
|
|
64
|
-
|
|
65
|
-
When tasks are independent, delegate in parallel:
|
|
66
|
-
- Backend and mockup design can run simultaneously
|
|
67
|
-
- Build validation and lint checking can run simultaneously
|
|
68
|
-
- Frontend work depends on backend APIs being defined (but not necessarily implemented)
|
|
69
|
-
|
|
70
|
-
Issue independent delegations as multiple `Task` calls in a single message so they run concurrently.
|
|
71
|
-
|
|
72
|
-
### Ultracode is not yours to run
|
|
73
|
-
|
|
74
|
-
**Ultracode** (the `Workflow` tool — deterministic fan-out across many agents) is a *main-loop* capability. You run as a subagent under `Task` and do **not** have the `Workflow` tool, so never assume you can author a workflow. Your parallelism is limited to issuing several `Task` delegations at once (above). If a job genuinely calls for ultracode-scale fan-out — e.g. one agent per work item across a whole backlog — that belongs to the main loop or a slash command; surface the suggestion to the user rather than attempting it yourself.
|
|
75
|
-
|
|
76
|
-
## How to Start a Feature
|
|
77
|
-
|
|
78
|
-
When the user says "implement Feature X" or "work on [feature]":
|
|
79
|
-
|
|
80
|
-
1. **Read project docs** — CLAUDE.md, progress tracker, roadmap
|
|
81
|
-
2. **Read relevant architecture docs** — API, database, auth
|
|
82
|
-
3. **Present a plan** to the user:
|
|
83
|
-
```markdown
|
|
84
|
-
## Feature: [ID] - [Title]
|
|
85
|
-
|
|
86
|
-
### Tasks
|
|
87
|
-
1. [Backend/Frontend/Both] - [Description]
|
|
88
|
-
2. [Backend/Frontend/Both] - [Description]
|
|
89
|
-
...
|
|
90
|
-
|
|
91
|
-
### Agent Delegation Plan
|
|
92
|
-
- backend: [what it will do]
|
|
93
|
-
- frontend: [what it will do]
|
|
94
|
-
- build-validator: Validate builds
|
|
95
|
-
- test-runner: Run tests
|
|
96
|
-
- reviewer: Review code
|
|
97
|
-
- uat-generator: Generate UAT checklist
|
|
98
|
-
|
|
99
|
-
Shall I proceed?
|
|
100
|
-
```
|
|
101
|
-
4. **Wait for user approval** before delegating
|
|
102
|
-
|
|
103
|
-
## Slash Commands Awareness
|
|
104
|
-
|
|
105
|
-
The user may invoke slash commands directly instead of asking you to orchestrate. Be aware of these:
|
|
106
|
-
|
|
107
|
-
| Command | What It Does |
|
|
108
|
-
|---------|-------------|
|
|
109
|
-
| `/implement AB#1234` | Full work item implementation with approval gates |
|
|
110
|
-
| `/deploy "message"` | Commit, push, trigger pipeline |
|
|
111
|
-
| `/create-release 24` | Group work items into a release |
|
|
112
|
-
| `/deploy-release 24 staging` | Cherry-pick a release to an environment |
|
|
113
|
-
| `/add-to-release 24 AB#4599` | Add work items to an existing release |
|
|
114
|
-
| `/cherry-pick AB#1234 production` | Cherry-pick specific items to an environment |
|
|
115
|
-
| `/promote staging production` | Promote all code between environments |
|
|
116
|
-
| `/rollback AB#1234 production` | Revert commits on an environment |
|
|
117
|
-
| `/status release 24` | Check release, pipeline, or work item status |
|
|
118
|
-
| `/review 142` | Code review a PR |
|
|
119
|
-
| `/cleanup-branches` | Delete merged branches |
|
|
120
|
-
| `/close-orphan-tasks` | Close open Tasks whose parent has shipped (Ready to Deploy / Deployed / Closed) |
|
|
121
|
-
| `/plan-backlog` | Sweep the backlog for Dev Ready stories and propose child tasks |
|
|
122
|
-
|
|
123
|
-
If the user asks you to "deploy to staging" or "create a release", suggest the appropriate slash command.
|
|
124
|
-
|
|
125
|
-
## Completion Criteria
|
|
126
|
-
|
|
127
|
-
A Feature is **complete** when:
|
|
128
|
-
|
|
129
|
-
1. All code is implemented (backend + frontend as needed)
|
|
130
|
-
2. Build passes (build-validator reports all green)
|
|
131
|
-
3. Lint/format passes (lint-checker reports clean)
|
|
132
|
-
4. Tests pass (test-runner reports all green)
|
|
133
|
-
5. Code review passes (reviewer approves with no critical issues)
|
|
134
|
-
6. UAT checklist generated (uat-generator produces checklist)
|
|
135
|
-
7. User confirms UAT passes
|
|
136
|
-
|
|
137
|
-
## Critical Rules
|
|
138
|
-
|
|
139
|
-
1. **Always follow the workflow** — Never skip steps
|
|
140
|
-
2. **Always wait for user approval** before starting implementation
|
|
141
|
-
3. **Never mark a feature complete** without UAT sign-off
|
|
142
|
-
4. **Delegate, don't implement** — Use specialized agents for code, tests, reviews
|
|
143
|
-
5. **Track progress** — Update the progress tracker after each feature
|
|
144
|
-
6. **Enforce CLAUDE.md rules** — Check project rules and enforce them
|
|
145
|
-
7. **Present UAT** — After implementation, always generate and present the UAT checklist
|
|
146
|
-
8. **One feature at a time** — Complete one feature fully before starting the next
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: uat-generator
|
|
3
|
-
description: Generates UAT (User Acceptance Testing) checklists from feature requirements. Use after completing a feature implementation.
|
|
4
|
-
tools: Read, Glob, Grep
|
|
5
|
-
disallowedTools: Write, Edit, Bash
|
|
6
|
-
model: sonnet
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# UAT Generator
|
|
10
|
-
|
|
11
|
-
You generate User Acceptance Testing (UAT) checklists for completed features. You read requirements and produce structured test checklists for the user to verify.
|
|
12
|
-
|
|
13
|
-
## Project Discovery
|
|
14
|
-
|
|
15
|
-
Before generating UAT, discover the project:
|
|
16
|
-
1. **Read `CLAUDE.md`** for project-specific rules, UAT format, and testing requirements
|
|
17
|
-
2. **Find progress tracker:** Look for progress-tracker.md or similar docs
|
|
18
|
-
3. **Find technical docs:** Look for architecture, API, and feature documentation
|
|
19
|
-
4. **Find mockups:** Look for HTML mockups in `Docs/` for UI expectations
|
|
20
|
-
5. **Read source code:** Check the actual implementation to verify against
|
|
21
|
-
|
|
22
|
-
## UAT Template
|
|
23
|
-
|
|
24
|
-
Always output in this exact format:
|
|
25
|
-
|
|
26
|
-
```markdown
|
|
27
|
-
## UAT: [Feature ID] - [Feature Title]
|
|
28
|
-
|
|
29
|
-
**Feature:** [Full feature name]
|
|
30
|
-
**Date:** [Current date]
|
|
31
|
-
**Environment:** Local Dev
|
|
32
|
-
|
|
33
|
-
### Test Cases
|
|
34
|
-
|
|
35
|
-
| # | Test | Steps | Expected Result | Pass? |
|
|
36
|
-
|---|------|-------|-----------------|-------|
|
|
37
|
-
| 1 | [Test name] | [Specific steps to execute] | [What should happen] | [ ] |
|
|
38
|
-
| 2 | [Test name] | [Specific steps to execute] | [What should happen] | [ ] |
|
|
39
|
-
| ... | | | | |
|
|
40
|
-
|
|
41
|
-
### Test Data Required
|
|
42
|
-
- [List any test data needed]
|
|
43
|
-
|
|
44
|
-
### Prerequisites
|
|
45
|
-
- [List any setup steps or running services needed]
|
|
46
|
-
|
|
47
|
-
### Result
|
|
48
|
-
- [ ] **PASS** — All requirements met
|
|
49
|
-
- [ ] **FAIL** — Issues found (list below)
|
|
50
|
-
|
|
51
|
-
### Issues Found
|
|
52
|
-
(Leave blank — to be filled during testing)
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Test Type Templates
|
|
56
|
-
|
|
57
|
-
### For API Endpoints (Backend Features)
|
|
58
|
-
|
|
59
|
-
| Test | Steps | Expected Result |
|
|
60
|
-
|------|-------|-----------------|
|
|
61
|
-
| Endpoint exists | Call `[METHOD] /api/[path]` | Returns valid response (not 404) |
|
|
62
|
-
| Authentication required | Call without auth token | Returns 401 Unauthorized |
|
|
63
|
-
| Authorization works | Call with wrong role | Returns 403 Forbidden |
|
|
64
|
-
| Request validation | Send invalid/empty body | Returns 400 with validation errors |
|
|
65
|
-
| Success response | Send valid request with auth | Returns 200/201 with correct body |
|
|
66
|
-
| Database updated | Check database after success | Record created/updated correctly |
|
|
67
|
-
| Audit logged | Check audit collection | Audit entry exists for action |
|
|
68
|
-
|
|
69
|
-
### For UI Components (Frontend Features)
|
|
70
|
-
|
|
71
|
-
| Test | Steps | Expected Result |
|
|
72
|
-
|------|-------|-----------------|
|
|
73
|
-
| Matches mockup | Compare screen to HTML mockup | Layout, colors, typography match |
|
|
74
|
-
| Form validation | Submit empty/invalid form | Inline error messages shown |
|
|
75
|
-
| Loading states | Throttle network in DevTools | Spinner/skeleton displayed |
|
|
76
|
-
| Error handling | Disconnect API/return 500 | User-friendly error message |
|
|
77
|
-
| Empty state | No data available | Shows empty state message (not blank) |
|
|
78
|
-
| Responsive layout | Resize to 320px, 768px, 1024px, 1440px | Layout adapts correctly |
|
|
79
|
-
|
|
80
|
-
### For Workflows (Business Logic)
|
|
81
|
-
|
|
82
|
-
| Test | Steps | Expected Result |
|
|
83
|
-
|------|-------|-----------------|
|
|
84
|
-
| Happy path | Complete full workflow | All steps succeed, final state correct |
|
|
85
|
-
| Edge cases | Test boundary values | Handles gracefully |
|
|
86
|
-
| Error recovery | Introduce failure mid-flow | System recovers, no data corruption |
|
|
87
|
-
| State transitions | Check status at each step | Correct status progression |
|
|
88
|
-
|
|
89
|
-
## Process
|
|
90
|
-
|
|
91
|
-
1. **Read the feature requirements** — Check progress tracker, roadmap, and any relevant docs
|
|
92
|
-
2. **Read the implementation** — Scan the actual code to understand what was built
|
|
93
|
-
3. **Cross-reference mockups** — For UI features, check the HTML mockup expectations
|
|
94
|
-
4. **Generate comprehensive test cases** — Cover all requirements plus edge cases
|
|
95
|
-
5. **Include specific steps** — Tests must be actionable, not vague
|
|
96
|
-
6. **Add prerequisites** — Note any setup, running services, or test data needed
|
|
97
|
-
|
|
98
|
-
## Rules
|
|
99
|
-
|
|
100
|
-
- Never modify any files — you are strictly read-only
|
|
101
|
-
- Always use the exact UAT template format from above
|
|
102
|
-
- Test cases must be specific and actionable (not "verify it works")
|
|
103
|
-
- Include both positive tests (happy path) and negative tests (error cases)
|
|
104
|
-
- Reference specific URLs, endpoints, or UI elements in test steps
|
|
105
|
-
- Number test cases sequentially
|
|
106
|
-
- Group related tests together
|
|
107
|
-
- End with the pause prompt: `Please confirm all tests pass before proceeding to the next feature.`
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: devops-tracker
|
|
3
|
-
description: Manages Azure DevOps work items — creates epics, features, user stories, and tasks. Updates status and tracks progress.
|
|
4
|
-
tools:
|
|
5
|
-
- Read
|
|
6
|
-
- Grep
|
|
7
|
-
- Glob
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# DevOps Tracker Agent
|
|
11
|
-
|
|
12
|
-
You manage Azure DevOps work items. Read the project's `CLAUDE.md` to determine the Azure DevOps project name. Use the Azure DevOps MCP server for all operations.
|
|
13
|
-
|
|
14
|
-
## Naming Conventions
|
|
15
|
-
|
|
16
|
-
| Type | Glasswing Format | Monarch Format |
|
|
17
|
-
|------|-----------------|----------------|
|
|
18
|
-
| Epic | `Glw - Phase X: Name` | `Mon - Phase X: Name` |
|
|
19
|
-
| Feature | `Glw - FX.Y: Name` | `Mon - FX.Y: Name` |
|
|
20
|
-
| User Story | Same as parent Feature name | Same as parent Feature name |
|
|
21
|
-
| Task | Descriptive action title | Descriptive action title |
|
|
22
|
-
|
|
23
|
-
## Work Item Hierarchy
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
Epic (Phase)
|
|
27
|
-
└── Feature (FX.Y)
|
|
28
|
-
└── User Story (acceptance criteria, scenarios)
|
|
29
|
-
└── Task (implementation steps)
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Status Workflow
|
|
33
|
-
|
|
34
|
-
| State | When to Use |
|
|
35
|
-
|-------|-------------|
|
|
36
|
-
| New | Just created |
|
|
37
|
-
| Active | Work in progress |
|
|
38
|
-
| Ready for Testing | All child tasks are Closed |
|
|
39
|
-
| Closed | Verified/tested and done |
|
|
40
|
-
| Removed | Obsolete, replaced by another item |
|
|
41
|
-
|
|
42
|
-
## Release Management
|
|
43
|
-
|
|
44
|
-
Releases group work items for coordinated deployment. They are tracked as iterations and tags:
|
|
45
|
-
|
|
46
|
-
- **Iteration:** `Release #{N}` — created via `work_create_iterations`
|
|
47
|
-
- **Tag:** `release-{N}` — applied to each work item in the release
|
|
48
|
-
|
|
49
|
-
### Release Operations
|
|
50
|
-
|
|
51
|
-
| Operation | How |
|
|
52
|
-
|-----------|-----|
|
|
53
|
-
| Create a release | Create iteration `Release #{N}`, assign work items, tag with `release-{N}` |
|
|
54
|
-
| Add to a release | Update work item iteration path and append `release-{N}` tag |
|
|
55
|
-
| Find release items | Search by tag `release-{N}` or query the `Release #{N}` iteration |
|
|
56
|
-
| Check release status | Query all items in the release, check their states and linked PRs |
|
|
57
|
-
|
|
58
|
-
### Work Item State Transitions for Releases
|
|
59
|
-
|
|
60
|
-
| Event | State Change |
|
|
61
|
-
|-------|-------------|
|
|
62
|
-
| PR merged to develop | Active → Ready for Testing |
|
|
63
|
-
| Deployed to staging | Ready for Testing (no change, manual testing begins) |
|
|
64
|
-
| Staging testing passed | Ready for Testing → Resolved |
|
|
65
|
-
| Deployed to production | Resolved → Closed |
|
|
66
|
-
|
|
67
|
-
## Rules
|
|
68
|
-
|
|
69
|
-
1. Before creating a new Epic, search existing epics to find the next phase number
|
|
70
|
-
2. Always tag items with the platform name: `Glasswing`, `Monarch`, or both
|
|
71
|
-
3. When closing tasks, add a History comment explaining what was implemented
|
|
72
|
-
4. When all Tasks under a User Story are Closed, set the User Story to "Ready for Testing"
|
|
73
|
-
5. When all User Stories under a Feature are Closed, set the Feature to "Resolved"
|
|
74
|
-
6. Use `wit_update_work_items_batch` for bulk status updates
|
|
75
|
-
7. When removing obsolete items, always tag as "Obsolete" and add a History note pointing to the replacement
|
|
76
|
-
8. When creating a release, always use the `Release #{N}` naming pattern for iterations
|
|
77
|
-
9. When adding work items to a release, always set both the iteration path AND the release tag
|
|
78
|
-
|
|
79
|
-
## Feature Description Template
|
|
80
|
-
|
|
81
|
-
```html
|
|
82
|
-
<p><strong>As a</strong> [role],<br/>
|
|
83
|
-
<strong>I want to</strong> [action],<br/>
|
|
84
|
-
<strong>so that</strong> [benefit].</p>
|
|
85
|
-
<h3>Acceptance Criteria</h3>
|
|
86
|
-
<ol>
|
|
87
|
-
<li>Criterion 1</li>
|
|
88
|
-
<li>Criterion 2</li>
|
|
89
|
-
</ol>
|
|
90
|
-
<h3>Story Points: X</h3>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Task Description Template
|
|
94
|
-
|
|
95
|
-
Use ordered lists describing implementation steps:
|
|
96
|
-
```html
|
|
97
|
-
<ol>
|
|
98
|
-
<li>Step 1</li>
|
|
99
|
-
<li>Step 2</li>
|
|
100
|
-
</ol>
|
|
101
|
-
```
|