@ennamjsc/agents-scaffold 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/index.js +674 -0
  2. package/dist/index.js.map +1 -0
  3. package/package.json +42 -0
  4. package/templates/_shared/.claude/agents/project-owner.md +19 -0
  5. package/templates/_shared/.claude/agents/reviewer.md +24 -0
  6. package/templates/_shared/.claude/agents/team-lead.md +20 -0
  7. package/templates/_shared/.claude/commands/boot.md +14 -0
  8. package/templates/_shared/.claude/commands/checkpoint.md +28 -0
  9. package/templates/_shared/.claude/commands/escalate.md +26 -0
  10. package/templates/_shared/.claude/commands/memory.md +12 -0
  11. package/templates/_shared/.claude/hooks/session-start.ps1 +3 -0
  12. package/templates/_shared/.claude/hooks/session-start.sh +4 -0
  13. package/templates/_shared/.claude/settings.json.hbs +17 -0
  14. package/templates/_shared/.gitignore.append +12 -0
  15. package/templates/_shared/.mcp.json.hbs +25 -0
  16. package/templates/_shared/.serena/checkpoint/.gitkeep +1 -0
  17. package/templates/_shared/.serena/memories/INDEX.md +13 -0
  18. package/templates/_shared/.serena/memories/backlog/.gitkeep +1 -0
  19. package/templates/_shared/.serena/memories/comms/active/.gitkeep +1 -0
  20. package/templates/_shared/.serena/memories/comms/resolved/.gitkeep +1 -0
  21. package/templates/_shared/.serena/memories/decisions/.gitkeep +1 -0
  22. package/templates/_shared/.serena/memories/services/.gitkeep +1 -0
  23. package/templates/_shared/AGENTS.md +75 -0
  24. package/templates/_shared/CLAUDE.md.partial.hbs +286 -0
  25. package/templates/_shared/docs/superpowers/plans/.gitkeep +1 -0
  26. package/templates/_shared/docs/superpowers/specs/.gitkeep +1 -0
  27. package/templates/flutter/.claude/agents/mobile-dev.md +21 -0
  28. package/templates/flutter/.mcp.json.partial.hbs +9 -0
  29. package/templates/flutter/CLAUDE.md.partial.hbs +26 -0
  30. package/templates/go/.claude/agents/backend-dev-go.md +22 -0
  31. package/templates/go/CLAUDE.md.partial.hbs +28 -0
  32. package/templates/local-root/CLAUDE.md.partial.hbs +50 -0
  33. package/templates/next/.claude/agents/web-dev.md +23 -0
  34. package/templates/next/.mcp.json.partial.hbs +13 -0
  35. package/templates/next/CLAUDE.md.partial.hbs +35 -0
  36. package/templates/python/.claude/agents/backend-dev-python.md +21 -0
  37. package/templates/python/CLAUDE.md.partial.hbs +27 -0
  38. package/templates/qa/.claude/agents/qa-tester.md +23 -0
  39. package/templates/qa/.claude/commands/qa-report.md +13 -0
  40. package/templates/qa/.claude/commands/qa-run.md +13 -0
  41. package/templates/qa/.mcp.json.partial.hbs +8 -0
  42. package/templates/qa/CLAUDE.md.partial.hbs +20 -0
  43. package/templates/qa/evidence/.gitkeep +1 -0
  44. package/templates/qa/qa/.gitkeep +1 -0
  45. package/templates/qa/test-cases/README.md +11 -0
  46. package/templates/qa/test-cases/TEMPLATE.md +25 -0
@@ -0,0 +1,286 @@
1
+ <!-- ennam-agents-scaffold:begin v{{scaffoldVersion}} -->
2
+ ## Agents Workflow
3
+
4
+ @AGENTS.md
5
+
6
+ ### Session Boot Protocol
7
+
8
+ **Every agent MUST follow this exact sequence at session start.**
9
+ DO NOT read source code, explore directories, or scan the codebase
10
+ until you have completed steps 1-3. Source code is a last resort,
11
+ not a starting point.
12
+
13
+ 1. **Read Serena** — `memories/INDEX.md` → relevant module memories → `comms/active/` → `backlog/`
14
+ 2. **Read checkpoint** — `.serena/checkpoint/` for the most recent checkpoint from your role
15
+ 3. **Understand the task** — you now have project context. Only NOW assess what source files you need.
16
+ 4. **Read ONLY the source files relevant to your task** — targeted reads, not bulk exploration.
17
+
18
+ ```mermaid
19
+ flowchart TD
20
+ Start([Session Start]) --> S1
21
+
22
+ S1["1. Read Serena\nmemories/INDEX.md → modules → comms → backlog"]
23
+ S1 --> S2["2. Read Checkpoint\n.serena/checkpoint/ (latest for your role)"]
24
+ S2 --> S3["3. Understand the Task\nAssess what source files you need"]
25
+ S3 --> S4["4. Read ONLY Relevant Source Files\nTargeted reads, not bulk exploration"]
26
+
27
+ S1 -.- warn:::violation
28
+ warn["⛔ VIOLATION: Scanning src/ or running\nfind / ls -R before completing steps 1-3"]
29
+
30
+ classDef violation fill:#fee,stroke:#c00,color:#900,stroke-dasharray: 5 5
31
+ ```
32
+
33
+ **Violations**: Scanning `src/`, or running `find` / `ls -R` at session start before completing steps 1-3 is a protocol violation. It wastes tokens and ignores existing knowledge.
34
+
35
+ ### Superpowers Workflow
36
+
37
+ Every agent session follows this structured workflow.
38
+ Phases may be skipped for trivial tasks (< 3 steps, single file, obvious fix).
39
+ When skipping, state which phases you're skipping and why.
40
+
41
+ #### Phase 1 — Understand
42
+ **Skill**: `superpowers:brainstorming`
43
+ **When**: Creating features, modifying behavior, adding functionality.
44
+ **Skip if**: Bug fix with clear reproduction, typo, config change.
45
+ **Output**: Approved design in `docs/superpowers/specs/`
46
+
47
+ #### Phase 2 — Plan
48
+ **Skill**: `superpowers:writing-plans`
49
+ **When**: Task requires 3+ steps or touches multiple files/services.
50
+ **Skip if**: Single-file change with obvious implementation.
51
+ **Output**: Implementation plan with success criteria per step.
52
+
53
+ #### Phase 3 — Isolate
54
+ **Skill**: `superpowers:using-git-worktrees`
55
+ **When**: Feature work that should not pollute the working branch.
56
+ **Skip if**: Hotfix, docs-only change, or user requests in-place work.
57
+ **Output**: Isolated worktree or branch ready for implementation.
58
+
59
+ #### Phase 4 — Implement
60
+ **Skills** (use as needed):
61
+ - `superpowers:test-driven-development` — write tests first, then implementation
62
+ - `superpowers:executing-plans` — execute the plan from Phase 2
63
+ - `superpowers:dispatching-parallel-agents` — 2+ independent tasks
64
+ - `superpowers:subagent-driven-development` — delegate to specialized agents
65
+ - `superpowers:systematic-debugging` — when encountering failures during implementation
66
+ **Output**: Working code with tests.
67
+
68
+ #### Phase 5 — Verify
69
+ **Skill**: `superpowers:verification-before-completion`
70
+ **When**: ALWAYS. This phase is never skipped.
71
+ **Output**: Evidence that success criteria are met (test output, build output).
72
+
73
+ #### Phase 6 — Review
74
+ **Skill**: `superpowers:requesting-code-review`
75
+ **When**: Feature work, significant changes, anything touching shared code.
76
+ **Skip if**: Docs-only, config-only, or user explicitly waives review.
77
+ **Output**: Review feedback addressed.
78
+
79
+ #### Phase 7 — Complete
80
+ **Skill**: `superpowers:finishing-a-development-branch`
81
+ **When**: Implementation verified and reviewed.
82
+ **Output**: PR created, branch merged, or completion option presented to user.
83
+
84
+ #### Workflow Diagram
85
+
86
+ ```mermaid
87
+ flowchart LR
88
+ P1["Phase 1\nUnderstand\n<i>brainstorming</i>"]
89
+ P2["Phase 2\nPlan\n<i>writing-plans</i>"]
90
+ P3["Phase 3\nIsolate\n<i>git worktrees</i>"]
91
+ P4["Phase 4\nImplement\n<i>TDD / execute</i>"]
92
+ P5["Phase 5\nVerify\n<i>verification</i>"]:::mandatory
93
+ P6["Phase 6\nReview\n<i>code review</i>"]
94
+ P7["Phase 7\nComplete\n<i>finish branch</i>"]
95
+
96
+ P1 -->|"skip?"| P2
97
+ P2 -->|"skip?"| P3
98
+ P3 -->|"skip?"| P4
99
+ P4 --> P5
100
+ P5 -->|"NEVER SKIP"| P6
101
+ P6 -->|"skip?"| P7
102
+
103
+ classDef mandatory fill:#d4edda,stroke:#155724,stroke-width:3px,color:#155724
104
+ ```
105
+
106
+ #### On-Demand Skills (any phase)
107
+ - `superpowers:systematic-debugging` — when hitting unexpected failures
108
+ - `superpowers:receiving-code-review` — when receiving feedback from others
109
+ - `superpowers:writing-skills` — when creating/modifying workflow skills
110
+
111
+ ### Task Complexity Guide
112
+
113
+ | Complexity | Example | Required Phases |
114
+ |-----------|---------|-----------------|
115
+ | **Trivial** | Fix typo, update config value | Implement → Verify |
116
+ | **Simple** | Single-file bug fix, add field | Plan → Implement → Verify |
117
+ | **Medium** | New endpoint, new component | Plan → Implement → Verify → Review |
118
+ | **Complex** | New feature across services | ALL phases |
119
+
120
+ ### Knowledge Source Priority
121
+
122
+ Agents MUST consult existing knowledge before exploring source code.
123
+
124
+ #### Retrieval order (strict)
125
+
126
+ ```mermaid
127
+ flowchart TD
128
+ Q["Need context or information?"]
129
+ Q --> C1{"Exists in\nSerena memories?"}
130
+ C1 -->|Yes| S1["1. Use Serena\ndecisions/ services/ backlog/"]
131
+ C1 -->|No| C2{"Need current\nimplementation?"}
132
+ C2 -->|Yes| S2["2. Source code\ntargeted file reads"]
133
+ C2 -->|No| C3{"Need history\nor blame?"}
134
+ C3 -->|Yes| S3["3. Git log / blame"]
135
+ C3 -->|No| S4["Ask the user"]
136
+
137
+ style S1 fill:#d4edda,stroke:#155724,color:#155724
138
+ style S4 fill:#fff3cd,stroke:#856404,color:#856404
139
+ ```
140
+
141
+ 1. **Serena memories** — primary source for decisions, architecture context, conventions, and inter-agent communication
142
+ 2. **Source code / git log** — when you need exact current implementation details
143
+
144
+ #### When to read from Serena
145
+
146
+ | Moment | Action |
147
+ |--------|--------|
148
+ | Session start | Read `memories/INDEX.md` — understand what's been decided, what's in progress |
149
+ | Before coding a function | Check `services/<module>.md` — check related decisions and conventions |
150
+ | Before making a design decision | Search `decisions/` — check for prior decisions on same topic |
151
+ | When encountering unfamiliar code | Check memories — there may be a decision or discovery explaining it |
152
+
153
+ #### When to write to Serena
154
+
155
+ | Moment | Action |
156
+ |--------|--------|
157
+ | After making a design decision | Write to `memories/decisions/<topic>.md` |
158
+ | After discovering something non-obvious | Write to `memories/decisions/<topic>.md` |
159
+ | After completing a task | Update checkpoint + relevant service memory |
160
+ | When identifying work for another agent | Write to `memories/backlog/<service>-<topic>.md` |
161
+
162
+ ### Serena MCP Protocol (canonical — defines *how*; overrides file-path wording below)
163
+
164
+ **All `.serena/memories/` I/O goes through Serena MCP tools (`mcp__serena__*`). NEVER hand-edit memory files** with Read/Edit/Write — Serena indexes memories and resolves `` `mem:` `` links; hand-editing bypasses both.
165
+
166
+ **Session start (before reading source):**
167
+ 1. `mcp__serena__activate_project` for this repo **by path** → `mcp__serena__initial_instructions` (loads the manual + lists available memories).
168
+ 2. `mcp__serena__read_memory`: `INDEX` → relevant `decisions/` / `services/` → `comms/active/` → `backlog/` → latest `checkpoint/`.
169
+
170
+ **Writing:** `mcp__serena__write_memory(name, content)` — names use `/` topics (`decisions/…`, `services/…`, `backlog/…`, `comms/active/…`, `qa/…`, `checkpoint/…`); link memories as `` `mem:<name>` ``. Use `mcp__serena__edit_memory` for targeted edits and `mcp__serena__delete_memory` when an item is done.
171
+
172
+ **Checkpoint (end of EVERY session):** `mcp__serena__write_memory("checkpoint/<agent-name>-<YYYY-MM-DD>", …)` → stored at `.serena/memories/checkpoint/<agent-name>-<YYYY-MM-DD>.md`.
173
+
174
+ > The subsections below (Session Boot / Knowledge Source / Serena Memory Protocol / checkpoint) remain the reference for *what* to read/write and *where things go*; **this block is authoritative for *how*** — always via Serena MCP, checkpoints under `memories/checkpoint/`.
175
+
176
+ ### Mandatory Session Checkpoint
177
+
178
+ **All AI agents MUST write a checkpoint at the end of every session — via Serena MCP** (`mcp__serena__write_memory`).
179
+
180
+ **Format**: `mcp__serena__write_memory("checkpoint/<agent-name>-<YYYY-MM-DD>", …)` → stored at `.serena/memories/checkpoint/<agent-name>-<YYYY-MM-DD>.md`. Write through Serena MCP, **never** by hand-editing the file.
181
+
182
+ **Required content**:
183
+
184
+ ```markdown
185
+ # Checkpoint: <agent-name> — <date>
186
+
187
+ ## What was done
188
+ - <bullet list of completed work>
189
+
190
+ ## Files changed
191
+ - <list of files created/modified/deleted>
192
+
193
+ ## Current state
194
+ - <what is working, what is broken, what is partially done>
195
+
196
+ ## Next steps
197
+ - <what the next session should pick up>
198
+
199
+ ## Blockers / Risks
200
+ - <anything that could block progress>
201
+ ```
202
+
203
+ **Rules**:
204
+ - Write checkpoint BEFORE ending the session — no exceptions
205
+ - If the session was interrupted or failed, still write a checkpoint noting the failure
206
+ - One file per agent per day; append if multiple sessions in the same day
207
+ - Keep each checkpoint concise (under 50 lines)
208
+ - This applies to ALL agents: any subagents, specialized agents, or the main session agent
209
+
210
+ ### Serena Memory Protocol
211
+
212
+ Serena is the project's knowledge store for decisions, conventions, service state, and inter-agent communication.
213
+ All agents MUST follow these rules when reading/writing to `.serena/memories/`.
214
+
215
+ #### Read Protocol — Session Start
216
+
217
+ ```mermaid
218
+ flowchart LR
219
+ R1["INDEX.md"] --> R2["services/\n&lt;module&gt;.md"]
220
+ R2 --> R3["comms/active/\nmessages for you"]
221
+ R3 --> R4["backlog/\npending items"]
222
+ R4 --> Ready(["Ready to work"])
223
+
224
+ style Ready fill:#d4edda,stroke:#155724,color:#155724
225
+ ```
226
+
227
+ 1. Read `memories/INDEX.md` first
228
+ 2. Read `services/<your-module>.md` for current state
229
+ 3. Check `comms/active/` for messages addressed to you
230
+ 4. Check `backlog/` for pending action items in your domain
231
+
232
+ #### Write Protocol — What goes where
233
+
234
+ ```mermaid
235
+ flowchart TD
236
+ W["What do you want to write?"]
237
+ W --> D{"Technical\ndecision?"}
238
+ W --> S{"Module\nstate update?"}
239
+ W --> B{"Work for\nanother agent?"}
240
+ W --> C{"Question for\nanother agent?"}
241
+ W --> QA{"QA results?"}
242
+
243
+ D -->|Yes| DF["decisions/&lt;topic&gt;.md"]
244
+ S -->|Yes| SF["services/&lt;module&gt;.md"]
245
+ B -->|Yes| BF["backlog/&lt;module&gt;-&lt;topic&gt;.md"]
246
+ C -->|Yes| CF["comms/active/&lt;you&gt;-to-&lt;them&gt;.md"]
247
+ QA -->|Yes| QAF["qa/latest-results.md"]
248
+
249
+ style DF fill:#e8f4fd,stroke:#0366d6
250
+ style SF fill:#e8f4fd,stroke:#0366d6
251
+ style BF fill:#fff3cd,stroke:#856404
252
+ style CF fill:#f0e8fd,stroke:#6f42c1
253
+ style QAF fill:#e8f4fd,stroke:#0366d6
254
+ ```
255
+
256
+ | You want to... | Write to | Naming |
257
+ |----------------|----------|--------|
258
+ | Record a technical decision | `decisions/<topic>.md` | Descriptive topic name |
259
+ | Update module/service state | `services/<module>.md` | Append or replace section |
260
+ | Flag work for another agent | `backlog/<module>-<topic>.md` | Prefix with target module |
261
+ | Ask another agent a question | `comms/active/<you>-to-<them>-<topic>.md` | |
262
+ | Respond to a question | Append to the existing file in `comms/active/` | |
263
+ | Close a resolved thread | Move both files to `comms/resolved/` | |
264
+ | Report QA results | `qa/latest-results.md` (replace) | Keep only latest |
265
+ | Store something historical | `archive/<category>/` | |
266
+
267
+ #### Rules
268
+
269
+ - **Never create new top-level directories** under `memories/`
270
+ - **Never put files directly in `memories/`** — always in a subdirectory
271
+ - **1 file per module** in `services/` — update, don't create siblings
272
+ - **Backlog items**: delete the file when the work is done
273
+ - **Comms**: respond within the SAME file (append), don't create
274
+ a separate response file. Move to `resolved/` when done.
275
+ - **Decisions**: only for choices that affect future work. Don't store
276
+ implementation details — those belong in code comments.
277
+ - **Update INDEX.md** when adding new files to `decisions/` or `services/`
278
+ - **QA**: `latest-results.md` is overwritten each run. Archive old
279
+ results to `archive/qa-runs/<date>.md` before overwriting.
280
+ {{#if profileSection}}
281
+
282
+ ### Profile: {{profile}}
283
+
284
+ {{{profileSection}}}
285
+ {{/if}}
286
+ <!-- ennam-agents-scaffold:end -->
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: mobile-dev
3
+ description: Flutter 3 + Dart specialist — Riverpod/Bloc, dio HTTP, flutter_test. Implements features following AGENTS.md.
4
+ ---
5
+
6
+ You are the mobile developer. Your stack is Flutter 3.x + Dart with sound null safety.
7
+
8
+ Process:
9
+ 1. Run @superpowers:brainstorming if the task is new/creative.
10
+ 2. Read existing widget patterns in the touched directory before writing.
11
+ 3. Use the project's chosen state lib (Riverpod or Bloc) consistently. Don't introduce a second.
12
+ 4. Use dio with interceptors for HTTP; never roll a custom HTTP client.
13
+ 5. Add widget keys to test targets; cover with flutter_test (unit) or integration_test (flow).
14
+ 6. `flutter analyze` must report zero warnings before declaring done.
15
+ 7. Run @superpowers:verification-before-completion.
16
+ 8. Write a checkpoint when session ends.
17
+
18
+ Boundaries:
19
+ - Don't change `pubspec.yaml` dependencies without an explicit task.
20
+ - Don't mix state libraries.
21
+ - Never disable lints to "make it compile".
@@ -0,0 +1,9 @@
1
+ {
2
+ "mcpServers": {
3
+ "figma": {
4
+ "command": "npx",
5
+ "args": ["-y", "@ennam/figma-mcp"],
6
+ "env": { "FIGMA_TOKEN": "${FIGMA_TOKEN}" }
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,26 @@
1
+ ## Stack: Flutter 3.x + Dart
2
+
3
+ | Layer | Tech |
4
+ |---|---|
5
+ | Framework | Flutter 3.x |
6
+ | Language | Dart (sound null safety) |
7
+ | State | Riverpod or Bloc (pick one — don't mix) |
8
+ | HTTP | dio |
9
+ | Testing | flutter_test + integration_test |
10
+
11
+ ### Conventions
12
+
13
+ - **One state lib per project.** If using Riverpod, never import bloc; vice versa.
14
+ - **dio interceptors** for auth + logging; do not roll a custom HTTP client.
15
+ - **Widget keys** required on stateful test targets so integration_test can find them.
16
+ - **Type-check before declaring done:** `flutter analyze` (zero warnings policy).
17
+
18
+ ### Common commands
19
+
20
+ ```bash
21
+ flutter pub get
22
+ flutter run # debug on connected device
23
+ flutter test
24
+ flutter build apk # or appbundle, ios, etc.
25
+ flutter analyze
26
+ ```
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: backend-dev-go
3
+ description: Go 1.24 specialist — stdlib net/http, pgx, slog. Implements features following AGENTS.md.
4
+ ---
5
+
6
+ You are the backend (Go) developer. Your stack is Go 1.24+ with stdlib-first idioms.
7
+
8
+ Process:
9
+ 1. Run @superpowers:brainstorming if the task is new/creative.
10
+ 2. Read existing handlers and packages in the touched directory before writing.
11
+ 3. Use stdlib net/http with the new ServeMux pattern (`http.HandleFunc("GET /users/{id}", …)`).
12
+ 4. Use pgx for Postgres; never database/sql.
13
+ 5. Use log/slog for all logging; never fmt.Println outside tests.
14
+ 6. Write/update tests as you go (TDD via @superpowers:test-driven-development).
15
+ 7. `go vet ./...` and `go test ./...` must pass before declaring done.
16
+ 8. Run @superpowers:verification-before-completion.
17
+ 9. Write a checkpoint when session ends.
18
+
19
+ Boundaries:
20
+ - Don't add a web framework (gin, echo, etc.) — stdlib is enough.
21
+ - Don't panic in handlers; return errors via standard middleware.
22
+ - Don't introduce new logging libraries.
@@ -0,0 +1,28 @@
1
+ ## Stack: Go 1.24 + stdlib net/http
2
+
3
+ | Layer | Tech |
4
+ |---|---|
5
+ | Language | Go 1.24+ |
6
+ | HTTP | stdlib `net/http` (ServeMux from 1.22+) |
7
+ | DB | pgx (PostgreSQL) |
8
+ | Migrations | golang-migrate |
9
+ | Logging | stdlib `log/slog` |
10
+ | Testing | stdlib `testing` + `testify/assert` only for assertions |
11
+
12
+ ### Conventions
13
+
14
+ - **No web frameworks.** stdlib net/http with the new ServeMux is enough.
15
+ - **pgx for Postgres** — never database/sql.
16
+ - **slog** for all logging — never fmt.Println in non-test code.
17
+ - **Errors:** wrap with `fmt.Errorf("doing X: %w", err)`. No panic in handlers.
18
+ - **Type-check before declaring done:** `go vet ./... && go test ./...`.
19
+
20
+ ### Common commands
21
+
22
+ ```bash
23
+ go mod tidy
24
+ go run ./cmd/server
25
+ go test ./...
26
+ go vet ./...
27
+ go build -o bin/server ./cmd/server
28
+ ```
@@ -0,0 +1,50 @@
1
+ ## Stack: Orchestration Root (Polyrepo Meta-Root)
2
+
3
+ | Layer | Tech |
4
+ |---|---|
5
+ | Architecture | Polyrepo orchestrator — no build, no runtime; coordinates sub-platforms |
6
+ | Memory coordination | Serena MCP (reads `.serena/` from each sub-platform) |
7
+ | Sub-platform communication | Published interfaces (HTTP APIs, databases, MCPs) — never shared code |
8
+ | Infrastructure coordination | Docker Compose / Kubernetes / custom (user-defined) |
9
+
10
+ ### The Orchestrator's Job
11
+
12
+ This root orchestrates multiple independent platforms (sub-repositories or sub-folders). Each platform is autonomous — it has its own `CLAUDE.md`, `AGENTS.md`, `.serena/` memories, build, and deploy.
13
+
14
+ The orchestrator's role is to:
15
+ 1. Read from `.serena/` stores across platforms via Serena MCP (by path-activating each platform)
16
+ 2. Collect signals — decisions (`decisions/`), service state (`services/`), comms (`comms/active/`), backlog items (`backlog/`), and checkpoints
17
+ 3. Present a cross-platform view — status, risk, dependencies, and work signals
18
+ 4. Direct work — write ecosystem-wide decisions to `global/ecosystem/*` (owned by this orchestrator)
19
+
20
+ **Sub-platform `.serena/` locations the orchestrator reads:**
21
+
22
+ <!-- TODO: Fill in your platforms. Example: -->
23
+ | Platform folder | `.serena/` path | Purpose |
24
+ |---|---|---|
25
+ | `platform-a/` | `platform-a/.serena/` | (your first platform) |
26
+ | `platform-b/` | `platform-b/.serena/` | (your second platform) |
27
+ | `shared-infra/` | `shared-infra/.serena/` (if applicable) | (shared services) |
28
+
29
+ (Remove or update this table to match your actual platform structure.)
30
+
31
+ **Ecosystem (the orchestrator OWNS this):** the orchestrator **writes** Serena **`global/ecosystem/*`** — the shared contract + per-platform plans, the only Serena channel readable by every platform. Read each platform's own store by **path-activating** it; never reach into another platform's source. Keep THIS repo's project store to orchestrator-private items (INDEX + checkpoints).
32
+
33
+ ### Conventions
34
+
35
+ - **No build at this root.** Each sub-platform builds and runs independently. This folder is pure coordination.
36
+ - **No shared code.** Platforms interact only via published interfaces (HTTP APIs, databases, MCPs), never by importing code.
37
+ - **Decisions in Serena.** Record cross-platform decisions in `.serena/memories/global/ecosystem/` so all platforms can read them.
38
+ - **Respect platform autonomy.** Don't fork or duplicate a platform's logic — consume its published surface (API / MCP / DB).
39
+
40
+ ### Common commands
41
+
42
+ ```bash
43
+ # (Fill in your orchestration commands. Examples:)
44
+ # docker compose up # start shared infra
45
+ # cd platform-a && npm run dev # run platform A
46
+ # cd platform-b && go run ./cmd/... # run platform B
47
+ # kubectl apply -f k8s/ # apply Kubernetes manifests
48
+ ```
49
+
50
+ (Edit this section to document how to start your platforms and shared infrastructure.)
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: web-dev
3
+ description: Next.js 16 + React 19 specialist — Server/Client components, TanStack Query, shadcn/ui, Tailwind 4. Implements features following AGENTS.md.
4
+ ---
5
+
6
+ You are the web developer. Your stack is Next.js 16 + React 19 + TypeScript strict.
7
+
8
+ Process:
9
+ 1. Run @superpowers:brainstorming if the task is new/creative.
10
+ 2. Read existing code patterns in the touched directory before writing. Match the project's style (Rule 11).
11
+ 3. Default to Server Components. Add `'use client'` only when needed.
12
+ 4. Use TanStack Query for client-side data fetching; use Server Components for server-side.
13
+ 5. Compose shadcn/ui primitives; don't reinvent.
14
+ 6. Write/update tests as you go (TDD via @superpowers:test-driven-development).
15
+ 7. Type-check with `npm run build` before declaring done.
16
+ 8. For interactive changes, verify with Chrome DevTools MCP (a11y, console errors, network).
17
+ 9. Run @superpowers:verification-before-completion.
18
+ 10. Write a checkpoint when session ends.
19
+
20
+ Boundaries:
21
+ - Don't touch `next.config.ts` or `eslint.config.mjs` without an explicit task.
22
+ - Don't modify Server Component → Client Component boundary unless asked.
23
+ - Never disable strict TypeScript checks to "make it compile".
@@ -0,0 +1,13 @@
1
+ {
2
+ "mcpServers": {
3
+ "chrome-devtools": {
4
+ "command": "npx",
5
+ "args": ["-y", "@modelcontextprotocol/chrome-devtools-mcp"]
6
+ },
7
+ "figma": {
8
+ "command": "npx",
9
+ "args": ["-y", "@ennam/figma-mcp"],
10
+ "env": { "FIGMA_TOKEN": "${FIGMA_TOKEN}" }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,35 @@
1
+ ## Stack: Next.js 16 + React 19 + TypeScript
2
+
3
+ | Layer | Tech |
4
+ |---|---|
5
+ | Framework | Next.js 16 (App Router) |
6
+ | UI runtime | React 19 (Server Components by default) |
7
+ | Language | TypeScript strict mode |
8
+ | Data fetching | TanStack Query for client-side; Server Components for server-side |
9
+ | UI primitives | shadcn/ui + Tailwind CSS 4 |
10
+ | Session | iron-session (cookie-based) |
11
+ | Linter | ESLint (next/core-web-vitals) |
12
+ | Build | `npm run build` (Turbopack) |
13
+
14
+ ### Conventions
15
+
16
+ - **Default to Server Components.** Add `'use client'` only when the component uses state, effects, or browser APIs.
17
+ - **Tailwind 4 syntax.** Avoid `@apply` where utility classes work; lean on theme tokens.
18
+ - **Don't reinvent shadcn primitives.** Compose them; if you need a new one, copy from the shadcn registry rather than write from scratch.
19
+ - **Type-check before declaring done:** `npm run build` (catches type errors that `tsc --noEmit` may miss in App Router).
20
+ - **Use Chrome DevTools MCP** for runtime debugging when changes touch interactivity (a11y, network, console errors, LCP).
21
+
22
+ ### Common commands
23
+
24
+ ```bash
25
+ npm run dev # local dev server (port 3000)
26
+ npm run build # production build + type-check
27
+ npm run start # serve the production build
28
+ npm run lint # eslint
29
+ ```
30
+
31
+ <!-- BEGIN:nextjs-agent-rules -->
32
+ # This is NOT the Next.js you know
33
+
34
+ This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.
35
+ <!-- END:nextjs-agent-rules -->
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: backend-dev-python
3
+ description: Python 3.12 + FastAPI specialist — uv, Pydantic v2, pytest, ruff. Implements features following AGENTS.md.
4
+ ---
5
+
6
+ You are the backend (Python) developer. Your stack is Python 3.12 + FastAPI with uv package management.
7
+
8
+ Process:
9
+ 1. Run @superpowers:brainstorming if the task is new/creative.
10
+ 2. Read existing route handlers and schemas in the touched directory before writing.
11
+ 3. Use Pydantic v2 syntax (no v1 patterns like `class Config:`).
12
+ 4. Manage deps with `uv add` / `uv remove` — never edit pyproject.toml by hand.
13
+ 5. Write/update tests as you go (TDD via @superpowers:test-driven-development).
14
+ 6. `uv run ruff check .` and `uv run pytest` must pass before declaring done.
15
+ 7. Run @superpowers:verification-before-completion.
16
+ 8. Write a checkpoint when session ends.
17
+
18
+ Boundaries:
19
+ - Don't touch `pyproject.toml` directly — use uv commands.
20
+ - Don't disable ruff rules to "make it lint".
21
+ - Don't mix sync and async route handlers carelessly.
@@ -0,0 +1,27 @@
1
+ ## Stack: Python 3.12 + FastAPI
2
+
3
+ | Layer | Tech |
4
+ |---|---|
5
+ | Framework | FastAPI |
6
+ | Package manager | uv |
7
+ | Lint/format | ruff |
8
+ | Testing | pytest |
9
+ | Schemas | Pydantic v2 |
10
+
11
+ ### Conventions
12
+
13
+ - **uv only.** No `pip install` outside `uv add`. No `requirements.txt` editing by hand.
14
+ - **Pydantic v2 syntax** (`model_config`, `Annotated`, etc.) — not v1.
15
+ - **Type hints required** on public functions; ruff checks this.
16
+ - **Pytest fixtures** in `conftest.py`; one feature per test file.
17
+ - **Type-check before declaring done:** `uv run ruff check . && uv run pytest`.
18
+
19
+ ### Common commands
20
+
21
+ ```bash
22
+ uv sync # install deps
23
+ uv run uvicorn app:app # dev server
24
+ uv run pytest # tests
25
+ uv run ruff check . # lint
26
+ uv add <pkg> # add a dep
27
+ ```
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: qa-tester
3
+ description: QA workflow agent — executes test cases, captures evidence, never edits application code.
4
+ ---
5
+
6
+ You are the QA tester. Your scope is strictly verification; you do NOT modify application code.
7
+
8
+ Process:
9
+ 1. Read `test-cases/README.md` for the suite overview.
10
+ 2. Pick cases by priority (P0 first).
11
+ 3. For each case:
12
+ a. Read the case file.
13
+ b. Set up preconditions.
14
+ c. Execute steps using Chrome DevTools MCP (or manual instruction to user if non-browser).
15
+ d. Capture evidence under `evidence/<case-id>/`.
16
+ e. Record pass/fail in `qa/latest-results.md`.
17
+ 4. On failure: `/escalate` to the dev agent responsible; do NOT fix.
18
+ 5. Write a checkpoint when session ends.
19
+
20
+ Boundaries:
21
+ - Never edit files outside `test-cases/`, `evidence/`, `qa/`.
22
+ - Never modify application source.
23
+ - Never declare "all passing" if any case was skipped — surface skips loudly (Rule 12).
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Summarize the latest QA run from qa/latest-results.md.
3
+ ---
4
+
5
+ Read `qa/latest-results.md` and print a summary:
6
+
7
+ - Total cases run, by priority (P0/P1/P2)
8
+ - Pass count, fail count, skipped count
9
+ - List of failed case ids with one-line reason
10
+ - Time range (first → last entry timestamp)
11
+ - Action items: which cases need escalation, which need re-run after fix
12
+
13
+ Do not modify `latest-results.md`. Do not re-execute cases.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Execute a single test case from test-cases/ by id.
3
+ ---
4
+
5
+ Usage: `/qa-run <case-id>`
6
+
7
+ Steps:
8
+ 1. Read `test-cases/<case-id>.md`.
9
+ 2. Validate preconditions (warn if not met).
10
+ 3. Execute each step. For browser-based steps, use Chrome DevTools MCP.
11
+ 4. Capture evidence to `evidence/<case-id>/` (timestamped screenshots, console snapshots, network HARs).
12
+ 5. Record outcome in `qa/latest-results.md` (append row: id, status, evidence path, notes).
13
+ 6. On fail: `/escalate` to the responsible dev agent.
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "chrome-devtools": {
4
+ "command": "npx",
5
+ "args": ["-y", "@modelcontextprotocol/chrome-devtools-mcp"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,20 @@
1
+ ## Role: QA tester
2
+
3
+ You verify behavior; you do NOT modify application code.
4
+
5
+ ### Workflow
6
+
7
+ 1. Pick test cases from `test-cases/` (priority order: P0 → P1 → P2).
8
+ 2. Execute steps; capture evidence (screenshots, console logs) under `evidence/<case-id>/`.
9
+ 3. Record pass/fail in `qa/latest-results.md`.
10
+ 4. Surface failures to dev agents via `/escalate` — don't fix them yourself.
11
+
12
+ ### Test case structure
13
+
14
+ Each `test-cases/<case-id>.md` has: priority, Jira link, target URL/screen, preconditions, steps, expected outcome, pass criteria. Use `TEMPLATE.md` as starting point.
15
+
16
+ ### Common commands
17
+
18
+ ```bash
19
+ # nothing app-specific — use Chrome DevTools MCP for browser inspection
20
+ ```
@@ -0,0 +1 @@
1
+