@aopslabs/aops 0.3.24 → 0.3.25
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/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/SKILL.md +0 -1
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/agentspace/SKILL.md +0 -6
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/collaborative-work/SKILL.md +1 -2
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/working-disciplines/SKILL.md +2 -5
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/agentspace.md +1 -16
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/aops-cli.md +4 -33
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/working-disciplines.md +32 -138
- package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/manifest.json +17 -22
- package/agent-assets-release/agent-assets/inventory.json +5 -5
- package/agent-assets-release/agent-assets/projection.json +1 -1
- package/agent-assets-release/agent-assets-release.json +48 -53
- package/agent-assets-release/agent-assets-release.sigstore.json +27 -28
- package/assets/agent-assets/core/SKILL.md +0 -1
- package/assets/agent-assets/core/references/agentspace/SKILL.md +0 -6
- package/assets/agent-assets/core/references/collaborative-work/SKILL.md +1 -2
- package/assets/agent-assets/core/references/working-disciplines/SKILL.md +2 -5
- package/assets/agent-assets/core/user-guides/agentspace.md +1 -16
- package/assets/agent-assets/core/user-guides/aops-cli.md +4 -33
- package/assets/agent-assets/core/user-guides/working-disciplines.md +32 -138
- package/dist/commands/checkpoint.js +4 -23
- package/dist/commands/community-server.js +212 -6
- package/dist/commands/db.js +145 -0
- package/dist/commands/experience.js +0 -2
- package/dist/commands/memory.js +8 -2
- package/dist/commands/official-catalog.js +1 -1
- package/dist/commands/plan.js +2 -2
- package/dist/commands/pm/index.js +39 -3
- package/dist/commands/pm/projectman.js +281 -8
- package/dist/commands/start-disciplines.js +8 -21
- package/dist/commands/start.js +20 -504
- package/dist/lib/agent-assets/native-fs.js +2 -2
- package/dist/lib/community-migration-snapshot.js +43 -2
- package/dist/lib/community-native-backup.js +386 -0
- package/dist/lib/community-native-lifecycle.js +93 -4
- package/dist/lib/community-native-migration.js +20 -0
- package/dist/main.js +2 -2
- package/dist/seeds/agents-md.js +1 -1
- package/dist/utils/playbook-workspace.js +5 -33
- package/dist/utils/session-guidance.js +0 -7
- package/native/bin/darwin-arm64/aops-agent-assets-fs +0 -0
- package/native/bin/darwin-x64/aops-agent-assets-fs +0 -0
- package/native/bin/win32-x64/aops-agent-assets-fs.exe +0 -0
- package/native/manifest.json +4 -4
- package/native/qualifications/win32-x64.json +2 -2
- package/native/tui/darwin-arm64/aops-tui +0 -0
- package/native/tui/linux-x64/aops-tui +0 -0
- package/native/tui/win32-x64/aops-tui.exe +0 -0
- package/package.json +18 -6
- package/agent-assets-release/agent-assets/core/647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09/files/references/mission/SKILL.md +0 -54
- package/assets/agent-assets/core/references/mission/SKILL.md +0 -54
- package/dist/commands/mission.js +0 -562
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/aops-cli-core/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/chatv3/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/discuss/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/docman/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/projectman/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/sys/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/references/view/SKILL.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/agent-assets.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/aops-system.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/chatv3.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/docman.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/projectman.md +0 -0
- /package/agent-assets-release/agent-assets/core/{647c6e84fbc48f9a36945d81660f4d2a5241f58a53a18054365bfc16868b0f09 → bc42dd7792dbe66040e99a7ef3d80b3bc788c72b369b5a065cf936aef29f53fb}/files/user-guides/sys.md +0 -0
|
@@ -23,7 +23,7 @@ A discipline is:
|
|
|
23
23
|
- memory cadence
|
|
24
24
|
- plan and slice rhythm
|
|
25
25
|
|
|
26
|
-
A discipline is role-agnostic. Reusable discipline text names roles such as `implementer`, `reviewer`, `coordinator`, and `operator-approver`; it does not bind concrete agents to those roles. Concrete agent-to-role assignment belongs in
|
|
26
|
+
A discipline is role-agnostic. Reusable discipline text names roles such as `implementer`, `reviewer`, `coordinator`, and `operator-approver`; it does not bind concrete agents to those roles. Concrete agent-to-role assignment belongs in the session-specific discipline policy.
|
|
27
27
|
|
|
28
28
|
The four canonical ids are:
|
|
29
29
|
|
|
@@ -32,7 +32,7 @@ The four canonical ids are:
|
|
|
32
32
|
| `solo-pm-loop` | Single-agent or low-uncertainty work | Projectman, optional RR, memory |
|
|
33
33
|
| `build-review-chat` | Live implementer plus reviewer work | Projectman RR/RRR, ChatV3 wake, memory |
|
|
34
34
|
| `design-first-consensus` | High design uncertainty or irreversible choices | Discuss, operator approval, Projectman |
|
|
35
|
-
| `coordinator-loop` | Operator delegates session management to one coordinator agent directing implementer agents |
|
|
35
|
+
| `coordinator-loop` | Operator delegates session management to one coordinator agent directing implementer agents | Projectman RR/RRR, ChatV3 room, memory |
|
|
36
36
|
|
|
37
37
|
`mode` is transport/session shape: `solo`, `solo+async-review`, or `chat-room`.
|
|
38
38
|
`discipline` is the work policy. A chat-room mode usually maps to
|
|
@@ -87,111 +87,22 @@ The start pack includes:
|
|
|
87
87
|
- `method.selected` with `aliasOf: "discipline"`
|
|
88
88
|
- `guardrails[]`
|
|
89
89
|
- `guardrailGroups.execution` and `guardrailGroups.closeout`
|
|
90
|
-
- `policy` and `policyJson` for mission policy seeding
|
|
91
90
|
- `policy.closeout` with explicit closeout command hints
|
|
92
91
|
- apply-required `deferredBindings`
|
|
93
92
|
|
|
94
|
-
## 3 Mission policy convention
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
#### 3.1.1 Overview
|
|
99
|
-
|
|
100
|
-
Mission policy stays free-form, but AOPS uses this convention. The current
|
|
101
|
-
`aops start --json` seed includes the main policy groups plus the expanded
|
|
102
|
-
selection/orchestration helpers shown below:
|
|
103
|
-
|
|
104
|
-
```json
|
|
105
|
-
{
|
|
106
|
-
"discipline": {
|
|
107
|
-
"id": "build-review-chat",
|
|
108
|
-
"version": "s1",
|
|
109
|
-
"enforcement": "advisory",
|
|
110
|
-
"selectedBy": "operator",
|
|
111
|
-
"selectedVia": "--discipline",
|
|
112
|
-
"recommended": "solo-pm-loop",
|
|
113
|
-
"signals": {
|
|
114
|
-
"mode": "solo",
|
|
115
|
-
"agentCount": 1
|
|
116
|
-
},
|
|
117
|
-
"rationale": ["explicit discipline flag supplied"]
|
|
118
|
-
},
|
|
119
|
-
"signalMapping": {
|
|
120
|
-
"mode": "transport/session shape",
|
|
121
|
-
"agentCount": "coordination complexity",
|
|
122
|
-
"workSize": "planning granularity",
|
|
123
|
-
"decisionUncertainty": "design-first trigger",
|
|
124
|
-
"operatorInterface": "delegation trigger for coordinator-loop"
|
|
125
|
-
},
|
|
126
|
-
"guardrails": [],
|
|
127
|
-
"guardrailGroups": {
|
|
128
|
-
"execution": [],
|
|
129
|
-
"closeout": []
|
|
130
|
-
},
|
|
131
|
-
"closeout": {
|
|
132
|
-
"required": true,
|
|
133
|
-
"trigger": "explicit",
|
|
134
|
-
"guardrailIds": ["closeout-handoff-memory"],
|
|
135
|
-
"check": {
|
|
136
|
-
"command": null,
|
|
137
|
-
"mode": "read-only",
|
|
138
|
-
"state": "not-shipped-use-owner-readbacks",
|
|
139
|
-
"statusStates": [
|
|
140
|
-
"present",
|
|
141
|
-
"missing",
|
|
142
|
-
"deferred-with-owner",
|
|
143
|
-
"not-applicable",
|
|
144
|
-
"waived-by-operator"
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
|
-
"handoff": {
|
|
148
|
-
"command": "aops pm handoff write --help",
|
|
149
|
-
"mode": "owner-surface"
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"review": {},
|
|
153
|
-
"issue": {},
|
|
154
|
-
"memory": {},
|
|
155
|
-
"plan": {},
|
|
156
|
-
"planning": {},
|
|
157
|
-
"orchestration": {},
|
|
158
|
-
"vocabBridge": {
|
|
159
|
-
"mode": { "meaning": "transport/session shape" },
|
|
160
|
-
"discipline": { "meaning": "policy preset plus guardrails" },
|
|
161
|
-
"method": { "aliasOf": "discipline" }
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Use `result.mission.policyJson` from `aops start --json` with
|
|
167
|
-
`aops mission create --policy-json` or `aops mission update --policy-json`.
|
|
168
|
-
|
|
169
|
-
The exact policy is still advisory and free-form. Treat this convention as a
|
|
170
|
-
stable reading/writing shape, not as a strict schema.
|
|
171
|
-
|
|
172
|
-
`mission.policy.roles` may bind the generic roles for one mission, for example `implementer`, `reviewer`, `coordinator`, and `operator-approver`. A `coordinator-loop` mission typically binds `roles.operator`, `roles.coordinator`, and one or more `roles.implementer` entries; `roles.reviewer` defaults to the coordinator when absent. This binding is mission-local evidence and must not be copied into reusable discipline docs as a fixed Codex/Claude assignment.
|
|
94
|
+
## 3 Guardrail registry
|
|
173
95
|
|
|
174
|
-
|
|
175
|
-
groups over the same `guardrails[]` registry. `policy.closeout` is an
|
|
176
|
-
explicit-before-leaving convention: it records required closeout guardrails,
|
|
177
|
-
the required owner readbacks and a Projectman/memory handoff. This Community
|
|
178
|
-
release has no `mission check` or `mission handoff` command, and it never closes
|
|
179
|
-
boards or chat rooms automatically.
|
|
180
|
-
|
|
181
|
-
## 4 Guardrail registry
|
|
182
|
-
|
|
183
|
-
### 4.1 Overview
|
|
96
|
+
### 3.1 Overview
|
|
184
97
|
|
|
185
98
|
#### 4.1.1 Overview
|
|
186
99
|
|
|
187
100
|
Every guardrail now has a phase:
|
|
188
101
|
|
|
189
102
|
- `execution`: applies while planning, implementing, reviewing, and committing.
|
|
190
|
-
- `closeout`: applies before leaving a
|
|
103
|
+
- `closeout`: applies before leaving a session or handing it to the next run.
|
|
191
104
|
|
|
192
105
|
Empty `evidence` means reviewer-attested/non-auto-checkable in S1/S2. A later
|
|
193
|
-
`mission check --closeout` must not auto-fail those rows; it may report them as
|
|
194
|
-
not-applicable or reviewer-attested. Non-empty evidence names a surface that a
|
|
195
106
|
future read-only check can inspect.
|
|
196
107
|
|
|
197
108
|
| Guardrail id | Phase | Disciplines | Evidence | Enforcement |
|
|
@@ -201,7 +112,7 @@ future read-only check can inspect.
|
|
|
201
112
|
| `verify-first-initial-stance` | execution | `build-review-chat`, `design-first-consensus` | `chatv3.message` | advisory |
|
|
202
113
|
| `coordinator-independent-research` | execution | `coordinator-loop` | `projectman.kanban-task`, `projectman.sprint` | advisory |
|
|
203
114
|
| `single-operator-interface` | execution | `coordinator-loop` | `chatv3.message` | advisory |
|
|
204
|
-
| `assignment-via-canonical-refs` | execution | `coordinator-loop` | `
|
|
115
|
+
| `assignment-via-canonical-refs` | execution | `coordinator-loop` | `projectman.kanban-task`, `projectman.sprint` | advisory |
|
|
205
116
|
| `idle-window-improvement` | execution | `coordinator-loop` | `projectman.issue`, `projectman.feedback` | advisory |
|
|
206
117
|
| `review-request-per-slice` | execution | `build-review-chat`, `coordinator-loop` | `projectman.review-request`, `chatv3.message` | advisory |
|
|
207
118
|
| `verify-in-code` | execution | `build-review-chat`, `coordinator-loop` | empty | advisory |
|
|
@@ -220,20 +131,19 @@ future read-only check can inspect.
|
|
|
220
131
|
| `closeout-pm-status-audit` | closeout | all | `projectman.status.audit`, `projectman.status.reconcile` | soft-preflight |
|
|
221
132
|
| `closeout-triage-open-reviews` | closeout | all | `projectman.review-request` | soft-preflight |
|
|
222
133
|
| `closeout-triage-open-issues` | closeout | all | `projectman.issue` | soft-preflight |
|
|
223
|
-
| `closeout-
|
|
224
|
-
| `closeout-resume-readiness` | closeout | all | `agentspace.mission.resume-pack` | soft-preflight |
|
|
134
|
+
| `closeout-resume-readiness` | closeout | all | `agentspace.memory`, `projectman.implementation-plan`, `projectman.handoff` | soft-preflight |
|
|
225
135
|
| `closeout-session-summary` | closeout | all | `agentspace.memory-item` | soft-preflight |
|
|
226
136
|
| `closeout-slice-review-accounted` | closeout | `build-review-chat`, `coordinator-loop` | `projectman.review-request`, `projectman.issue` | soft-preflight |
|
|
227
137
|
| `closeout-commit-scope-recorded` | closeout | `build-review-chat`, `coordinator-loop` | `git.commit`, `projectman.review-request`, `chatv3.message` | soft-preflight |
|
|
228
|
-
| `closeout-assignment-queue-truthful` | closeout | `coordinator-loop` | `
|
|
138
|
+
| `closeout-assignment-queue-truthful` | closeout | `coordinator-loop` | `projectman.kanban-task` | soft-preflight |
|
|
229
139
|
| `closeout-discuss-output-finalized` | closeout | `design-first-consensus` | `agentspace.discussion-topic.outputs` | soft-preflight |
|
|
230
140
|
| `closeout-decision-carried-to-execution` | closeout | `design-first-consensus` | `projectman.kanban-task`, `projectman.sprint`, `projectman.issue`, `projectman.feedback` | soft-preflight |
|
|
231
141
|
|
|
232
|
-
###
|
|
142
|
+
### 3.2 Closeout discipline
|
|
233
143
|
|
|
234
144
|
#### 4.2.1 Overview
|
|
235
145
|
|
|
236
|
-
Closeout is the explicit before-leaving phase for an active
|
|
146
|
+
Closeout is the explicit before-leaving phase for an active session. It
|
|
237
147
|
is not the same as operator board closeout or leaving a ChatV3 room.
|
|
238
148
|
|
|
239
149
|
Use handoff when work continues or a future session must resume. Use complete
|
|
@@ -247,7 +157,6 @@ All disciplines share this closeout checklist:
|
|
|
247
157
|
- run `aops pm status audit` for the active task/board before saying work is done; resolve, reconcile, or explicitly defer stale task/sprint status findings with an owner
|
|
248
158
|
- triage open review requests as accepted, linked to follow-up work, or deferred with owner
|
|
249
159
|
- triage open issues as resolved, linked to follow-up work, or deferred with owner
|
|
250
|
-
- leave mission status truthful: active, handoff, completed, blocked, or deferred
|
|
251
160
|
- prove resume readiness from objective, policy, plan, memory, review, issue, and next-action refs
|
|
252
161
|
- record a concise session summary with changed scope and validation evidence
|
|
253
162
|
|
|
@@ -255,7 +164,6 @@ Closeout status values are intentionally descriptive, not hard-fail booleans:
|
|
|
255
164
|
`present`, `missing`, `deferred-with-owner`, `not-applicable`, and
|
|
256
165
|
`waived-by-operator`.
|
|
257
166
|
|
|
258
|
-
The current Community CLI does not ship `mission check` or `mission handoff`.
|
|
259
167
|
Use the owner surfaces instead:
|
|
260
168
|
|
|
261
169
|
```bash
|
|
@@ -267,9 +175,9 @@ aops mem checkpoint --help
|
|
|
267
175
|
Agents enforce closeout through PM/RR state, memory, review, chat wake refs,
|
|
268
176
|
and honest handoff notes.
|
|
269
177
|
|
|
270
|
-
##
|
|
178
|
+
## 4 solo-pm-loop
|
|
271
179
|
|
|
272
|
-
###
|
|
180
|
+
### 4.1 Overview
|
|
273
181
|
|
|
274
182
|
#### 5.1.1 Overview
|
|
275
183
|
|
|
@@ -306,13 +214,13 @@ RR/RRR:
|
|
|
306
214
|
|
|
307
215
|
Closeout checklist:
|
|
308
216
|
|
|
309
|
-
- base closeout guardrails only: handoff memory, review/issue triage,
|
|
217
|
+
- base closeout guardrails only: handoff memory, review/issue triage, resume readiness, and session summary
|
|
310
218
|
- optional async review is either accepted or deferred with owner
|
|
311
219
|
- next agent can resume from PM sprint/task plus memory without reading the whole chat
|
|
312
220
|
|
|
313
|
-
##
|
|
221
|
+
## 5 build-review-chat
|
|
314
222
|
|
|
315
|
-
###
|
|
223
|
+
### 5.1 Overview
|
|
316
224
|
|
|
317
225
|
#### 6.1.1 Overview
|
|
318
226
|
|
|
@@ -336,7 +244,7 @@ Consensus-to-plan binding:
|
|
|
336
244
|
- when a material consensus exists, the implementer or reviewer proactively asks whether it should become a PM implementation plan
|
|
337
245
|
- the operator approval gate decides whether the consensus is carried into Projectman
|
|
338
246
|
- execution waits until the plan references the consensus and the reviewer accepts the plan review request
|
|
339
|
-
- the reusable recipe stays role-agnostic; the
|
|
247
|
+
- the reusable recipe stays role-agnostic; the discipline policy decides which concrete agent is implementer or reviewer
|
|
340
248
|
|
|
341
249
|
Verify-first consensus-to-build recipe:
|
|
342
250
|
|
|
@@ -392,9 +300,9 @@ Closeout checklist:
|
|
|
392
300
|
- unresolved review findings become PM issues before handoff or completion
|
|
393
301
|
- do not close the room or board unless the operator says to close them
|
|
394
302
|
|
|
395
|
-
##
|
|
303
|
+
## 6 design-first-consensus
|
|
396
304
|
|
|
397
|
-
###
|
|
305
|
+
### 6.1 Overview
|
|
398
306
|
|
|
399
307
|
#### 7.1.1 Overview
|
|
400
308
|
|
|
@@ -437,7 +345,7 @@ Consensus-to-plan binding is mandatory for this discipline when implementation f
|
|
|
437
345
|
- carry the concluded consensus ref into a Projectman task, sprint-backed implementation plan, issue, or feedback record before implementation resumes
|
|
438
346
|
- the implementation plan goal should explain `NE / NICIN / DONE-WHEN` in operator-readable language
|
|
439
347
|
- execution stays blocked until the operator-approved consensus is bound to the plan and the reviewer accepts the plan approval review request
|
|
440
|
-
- concrete agent names stay in
|
|
348
|
+
- concrete agent names stay in discipline policy; the reusable discipline names only implementer, reviewer, and operator-approver roles
|
|
441
349
|
|
|
442
350
|
Closeout checklist:
|
|
443
351
|
|
|
@@ -447,9 +355,9 @@ Closeout checklist:
|
|
|
447
355
|
- unresolved decision work is deferred with owner instead of disappearing into chat
|
|
448
356
|
- handoff memory names the accepted decision and the next execution surface
|
|
449
357
|
|
|
450
|
-
##
|
|
358
|
+
## 7 coordinator-loop
|
|
451
359
|
|
|
452
|
-
###
|
|
360
|
+
### 7.1 Overview
|
|
453
361
|
|
|
454
362
|
#### 8.1.1 Overview
|
|
455
363
|
|
|
@@ -464,19 +372,19 @@ When to use:
|
|
|
464
372
|
- review authority is delegated: the coordinator (or a bound reviewer) accepts
|
|
465
373
|
slices; the operator is not paged per slice
|
|
466
374
|
|
|
467
|
-
Roles (generic, bound per
|
|
375
|
+
Roles (generic, bound per session):
|
|
468
376
|
|
|
469
377
|
- `operator`: human intent, priorities, and approvals; speaks only to the
|
|
470
378
|
coordinator.
|
|
471
379
|
- `coordinator`: single operator interface. Researches independently before
|
|
472
|
-
assigning, authors
|
|
473
|
-
refs, reviews RRs, instructs commits, keeps PM/
|
|
380
|
+
assigning, authors task/plan records, assigns work with canonical
|
|
381
|
+
refs, reviews RRs, instructs commits, keeps PM/memory truthful, and
|
|
474
382
|
uses idle windows for improvement work (docs, skills, tooling) plus
|
|
475
383
|
issue/feedback capture.
|
|
476
384
|
- `implementer` (one or more): executes assigned slices, opens an RR per slice,
|
|
477
385
|
routes questions and decisions to the coordinator (never directly to the
|
|
478
386
|
operator), commits only on coordinator instruction.
|
|
479
|
-
- `reviewer` (optional): defaults to the coordinator; a
|
|
387
|
+
- `reviewer` (optional): defaults to the coordinator; a session may bind a
|
|
480
388
|
separate reviewer.
|
|
481
389
|
|
|
482
390
|
Role names are open: `master` or `operator-agent` are discouraged aliases for
|
|
@@ -494,9 +402,9 @@ Preset:
|
|
|
494
402
|
implementer file them; the coordinator also files doc/skill gap findings
|
|
495
403
|
discovered during policy checks
|
|
496
404
|
- memory: the coordinator writes kickoff/checkpoint/closeout memory; assignment
|
|
497
|
-
truth lives in
|
|
405
|
+
truth lives in ktask/plan records, not in chat prose
|
|
498
406
|
- rhythm: operator request -> coordinator independent research (code, PM,
|
|
499
|
-
docs) ->
|
|
407
|
+
docs) -> ktask/plan authoring -> chat assignment with canonical
|
|
500
408
|
refs -> implementer slices with RRs -> coordinator review and fix loop ->
|
|
501
409
|
instructed pathspec commit -> next task or idle-window improvement work
|
|
502
410
|
|
|
@@ -504,7 +412,6 @@ Expected flow:
|
|
|
504
412
|
|
|
505
413
|
```bash
|
|
506
414
|
# coordinator: durable anchor + role binding
|
|
507
|
-
aops mission create --objective "<program>" \
|
|
508
415
|
--policy-json '{"discipline":"coordinator-loop","roles":{"operator":"<name>","coordinator":"<agent>","implementer":"<agent>"}}' \
|
|
509
416
|
--apply --json
|
|
510
417
|
|
|
@@ -512,9 +419,8 @@ aops mission create --objective "<program>" \
|
|
|
512
419
|
aops pm ktask create --board <board> --column Doing --title "<task>" --apply --json
|
|
513
420
|
aops plan create --task <task-id> --name "<plan>" --goal "<goal>" \
|
|
514
421
|
--scope-item "S1 ..." --scope-item "S2 ..." --apply --json
|
|
515
|
-
aops mission update --id <mission-id> --active-plan <plan-id> --apply --json
|
|
516
422
|
aops chat send --session <session> --room general \
|
|
517
|
-
"GOREV ATAMASI:
|
|
423
|
+
"GOREV ATAMASI: ktask <id> / plan <id> - S1'den basla, slice basina RR" --json
|
|
518
424
|
|
|
519
425
|
# implementer: per slice
|
|
520
426
|
aops pm review-request create --task <task-id> --sprint <plan-id> \
|
|
@@ -529,7 +435,7 @@ aops pm review-request result --id <rr-id> --reviewer <coordinator> \
|
|
|
529
435
|
Free-form session notes:
|
|
530
436
|
|
|
531
437
|
- multiple independent tasks may be active at once; each gets its own
|
|
532
|
-
ktask/plan; the
|
|
438
|
+
ktask/plan; the plan stays the session anchor and
|
|
533
439
|
`activeImplementationPlanRef` tracks the current focus
|
|
534
440
|
- the coordinator adapts the depth of process to the task: an atomic fix may
|
|
535
441
|
run as a single RR without a plan; multi-slice work gets a sprint-backed plan
|
|
@@ -550,21 +456,20 @@ Closeout checklist:
|
|
|
550
456
|
- base closeout guardrails plus `build-review-chat` items: every slice RR
|
|
551
457
|
accounted for; commit hash, pathspec, and validation evidence recorded
|
|
552
458
|
- assignment queue truthful: every operator request in the session is bound to
|
|
553
|
-
a
|
|
459
|
+
a ktask/plan record, completed, or explicitly deferred with owner
|
|
554
460
|
- coordinator improvement findings are filed as PM issues/feedback, not left in
|
|
555
461
|
chat
|
|
556
462
|
- handoff memory names the active assignments, review states, and the next
|
|
557
463
|
action per implementer
|
|
558
464
|
|
|
559
|
-
##
|
|
465
|
+
## 8 Owner boundaries
|
|
560
466
|
|
|
561
|
-
###
|
|
467
|
+
### 8.1 Overview
|
|
562
468
|
|
|
563
469
|
#### 9.1.1 Overview
|
|
564
470
|
|
|
565
471
|
| Surface | Owner | Use for |
|
|
566
472
|
| --- | --- | --- |
|
|
567
|
-
| Mission | Agentspace | durable intent and policy |
|
|
568
473
|
| Projectman | Projectman | task, sprint, microtask, issue, review truth |
|
|
569
474
|
| Discuss | Agentspace discuss | material decisions and final stances |
|
|
570
475
|
| Memory | Agentspace memory | durable carry-forward context |
|
|
@@ -575,14 +480,3 @@ Closeout checklist:
|
|
|
575
480
|
Do not hand-edit `.aops/hosted/**` or `.aops/docman/**` as canonical truth.
|
|
576
481
|
Use hosted commands, then refresh mirrors.
|
|
577
482
|
|
|
578
|
-
## 10 Later: mission check
|
|
579
|
-
|
|
580
|
-
### 10.1 Overview
|
|
581
|
-
|
|
582
|
-
#### 10.1.1 Overview
|
|
583
|
-
|
|
584
|
-
`aops mission check --closeout` is intentionally later. The MVP check must
|
|
585
|
-
be read-only and inspect PM/discuss/memory evidence plus declared closeout
|
|
586
|
-
status. It must not mutate PM, memory, git, boards, or chat rooms. It should not
|
|
587
|
-
hard-fail by default; strict enforcement is opt-in later through
|
|
588
|
-
`policy.discipline.enforcement = "strict"` or a future explicit closeout policy.
|
|
@@ -6,7 +6,6 @@ import { resolveOwnerScopeIdFromBinding, resolveProjectBindingContext, } from '.
|
|
|
6
6
|
import { createNewLocalMemoryEntry, readLocalMemoryEntries, rebuildLocalMemoryWorkspace, resolveMemoryWorkspacePaths, writeLocalMemoryEntryFile, } from '../utils/memory-workspace.js';
|
|
7
7
|
const REPO_FIRST_CHECKPOINT_TOOL_ID = 'repo-first.checkpoint';
|
|
8
8
|
const CHECKPOINT_SCHEMA_VERSION = 1;
|
|
9
|
-
const MISSION_SUBJECT_TYPE = 'agentspace.mission';
|
|
10
9
|
const PROJECT_SUBJECT_TYPE = 'projectman.plan';
|
|
11
10
|
function isRecord(value) {
|
|
12
11
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
@@ -126,17 +125,9 @@ function buildCheckpointState(entries, includeLegacy = true) {
|
|
|
126
125
|
return { supersededIds, currentIds };
|
|
127
126
|
}
|
|
128
127
|
function resolveCheckpointSubject(options, context) {
|
|
129
|
-
const missionId = normalizeNonEmpty(options.missionId);
|
|
130
|
-
if (missionId) {
|
|
131
|
-
return {
|
|
132
|
-
subjectType: MISSION_SUBJECT_TYPE,
|
|
133
|
-
subjectId: missionId,
|
|
134
|
-
subjectTitle: normalizeNonEmpty(options.missionSlug) ?? `mission:${missionId}`,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
128
|
const subjectId = normalizeNonEmpty(options.subjectId) ?? resolveOwnerScopeIdFromBinding(context) ?? normalizeNonEmpty(context.projectId);
|
|
138
129
|
if (!subjectId) {
|
|
139
|
-
throw new Error('Checkpoint subject could not be resolved. Provide --
|
|
130
|
+
throw new Error('Checkpoint subject could not be resolved. Provide --subject-id, --project-id, or repo config.');
|
|
140
131
|
}
|
|
141
132
|
return {
|
|
142
133
|
subjectType: normalizeNonEmpty(options.subjectType) ?? PROJECT_SUBJECT_TYPE,
|
|
@@ -145,9 +136,6 @@ function resolveCheckpointSubject(options, context) {
|
|
|
145
136
|
};
|
|
146
137
|
}
|
|
147
138
|
function resolveReadSubject(options) {
|
|
148
|
-
const missionId = normalizeNonEmpty(options.missionId);
|
|
149
|
-
if (missionId)
|
|
150
|
-
return { subjectType: MISSION_SUBJECT_TYPE, subjectId: missionId };
|
|
151
139
|
const subjectType = normalizeNonEmpty(options.subjectType);
|
|
152
140
|
const subjectId = normalizeNonEmpty(options.subjectId);
|
|
153
141
|
if (!subjectType && !subjectId)
|
|
@@ -215,8 +203,6 @@ function buildCheckpointEntry(params) {
|
|
|
215
203
|
const nextSteps = toStringArray(options.nextStep);
|
|
216
204
|
const timestamp = new Date().toISOString();
|
|
217
205
|
const anchors = compactPayload({
|
|
218
|
-
missionId: normalizeNonEmpty(options.missionId),
|
|
219
|
-
missionSlug: normalizeNonEmpty(options.missionSlug),
|
|
220
206
|
sessionId: normalizeNonEmpty(options.sessionId),
|
|
221
207
|
projectId: normalizeNonEmpty(context.projectId),
|
|
222
208
|
projectSlug: normalizeNonEmpty(context.projectSlug),
|
|
@@ -243,7 +229,6 @@ function buildCheckpointEntry(params) {
|
|
|
243
229
|
'memory:checkpoint',
|
|
244
230
|
'checkpoint:session',
|
|
245
231
|
context.projectId ? `project:${context.projectId}` : undefined,
|
|
246
|
-
options.missionId ? `mission:${options.missionId}` : undefined,
|
|
247
232
|
linked.kanbanTaskId ? `kanban-task:${linked.kanbanTaskId}` : undefined,
|
|
248
233
|
linked.sprintId ? `sprint:${linked.sprintId}` : undefined,
|
|
249
234
|
linked.phaseId ? `phase:${linked.phaseId}` : undefined,
|
|
@@ -494,13 +479,11 @@ export function makeCheckpointCommand() {
|
|
|
494
479
|
.option('--content <textOrFile>', 'Optional notes text, or @file to read notes from disk')
|
|
495
480
|
.option('--source-ref <value>', 'Repeatable source ref (string, JSON object/array, or @file.json)', collectRepeatedOption, [])
|
|
496
481
|
.option('--next-read-ref <value>', 'Repeatable next read ref (string, JSON object/array, or @file.json)', collectRepeatedOption, [])
|
|
497
|
-
.option('--mission-id <id>', 'Mission id anchor; uses agentspace.mission subject')
|
|
498
|
-
.option('--mission-slug <slug>', 'Mission slug/title hint')
|
|
499
482
|
.option('--session-id <id>', 'Session id anchor')
|
|
500
483
|
.option('--agent <id>', 'Agent/session actor label')
|
|
501
|
-
.option('--subject-type <type>', 'Explicit subject type
|
|
502
|
-
.option('--subject-id <id>', 'Explicit subject id
|
|
503
|
-
.option('--subject-title <text>', 'Explicit subject title
|
|
484
|
+
.option('--subject-type <type>', 'Explicit subject type checkpoint')
|
|
485
|
+
.option('--subject-id <id>', 'Explicit subject id checkpoint')
|
|
486
|
+
.option('--subject-title <text>', 'Explicit subject title checkpoint')
|
|
504
487
|
.option('--task-id <id>', 'Linked kanban task id')
|
|
505
488
|
.option('--kanban-task-id <id>', 'Linked kanban task id')
|
|
506
489
|
.option('--sprint-id <id>', 'Linked sprint id')
|
|
@@ -518,7 +501,6 @@ export function makeCheckpointCommand() {
|
|
|
518
501
|
}));
|
|
519
502
|
applyCheckpointContextOptions(cmd.command('list')
|
|
520
503
|
.description('List checkpoint timeline, including superseded records')
|
|
521
|
-
.option('--mission-id <id>', 'Filter to mission checkpoint subject')
|
|
522
504
|
.option('--subject-type <type>', 'Filter by subject type')
|
|
523
505
|
.option('--subject-id <id>', 'Filter by subject id')
|
|
524
506
|
.option('--current', 'Show only current non-superseded checkpoint per subject')
|
|
@@ -532,7 +514,6 @@ export function makeCheckpointCommand() {
|
|
|
532
514
|
.description('Get a checkpoint by id, or the current checkpoint for a subject')
|
|
533
515
|
.option('--id <id>', 'Checkpoint id')
|
|
534
516
|
.option('--current', 'Get current checkpoint for the requested subject (default when --id is omitted)')
|
|
535
|
-
.option('--mission-id <id>', 'Mission id subject for current lookup')
|
|
536
517
|
.option('--subject-type <type>', 'Subject type for current lookup')
|
|
537
518
|
.option('--subject-id <id>', 'Subject id for current lookup')
|
|
538
519
|
.option('--full', 'Include checkpoint content body')
|