@ludecker/aaac 1.1.1 → 1.1.3
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 +5 -3
- package/package.json +1 -1
- package/src/cli.mjs +10 -9
- package/src/generators/generate-commands.mjs +17 -9
- package/src/run-engine/advance-phase.mjs +2 -2
- package/src/run-engine/gate-write.mjs +14 -2
- package/src/run-engine/init-run.mjs +41 -0
- package/src/run-engine/lib.mjs +33 -0
- package/src/run-engine/record-task.mjs +7 -1
- package/src/run-engine/stop-check.mjs +7 -1
- package/src/run-engine/verify-website-build.mjs +67 -30
- package/templates/cursor/aaac/capabilities/registry.json +14 -16
- package/templates/cursor/aaac/graph.project.yaml +4 -204
- package/templates/cursor/aaac/ontology.md +17 -32
- package/templates/cursor/aaac/project.config.json +4 -1
- package/templates/cursor/aaac/run/schema.json +3 -1
- package/templates/cursor/aaac/scripts/run-engine/advance-phase.mjs +2 -2
- package/templates/cursor/aaac/scripts/run-engine/gate-write.mjs +14 -2
- package/templates/cursor/aaac/scripts/run-engine/init-run.mjs +41 -0
- package/templates/cursor/aaac/scripts/run-engine/lib.mjs +33 -0
- package/templates/cursor/aaac/scripts/run-engine/record-task.mjs +7 -1
- package/templates/cursor/aaac/scripts/run-engine/stop-check.mjs +7 -1
- package/templates/cursor/aaac/scripts/run-engine/verify-website-build.mjs +67 -30
- package/templates/cursor/agents/playwright-check-run.md +8 -26
- package/templates/cursor/agents/release-git.md +2 -2
- package/templates/cursor/agents/unit-test-run.md +3 -7
- package/templates/cursor/rules/aaac-enforcement.mdc +2 -2
- package/templates/cursor/skills/shared/governance/implementation/SKILL.md +25 -396
- package/templates/cursor/skills/shared/testing/SKILL.md +2 -2
- package/templates/cursor/skills/shared/verbs/check/orchestrator/SKILL.md +1 -1
- package/templates/cursor/skills/shared/verification/SKILL.md +2 -2
- package/templates/docs/agentic_architecture.md +91 -166
- package/templates/docs/architecture.md +44 -2
- package/templates/docs/master_rules.md +26 -2
|
@@ -23,75 +23,85 @@ Ask: *What do I want?* Then type:
|
|
|
23
23
|
| Part | Meaning | Example |
|
|
24
24
|
|------|---------|---------|
|
|
25
25
|
| Command | Kind of work | `update-module` |
|
|
26
|
-
| Domain | Which area | `
|
|
27
|
-
| Intent | Goal in plain language | `"Add
|
|
26
|
+
| Domain | Which area (optional until you add domains) | `payments` |
|
|
27
|
+
| Intent | Goal in plain language | `"Add idempotency key to webhook handler"` |
|
|
28
28
|
|
|
29
|
-
###
|
|
29
|
+
### Command matrix (ships with every install)
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|------|-------|
|
|
33
|
-
| `cms` | `apps/website` — public site, CMS admin, content queries |
|
|
34
|
-
| `ui` | `packages/ui` — design system, tokens, components |
|
|
35
|
-
| `database` | `supabase/migrations` — schema, RLS, type mirrors |
|
|
36
|
-
| `aaac` | `packages/aaac` — `@ludecker/aaac` npm package, CLI, templates, generators |
|
|
31
|
+
AAAC generates ~130 commands from **8 verbs × 12 objects**:
|
|
37
32
|
|
|
38
|
-
|
|
33
|
+
| Verb | Meaning | Example |
|
|
34
|
+
|------|---------|---------|
|
|
35
|
+
| `create` | Add something new | `/create-module api "Add rate limiter"` |
|
|
36
|
+
| `update` | Change existing | `/update-component ui "Extract Button variants"` |
|
|
37
|
+
| `fix` | Repair broken behavior | `/fix-module auth "Session expires on refresh"` |
|
|
38
|
+
| `review` | Readonly quality check | `/review-architecture system "Check layer boundaries"` |
|
|
39
|
+
| `check` | Readonly capability trace | `/check-module api "Can we add OAuth?"` |
|
|
40
|
+
| `test` | Run verification | `/test-module api "Contract tests for webhooks"` |
|
|
41
|
+
| `release` | Ship to production | `/release-app production "Ship v2.1.0"` |
|
|
42
|
+
| `remove` | Delete safely | `/remove-module legacy "Drop v1 export path"` |
|
|
43
|
+
|
|
44
|
+
**Exception commands** (dedicated orchestrators):
|
|
39
45
|
|
|
40
46
|
| Command | When to use |
|
|
41
47
|
|---------|-------------|
|
|
42
|
-
| `update-module` | Change an existing bounded module (`cms`, `ui`, `database`, `aaac`) |
|
|
43
48
|
| `update-doc` | Update architecture documentation (no code) |
|
|
44
|
-
| `update-design` | UI / design-system changes (`cms` or `ui`) |
|
|
45
|
-
| `create-feature` | Add a new capability in a domain |
|
|
46
|
-
| `fix-module` | Fix broken module — **requires domain**; full fix swarm |
|
|
47
|
-
| `fix-bug` | Same pipeline as `fix-module`; domain optional (`module-fix`, `bug-fix` aliases) |
|
|
48
49
|
| `review-module` | Quality/architecture review (no code) |
|
|
49
|
-
| `review-incident` | Investigate
|
|
50
|
-
| `test-
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
50
|
+
| `review-incident` | Investigate production or deploy issue |
|
|
51
|
+
| `test-function` | Test a user journey end-to-end |
|
|
52
|
+
| `release-app` | Phased release swarm (git → deploy) |
|
|
53
|
+
| `fix-module` / `fix-bug` | Full fix swarm — domain optional until you add resolvers |
|
|
54
|
+
|
|
55
|
+
### Out of the box — no setup after install
|
|
56
|
+
|
|
57
|
+
Install copies everything you need. Open the project in Cursor and run commands.
|
|
58
|
+
|
|
59
|
+
- ~130 slash commands and the full shared pipeline (discover → plan → execute → verify → report)
|
|
60
|
+
- Generic `master_rules.md` and `architecture.md` in your docs folder — **already filled in**, not empty stubs
|
|
61
|
+
- Hook scripts and Run lifecycle under `.cursor/`
|
|
62
|
+
- Generic capability registry (shared skills only)
|
|
63
|
+
- **No** project domains required; **no** app build gate until you opt in (`verify.enabled: false` in `project.config.json`)
|
|
64
|
+
|
|
65
|
+
You do **not** need to enable hooks manually, write rules, add domains, or configure a stack before your first command.
|
|
66
|
+
|
|
67
|
+
### Optional — when you want more (any stack)
|
|
68
|
+
|
|
69
|
+
1. Replace or extend `docs/master_rules.md` and `docs/architecture.md` with team-specific detail
|
|
70
|
+
2. Add `domains/<slug>/update/` (orchestrator + inventory) — see Part 2
|
|
71
|
+
3. Extend `graph.project.yaml` with resolvers and project skills
|
|
72
|
+
4. Enable verify in `project.config.json` when you have a web app to gate:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"verify": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"app_root": "apps/web",
|
|
79
|
+
"index_html": "apps/web/index.html",
|
|
80
|
+
"build": { "command": "pnpm", "args": ["--filter", "web", "build"] }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
62
84
|
|
|
63
|
-
### Examples
|
|
85
|
+
### Examples (generic)
|
|
64
86
|
|
|
65
87
|
```text
|
|
66
|
-
/
|
|
67
|
-
/update-
|
|
68
|
-
/
|
|
69
|
-
/
|
|
70
|
-
/
|
|
71
|
-
/
|
|
72
|
-
/
|
|
73
|
-
/update-doc architecture "Document AAAC agent topology"
|
|
74
|
-
/review-module cms "Check size budgets and layer boundaries"
|
|
75
|
-
/test-module cms "Run full module verification"
|
|
76
|
-
/release-app production "Ship with typecheck"
|
|
77
|
-
/write-article guide, How to use Commands in Cursor
|
|
78
|
-
/launch-ludecker
|
|
88
|
+
/create-module billing "Add invoice PDF export"
|
|
89
|
+
/update-component ui "Tokenize spacing scale"
|
|
90
|
+
/fix-module api "Webhook signature validation fails on chunked bodies"
|
|
91
|
+
/review-module billing "Check SSOT for tax rates"
|
|
92
|
+
/test-function checkout "Guest can complete purchase"
|
|
93
|
+
/release-app staging "Deploy with migration"
|
|
94
|
+
/update-doc architecture "Document event bus boundaries"
|
|
79
95
|
```
|
|
80
96
|
|
|
81
|
-
### Deprecated (still work one release)
|
|
82
|
-
|
|
83
|
-
| Old | New |
|
|
84
|
-
|-----|-----|
|
|
85
|
-
| `/ship-ludecker` | `/release-app` |
|
|
86
|
-
| `/module-update` | `/update-module` |
|
|
87
|
-
| `/architecture` | `/update-doc` |
|
|
88
|
-
| `/swarm-check` | `/review-incident` or `/fix-bug` |
|
|
89
|
-
| `/refactor` | `/review-module` |
|
|
90
|
-
|
|
91
97
|
### What you should not need to know
|
|
92
98
|
|
|
93
99
|
skill, agent, subagent, tool, workflow, graph, orchestrator — infrastructure only.
|
|
94
100
|
|
|
101
|
+
### Reference implementation
|
|
102
|
+
|
|
103
|
+
[Lüdecker](https://ludecker.com) dogfoods AAAC with `cms`, `ui`, `database`, and `aaac` domains. That overlay lives in the Lüdecker repo — not in the generic npm template.
|
|
104
|
+
|
|
95
105
|
---
|
|
96
106
|
|
|
97
107
|
## Part 2 — Appendix (maintainers)
|
|
@@ -120,7 +130,7 @@ Knowledge Layer → docs/
|
|
|
120
130
|
| Lifecycle | **Work** phase configuration |
|
|
121
131
|
| Gate stacks | **Approval** checkpoints |
|
|
122
132
|
| Run | Primary execution object; decisions, log, checkpoints |
|
|
123
|
-
| Domain orchestrators | Domain coordination |
|
|
133
|
+
| Domain orchestrators | Domain coordination (you add these) |
|
|
124
134
|
| Shared pipeline skills | Phase execution |
|
|
125
135
|
| Capability registry | object → capability → provider |
|
|
126
136
|
| Object skills | Skill-type providers |
|
|
@@ -139,7 +149,7 @@ Intent → Command → Execution Graph → Result
|
|
|
139
149
|
|
|
140
150
|
**Execution graph** = orchestrator + skills + agents + tools + rules + documentation.
|
|
141
151
|
|
|
142
|
-
**SSOT:** [`.cursor/aaac/graph.yaml`](../.cursor/aaac/graph.yaml)
|
|
152
|
+
**SSOT:** [`.cursor/aaac/graph.yaml`](../.cursor/aaac/graph.yaml) (generated — edit `graph.project.yaml` instead)
|
|
143
153
|
|
|
144
154
|
**Dispatch procedure:** [`.cursor/aaac/dispatch.md`](../.cursor/aaac/dispatch.md)
|
|
145
155
|
|
|
@@ -148,17 +158,32 @@ Intent → Command → Execution Graph → Result
|
|
|
148
158
|
```text
|
|
149
159
|
.cursor/
|
|
150
160
|
commands/ # thin routers (public)
|
|
151
|
-
aaac/
|
|
161
|
+
aaac/
|
|
162
|
+
graph.project.yaml # your overlay (resolvers, orchestrators)
|
|
163
|
+
graph.yaml # generated wiring
|
|
152
164
|
domains/<slug>/update/
|
|
153
165
|
orchestrator/ # what happens
|
|
154
166
|
inventory/ # what exists
|
|
155
|
-
skills/shared/ # framework
|
|
156
|
-
skills
|
|
157
|
-
skills/write-article/ # content swarm
|
|
167
|
+
skills/shared/ # framework pipeline
|
|
168
|
+
skills/<project>/ # your object-capability skills (optional)
|
|
158
169
|
agents/ # subagent prompt specs
|
|
159
170
|
policies/ # rules all skills inherit
|
|
160
171
|
```
|
|
161
172
|
|
|
173
|
+
### Generic kernel vs project overlay
|
|
174
|
+
|
|
175
|
+
| Layer | Location | Owner |
|
|
176
|
+
|-------|----------|-------|
|
|
177
|
+
| Generic kernel | `@ludecker/aaac` npm templates | Package maintainers |
|
|
178
|
+
| Project overlay | `.cursor/aaac/graph.project.yaml`, `ontology.json`, `project.config.json` | Your repo |
|
|
179
|
+
| Domains | `.cursor/domains/<slug>/` | Your repo |
|
|
180
|
+
|
|
181
|
+
Regenerate after ontology or overlay edits:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
npx @ludecker/aaac@latest generate
|
|
185
|
+
```
|
|
186
|
+
|
|
162
187
|
### Orchestrator vs inventory
|
|
163
188
|
|
|
164
189
|
| | Orchestrator | Inventory |
|
|
@@ -166,21 +191,8 @@ Intent → Command → Execution Graph → Result
|
|
|
166
191
|
| Question | What should happen? | What exists? |
|
|
167
192
|
| Updates when | Workflow changes | After every code-changing `update-module` |
|
|
168
193
|
|
|
169
|
-
Inventory documents constraints and file maps. **Dependency reasoning** uses [`.cursor/aaac/dependencies.yaml`](../.cursor/aaac/dependencies.yaml) via the `dependency_graph` phase — not inventory alone.
|
|
170
|
-
|
|
171
194
|
### Execution determinism (create / update / fix)
|
|
172
195
|
|
|
173
|
-
Commands define *what* to load; **work lifecycle** defines phases of work; **gate stacks** define approval checkpoints; the **Run** holds state and observability.
|
|
174
|
-
|
|
175
|
-
**Mature stack (composed on Run):**
|
|
176
|
-
|
|
177
|
-
```text
|
|
178
|
-
Policies → Ontology → Graph → Create Run
|
|
179
|
-
→ Work: Discovery → Investigation → Planning
|
|
180
|
-
→ Gates: Validation → Impact → Deps → Fitness → Rollback
|
|
181
|
-
→ Work: Execute → Verify → Report
|
|
182
|
-
```
|
|
183
|
-
|
|
184
196
|
**Work lifecycles** (SSOT: [`.cursor/aaac/lifecycle/lifecycle.json`](../.cursor/aaac/lifecycle/lifecycle.json)):
|
|
185
197
|
|
|
186
198
|
| Verb | Work | Gate stack |
|
|
@@ -190,125 +202,38 @@ Policies → Ontology → Graph → Create Run
|
|
|
190
202
|
| fix | discover → investigate_swarm → root_cause → plan → execute → verify → report | pre_execute |
|
|
191
203
|
| release | execute → verify → report | release |
|
|
192
204
|
|
|
193
|
-
**Gate stacks** (SSOT: [`.cursor/aaac/governance/gates.json`](../.cursor/aaac/governance/gates.json))
|
|
194
|
-
|
|
195
|
-
Composed runtime in graph `verb_runtime`. Human approval at gate boundaries: Run `status: blocked`, `awaiting_approval: true`.
|
|
196
|
-
|
|
197
|
-
**Confidence gates** — before execute, if any score is below threshold → `STOP, REQUEST CLARIFICATION`:
|
|
198
|
-
|
|
199
|
-
| Dimension | Minimum |
|
|
200
|
-
|-----------|---------|
|
|
201
|
-
| architecture | 0.9 |
|
|
202
|
-
| requirements | 0.8 |
|
|
203
|
-
| scope | 0.8 |
|
|
204
|
-
|
|
205
|
-
**Object maturity** — harder objects require more phases:
|
|
206
|
-
|
|
207
|
-
| Level | Objects (examples) | Extra requirements |
|
|
208
|
-
|-------|-------------------|-------------------|
|
|
209
|
-
| protected | schema, migration, architecture | impact + deps + rollback |
|
|
210
|
-
| critical | module, integration, app | impact + deps |
|
|
211
|
-
| stable | feature, workflow | impact on fix |
|
|
212
|
-
| evolving | component, function | lifecycle only |
|
|
213
|
-
|
|
214
|
-
**Fitness functions** — [`.cursor/aaac/fitness-functions.yaml`](../.cursor/aaac/fitness-functions.yaml): api_first, design_system, accessibility, security, layer_boundaries, performance. Scored `pass` / `warning` / `fail` before execute.
|
|
215
|
-
|
|
216
|
-
Lifecycle reference: [`.cursor/skills/shared/verbs/_lifecycle.md`](../.cursor/skills/shared/verbs/_lifecycle.md)
|
|
217
|
-
|
|
218
|
-
### Fix swarm (`/fix-module`, `/fix-bug`, `fix_mode`)
|
|
219
|
-
|
|
220
|
-
Same rigor as `write-article` research — parallel Task subagents, one message per wave.
|
|
221
|
-
|
|
222
|
-
| Phase | Agent specs | Count |
|
|
223
|
-
|-------|-------------|-------|
|
|
224
|
-
| discover | discovery-inventory, discovery-boundaries, discovery-ssot | 4–6 |
|
|
225
|
-
| investigate_swarm | fix-repro, fix-code-path, fix-recent-changes, fix-test-failures, fix-regression-scope, fix-runtime-evidence, fix-inventory-confirm | **7** |
|
|
226
|
-
| root_cause | parent + optional fix-hypothesis-validate | 0–1 |
|
|
227
|
-
| verify (fix) | fix-repro-verify, unit-test-run, fallow-check-changed | **3** |
|
|
228
|
-
|
|
229
|
-
Skills: [investigation/SKILL.md](../.cursor/skills/shared/investigation/SKILL.md), [testing/SKILL.md](../.cursor/skills/shared/testing/SKILL.md).
|
|
230
|
-
Contracts: [fix-module.yaml](../.cursor/aaac/contracts/commands/fix-module.yaml), [fix-bug.yaml](../.cursor/aaac/contracts/commands/fix-bug.yaml).
|
|
231
|
-
|
|
232
|
-
Resolver: `fix-domain-by-slug` (`fix-module`) and `fix-bug-by-slug` → `cms-fix-bug` | `ui-fix-bug` | `database-fix-bug` | `aaac-fix-bug`.
|
|
205
|
+
**Gate stacks** (SSOT: [`.cursor/aaac/governance/gates.json`](../.cursor/aaac/governance/gates.json))
|
|
233
206
|
|
|
234
207
|
### Capability registry
|
|
235
208
|
|
|
236
209
|
Objects declare capabilities in ontology; providers resolve from [`.cursor/aaac/capabilities/registry.json`](../.cursor/aaac/capabilities/registry.json):
|
|
237
210
|
|
|
238
211
|
```text
|
|
239
|
-
object → capability → provider (skill | mcp
|
|
212
|
+
object → capability → provider (skill | mcp)
|
|
240
213
|
```
|
|
241
214
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
**Capability lifecycle (evidence-driven):** State belongs to the **capability**, not the provider. After each completed Run, `capability-evidence.mjs` aggregates per-run evidence into [`.cursor/aaac/state/capability-stats.json`](../.cursor/aaac/state/capability-stats.json) and evaluates deterministic promotion using [`.cursor/aaac/capabilities/promotion-rules.json`](../.cursor/aaac/capabilities/promotion-rules.json):
|
|
245
|
-
|
|
246
|
-
```text
|
|
247
|
-
experimental → validated → trusted → canonical → deprecated
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
Promotion uses accumulated metrics: `invocations`, `success_rate`, `rollback_rate`, `gate_failure_rate`, `avg_fitness`. `canonical` requires `manual_approval` (human override on the capability entry). Providers contribute evidence; governance changes state.
|
|
215
|
+
Replace generic shared-skill providers with project skills as you mature.
|
|
251
216
|
|
|
252
217
|
### Run (primary execution object)
|
|
253
218
|
|
|
254
219
|
**SSOT:** [`.cursor/aaac/run/schema.json`](../.cursor/aaac/run/schema.json), [`.cursor/aaac/run/RUN.md`](../.cursor/aaac/run/RUN.md)
|
|
255
220
|
|
|
256
|
-
Every command executes within a Run at `state/runs/{run_id}/run.json`:
|
|
257
|
-
|
|
258
|
-
| Field | Purpose |
|
|
259
|
-
|-------|---------|
|
|
260
|
-
| `phase`, `pending`, `completed` | Where we are |
|
|
261
|
-
| `decisions[]` | Why routes and gates |
|
|
262
|
-
| `log[]` | Phase events |
|
|
263
|
-
| `checkpoints[]` | Resume points |
|
|
264
|
-
| `artifacts{}` | Plan, impact, report, … |
|
|
265
|
-
| `awaiting_approval` | Human gate approval |
|
|
266
|
-
|
|
267
|
-
Observability: [`.cursor/aaac/observability/telemetry.yaml`](../.cursor/aaac/observability/telemetry.yaml) — all telemetry on Run, no standalone logs.
|
|
268
|
-
|
|
269
|
-
### Contracts
|
|
270
|
-
|
|
271
|
-
Command contracts: [`.cursor/aaac/contracts/commands/`](../.cursor/aaac/contracts/commands/). Skill contracts: [`.cursor/aaac/contracts/skills/`](../.cursor/aaac/contracts/skills/). Schema: [`.cursor/aaac/contract-schema.md`](../.cursor/aaac/contract-schema.md)
|
|
272
|
-
|
|
273
|
-
### Implementation governance
|
|
274
|
-
|
|
275
|
-
Not a slash command. Loaded by `shared/execution` on code changes:
|
|
276
|
-
|
|
277
|
-
[`.cursor/skills/shared/governance/implementation/SKILL.md`](../.cursor/skills/shared/governance/implementation/SKILL.md)
|
|
278
|
-
|
|
279
221
|
### Adding a product domain
|
|
280
222
|
|
|
281
223
|
1. Add `domains/<slug>/update/` (inventory + orchestrator)
|
|
282
|
-
2. Add
|
|
283
|
-
3. Regenerate: `
|
|
284
|
-
|
|
285
|
-
### Contracts
|
|
224
|
+
2. Add resolver entries to `graph.project.yaml` — **no new command shape**
|
|
225
|
+
3. Regenerate: `npx @ludecker/aaac@latest generate`
|
|
286
226
|
|
|
287
|
-
|
|
227
|
+
See [module-authoring/SKILL.md](../.cursor/skills/shared/module-authoring/SKILL.md).
|
|
288
228
|
|
|
289
229
|
### Release swarm (`release-app`)
|
|
290
230
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
| Wave | Agents | Notes |
|
|
294
|
-
|------|--------|-------|
|
|
295
|
-
| 0 | Preflight typecheck (optional) | From intent, e.g. "with tests" |
|
|
296
|
-
| 1 | `release-git` | **Blocking** — must return `commit_sha` before wave 2 |
|
|
297
|
-
| 2 | `release-render` | Poll `ludecker-website` until `live`; smoke-check `/` |
|
|
298
|
-
|
|
299
|
-
Wiring: `graph.yaml` agents `release-*`. Orchestrator: [platform-release/orchestrator](../.cursor/skills/shared/platform-release/orchestrator/SKILL.md). DAG: [platform-release/SKILL.md](../.cursor/skills/shared/platform-release/SKILL.md).
|
|
231
|
+
Wave 1: `release-git` (blocking). Add deploy agents in your overlay (e.g. `release-render`, `release-k8s`) — generic template ships git only.
|
|
300
232
|
|
|
301
233
|
### Regenerating commands
|
|
302
234
|
|
|
303
235
|
```bash
|
|
304
|
-
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Or:
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
node .cursor/aaac/generate-graph.mjs
|
|
311
|
-
node .cursor/aaac/generate-commands.mjs
|
|
236
|
+
npx @ludecker/aaac@latest generate
|
|
312
237
|
```
|
|
313
238
|
|
|
314
239
|
Ontology reference: [`.cursor/aaac/ontology.md`](../.cursor/aaac/ontology.md)
|
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This describes how your repo works with Agentic OS. It ships ready to use — edit only when you want project-specific detail.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Your project + Agentic OS
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
your-repo/
|
|
9
|
+
(your app code — any stack)
|
|
10
|
+
.cursor/ ← Agentic OS (commands, skills, agents, runs)
|
|
11
|
+
docs/ ← rules and architecture (this folder)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Agentic OS does not replace your app. It sits beside your code and gives Cursor a structured way to create, update, fix, review, test, and release work.
|
|
15
|
+
|
|
16
|
+
## How you work
|
|
17
|
+
|
|
18
|
+
You type a **command** and a short **intent**. The system runs a pipeline (discover → plan → execute → verify → report) and keeps agents on track.
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
/create-module billing "Add invoice export"
|
|
22
|
+
/fix-module api "Webhook fails on retries"
|
|
23
|
+
/review-architecture system "Check layer boundaries"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
You do not need to learn skills, agents, or orchestrators — those are internal.
|
|
27
|
+
|
|
28
|
+
## Layers (generic)
|
|
29
|
+
|
|
30
|
+
| Layer | Does | Does not |
|
|
31
|
+
|-------|------|----------|
|
|
32
|
+
| UI | Render, user interaction | Business rules, direct database access |
|
|
33
|
+
| Domain | Rules, validation, invariants | UI markup, framework-specific rendering |
|
|
34
|
+
| Infrastructure | APIs, persistence, adapters | Business decisions |
|
|
35
|
+
|
|
36
|
+
## What ships on install
|
|
37
|
+
|
|
38
|
+
- ~130 slash commands (create, update, fix, review, check, test, release, remove × modules, APIs, UI, etc.)
|
|
39
|
+
- Shared pipeline skills and subagent specs
|
|
40
|
+
- Run lifecycle and hook scripts under `.cursor/`
|
|
41
|
+
- Generic rules in this folder (ready without edits)
|
|
42
|
+
|
|
43
|
+
## Optional later
|
|
44
|
+
|
|
45
|
+
Add domains under `.cursor/domains/<name>/` when you want deeper knowledge of a bounded area (payments, auth, CMS, etc.). Extend `.cursor/aaac/graph.project.yaml` to route commands to those domains. Enable build verification in `.cursor/aaac/project.config.json` when you have a web app to gate before release.
|
|
46
|
+
|
|
47
|
+
None of that is required to start.
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Master rules
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
These rules apply to every code change in this project. Agentic OS loads them automatically — you do not need to configure anything after install.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Core principles
|
|
6
|
+
|
|
7
|
+
1. **One source of truth** — Each fact lives in one place. Do not duplicate constants, config, or state.
|
|
8
|
+
2. **Clear layers** — UI renders and handles interaction. Domain logic holds business rules. Infrastructure talks to databases and APIs. Do not mix these roles in one file.
|
|
9
|
+
3. **Predictable flow** — Data moves in one direction: input → logic → output. No hidden side effects.
|
|
10
|
+
4. **Explicit errors** — Log and surface failures. Do not fail silently.
|
|
11
|
+
5. **Clarity over cleverness** — Prefer readable code over shortcuts.
|
|
12
|
+
|
|
13
|
+
## Implementation
|
|
14
|
+
|
|
15
|
+
- Pull values from config, env, or constants — not unexplained literals in components.
|
|
16
|
+
- Use shared styles or design tokens — not inline styles in UI code.
|
|
17
|
+
- One named component per file.
|
|
18
|
+
- Async work should be cancellable where possible and logged at boundaries.
|
|
19
|
+
- Add or update tests when behavior changes.
|
|
20
|
+
|
|
21
|
+
## Modules
|
|
22
|
+
|
|
23
|
+
- Keep files focused: one job per module.
|
|
24
|
+
- Reuse and extend existing code before adding parallel implementations.
|
|
25
|
+
- Name things for intent, not implementation detail.
|
|
26
|
+
|
|
27
|
+
## Optional later
|
|
28
|
+
|
|
29
|
+
When your project grows, you can replace or extend this file with team-specific rules. Until then, these defaults are enough.
|