@deriest/ai-engineering-company 1.15.2

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 (237) hide show
  1. package/CHANGELOG.md +807 -0
  2. package/LICENSE +8 -0
  3. package/README.md +291 -0
  4. package/assets/knowledge/.gitkeep +0 -0
  5. package/assets/offices/architecture/README.md +32 -0
  6. package/assets/offices/engineering/README.md +53 -0
  7. package/assets/offices/governance/README.md +30 -0
  8. package/assets/offices/product/README.md +37 -0
  9. package/assets/organization/organization.json +260 -0
  10. package/assets/organization/validation.md +107 -0
  11. package/assets/prompts/.gitkeep +0 -0
  12. package/assets/templates/.gitkeep +0 -0
  13. package/assets/workers/architect/AGENTS.md +49 -0
  14. package/assets/workers/architect/SOUL.md +21 -0
  15. package/assets/workers/architect/config.json +7 -0
  16. package/assets/workers/backend-engineer/AGENTS.md +67 -0
  17. package/assets/workers/backend-engineer/HEARTBEAT.md +5 -0
  18. package/assets/workers/backend-engineer/IDENTITY.md +27 -0
  19. package/assets/workers/backend-engineer/SOUL.md +24 -0
  20. package/assets/workers/backend-engineer/TOOLS.md +44 -0
  21. package/assets/workers/backend-engineer/USER.md +21 -0
  22. package/assets/workers/backend-engineer/company/scripts/wp3/harness-spec.md +31 -0
  23. package/assets/workers/backend-engineer/company/scripts/wp3/lib/semver-range.js +81 -0
  24. package/assets/workers/backend-engineer/company/scripts/wp3/lib/test-mr4.js +6 -0
  25. package/assets/workers/backend-engineer/config.json +7 -0
  26. package/assets/workers/backend-engineer/openclaw-workspace-state.json +4 -0
  27. package/assets/workers/designer/AGENTS.md +49 -0
  28. package/assets/workers/designer/SOUL.md +20 -0
  29. package/assets/workers/designer/config.json +7 -0
  30. package/assets/workers/dispatcher/AGENTS.md +158 -0
  31. package/assets/workers/dispatcher/HEARTBEAT.md +5 -0
  32. package/assets/workers/dispatcher/IDENTITY.md +6 -0
  33. package/assets/workers/dispatcher/ROUTING.md +136 -0
  34. package/assets/workers/dispatcher/SOUL.md +18 -0
  35. package/assets/workers/dispatcher/TOOLS.md +32 -0
  36. package/assets/workers/dispatcher/USER.md +15 -0
  37. package/assets/workers/dispatcher/config.json +7 -0
  38. package/assets/workers/dispatcher/openclaw-workspace-state.json +4 -0
  39. package/assets/workers/frontend-engineer/AGENTS.md +53 -0
  40. package/assets/workers/frontend-engineer/SOUL.md +23 -0
  41. package/assets/workers/frontend-engineer/config.json +7 -0
  42. package/assets/workers/governor/AGENTS.md +57 -0
  43. package/assets/workers/governor/SOUL.md +20 -0
  44. package/assets/workers/governor/config.json +7 -0
  45. package/assets/workers/infrastructure-engineer/AGENTS.md +51 -0
  46. package/assets/workers/infrastructure-engineer/SOUL.md +21 -0
  47. package/assets/workers/infrastructure-engineer/config.json +7 -0
  48. package/assets/workers/product-manager/AGENTS.md +52 -0
  49. package/assets/workers/product-manager/HEARTBEAT.md +5 -0
  50. package/assets/workers/product-manager/IDENTITY.md +27 -0
  51. package/assets/workers/product-manager/SOUL.md +20 -0
  52. package/assets/workers/product-manager/TOOLS.md +44 -0
  53. package/assets/workers/product-manager/USER.md +21 -0
  54. package/assets/workers/product-manager/config.json +7 -0
  55. package/assets/workers/product-manager/openclaw-workspace-state.json +4 -0
  56. package/assets/workers/qa-engineer/AGENTS.md +50 -0
  57. package/assets/workers/qa-engineer/HEARTBEAT.md +5 -0
  58. package/assets/workers/qa-engineer/IDENTITY.md +27 -0
  59. package/assets/workers/qa-engineer/SOUL.md +22 -0
  60. package/assets/workers/qa-engineer/TOOLS.md +44 -0
  61. package/assets/workers/qa-engineer/USER.md +21 -0
  62. package/assets/workers/qa-engineer/config.json +7 -0
  63. package/assets/workers/qa-engineer/openclaw-workspace-state.json +4 -0
  64. package/assets/workers/researcher/AGENTS.md +50 -0
  65. package/assets/workers/researcher/HEARTBEAT.md +5 -0
  66. package/assets/workers/researcher/IDENTITY.md +27 -0
  67. package/assets/workers/researcher/SOUL.md +20 -0
  68. package/assets/workers/researcher/TOOLS.md +44 -0
  69. package/assets/workers/researcher/USER.md +21 -0
  70. package/assets/workers/researcher/config.json +7 -0
  71. package/assets/workers/researcher/openclaw-workspace-state.json +4 -0
  72. package/config/offices.json +19 -0
  73. package/config/policies.json +10 -0
  74. package/config/workflows.json +9 -0
  75. package/dist/audit-logger.d.ts +49 -0
  76. package/dist/audit-logger.d.ts.map +1 -0
  77. package/dist/audit-logger.js +131 -0
  78. package/dist/audit-logger.js.map +1 -0
  79. package/dist/cli.d.ts +17 -0
  80. package/dist/cli.d.ts.map +1 -0
  81. package/dist/cli.js +218 -0
  82. package/dist/cli.js.map +1 -0
  83. package/dist/commands/aicompany.d.ts +12 -0
  84. package/dist/commands/aicompany.d.ts.map +1 -0
  85. package/dist/commands/aicompany.js +101 -0
  86. package/dist/commands/aicompany.js.map +1 -0
  87. package/dist/decision-queue.d.ts +31 -0
  88. package/dist/decision-queue.d.ts.map +1 -0
  89. package/dist/decision-queue.js +86 -0
  90. package/dist/decision-queue.js.map +1 -0
  91. package/dist/dispatch-service.d.ts +43 -0
  92. package/dist/dispatch-service.d.ts.map +1 -0
  93. package/dist/dispatch-service.js +569 -0
  94. package/dist/dispatch-service.js.map +1 -0
  95. package/dist/dispatcher.d.ts +24 -0
  96. package/dist/dispatcher.d.ts.map +1 -0
  97. package/dist/dispatcher.js +84 -0
  98. package/dist/dispatcher.js.map +1 -0
  99. package/dist/file-queue-backend.d.ts +16 -0
  100. package/dist/file-queue-backend.d.ts.map +1 -0
  101. package/dist/file-queue-backend.js +93 -0
  102. package/dist/file-queue-backend.js.map +1 -0
  103. package/dist/gateway.d.ts +14 -0
  104. package/dist/gateway.d.ts.map +1 -0
  105. package/dist/gateway.js +138 -0
  106. package/dist/gateway.js.map +1 -0
  107. package/dist/index.d.ts +4 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +277 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/lease-provider.d.ts +31 -0
  112. package/dist/lease-provider.d.ts.map +1 -0
  113. package/dist/lease-provider.js +4 -0
  114. package/dist/lease-provider.js.map +1 -0
  115. package/dist/memory-lease-provider.d.ts +10 -0
  116. package/dist/memory-lease-provider.d.ts.map +1 -0
  117. package/dist/memory-lease-provider.js +54 -0
  118. package/dist/memory-lease-provider.js.map +1 -0
  119. package/dist/memory-queue-backend.d.ts +16 -0
  120. package/dist/memory-queue-backend.d.ts.map +1 -0
  121. package/dist/memory-queue-backend.js +93 -0
  122. package/dist/memory-queue-backend.js.map +1 -0
  123. package/dist/metrics-registry.d.ts +58 -0
  124. package/dist/metrics-registry.d.ts.map +1 -0
  125. package/dist/metrics-registry.js +195 -0
  126. package/dist/metrics-registry.js.map +1 -0
  127. package/dist/openclaw.plugin.json +29 -0
  128. package/dist/org-engine.d.ts +134 -0
  129. package/dist/org-engine.d.ts.map +1 -0
  130. package/dist/org-engine.js +129 -0
  131. package/dist/org-engine.js.map +1 -0
  132. package/dist/pipeline-checkpoint.d.ts +44 -0
  133. package/dist/pipeline-checkpoint.d.ts.map +1 -0
  134. package/dist/pipeline-checkpoint.js +90 -0
  135. package/dist/pipeline-checkpoint.js.map +1 -0
  136. package/dist/pipeline-engine.d.ts +53 -0
  137. package/dist/pipeline-engine.d.ts.map +1 -0
  138. package/dist/pipeline-engine.js +47 -0
  139. package/dist/pipeline-engine.js.map +1 -0
  140. package/dist/prompt-assembler.d.ts +13 -0
  141. package/dist/prompt-assembler.d.ts.map +1 -0
  142. package/dist/prompt-assembler.js +84 -0
  143. package/dist/prompt-assembler.js.map +1 -0
  144. package/dist/queue-backend.d.ts +44 -0
  145. package/dist/queue-backend.d.ts.map +1 -0
  146. package/dist/queue-backend.js +4 -0
  147. package/dist/queue-backend.js.map +1 -0
  148. package/dist/redis-lease-provider.d.ts +16 -0
  149. package/dist/redis-lease-provider.d.ts.map +1 -0
  150. package/dist/redis-lease-provider.js +96 -0
  151. package/dist/redis-lease-provider.js.map +1 -0
  152. package/dist/redis-queue-backend.d.ts +23 -0
  153. package/dist/redis-queue-backend.d.ts.map +1 -0
  154. package/dist/redis-queue-backend.js +131 -0
  155. package/dist/redis-queue-backend.js.map +1 -0
  156. package/dist/src/cli.d.ts +11 -0
  157. package/dist/src/cli.d.ts.map +1 -0
  158. package/dist/src/cli.js +100 -0
  159. package/dist/src/cli.js.map +1 -0
  160. package/dist/src/dispatch-service.d.ts +25 -0
  161. package/dist/src/dispatch-service.d.ts.map +1 -0
  162. package/dist/src/dispatch-service.js +201 -0
  163. package/dist/src/dispatch-service.js.map +1 -0
  164. package/dist/src/dispatcher.d.ts +23 -0
  165. package/dist/src/dispatcher.d.ts.map +1 -0
  166. package/dist/src/dispatcher.js +66 -0
  167. package/dist/src/dispatcher.js.map +1 -0
  168. package/dist/src/gateway.d.ts +10 -0
  169. package/dist/src/gateway.d.ts.map +1 -0
  170. package/dist/src/gateway.js +66 -0
  171. package/dist/src/gateway.js.map +1 -0
  172. package/dist/src/index.d.ts +8 -0
  173. package/dist/src/index.d.ts.map +1 -0
  174. package/dist/src/index.js +85 -0
  175. package/dist/src/index.js.map +1 -0
  176. package/dist/src/org-engine.d.ts +134 -0
  177. package/dist/src/org-engine.d.ts.map +1 -0
  178. package/dist/src/org-engine.js +129 -0
  179. package/dist/src/org-engine.js.map +1 -0
  180. package/dist/src/pipeline-engine.d.ts +53 -0
  181. package/dist/src/pipeline-engine.d.ts.map +1 -0
  182. package/dist/src/pipeline-engine.js +47 -0
  183. package/dist/src/pipeline-engine.js.map +1 -0
  184. package/dist/src/prompt-assembler.d.ts +13 -0
  185. package/dist/src/prompt-assembler.d.ts.map +1 -0
  186. package/dist/src/prompt-assembler.js +84 -0
  187. package/dist/src/prompt-assembler.js.map +1 -0
  188. package/dist/src/task-state.d.ts +27 -0
  189. package/dist/src/task-state.d.ts.map +1 -0
  190. package/dist/src/task-state.js +49 -0
  191. package/dist/src/task-state.js.map +1 -0
  192. package/dist/src/tools.d.ts +9 -0
  193. package/dist/src/tools.d.ts.map +1 -0
  194. package/dist/src/tools.js +107 -0
  195. package/dist/src/tools.js.map +1 -0
  196. package/dist/src/types.d.ts +99 -0
  197. package/dist/src/types.d.ts.map +1 -0
  198. package/dist/src/types.js +4 -0
  199. package/dist/src/types.js.map +1 -0
  200. package/dist/src/validation.d.ts +11 -0
  201. package/dist/src/validation.d.ts.map +1 -0
  202. package/dist/src/validation.js +69 -0
  203. package/dist/src/validation.js.map +1 -0
  204. package/dist/src/workboard-gateway.d.ts +82 -0
  205. package/dist/src/workboard-gateway.d.ts.map +1 -0
  206. package/dist/src/workboard-gateway.js +76 -0
  207. package/dist/src/workboard-gateway.js.map +1 -0
  208. package/dist/src/worker-engine.d.ts +38 -0
  209. package/dist/src/worker-engine.d.ts.map +1 -0
  210. package/dist/src/worker-engine.js +73 -0
  211. package/dist/src/worker-engine.js.map +1 -0
  212. package/dist/task-state.d.ts +27 -0
  213. package/dist/task-state.d.ts.map +1 -0
  214. package/dist/task-state.js +62 -0
  215. package/dist/task-state.js.map +1 -0
  216. package/dist/tools.d.ts +11 -0
  217. package/dist/tools.d.ts.map +1 -0
  218. package/dist/tools.js +183 -0
  219. package/dist/tools.js.map +1 -0
  220. package/dist/types.d.ts +99 -0
  221. package/dist/types.d.ts.map +1 -0
  222. package/dist/types.js +4 -0
  223. package/dist/types.js.map +1 -0
  224. package/dist/validation.d.ts +11 -0
  225. package/dist/validation.d.ts.map +1 -0
  226. package/dist/validation.js +69 -0
  227. package/dist/validation.js.map +1 -0
  228. package/dist/workboard-gateway.d.ts +82 -0
  229. package/dist/workboard-gateway.d.ts.map +1 -0
  230. package/dist/workboard-gateway.js +76 -0
  231. package/dist/workboard-gateway.js.map +1 -0
  232. package/dist/worker-engine.d.ts +38 -0
  233. package/dist/worker-engine.d.ts.map +1 -0
  234. package/dist/worker-engine.js +73 -0
  235. package/dist/worker-engine.js.map +1 -0
  236. package/openclaw.plugin.json +42 -0
  237. package/package.json +50 -0
package/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ UNLICENSED
2
+
3
+ This package is not licensed for public use.
4
+
5
+ All rights reserved. This software and its source code are proprietary.
6
+ No permission is granted to use, copy, modify, merge, publish, distribute,
7
+ sublicense, and/or sell copies of this software without explicit written
8
+ permission from the copyright holder.
package/README.md ADDED
@@ -0,0 +1,291 @@
1
+ # AI Engineering Company
2
+
3
+ Management layer that orchestrates AI agents for engineering tasks.
4
+
5
+ AI Engineering Company routes natural-language tasks to the right office and worker automatically — no configuration required.
6
+
7
+ ## Installation
8
+
9
+ ### Prerequisites
10
+
11
+ - OpenClaw installed and running (see [OpenClaw](https://github.com/openclaw/openclaw))
12
+ - Node.js 22.19+
13
+
14
+ ### Install Plugin
15
+
16
+ ```bash
17
+ # Install from local source (recommended for development)
18
+ openclaw plugins install /path/to/ai-engineering-company --link
19
+
20
+ # Or install from git
21
+ git clone https://github.com/YOUR_USERNAME/ai-engineering-company.git
22
+ openclaw plugins install ./ai-engineering-company --link
23
+ ```
24
+
25
+ ### Verify Installation
26
+
27
+ ```bash
28
+ openclaw plugins list
29
+ ```
30
+
31
+ ## Quick Start
32
+
33
+ Start OpenClaw and use the `/aicompany` slash command:
34
+
35
+ ```
36
+ /aicompany build landing page
37
+ /aicompany fix authentication bug
38
+ /aicompany review this repository
39
+ /aicompany create PRD for the new feature
40
+ ```
41
+
42
+ The Dispatcher automatically routes work to the correct office and worker. No manual assignment needed.
43
+
44
+ ## Usage
45
+
46
+ ### Slash Command
47
+
48
+ The primary interface for dispatching tasks:
49
+
50
+ ```
51
+ /aicompany <task description>
52
+ ```
53
+
54
+ **Example output:**
55
+
56
+ ```
57
+ 🏢 AI Engineering Company
58
+
59
+ Task:
60
+ Build landing page
61
+
62
+ Assigned To:
63
+ Engineering Worker
64
+
65
+ Status:
66
+ Completed
67
+
68
+ Duration:
69
+ 4.2 s
70
+
71
+ ────────────────────────
72
+
73
+ [worker response]
74
+ ```
75
+
76
+ ### Agent Tools
77
+
78
+ Available to the OpenClaw agent automatically:
79
+
80
+ - **`ai_company_dispatch`** — Submit a task. Parameters: `message` (required), `wait` (boolean, default true), `timeout` (ms, default 900000)
81
+ - **`ai_company_status`** — Query dispatch status or list recent dispatches. Parameters: `sessionKey` (optional — omit to list all)
82
+ - **`ai_company_result`** — Retrieve completed dispatch results. Parameters: `sessionKey` (required), `limit` (optional)
83
+ - **`ai_company_approve`** — Approve a pending task. Parameters: `sessionKey` (required), `reason` (optional), `operator` (optional)
84
+ - **`ai_company_reject`** — Reject a pending task. Parameters: `sessionKey` (required), `reason` (optional), `operator` (optional)
85
+ - **`ai_company_list_approvals`** — List all pending approval requests. No parameters.
86
+
87
+ ### Gateway RPC
88
+
89
+ Available over the gateway WebSocket API:
90
+
91
+ - `ai-company.dispatch` — `{ message, wait?, timeout? }`
92
+ - `ai-company.status` — `{ sessionKey? }`
93
+ - `ai-company.result` — `{ sessionKey, limit? }`
94
+ - `ai-company.list_approvals` — `{}` (list pending approvals)
95
+ - `ai-company.approve` — `{ sessionKey, reason?, operator? }` (approve a pending task)
96
+ - `ai-company.reject` — `{ sessionKey, reason?, operator? }` (reject a pending task)
97
+
98
+ ### CLI
99
+
100
+ ```bash
101
+ openclaw ai-company dispatch "fix the login bug"
102
+ openclaw ai-company status
103
+ openclaw ai-company result <session-key>
104
+ openclaw ai-company approvals
105
+ openclaw ai-company approve <session-key> [--operator <name>]
106
+ openclaw ai-company reject <session-key> [--operator <name>]
107
+ openclaw ai-company recover
108
+ openclaw ai-company audit [--session <key>] [--event <type>] [--source <src>] [--from <date>] [--to <date>]
109
+ ```
110
+
111
+ ## Approval Workflow
112
+
113
+ Engineering and security review tasks require operator approval before deployment. When the Dispatcher creates an orchestration plan, stages after VERIFY are marked with `requiresApproval: true`. The pipeline pauses at these stages and waits for the operator to approve or reject.
114
+
115
+ **CLI examples:**
116
+
117
+ ```bash
118
+ # List pending approvals
119
+ openclaw ai-company approvals
120
+
121
+ # Approve a task
122
+ openclaw ai-company approve ai-company:dispatch:abc123 --reason "LGTM"
123
+
124
+ # Reject a task
125
+ openclaw ai-company reject ai-company:dispatch:abc123 --reason "Needs security review"
126
+ ```
127
+
128
+ **Agent tool examples:**
129
+
130
+ ```
131
+ ai_company_list_approvals
132
+ ai_company_approve sessionKey="ai-company:dispatch:abc123" reason="Approved"
133
+ ai_company_reject sessionKey="ai-company:dispatch:abc123" reason="Missing tests"
134
+ ```
135
+
136
+ Gateway approvals automatically use your verified identity (display name or connection ID) when recording who approved or rejected a task. No configuration required.
137
+
138
+ ## Configuration
139
+
140
+ In your OpenClaw config, the plugin accepts:
141
+
142
+ ```json
143
+ {
144
+ "ai-engineering-company": {
145
+ "offices": "config/offices.json",
146
+ "workflows": "config/workflows.json",
147
+ "workers": "workers",
148
+ "boardId": "ai-company"
149
+ }
150
+ }
151
+ ```
152
+
153
+ | Option | Default | Description |
154
+ |--------|---------|-------------|
155
+ | `offices` | `config/offices.json` | Path to offices config |
156
+ | `workflows` | `config/workflows.json` | Path to workflows config |
157
+ | `workers` | `assets/workers` | Path to workers directory |
158
+ | `boardId` | `ai-company` | Workboard board ID for task cards |
159
+
160
+ ## Documentation
161
+
162
+ - [CHANGELOG.md](CHANGELOG.md) — Version history and release notes
163
+ - [ROADMAP.md](ROADMAP.md) — Implementation roadmap and milestones
164
+ - [docs/CHECKPOINT.md](docs/CHECKPOINT.md) — Current repository checkpoint
165
+ - [docs/PROJECT-ARCHIVE.md](docs/PROJECT-ARCHIVE.md) — Complete project archive
166
+
167
+ ## Audit Logging
168
+
169
+ All dispatch lifecycle events are recorded as append-only JSONL files in `.openclaw/audit/audit-YYYY-MM-DD.jsonl`.
170
+
171
+ **15 event types**: dispatch_requested, plan_created, task_created, pipeline_started, stage_started, approval_requested, approved, rejected, stage_completed, stage_failed, pipeline_completed, pipeline_failed, dispatch_completed, lease_acquire_failed, lease_release_failed.
172
+
173
+ ```bash
174
+ # Query audit log with filters
175
+ openclaw ai-company audit --session "ai-company:dispatch:abc123"
176
+ openclaw ai-company audit --event "approved" --source "gateway"
177
+ openclaw ai-company audit --from "2026-07-01" --to "2026-07-04"
178
+ ```
179
+
180
+ ## Runtime Recovery
181
+
182
+ Pipeline checkpoints persist stage-level progress to disk. On crash or restart, interrupted pipelines can be detected and reviewed.
183
+
184
+ ```bash
185
+ # List interrupted pipelines
186
+ openclaw ai-company recover
187
+ ```
188
+
189
+ Stale entries (failed/completed > 24h) are automatically cleaned on startup. Running and awaiting_approval entries are preserved.
190
+
191
+ ## Metrics
192
+
193
+ The MetricsRegistry tracks 28 operational metrics including dispatch counts, stage durations, approval wait times, and error rates. Metrics are stored in-memory and persisted to `.openclaw/metrics.json` on shutdown.
194
+
195
+ ## Queue Backend
196
+
197
+ DecisionQueue storage is abstracted behind the `QueueBackend` interface. Default: `MemoryQueueBackend` (Map-based with JSON file persistence). Pipeline ownership is managed by the `LeaseProvider` interface with configurable TTL expiration.
198
+
199
+ ### Optional Redis Support
200
+
201
+ For distributed deployments, Redis can be used instead of in-memory storage. Redis is fully optional — the plugin works out of the box with zero configuration.
202
+
203
+ **Enable Redis via environment variable:**
204
+
205
+ ```bash
206
+ export AI_COMPANY_REDIS_URL=redis://localhost:6379
207
+ ```
208
+
209
+ **Or via plugin config:**
210
+
211
+ ```json
212
+ {
213
+ "ai-engineering-company": {
214
+ "redis": {
215
+ "url": "redis://localhost:6379",
216
+ "prefix": "ai-company:"
217
+ }
218
+ }
219
+ }
220
+ ```
221
+
222
+ | Option | Default | Description |
223
+ |--------|---------|-------------|
224
+ | `AI_COMPANY_REDIS_URL` | — | Redis URL (env var takes priority) |
225
+ | `redis.url` | — | Redis URL (plugin config) |
226
+ | `redis.prefix` | `ai-company:` | Key prefix for Redis storage |
227
+
228
+ **Fallback behavior:** If Redis is configured but unavailable at startup, the plugin falls back to in-memory mode automatically. No manual intervention required.
229
+
230
+ ## Troubleshooting
231
+
232
+ ### Plugin not loading
233
+
234
+ ```bash
235
+ # Verify plugin is installed and enabled
236
+ openclaw plugins list
237
+
238
+ # Rebuild after changes
239
+ npm run build
240
+ openclaw plugins build
241
+ ```
242
+
243
+ ### Pending approvals not visible
244
+
245
+ ```bash
246
+ # List all pending approvals
247
+ openclaw ai-company approvals
248
+
249
+ # Check DecisionQueue persistence file
250
+ cat .openclaw/decisions.json
251
+ ```
252
+
253
+ ### Interrupted pipeline after crash
254
+
255
+ ```bash
256
+ # List interrupted pipelines with stage progress
257
+ openclaw ai-company recover
258
+
259
+ # Resume an interrupted pipeline from last checkpoint
260
+ openclaw ai-company recover --resume <session-key>
261
+ ```
262
+
263
+ ### Audit log inspection
264
+
265
+ ```bash
266
+ # View today's audit log
267
+ cat .openclaw/audit/audit-$(date +%Y-%m-%d).jsonl | jq .
268
+
269
+ # Query specific event types
270
+ openclaw ai-company audit --event "pipeline_failed"
271
+ ```
272
+
273
+ ## Development
274
+
275
+ ```bash
276
+ # Install dependencies
277
+ pnpm install
278
+
279
+ # Run tests
280
+ pnpm test
281
+
282
+ # Type check
283
+ pnpm run typecheck
284
+
285
+ # Build
286
+ pnpm run build
287
+ ```
288
+
289
+ ## License
290
+
291
+ MIT License - see [LICENSE](LICENSE) for details.
File without changes
@@ -0,0 +1,32 @@
1
+ # Architecture Office
2
+
3
+ **Purpose**: Define how to structure systems.
4
+
5
+ ## Authority
6
+ - System architecture design
7
+ - Technical standards and patterns
8
+ - API contracts and data models
9
+ - Technology evaluation
10
+
11
+ ## Restrictions
12
+ - Cannot write implementation code
13
+ - Cannot change requirements
14
+ - Cannot deploy
15
+ - Cannot assign or reassign tasks (Dispatcher only)
16
+
17
+ ## Roles
18
+ | Role | Responsibility |
19
+ |---|---|
20
+ | Technical Architect | Design system architecture, define standards, review implementations |
21
+
22
+ ## How Work Arrives
23
+ The Dispatcher agent routes architecture-type work (system design, technical reviews, ADRs) to the Technical Architect. The Architect also reviews proposals from Engineers before implementation begins.
24
+
25
+ ## Collaboration
26
+ The Architect collaborates directly with:
27
+ - **Architect ↔ PM**: Requirements feasibility, technical constraints
28
+ - **Architect ↔ Frontend Engineer**: Component architecture, state management
29
+ - **Architect ↔ Backend Engineer**: System structure, API design, data flow
30
+ - **Architect ↔ Infrastructure Engineer**: Deployment architecture, scaling strategy
31
+
32
+ Collaboration does NOT change task ownership. The Architect does NOT spawn other workers.
@@ -0,0 +1,53 @@
1
+ # Engineering Office
2
+
3
+ **Purpose**: Build and ship.
4
+
5
+ ## Authority
6
+ - Code implementation
7
+ - Testing
8
+ - Deployment (with Operator approval)
9
+
10
+ ## Restrictions
11
+ - Cannot change requirements
12
+ - Cannot approve own work
13
+ - Cannot modify knowledge base
14
+ - Cannot assign or reassign tasks (Dispatcher only)
15
+
16
+ ## Roles
17
+ | Role | Responsibility |
18
+ |---|---|
19
+ | Frontend Engineer | Implement user interfaces, handle client-side logic, ensure accessibility |
20
+ | Backend Engineer | Implement server logic, APIs, database operations, integrations |
21
+ | Infrastructure Engineer | Manage deployments, CI/CD, monitoring, cloud infrastructure |
22
+ | QA Engineer | Write tests, validate quality, report defects, verify fixes |
23
+
24
+ ## Specializations
25
+ Specializations are per-task, not permanent:
26
+ - **Frontend**: react, vue, angular, svelte, css, accessibility, performance, testing
27
+ - **Backend**: api, database, auth, security, performance, testing, integration
28
+ - **Infrastructure**: cicd, monitoring, cloud, security, networking, database-ops
29
+
30
+ ## How Work Arrives
31
+ The Dispatcher agent routes engineering-type work to the appropriate specialist based on required capabilities:
32
+ - UI/Frontend work → Frontend Engineer
33
+ - API/Backend work → Backend Engineer
34
+ - Deployment/Infrastructure work → Infrastructure Engineer
35
+ - Testing/QA work → QA Engineer
36
+
37
+ Feature work arrives after the Product Manager defines requirements and the Architect defines system structure.
38
+
39
+ ## Collaboration
40
+ The Engineers collaborate directly with:
41
+ - **Frontend ↔ Designer**: Specifications, implementation questions, feasibility
42
+ - **Frontend ↔ Backend**: API contracts, data formats, integration
43
+ - **Frontend ↔ QA**: Test results, defect reports, fixes
44
+ - **Backend ↔ PM**: Requirements clarity, scope questions
45
+ - **Backend ↔ Architect**: System structure, API design, data flow
46
+ - **Backend ↔ Infrastructure**: Deployment, configuration, environment
47
+ - **Backend ↔ Governor**: Security review, compliance, rework
48
+ - **Backend ↔ QA**: Test results, defect reports, fixes
49
+ - **Infrastructure ↔ Architect**: Deployment architecture, scaling strategy
50
+ - **Infrastructure ↔ QA**: Test environments, CI/CD integration
51
+ - **QA ↔ Governor**: Compliance evidence, quality gate results
52
+
53
+ Collaboration does NOT change task ownership. Engineers do NOT spawn other workers.
@@ -0,0 +1,30 @@
1
+ # Governance Office
2
+
3
+ **Purpose**: Ensure safety and quality.
4
+
5
+ ## Authority
6
+ - Policy enforcement
7
+ - Gate pass/fail decisions
8
+ - Knowledge review
9
+ - Risk assessment
10
+
11
+ ## Restrictions
12
+ - Cannot write code
13
+ - Cannot change requirements
14
+ - Cannot assign or reassign tasks (Dispatcher only)
15
+
16
+ ## Roles
17
+ | Role | Responsibility |
18
+ |---|---|
19
+ | Governor | Audit completed work, enforce policies, review knowledge, assess risk |
20
+
21
+ ## How Work Arrives
22
+ The Dispatcher agent routes governance-type work (policy reviews, knowledge reviews, security reviews) to the Governor. The Governor also reviews work after engineering completes security-sensitive tasks.
23
+
24
+ ## Collaboration
25
+ The Governor collaborates directly with:
26
+ - **Governor ↔ Engineer**: Review submissions, compliance findings, rework requests
27
+
28
+ The Governor does NOT collaborate with PM, Researcher, or Designer. The Governor's domain is engineering output review and policy enforcement.
29
+
30
+ Collaboration does NOT change task ownership. The Governor does NOT spawn other workers.
@@ -0,0 +1,37 @@
1
+ # Product Office
2
+
3
+ **Purpose**: Define what to build.
4
+
5
+ ## Authority
6
+ - Task definitions
7
+ - Requirements specification
8
+ - Acceptance criteria
9
+ - Work prioritization
10
+
11
+ ## Restrictions
12
+ - Cannot write code
13
+ - Cannot approve deployments
14
+ - Cannot modify knowledge base
15
+ - Cannot assign or reassign tasks (Dispatcher only)
16
+
17
+ ## Roles
18
+ | Role | Responsibility |
19
+ |---|---|
20
+ | Product Manager | Classify requests, extract scope, determine gates, prioritize work, accept completed work |
21
+ | Researcher | Explore codebases, investigate options, gather evidence, produce reports |
22
+ | Designer | Design interaction flows, create specifications, review UX |
23
+
24
+ ## How Work Arrives
25
+ The Dispatcher agent classifies incoming requests and routes product-type work (features, research, design) to the appropriate role in this office.
26
+
27
+ ## Collaboration
28
+ Workers in this office collaborate directly with:
29
+ - **PM ↔ Researcher**: Investigations, evidence, findings
30
+ - **PM ↔ Designer**: Requirements, user journeys, specifications
31
+ - **PM ↔ Architect**: Requirements feasibility, technical constraints
32
+ - **PM ↔ Backend Engineer**: Requirements clarity, scope questions
33
+ - **Researcher ↔ Architect**: Technical findings, architecture analysis
34
+ - **Researcher ↔ Backend Engineer**: Technical findings, implementation analysis
35
+ - **Designer ↔ Frontend Engineer**: Specifications, implementation questions, feasibility
36
+
37
+ Collaboration does NOT change task ownership. Workers do NOT spawn other workers.