You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This file provides context to Claude Code when working in this repository.
4
4
5
5
## Project Purpose
6
6
7
-
This is a **reusable AI agent-team framework** — 42 agent skills (a 15-agent core team, optional specialists, auto-loading language skills, and the cross-cutting process skills that sit at the top level of `claude/skills/`, including the `workflow-engine`), a proportional dev `workflow.yaml`, document templates, and the `install.sh` installer. Each skill file represents a team member with deep domain expertise. The skills are installed globally and used by every project. It is vendor-neutral and OSS-first, working in Claude Code / Cursor / Kiro / VS Code.
7
+
This is a **reusable AI agent-team framework** — 43 agent skills (a 15-agent core team, optional specialists, auto-loading language skills, and the cross-cutting process skills that sit at the top level of `claude/skills/`, including the `workflow-engine`), a proportional dev `workflow.yaml`, document templates, and the `install.sh` installer. Each skill file represents a team member with deep domain expertise. The skills are installed globally and used by every project. It is vendor-neutral and OSS-first, working in Claude Code / Cursor / Kiro / VS Code.
8
8
9
9
Its sibling agent-memory runtime — **Praxis** — lives in its own separate repository and consumes this shared agent layer, as does a separate governed knowledge backend. See `ARCHIVE.md` for the dashboard product that was previously carried here and set aside.
10
10
@@ -21,7 +21,7 @@ ai-dev-team/
21
21
│ ├── CLAUDE.md # Global instructions for Claude Code
22
22
│ ├── TEAM_WORKFLOW.md # Complete team workflow documentation
23
23
│ │
24
-
│ ├── skills/ # 42 agent skills: 15-agent core team + specialists + language + process skills
24
+
│ ├── skills/ # 43 agent skills: 15-agent core team + specialists + language + process skills
@@ -103,7 +103,7 @@ Gates fire **proportionally** (by change-class / trigger / preset) via the `work
103
103
-**Version**: 5.3.0 (see `CHANGELOG.md`)
104
104
-**Release Date**: 2026-08-09
105
105
-**Distribution**: Claude Code plugin (preferred; `version` omitted so the commit SHA is the version) or the universal `install.sh` for Cursor / Kiro / VS Code
106
-
-**Skills**: 42 (15-agent core team + optional specialists + auto-loading language skills + cross-cutting process skills; frameworks as references)
106
+
-**Skills**: 43 (15-agent core team + optional specialists + auto-loading language skills + cross-cutting process skills; frameworks as references)
107
107
-**Commands**: 50 slash commands
108
108
-**Templates**: 6 document templates
109
109
-**Backends**: pluggable adapters — file-based by default; Jira/Confluence/OpenMemory/Penpot/etc. optional
> **A reusable AI agent-team framework for your editor.**42 agent skills (a 15-agent core team + optional specialists + auto-loading language skills + cross-cutting process skills) plus a `workflow-engine` and an **enforced, proportional workflow** with approval gates — *process, not prompts*. Installs as a **Claude Code plugin**, or via the universal installer for Cursor, Kiro & VS Code. Open-source, no lock-in, free by default.
5
+
> **A reusable AI agent-team framework for your editor.**43 agent skills (a 15-agent core team + optional specialists + auto-loading language skills + cross-cutting process skills) plus a `workflow-engine` and an **enforced, proportional workflow** with approval gates — *process, not prompts*. Installs as a **Claude Code plugin**, or via the universal installer for Cursor, Kiro & VS Code. Open-source, no lock-in, free by default.
@@ -291,6 +292,7 @@ rarely invoke them by name, but knowing they exist lets you reach for one delibe
291
292
|`research-method`| A question that needs measuring rather than deciding, and writing the result so it survives a hostile reader |
292
293
|`answer-audit`| Checking a retrieval-grounded answer, assuming it is wrong until each claim is proven verbatim against a source |
293
294
|`pull-request`| Running a PR to a mergeable state — resolving every review thread, checking runs by SHA rather than the summary |
295
+
|`parallel-delivery`| Claiming a ticket for cross-session delivery, before creating its workspace/branch, or reporting it back — the claim protocol, workspace isolation, and the report-back contract |
294
296
295
297
**The rule they exist to enforce:** a ticket is Done only when its **negative** criteria are met —
296
298
the guard, the refusal, the "cannot bypass" — and each names the **symbol** that enforces it. Happy
Copy file name to clipboardExpand all lines: claude/AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
> _Mirrors `CLAUDE.md` so editors that read `AGENTS.md` (Cursor, Kiro, VS Code) get identical guidance. References to "Claude Code" apply to your assistant._
4
4
5
-
A team of 42 skills (a 15-agent core team + optional specialists, plus auto-loading language skills and cross-cutting process skills) + an enforced, proportional dev workflow. Open-source, vendor-neutral, works in Claude Code / Cursor / Kiro / VS Code, free by default.
5
+
A team of 43 skills (a 15-agent core team + optional specialists, plus auto-loading language skills and cross-cutting process skills) + an enforced, proportional dev workflow. Open-source, vendor-neutral, works in Claude Code / Cursor / Kiro / VS Code, free by default.
6
6
7
7
> **Nothing loads this file automatically.**`install.sh` deploys only `skills/`, `commands/`,
8
8
> `templates/` and `workflow/`, and generates its own pointer file at the destination; a plugin
Copy file name to clipboardExpand all lines: claude/CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# AI Development Team
2
2
3
-
A team of 42 skills (a 15-agent core team + optional specialists, plus auto-loading language skills and cross-cutting process skills) + an enforced, proportional dev workflow. Open-source, vendor-neutral, works in Claude Code / Cursor / Kiro / VS Code, free by default.
3
+
A team of 43 skills (a 15-agent core team + optional specialists, plus auto-loading language skills and cross-cutting process skills) + an enforced, proportional dev workflow. Open-source, vendor-neutral, works in Claude Code / Cursor / Kiro / VS Code, free by default.
4
4
5
5
> **Nothing loads this file automatically.**`install.sh` deploys only `skills/`, `commands/`,
6
6
> `templates/` and `workflow/`, and generates its own pointer file at the destination; a plugin
Copy file name to clipboardExpand all lines: claude/commands/luda.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ You are now **Luda**, a Certified Scrum Master (CSM), Agile Coach, and **Team Or
15
15
16
16
## Core Principle
17
17
18
-
**You are the conductor of the orchestra.** Every agent reports to you. Every transition between workflow steps goes through you. You don't just facilitate — you **actively drive the process**.
18
+
**Board integrity, not ceremony.**You are not the conductor of an orchestra that every agent reports to — that claim was unfalsifiable, so nothing ever contradicted it, and in practice it went unused. What you are accountable for is checkable instead: orphan work items, a plan that disagrees with the tracker, tickets marked Done without their negative acceptance criteria met, items parked with no trigger. **Dispatch is a ticket created; a report is a PR against that ticket.** Trigger the next agent when a step is ready, but the workflow holds without you in the loop — every agent enforces its own preconditions before it starts.
Copy file name to clipboardExpand all lines: claude/commands/sm.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ You are now the **Scrum Master**, a certified agile coach and **Team Orchestrato
14
14
15
15
## Core Principle
16
16
17
-
**You are the conductor of the orchestra.** Every agent reports to you. Every transition between workflow steps goes through you. You don't just facilitate — you **actively drive the process**.
17
+
**Board integrity, not ceremony.**You are not the conductor of an orchestra that every agent reports to — that claim was unfalsifiable, so nothing ever contradicted it, and in practice it went unused. What you are accountable for is checkable instead: orphan work items, a plan that disagrees with the tracker, tickets marked Done without their negative acceptance criteria met, items parked with no trigger. **Dispatch is a ticket created; a report is a PR against that ticket.** Trigger the next agent when a step is ready, but the workflow holds without you in the loop — every agent enforces its own preconditions before it starts.
Copy file name to clipboardExpand all lines: claude/skills/management/scrum-master/references/templates.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,6 +82,8 @@
82
82
**Sprint**: {N}
83
83
**Depends On**: {other ticket IDs or "None"}
84
84
**Source**: {investigation report, expert recommendation, user request}
85
+
**Branch**: {exact branch name to create}
86
+
**Claimed by**: {claimed_by — the worker currently implementing it; setting the tracker's assignee field to yourself is the lock, see `parallel-delivery`}
85
87
86
88
## Description
87
89
{Clear, self-contained description of what needs to be done}
@@ -92,6 +94,14 @@
92
94
-[ ] AC-3: {criterion}
93
95
-[ ] AC-N: All existing tests pass (regression safety)
94
96
97
+
## Negative Acceptance Criteria
98
+
-[ ] {what must NOT happen} — enforced by `{symbol/test/guard that enforces it}`
99
+
-[ ] {what must NOT happen} — enforced by `{symbol/test/guard that enforces it}`
description: How a ticket moves through multiple parallel sessions — one orchestrator authoring tickets, N workers each claiming and delivering one ticket end-to-end in an isolated workspace. Load this before claiming a ticket for cross-session delivery, before creating its workspace or branch, when a ticket under-specifies what it asks for, and when reporting a ticket back as done. Covers the claim protocol (assignee is the lock), workspace isolation, the ticket-is-the-sole-context rule, and the report-back contract (a PR is the report).
4
+
---
5
+
6
+
# Parallel delivery — one ticket, one worker, no side channel
7
+
8
+
A single session can ask its own next question. Several sessions working the same board cannot — there is no shared memory between a worker and the session that wrote the ticket, and no channel back except the tracker itself. This skill is what makes that safe: a locking convention so two workers never pick up the same ticket, an isolation convention so their work never collides on disk, and a report-back contract so "done" means something without anyone standing in a room to say so.
9
+
10
+
## Claim protocol — the assignee field is the lock
11
+
12
+
A ticket is claimed by **assigning it to yourself and moving it to In Progress in the tracker, before any work starts** — not after you're sure you can finish it. Tracker-agnostic wording: **the ticket backend's assignee field is the lock.** Whatever the project uses — a Jira assignee, a `Backlog.md` owner column, a GitHub issue assignee — that field is authoritative for "is anyone already doing this?"
13
+
14
+
-**If a ticket is already assigned, it is taken.** Pick a different one. Don't message the other worker and don't assume they stalled; a ticket sitting assigned-but-idle past what the project considers stale is a board-integrity finding (`/sm` Check 5), not something a worker resolves by quietly taking over.
15
+
-**Un-claim symmetrically.** If you stop — blocked, wrong ticket, or the ticket under-specifies what it needs (below) — unassign and move the ticket back off In Progress in the same action. A claimed ticket nobody is working is worse than an unclaimed one: it looks taken.
16
+
17
+
## Isolation — one workspace per worker
18
+
19
+
Each worker gets a **fresh clone or a `git worktree`, never a shared checkout's default branch.** Two workers editing the same working directory will silently interleave each other's uncommitted changes; a worktree or clone per ticket makes that structurally impossible instead of a discipline someone has to remember.
20
+
21
+
- Create the branch **named in the ticket** (its `Branch` field), not one you invent. Two workers inventing branch names independently is how two PRs collide on the same name or, worse, quietly target each other's commits.
22
+
- The workspace is disposable. Once the PR is open, nothing about the ticket's state should live only in that checkout — see the report-back contract below.
23
+
24
+
## The ticket is the only context you get
25
+
26
+
This extends the existing Ticket Creation Protocol — "a developer should be able to implement the ticket using ONLY the ticket text" — to cross-session delivery, where it stops being a nicety and becomes load-bearing. In one session, an under-specified ticket is a two-minute question to whoever is sitting there. Across sessions there is no one sitting there: the author is a different, likely-idle session, and waiting for it to notice a question is not a plan.
27
+
28
+
**A worker asks no questions back.** If the ticket under-specifies what it asks for — a missing file path, an ambiguous acceptance criterion, a verification step with no expected output — the worker does not guess and does not wait. It stops, comments on the ticket naming exactly what's missing, and un-claims per the protocol above. A ticket returned this way is more valuable than one finished on a guess: the gap is now visible and fixable, instead of shipped as an assumption nobody reviewed for.
29
+
30
+
## Report-back contract — the deliverable is the report
31
+
32
+
**The report is not a separate artifact — it is the thing you were already going to produce.** No status document, no handoff notes file, no message to the orchestrator that isn't already sitting in the tracker where the next reader will actually look. Reporting back means exactly three things, together:
33
+
34
+
1. A **PR** to the target repository's default branch, facts-only (see `pull-request` for what "ready to merge" requires).
35
+
2. A **ticket comment** with the PR URL and the local test results — the command and its own verdict, not "tests pass" as a bare claim (see `verify-landed`).
36
+
3. The **tracker transition** — move the ticket to reflect a PR is open and awaiting review; the assignee stays yours until it merges and the ticket is Done.
37
+
38
+
Anything reported only in chat is invisible to the next worker and to `/sm`'s board-integrity checks — it never happened, as far as the record is concerned.
39
+
40
+
## Review gate — always on, and never the implementer
41
+
42
+
Under the `parallel-team` preset, `CODE_REVIEWED` is in `always_required` — it fires regardless of change class, including a ticket that looks trivial. **The reviewer must be a different session or person than the implementer.** The entire premise of parallel delivery is that a worker's own blind spots get a second, independent set of eyes; a worker cannot satisfy that gate by reviewing its own diff, under any persona.
43
+
44
+
## Related
45
+
46
+
-`workflow-engine` — loads the active preset and enforces `CODE_REVIEWED` before a ticket can close.
47
+
-`pull-request` — running the opened PR to a mergeable state.
48
+
-`verify-landed` — what the "local test results" in a report actually have to show.
49
+
- the Ticket Creation Protocol (`scrum-master` references) — what makes a ticket self-contained in the first place; this skill extends it across sessions rather than replacing it.
Copy file name to clipboardExpand all lines: claude/templates/user-story-template.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,10 @@
10
10
| Story Points | {estimate} |
11
11
| Sprint | {sprint_number} |
12
12
| Epic | {epic_name} |
13
-
| Owner | {assignee} |
13
+
| Owner | {owner — accountable for the story's content} |
14
14
| Status | Not Started / In Progress / In Review / Done |
15
+
| Branch | {exact branch name to create} |
16
+
| Claimed by | {claimed_by — the worker currently implementing it; setting the tracker's assignee field to yourself is the lock, see `parallel-delivery`} |
15
17
16
18
## User Story
17
19
@@ -50,6 +52,16 @@
50
52
-**When** {invalid action is performed}
51
53
-**Then** {error handling behavior}
52
54
55
+
### Negative Acceptance Criteria
56
+
57
+
-[ ] {what must NOT happen} — enforced by `{symbol/test/guard that enforces it}`
58
+
-[ ] {what must NOT happen} — enforced by `{symbol/test/guard that enforces it}`
Copy file name to clipboardExpand all lines: claude/workflow/README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,7 @@ Set `preset:` in `workflow.yaml`:
22
22
|---|---|---|---|
23
23
|**solo** (default) | one dev | nothing — gates fire on trigger/change-class only | Backlog.md / markdown |
24
24
|**small-team**| a few devs | code review always | Backlog.md / markdown |
25
+
|**parallel-team**| multiple parallel sessions/workers | code review always; reviewer ≠ implementer is a policy from the `parallel-delivery` skill — the config enforces only the gate, not who ran it | Backlog.md / markdown |
0 commit comments