@chris1807/claude-kit 2.1.30 → 2.1.32
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/implement.md +13 -9
- package/templates/commands/rework.md +15 -8
- 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.32",
|
|
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": {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
Implement work item AB#$ARGUMENTS. Follow this workflow:
|
|
2
2
|
|
|
3
|
-
## Ultracode (
|
|
3
|
+
## Ultracode (opt-in — ask the user)
|
|
4
4
|
|
|
5
|
-
This command
|
|
5
|
+
This command **can** orchestrate its analysis phases with the `Workflow` tool, but only if the user opts in. The user is asked once, as part of the Step 2 confirmation, whether to use Ultracode effort for this run. Do not fan out before that answer, and do not silently decide for the user.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **If the user says yes:** apply the fan-out rules below — review (Step 8) runs as the find → adversarially-verify pipeline, and exploration / per-AC coverage (Steps 3, 7) fan out when the change is non-trivial (a full-stack story, multiple subsystems, or several acceptance criteria; skip the fan-out for a trivial single-file or config change).
|
|
8
|
+
- **If the user says no:** run every phase sequentially in the main loop — same steps, same gates, no `Workflow` calls.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
When recommending a default in the Step 2 prompt, suggest **yes** for multi-subsystem / multi-AC work and **no** for trivial changes.
|
|
11
|
+
|
|
12
|
+
The remaining rules apply whenever Ultracode is in use:
|
|
11
13
|
- **Never fan out an interactive gate or a write.** Every user prompt (Steps 2, 3-approval, 8-decisions, 9) and every git / work-item mutation (Steps 4, 5, 10) stays in the **main loop**. Workflow agents here are **read-only analysts** — they use MCP read tools, `Read`, and `Grep`, and return structured findings. They do not write code, create/close work items, switch branches, or ask the user anything.
|
|
12
14
|
- **Stay in the loop between phases** — one short workflow per phase, read its results, present/await the user, then continue.
|
|
13
15
|
|
|
@@ -48,13 +50,15 @@ Present a summary of the work item to the user:
|
|
|
48
50
|
{acceptance criteria — numbered list}
|
|
49
51
|
|
|
50
52
|
Does this look correct? Do you have any additional context or requirements?
|
|
53
|
+
|
|
54
|
+
Use **Ultracode effort** for this run? Ultracode fans out exploration, AC-coverage checks, and code review across parallel agents — more thorough, but slower and more token-hungry. (yes / no — suggested: {yes for multi-subsystem / multi-AC work, no for trivial changes})
|
|
51
55
|
```
|
|
52
56
|
|
|
53
|
-
**Wait for the user to respond.** Do NOT proceed until the user confirms or provides additional context. If they add context, incorporate it into the plan.
|
|
57
|
+
**Wait for the user to respond.** Do NOT proceed until the user confirms or provides additional context. If they add context, incorporate it into the plan. Record the Ultracode answer — it governs whether the `Workflow` fan-outs in Steps 3, 7, and 8 run at all.
|
|
54
58
|
|
|
55
59
|
## Step 3: Explore & Plan
|
|
56
60
|
|
|
57
|
-
> **Ultracode (non-trivial only):** If the work is full-stack, spans multiple subsystems, or has several acceptance criteria, fan out the exploration with `Workflow` — one read-only agent per subsystem/area, each returning the relevant files and how they relate to the requirements, plus one agent per acceptance criterion reporting what already exists and what's missing. Synthesize into a single plan in the main loop. For a trivial single-file or config change, skip the fan-out and explore directly. Either way, the plan synthesis and the approval gate stay in the main loop.
|
|
61
|
+
> **Ultracode (if opted in, non-trivial only):** If the work is full-stack, spans multiple subsystems, or has several acceptance criteria, fan out the exploration with `Workflow` — one read-only agent per subsystem/area, each returning the relevant files and how they relate to the requirements, plus one agent per acceptance criterion reporting what already exists and what's missing. Synthesize into a single plan in the main loop. For a trivial single-file or config change, skip the fan-out and explore directly. Either way, the plan synthesis and the approval gate stay in the main loop.
|
|
58
62
|
|
|
59
63
|
1. **Explore** the codebase to map relevant files
|
|
60
64
|
2. **Plan** the implementation approach
|
|
@@ -164,11 +168,11 @@ Run a build check **before** any other quality checks. Use the `build-validator`
|
|
|
164
168
|
|
|
165
169
|
Do not advance to Step 8 with any AC unverified.
|
|
166
170
|
|
|
167
|
-
> **Ultracode (non-trivial only):** When the story has several acceptance criteria, fan out this check with `Workflow` — one read-only agent per AC, each returning `{ac, covered: bool, evidence, gap?}`. Collect the results in the main loop and act on any `covered: false`. For a story with one or two ACs, just check them directly.
|
|
171
|
+
> **Ultracode (if opted in, non-trivial only):** When the story has several acceptance criteria, fan out this check with `Workflow` — one read-only agent per AC, each returning `{ac, covered: bool, evidence, gap?}`. Collect the results in the main loop and act on any `covered: false`. For a story with one or two ACs, just check them directly.
|
|
168
172
|
|
|
169
173
|
## Step 8: Code Review
|
|
170
174
|
|
|
171
|
-
> **Ultracode (
|
|
175
|
+
> **Ultracode (if opted in):** Run the review as a `Workflow` find → verify pipeline. **Find:** fan out one agent per dimension — correctness/quality, security, Clean Architecture compliance, and CLAUDE.md adherence — each scoped to the diff and returning structured findings. **Verify:** for each finding, spawn independent skeptic agents prompted to *refute* it, and drop any finding the majority refute. Only confirmed findings reach the user. Use the `reviewer` agent type for the dimension agents (`agentType: 'reviewer'`) so they inherit its review rules. The fix/decision loop below stays in the main loop — workflow agents never edit code.
|
|
172
176
|
|
|
173
177
|
Review the diff for quality, security, Clean Architecture compliance, and CLAUDE.md adherence. Review is read-only — it reports findings, you act on them.
|
|
174
178
|
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
Rework work item AB#$ARGUMENTS based on feedback received after the last pull request. Follow this workflow:
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Ultracode (opt-in — ask the user)
|
|
4
4
|
|
|
5
|
-
This command **
|
|
5
|
+
This command **can** orchestrate its analysis-heavy phases with the `Workflow` tool, but only if the user opts in. The user is asked once, as part of the Step 3 confirmation, whether to use Ultracode effort for this run. Do not fan out before that answer, and do not silently decide for the user.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **If the user says yes:** apply the fan-out rules below and the per-step **Ultracode** callouts throughout this document.
|
|
8
|
+
- **If the user says no:** run every phase sequentially in the main loop — same steps, same gates, no `Workflow` calls. Skip the per-step **Ultracode** callouts.
|
|
9
|
+
|
|
10
|
+
The one exception is Step 2 (gathering feedback), which runs **before** the Step 3 prompt — run it in the main loop regardless; only fan it out if the user already opted in via the `ultracode` keyword in their invocation.
|
|
11
|
+
|
|
12
|
+
When Ultracode is in use, these rules apply:
|
|
8
13
|
|
|
9
14
|
- **Fan out the read / analyze / verify work** — gathering feedback (Step 2), exploring the codebase (Step 4), and reviewing + verifying the diff and AC coverage (Steps 9–10) are run as `Workflow` scripts with one agent per independent unit (per comment, per subsystem, per review dimension, per acceptance criterion). Each agent returns **structured findings** via a `schema`; you synthesize the results in the main loop.
|
|
10
15
|
- **Never fan out an interactive gate or a write.** Every user prompt (Steps 3, 4-approval, 5, 10-decisions, 11) and every work-item or git mutation (Step 5 create, Step 6 branch, Step 7 implement, Step 12 push/close) stays in the **main loop**. Workflow agents here are **read-only analysts** — they use MCP read tools, `Read`, and `Grep`, and they return data. They do not create or close work items, switch branches, write code, or ask the user anything.
|
|
@@ -27,7 +32,7 @@ Save the PR's `creationDate` as `LAST_PR_DATE` — everything after this timesta
|
|
|
27
32
|
|
|
28
33
|
## Step 2: Gather Rework Feedback
|
|
29
34
|
|
|
30
|
-
> **Ultracode:** Fan out the gathering with `Workflow` — one agent per new comment (parse its text and **download + view every embedded image** via `WebFetch`), plus one agent analyzing the description / acceptance-criteria revisions since `LAST_PR_DATE`. Each agent returns a structured feedback item (`{source, summary, imageObservations, referencedAC?}`). Synthesize them into the Step 3 list in the main loop. Reading and image analysis are independent per comment — this is the fan-out unit.
|
|
35
|
+
> **Ultracode (if opted in):** Fan out the gathering with `Workflow` — one agent per new comment (parse its text and **download + view every embedded image** via `WebFetch`), plus one agent analyzing the description / acceptance-criteria revisions since `LAST_PR_DATE`. Each agent returns a structured feedback item (`{source, summary, imageObservations, referencedAC?}`). Synthesize them into the Step 3 list in the main loop. Reading and image analysis are independent per comment — this is the fan-out unit.
|
|
31
36
|
|
|
32
37
|
### New Comments
|
|
33
38
|
|
|
@@ -72,13 +77,15 @@ Present a summary of the rework feedback to the user. **Every feedback item must
|
|
|
72
77
|
{description/acceptance criteria changes since last PR, or "No changes to description or acceptance criteria since last PR"}
|
|
73
78
|
|
|
74
79
|
Does this capture the rework correctly? Any feedback items that should be flagged as scope-creep (separate work item) instead of being addressed here?
|
|
80
|
+
|
|
81
|
+
Use **Ultracode effort** for this rework? Ultracode fans out exploration, AC-coverage checks, and code review across parallel agents — more thorough, but slower and more token-hungry. (yes / no — suggested: {yes for multi-file / multi-AC rework, no for a small targeted fix})
|
|
75
82
|
```
|
|
76
83
|
|
|
77
|
-
**Wait for the user to respond.** Do NOT proceed until the user confirms the AC mapping. If they reclassify any item as scope-creep, drop it from the plan and note it in the final summary. If they add context, incorporate it.
|
|
84
|
+
**Wait for the user to respond.** Do NOT proceed until the user confirms the AC mapping. Record the Ultracode answer — it governs whether the `Workflow` fan-outs in Steps 4, 9, and 10 run at all. If they reclassify any item as scope-creep, drop it from the plan and note it in the final summary. If they add context, incorporate it.
|
|
78
85
|
|
|
79
86
|
## Step 4: Explore & Plan
|
|
80
87
|
|
|
81
|
-
> **Ultracode:** Fan out the exploration with `Workflow` — one read-only agent per subsystem touched by the last PR (and per new area the feedback implies), each returning the relevant files and how they relate to the feedback. In the same pass, fan out **one agent per acceptance criterion** to report whether the current code covers it and what's missing. Synthesize all findings into a single plan in the main loop, then present it. Exploration and per-AC coverage analysis are independent — fan them out; the plan synthesis and the approval gate stay in the main loop.
|
|
88
|
+
> **Ultracode (if opted in):** Fan out the exploration with `Workflow` — one read-only agent per subsystem touched by the last PR (and per new area the feedback implies), each returning the relevant files and how they relate to the feedback. In the same pass, fan out **one agent per acceptance criterion** to report whether the current code covers it and what's missing. Synthesize all findings into a single plan in the main loop, then present it. Exploration and per-AC coverage analysis are independent — fan them out; the plan synthesis and the approval gate stay in the main loop.
|
|
82
89
|
|
|
83
90
|
1. **Explore** the codebase to map relevant files — focus on files changed in the last PR and any new areas needed
|
|
84
91
|
2. **Plan** the rework approach
|
|
@@ -240,7 +247,7 @@ Run a build check **before** any other quality checks. Use the `build-validator`
|
|
|
240
247
|
3. **Environment configuration parity** — if the rework added or changed any key in `appsettings.*.json` or `.env*`, verify every parallel environment file (Development/Staging/QA/Production for backend; `.env.development`/`.env.staging`/`.env.production`/`.env.example` for React — whichever exist in the repo) has a corresponding entry. Present a (key × environment) table. Prompt the user to fill in any missing values (real, placeholder, or empty) **before pushing**, or to explicitly confirm the omission is intentional (e.g., supplied via a pipeline variable group, Key Vault, or App Configuration).
|
|
241
248
|
4. **Acceptance Criteria check** — re-read the work item's full Acceptance Criteria (the same list captured in Step 3). For each AC, identify the test or piece of code that proves it's met. If any AC has no covering test or visible code path, flag it before moving on.
|
|
242
249
|
|
|
243
|
-
> **Ultracode:** Fan out this check with `Workflow` — one read-only agent per acceptance criterion, each returning `{ac, covered: bool, evidence, gap?}`. Collect the results in the main loop and act on any `covered: false`.
|
|
250
|
+
> **Ultracode (if opted in):** Fan out this check with `Workflow` — one read-only agent per acceptance criterion, each returning `{ac, covered: bool, evidence, gap?}`. Collect the results in the main loop and act on any `covered: false`.
|
|
244
251
|
|
|
245
252
|
```
|
|
246
253
|
⚠ AC #{n} ({short form}) has no covering test or clear code path.
|
|
@@ -251,7 +258,7 @@ Run a build check **before** any other quality checks. Use the `build-validator`
|
|
|
251
258
|
|
|
252
259
|
## Step 10: Code Review
|
|
253
260
|
|
|
254
|
-
> **Ultracode:** Run the review as a `Workflow` find → verify pipeline. **Find:** fan out one agent per dimension — correctness/quality, security, Clean Architecture compliance, CLAUDE.md adherence, and regression risk from the rework — each scoped to the files changed since the last PR and returning structured findings. **Verify:** for each finding, spawn independent skeptic agents prompted to *refute* it, and drop any finding the majority refute. Only confirmed findings reach the user. Use the `reviewer` agent type for the dimension agents (`agentType: 'reviewer'`) so they inherit its review rules. The fix/decision loop below stays in the main loop — workflow agents never edit code.
|
|
261
|
+
> **Ultracode (if opted in):** Run the review as a `Workflow` find → verify pipeline. **Find:** fan out one agent per dimension — correctness/quality, security, Clean Architecture compliance, CLAUDE.md adherence, and regression risk from the rework — each scoped to the files changed since the last PR and returning structured findings. **Verify:** for each finding, spawn independent skeptic agents prompted to *refute* it, and drop any finding the majority refute. Only confirmed findings reach the user. Use the `reviewer` agent type for the dimension agents (`agentType: 'reviewer'`) so they inherit its review rules. The fix/decision loop below stays in the main loop — workflow agents never edit code.
|
|
255
262
|
|
|
256
263
|
Review the rework diff for quality, security, Clean Architecture compliance, and CLAUDE.md adherence. Focus the review on the files changed since the last PR — call out any regression risk introduced by the rework. Review is read-only — it reports findings, you act on them.
|
|
257
264
|
|
|
@@ -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
|
-
```
|