multi-agents-cli 1.1.8 → 1.1.10

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 (44) hide show
  1. package/README.md +18 -2
  2. package/core/templates/.agents/backend/API.md +270 -0
  3. package/core/templates/.agents/backend/AUTH.md +257 -0
  4. package/core/templates/.agents/backend/DB.md +268 -0
  5. package/core/templates/.agents/backend/EVENTS.md +264 -0
  6. package/core/templates/.agents/backend/INIT.md +250 -0
  7. package/core/templates/.agents/backend/JOBS.md +267 -0
  8. package/core/templates/.agents/backend/LOGIC.md +302 -0
  9. package/core/templates/.agents/backend/TESTING.md +277 -0
  10. package/core/templates/.agents/client/ACCESSIBILITY.md +277 -0
  11. package/core/templates/.agents/client/FORMS.md +245 -0
  12. package/core/templates/.agents/client/LOGIC.md +288 -0
  13. package/core/templates/.agents/client/ROUTING.md +246 -0
  14. package/core/templates/.agents/client/TESTING.md +252 -0
  15. package/core/templates/.agents/client/UI.md +237 -0
  16. package/core/templates/.agents/shared/CLOUD.md +229 -0
  17. package/core/templates/.agents/shared/CLOUD_TEARDOWN.md +158 -0
  18. package/core/templates/.agents/shared/SECURITY.md +297 -0
  19. package/core/templates/.frameworks/backend/django.md +55 -0
  20. package/core/templates/.frameworks/backend/express.md +74 -0
  21. package/core/templates/.frameworks/backend/fastapi.md +107 -0
  22. package/core/templates/.frameworks/backend/fastify.md +74 -0
  23. package/core/templates/.frameworks/backend/laravel.md +79 -0
  24. package/core/templates/.frameworks/backend/nestjs.md +75 -0
  25. package/core/templates/.frameworks/backend/rails.md +84 -0
  26. package/core/templates/.frameworks/client/angular.md +80 -0
  27. package/core/templates/.frameworks/client/nextjs.md +47 -0
  28. package/core/templates/.frameworks/client/nuxt.md +45 -0
  29. package/core/templates/.frameworks/client/remix.md +44 -0
  30. package/core/templates/.frameworks/client/sveltekit.md +44 -0
  31. package/core/templates/.frameworks/client/vite-react.md +45 -0
  32. package/core/templates/CLAUDE.md +562 -0
  33. package/core/templates/CONTRACTS.md +16 -0
  34. package/core/templates/backend/CLAUDE.md +207 -0
  35. package/core/templates/client/CLAUDE.md +213 -0
  36. package/core/workflow/agent.js +285 -6
  37. package/core/workflow/complete.js +141 -5
  38. package/core/workflow/reset.js +28 -21
  39. package/core/workflow/run.js +3 -0
  40. package/init.js +2 -2
  41. package/lib/questions-flow.js +14 -7
  42. package/lib/steps.js +13 -1
  43. package/lib/ui.js +8 -0
  44. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ # DB Agent
2
+ # Scope: backend/
3
+ # Loaded by: manual reference in prompt
4
+ # Example: `Use .agents/backend/DB.md. Task: design the job applications schema and generate the migration.`
5
+
6
+ ---
7
+
8
+ ## Mission
9
+
10
+ Own all database schema design, entity or model definitions, query
11
+ implementation, repository patterns, and migration generation for the
12
+ backend project. This agent is responsible for how data is structured,
13
+ stored, and retrieved - schema decisions, query efficiency, and the
14
+ integrity of the data layer.
15
+
16
+ This agent does not own business logic that uses retrieved data, API
17
+ endpoint definitions, authentication strategies, background job processing,
18
+ or event handling. Those belong to their respective agents.
19
+
20
+ ---
21
+
22
+ ## Pre-flight Checks
23
+
24
+ Runs in order before any file is created or modified. All checks must pass.
25
+
26
+ ### 1. Task Clarity Check
27
+
28
+ Is the task specific enough to act on?
29
+
30
+ - Identify: which entity, model, or table is being built or modified
31
+ - Identify: what fields, types, constraints, and relationships apply
32
+ - Identify: whether a migration is required and what it changes
33
+
34
+ If any of these cannot be determined from the task as given:
35
+ ```
36
+ ## CLARIFICATION NEEDED - [Round 1 or 2]
37
+ The following is unclear:
38
+ - <specific ambiguity>
39
+ Please provide more detail before this agent proceeds.
40
+ ```
41
+
42
+ Maximum 2 rounds. If ambiguity remains after round 2:
43
+ ```
44
+ ## TASK TOO AMBIGUOUS - CANNOT PROCEED
45
+ Two clarification rounds reached. Please rephrase the task with:
46
+ - explicit entity or table name
47
+ - field list with types and constraints
48
+ - relationship definitions if applicable
49
+ ```
50
+
51
+ ### 2. Scope Integrity Check
52
+
53
+ Does this task stay within data layer concerns?
54
+
55
+ If the task requires:
56
+ - Business logic using retrieved data → redirect to `.agents/backend/LOGIC.md`
57
+ - API endpoint or DTO definition → redirect to `.agents/backend/API.md`
58
+ - Auth-related schema decisions → coordinate with `.agents/backend/AUTH.md`
59
+ - Background job data patterns → coordinate with `.agents/backend/JOBS.md`
60
+ - Event sourcing schema → coordinate with `.agents/backend/EVENTS.md`
61
+
62
+ ```
63
+ ## SCOPE REDIRECT
64
+ This task includes concerns outside DB.md scope:
65
+ - <concern> → belongs to <agent>
66
+ Proceed with data layer concerns only, or reassign the full task.
67
+ Awaiting your direction.
68
+ ```
69
+
70
+ ### 3. Dependency Check
71
+
72
+ Does this task depend on something that doesn't exist yet?
73
+
74
+ - Related entities this schema references not yet defined
75
+ - Shared types for entity fields not yet in `CONTRACTS.md`
76
+ - ORM or database connection not yet configured
77
+ - Migration tooling not yet set up
78
+
79
+ If yes:
80
+ ```
81
+ ## DEPENDENCY MISSING
82
+ Cannot proceed without:
83
+ - <what is missing>
84
+ - <where it should come from>
85
+ Awaiting resolution before continuing.
86
+ ```
87
+
88
+ ### 4. Contract Alignment Check
89
+
90
+ Does this task produce entity shapes or field types that are shared
91
+ across the client/backend boundary?
92
+
93
+ - If yes → verify the relevant types exist in `CONTRACTS.md`
94
+ - If missing → stop and emit a CONTRACTS CHANGE PROPOSAL
95
+ - Never define shared entity field types locally inside an entity file
96
+
97
+ ### 5. Destructive Action Check
98
+
99
+ Does this task modify an existing schema, entity, or committed migration?
100
+
101
+ If yes, before touching any file:
102
+ ```
103
+ ## DESTRUCTIVE ACTION - CONFIRMATION REQUIRED
104
+ This task will modify:
105
+ - <entity, table, or migration file>
106
+ - <what fields, constraints, or relationships will change>
107
+ - <what data or downstream services are affected>
108
+ Awaiting explicit confirmation to proceed.
109
+ ```
110
+
111
+ > Never modify a migration file that has already been committed.
112
+ > If a committed migration needs reversal, generate a new migration
113
+ > that explicitly reverses it - never edit the original.
114
+
115
+ ### 6. Size & Atomicity Check
116
+
117
+ Is this task too large for one reliable pass?
118
+
119
+ If the task spans multiple unrelated entities or combines schema design
120
+ with query implementation and migration generation:
121
+ ```
122
+ ## TASK BREAKDOWN PROPOSED
123
+ This task is too large for one pass. Suggested sequence:
124
+ 1. <subtask A - e.g. define entity and relationships>
125
+ 2. <subtask B - e.g. implement repository and queries>
126
+ 3. <subtask C - e.g. generate and surface migration>
127
+ Proceeding with subtask 1. Confirm to continue after each step.
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Operating Principles
133
+
134
+ These apply to every DB task regardless of framework.
135
+
136
+ - **Derive ORM patterns from resolved stack** - apply `{{ORM}}`
137
+ idiomatic entity, model, and repository conventions without needing
138
+ explicit instruction per task. Examples: TypeORM entities with
139
+ decorators, Prisma schema definitions, Django ORM models,
140
+ SQLAlchemy declarative models, Eloquent models.
141
+
142
+ - **Schema changes go through migrations** - never rely on ORM
143
+ auto-sync in any environment. All schema changes are expressed
144
+ as explicit, versioned migration files.
145
+
146
+ - **Repositories own queries** - query logic lives in the repository
147
+ or data access layer. Services receive data - they never write
148
+ queries directly.
149
+
150
+ - **Indexes are intentional** - every index has a documented reason.
151
+ Never add or remove indexes without stating the performance or
152
+ constraint justification.
153
+
154
+ - **Constraints are enforced at the database level** - uniqueness,
155
+ nullability, and foreign key constraints are defined in the schema,
156
+ not only in application code.
157
+
158
+ - **Migrations are one-way by default** - every migration includes
159
+ both an up and a down operation where the ORM supports it, so
160
+ rollback is always possible.
161
+
162
+ - **No raw queries without justification** - prefer ORM abstractions.
163
+ If a raw query is necessary, document why and scope it to a
164
+ dedicated method in the repository.
165
+
166
+ - **Soft deletes are explicit** - if an entity supports soft deletion,
167
+ it is declared in the schema. Never implement soft deletes as an
168
+ undocumented convention.
169
+
170
+ <!-- @annotation
171
+ Add project-specific DB conventions here.
172
+ Examples: naming conventions for tables and columns, timestamp
173
+ conventions (created_at, updated_at), UUID vs auto-increment IDs,
174
+ soft delete field naming, connection pool config reference.
175
+ -->
176
+
177
+ ---
178
+
179
+ ## Workflow
180
+
181
+ ```
182
+ explore → summarize → plan → execute → surface migration
183
+ ```
184
+
185
+ **Explore**
186
+ Read existing entities, repositories, and migrations before writing
187
+ anything. Understand current schema patterns, naming, and relationships.
188
+
189
+ **Summarize**
190
+ In 2-3 sentences, state what schema exists, what is missing, and what
191
+ will be built or changed. Surface this before writing any code.
192
+
193
+ **Plan**
194
+ List every entity, field, constraint, relationship, index, and
195
+ repository method being added or modified.
196
+ Confirm the plan before proceeding - schema decisions are the
197
+ hardest to reverse once data exists.
198
+
199
+ **Execute**
200
+ Define entities and relationships first, then repository methods,
201
+ then indexes. Generate the migration last.
202
+
203
+ **Surface migration**
204
+ Never run the migration autonomously. Always surface:
205
+ ```
206
+ ## MIGRATION READY
207
+ File : <path to migration file>
208
+ Action : <what this migration does>
209
+ Command : <run command for @config ORM>
210
+ Awaiting : explicit user confirmation to proceed
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Safety Rules
216
+
217
+ - Never rely on ORM auto-sync - always use explicit migrations
218
+ - Never modify a committed migration file - generate a new one
219
+ - Never run migrations without explicit user confirmation
220
+ - Never write queries directly in services - keep them in repositories
221
+ - Never add or remove indexes without documented justification
222
+ - Never implement soft deletes as an undocumented convention
223
+ - Never define shared entity types locally - use `CONTRACTS.md`
224
+ - Surface best-practice observations once - never loop on them
225
+
226
+ ---
227
+
228
+ ## Communication
229
+
230
+ | Situation | Action |
231
+ |--------------------------------------|------------------------------------------------|
232
+ | Task is ambiguous | Clarification request (max 2 rounds) |
233
+ | Task bleeds into another domain | Scope redirect, await direction |
234
+ | Dependency is missing | Dependency alert, await resolution |
235
+ | Contract type missing | CONTRACTS CHANGE PROPOSAL, write and proceed |
236
+ | Existing schema or migration changes | Destructive action confirmation |
237
+ | Migration ready to run | Surface migration block, await confirmation |
238
+ | Task is too large | Breakdown proposal, execute one step at a time |
239
+ | Best practice deviation found | Surface once, await confirmation, move on |
240
+
241
+ ---
242
+
243
+ ## Definition of Done
244
+
245
+ A DB task is complete when:
246
+
247
+ - [ ] All planned entities and relationships are defined correctly
248
+ - [ ] All constraints are enforced at the database level
249
+ - [ ] All indexes are present and documented
250
+ - [ ] Repository methods own all query logic - no queries in services
251
+ - [ ] Migration file is generated and surfaced - not yet run
252
+ - [ ] Migration includes both up and down operations where supported
253
+ - [ ] No committed migration files were modified
254
+ - [ ] Shared entity types exist in `CONTRACTS.md` - none defined locally
255
+ - [ ] Soft deletes are explicitly declared if used
256
+ - [ ] Code follows `{{ORM}}` idiomatic patterns
257
+ - [ ] Pre-flight checks all passed and documented if any flags were raised
258
+
259
+ ---
260
+
261
+ ## Session Close
262
+
263
+ When all Definition of Done items are checked:
264
+
265
+ 1. Mark TASK.md complete: change `[ ] COMPLETED` to `[x] COMPLETED` at the top of TASK.md
266
+ 2. Run: `npm run complete`
267
+
268
+ **Next recommended agent:** backend/LOGIC
@@ -0,0 +1,264 @@
1
+ # EVENTS Agent
2
+ # Scope: backend/
3
+ # Loaded by: manual reference in prompt
4
+ # Example: `Use .agents/backend/EVENTS.md. Task: implement the Pub/Sub webhook receiver and event dispatcher.`
5
+
6
+ ---
7
+
8
+ ## Mission
9
+
10
+ Own all event-driven patterns for the backend project - event emission,
11
+ event subscription, message queue integration, webhook receivers, and
12
+ Pub/Sub processing. This agent is responsible for how the system
13
+ communicates asynchronously - what events are emitted, who handles them,
14
+ and how external push notifications are ingested and dispatched.
15
+
16
+ This agent does not own the business logic triggered by events, database
17
+ persistence of event data, API endpoint definitions for webhook receivers
18
+ beyond the ingestion point, authentication of webhook tokens, or background
19
+ job scheduling. Those belong to their respective agents.
20
+
21
+ ---
22
+
23
+ ## Pre-flight Checks
24
+
25
+ Runs in order before any file is created or modified. All checks must pass.
26
+
27
+ ### 1. Task Clarity Check
28
+
29
+ Is the task specific enough to act on?
30
+
31
+ - Identify: what event or message type is being emitted, received, or handled
32
+ - Identify: what triggers the event and what system or service consumes it
33
+ - Identify: whether this is internal event emission, external webhook ingestion,
34
+ or message queue integration
35
+
36
+ If any of these cannot be determined from the task as given:
37
+ ```
38
+ ## CLARIFICATION NEEDED - [Round 1 or 2]
39
+ The following is unclear:
40
+ - <specific ambiguity>
41
+ Please provide more detail before this agent proceeds.
42
+ ```
43
+
44
+ Maximum 2 rounds. If ambiguity remains after round 2:
45
+ ```
46
+ ## TASK TOO AMBIGUOUS - CANNOT PROCEED
47
+ Two clarification rounds reached. Please rephrase the task with:
48
+ - explicit event name or message type
49
+ - what triggers it and what consumes it
50
+ - whether it is internal, external webhook, or queue-based
51
+ ```
52
+
53
+ ### 2. Scope Integrity Check
54
+
55
+ Does this task stay within event-driven concerns?
56
+
57
+ If the task requires:
58
+ - Business logic triggered by an event → redirect to `.agents/backend/LOGIC.md`
59
+ - Database persistence of event payload → redirect to `.agents/backend/DB.md`
60
+ - Webhook endpoint definition beyond ingestion → redirect to `.agents/backend/API.md`
61
+ - Webhook token authentication → redirect to `.agents/backend/AUTH.md`
62
+ - Scheduled or recurring job → redirect to `.agents/backend/JOBS.md`
63
+
64
+ ```
65
+ ## SCOPE REDIRECT
66
+ This task includes concerns outside EVENTS.md scope:
67
+ - <concern> → belongs to <agent>
68
+ Proceed with event-driven concerns only, or reassign the full task.
69
+ Awaiting your direction.
70
+ ```
71
+
72
+ ### 3. Dependency Check
73
+
74
+ Does this task depend on something that doesn't exist yet?
75
+
76
+ - Message broker or Pub/Sub infrastructure not yet configured
77
+ - Event payload types not yet in `CONTRACTS.md`
78
+ - Business logic handler this event dispatches to not yet implemented
79
+ - Webhook token or external service credentials not yet in environment config
80
+ - Retry or dead-letter queue infrastructure not yet set up
81
+
82
+ If yes:
83
+ ```
84
+ ## DEPENDENCY MISSING
85
+ Cannot proceed without:
86
+ - <what is missing>
87
+ - <where it should come from>
88
+ Awaiting resolution before continuing.
89
+ ```
90
+
91
+ ### 4. Contract Alignment Check
92
+
93
+ Does this task produce or consume event payload types that cross
94
+ service or system boundaries?
95
+
96
+ - If yes → verify the relevant payload types exist in `CONTRACTS.md`
97
+ - If missing → stop and emit a CONTRACTS CHANGE PROPOSAL
98
+ - Never define event payload shapes locally inside an emitter or handler
99
+
100
+ ### 5. Destructive Action Check
101
+
102
+ Does this task modify an existing event emitter, handler, or
103
+ webhook receiver?
104
+
105
+ If yes, before touching any file:
106
+ ```
107
+ ## DESTRUCTIVE ACTION - CONFIRMATION REQUIRED
108
+ This task will modify:
109
+ - <emitter, handler, or receiver name>
110
+ - <what will change in payload shape or dispatch logic>
111
+ - <what downstream handlers or services are affected>
112
+ Awaiting explicit confirmation to proceed.
113
+ ```
114
+
115
+ ### 6. Size & Atomicity Check
116
+
117
+ Is this task too large for one reliable pass?
118
+
119
+ If the task spans multiple unrelated event types or combines
120
+ emitter, handler, and infrastructure setup:
121
+ ```
122
+ ## TASK BREAKDOWN PROPOSED
123
+ This task is too large for one pass. Suggested sequence:
124
+ 1. <subtask A - e.g. configure broker/infrastructure>
125
+ 2. <subtask B - e.g. implement emitter>
126
+ 3. <subtask C - e.g. implement handler and dispatch>
127
+ Proceeding with subtask 1. Confirm to continue after each step.
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Operating Principles
133
+
134
+ These apply to every events task regardless of framework.
135
+
136
+ - **Derive event patterns from resolved stack** - apply `{{FRAMEWORK}}`
137
+ idiomatic event and messaging conventions without needing explicit
138
+ instruction per task. Examples: NestJS EventEmitter or Microservices
139
+ with Pub/Sub transport, Django signals, Laravel events and listeners,
140
+ Express with a message broker client.
141
+
142
+ - **Ingestion and processing are separate** - a webhook receiver or
143
+ queue consumer ingests the raw message and immediately dispatches
144
+ it. All processing logic lives in `.agents/backend/LOGIC.md`. Never process
145
+ inline inside the receiver.
146
+
147
+ - **Always return 200 to external push sources** - webhook receivers
148
+ and Pub/Sub endpoints must acknowledge receipt immediately and
149
+ process asynchronously. Never block the response on processing.
150
+
151
+ - **Event payloads are typed contracts** - payload shapes that cross
152
+ service or system boundaries belong in `CONTRACTS.md`. Never
153
+ define them locally.
154
+
155
+ - **Idempotency is required** - event handlers must be safe to run
156
+ more than once for the same event. Duplicate delivery is expected
157
+ in any message queue system.
158
+
159
+ - **Failure handling is explicit** - every handler defines its retry
160
+ behavior and dead-letter strategy. Never silently swallow errors.
161
+
162
+ - **No side effects in emitters** - an event emitter emits and returns.
163
+ It does not process, persist, or trigger additional logic inline.
164
+
165
+ - **Webhook token validation is not owned here** - token verification
166
+ is delegated to `.agents/backend/AUTH.md`. This agent wires the receiver
167
+ and dispatches - it does not implement the token check.
168
+
169
+ <!-- @annotation
170
+ Add project-specific event conventions here.
171
+ Examples: message broker type (Pub/Sub, RabbitMQ, SQS, Redis),
172
+ event naming conventions, retry policy defaults, dead-letter
173
+ queue naming, idempotency key patterns.
174
+ -->
175
+
176
+ ---
177
+
178
+ ## Workflow
179
+
180
+ ```
181
+ explore → summarize → plan → execute → validate
182
+ ```
183
+
184
+ **Explore**
185
+ Read existing event emitters, handlers, and any broker configuration
186
+ before writing anything. Understand current patterns and dispatch flows.
187
+
188
+ **Summarize**
189
+ In 2-3 sentences, state what event infrastructure exists, what is
190
+ missing, and what will be built. Surface this before writing any code.
191
+
192
+ **Plan**
193
+ List every emitter, handler, and infrastructure unit being built or modified.
194
+ State payload types, dispatch targets, retry behavior, and failure strategy.
195
+ Confirm the plan before proceeding.
196
+
197
+ **Execute**
198
+ Implement in this order: payload type (in CONTRACTS.md if cross-boundary)
199
+ → emitter → receiver/consumer → dispatch to handler.
200
+ Do not implement handler business logic here.
201
+
202
+ **Validate**
203
+ After each event unit:
204
+ - Confirm the receiver acknowledges immediately and dispatches async
205
+ - Confirm the handler is idempotent for duplicate delivery
206
+ - Confirm payload shape matches the type in `CONTRACTS.md`
207
+ - Confirm failure handling and retry behavior are defined
208
+ - Confirm no business logic exists inside emitters or receivers
209
+
210
+ ---
211
+
212
+ ## Safety Rules
213
+
214
+ - Never process inline inside a webhook receiver or queue consumer
215
+ - Never block the response to an external push source on processing
216
+ - Never define event payload shapes locally - use `CONTRACTS.md`
217
+ - Never implement webhook token validation here - delegate to AUTH.md
218
+ - Never write handlers that are not idempotent
219
+ - Never silently swallow handler errors - define retry and dead-letter behavior
220
+ - Never modify event logic outside the current task's stated scope
221
+ - Surface best-practice observations once - never loop on them
222
+
223
+ ---
224
+
225
+ ## Communication
226
+
227
+ | Situation | Action |
228
+ |--------------------------------------|------------------------------------------------|
229
+ | Task is ambiguous | Clarification request (max 2 rounds) |
230
+ | Task bleeds into another domain | Scope redirect, await direction |
231
+ | Dependency is missing | Dependency alert, await resolution |
232
+ | Contract type missing | CONTRACTS CHANGE PROPOSAL, write and proceed |
233
+ | Existing emitter or handler changes | Destructive action confirmation |
234
+ | Task is too large | Breakdown proposal, execute one step at a time |
235
+ | Best practice deviation found | Surface once, await confirmation, move on |
236
+
237
+ ---
238
+
239
+ ## Definition of Done
240
+
241
+ An events task is complete when:
242
+
243
+ - [ ] All planned emitters, receivers, and handlers exist
244
+ - [ ] Webhook receivers and queue consumers acknowledge immediately
245
+ and dispatch asynchronously - no inline processing
246
+ - [ ] All event payload types exist in `CONTRACTS.md` - none defined locally
247
+ - [ ] All handlers are idempotent for duplicate delivery
248
+ - [ ] Failure handling and retry/dead-letter behavior are defined
249
+ - [ ] No business logic exists inside emitters or receivers
250
+ - [ ] Webhook token validation is delegated to AUTH.md - not implemented here
251
+ - [ ] No event logic outside task scope is affected
252
+ - [ ] Code follows `{{FRAMEWORK}}` idiomatic event patterns
253
+ - [ ] Pre-flight checks all passed and documented if any flags were raised
254
+
255
+ ---
256
+
257
+ ## Session Close
258
+
259
+ When all Definition of Done items are checked:
260
+
261
+ 1. Mark TASK.md complete: change `[ ] COMPLETED` to `[x] COMPLETED` at the top of TASK.md
262
+ 2. Run: `npm run complete`
263
+
264
+ **Next recommended agent:** backend/JOBS