@aopslabs/aops 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/LICENSE +19 -0
  2. package/NOTICE +7 -0
  3. package/README.md +203 -0
  4. package/assets/agent-assets/core/SKILL.md +49 -0
  5. package/assets/agent-assets/core/references/agentspace/SKILL.md +78 -0
  6. package/assets/agent-assets/core/references/aops-cli-core/SKILL.md +108 -0
  7. package/assets/agent-assets/core/references/chatv3/SKILL.md +48 -0
  8. package/assets/agent-assets/core/references/collaborative-work/SKILL.md +85 -0
  9. package/assets/agent-assets/core/references/discuss/SKILL.md +66 -0
  10. package/assets/agent-assets/core/references/docman/SKILL.md +69 -0
  11. package/assets/agent-assets/core/references/hosted-chat/SKILL.md +64 -0
  12. package/assets/agent-assets/core/references/mission/SKILL.md +54 -0
  13. package/assets/agent-assets/core/references/projectman/SKILL.md +86 -0
  14. package/assets/agent-assets/core/references/sys/SKILL.md +36 -0
  15. package/assets/agent-assets/core/references/view/SKILL.md +58 -0
  16. package/assets/agent-assets/core/references/working-disciplines/SKILL.md +69 -0
  17. package/assets/agent-assets/core/user-guides/agent-assets.md +81 -0
  18. package/assets/agent-assets/core/user-guides/agentspace.md +1098 -0
  19. package/assets/agent-assets/core/user-guides/aops-cli.md +1107 -0
  20. package/assets/agent-assets/core/user-guides/aops-system.md +63 -0
  21. package/assets/agent-assets/core/user-guides/chatv3.md +113 -0
  22. package/assets/agent-assets/core/user-guides/docman.md +162 -0
  23. package/assets/agent-assets/core/user-guides/projectman.md +212 -0
  24. package/assets/agent-assets/core/user-guides/sys.md +94 -0
  25. package/assets/agent-assets/core/user-guides/working-disciplines.md +588 -0
  26. package/assets/agent-assets/gateway/aops/SKILL.md +14 -0
  27. package/assets/r6-remote-session-baseline.json +19 -0
  28. package/assets/skills/aops-install/SKILL.md +231 -0
  29. package/assets/skills/aops-install/agents/openai.yaml +4 -0
  30. package/dist/commands/activity.js +352 -0
  31. package/dist/commands/agent-profile.js +653 -0
  32. package/dist/commands/agent.js +710 -0
  33. package/dist/commands/agents-md.js +125 -0
  34. package/dist/commands/api.js +84 -0
  35. package/dist/commands/archive.js +873 -0
  36. package/dist/commands/artifact.js +535 -0
  37. package/dist/commands/assets.js +1414 -0
  38. package/dist/commands/auth/device-login.js +1 -0
  39. package/dist/commands/auth/legacy-export.js +177 -0
  40. package/dist/commands/auth/login.js +426 -0
  41. package/dist/commands/chat.js +1363 -0
  42. package/dist/commands/chatv3.js +1684 -0
  43. package/dist/commands/checkpoint.js +549 -0
  44. package/dist/commands/commercial-artifact.js +475 -0
  45. package/dist/commands/commercial-license.js +594 -0
  46. package/dist/commands/community-auth.js +62 -0
  47. package/dist/commands/community-cockpit.js +185 -0
  48. package/dist/commands/community-console.js +109 -0
  49. package/dist/commands/community-doctor.js +335 -0
  50. package/dist/commands/community-server.js +2062 -0
  51. package/dist/commands/community-setup.js +284 -0
  52. package/dist/commands/discuss.js +1448 -0
  53. package/dist/commands/doc.js +5219 -0
  54. package/dist/commands/experience.js +922 -0
  55. package/dist/commands/host.js +1127 -0
  56. package/dist/commands/init.js +118 -0
  57. package/dist/commands/memory.js +3129 -0
  58. package/dist/commands/mission.js +562 -0
  59. package/dist/commands/official-catalog.js +134 -0
  60. package/dist/commands/plan.js +84 -0
  61. package/dist/commands/playbook.js +415 -0
  62. package/dist/commands/pm/context.js +6 -0
  63. package/dist/commands/pm/index.js +701 -0
  64. package/dist/commands/pm/projectman.js +6266 -0
  65. package/dist/commands/project.js +1080 -0
  66. package/dist/commands/prompt.js +1024 -0
  67. package/dist/commands/repo-sync.js +1907 -0
  68. package/dist/commands/resource.js +527 -0
  69. package/dist/commands/skill.js +1211 -0
  70. package/dist/commands/start-disciplines.js +510 -0
  71. package/dist/commands/start.js +1343 -0
  72. package/dist/commands/target.js +309 -0
  73. package/dist/commands/version.js +42 -0
  74. package/dist/commands/view.js +1852 -0
  75. package/dist/launchers/cockpit.js +28 -0
  76. package/dist/launchers/options.js +74 -0
  77. package/dist/launchers/server.js +41 -0
  78. package/dist/lib/agent-assets/envelope.js +83 -0
  79. package/dist/lib/agent-assets/gateway.js +15 -0
  80. package/dist/lib/agent-assets/guards.js +23 -0
  81. package/dist/lib/agent-assets/hosted-discovery.js +148 -0
  82. package/dist/lib/agent-assets/hosted-package-input.js +154 -0
  83. package/dist/lib/agent-assets/legacy-pointer-migration.js +677 -0
  84. package/dist/lib/agent-assets/native-fs.js +589 -0
  85. package/dist/lib/agent-assets/package-manifest.js +324 -0
  86. package/dist/lib/agent-assets/portable-path.js +67 -0
  87. package/dist/lib/agent-assets/release-input.js +177 -0
  88. package/dist/lib/agent-assets/roots.js +45 -0
  89. package/dist/lib/agent-assets/runtime-binding-reader.js +545 -0
  90. package/dist/lib/agent-assets/runtime-targets.js +50 -0
  91. package/dist/lib/agent-assets/store-reader.js +1212 -0
  92. package/dist/lib/agent-assets/store-types.js +1 -0
  93. package/dist/lib/agent-assets/store-writer.js +1484 -0
  94. package/dist/lib/agent-assets/types.js +1 -0
  95. package/dist/lib/agent-assets/unicode-case-folding-v15-1.generated.js +1548 -0
  96. package/dist/lib/commercial-final-readiness.js +504 -0
  97. package/dist/lib/commercial-lifecycle-smoke-isolation.js +236 -0
  98. package/dist/lib/commercial-managed-postgres-docker-adapter.js +274 -0
  99. package/dist/lib/commercial-setup-readiness-adapter.js +179 -0
  100. package/dist/lib/community-client-contract.js +164 -0
  101. package/dist/lib/community-cockpit-lifecycle.js +601 -0
  102. package/dist/lib/community-command-abort.js +59 -0
  103. package/dist/lib/community-diagnostic.js +237 -0
  104. package/dist/lib/community-docker-adapter.js +498 -0
  105. package/dist/lib/community-home.js +31 -0
  106. package/dist/lib/community-instance-contract.js +148 -0
  107. package/dist/lib/community-instance-layout.js +97 -0
  108. package/dist/lib/community-lifecycle.js +1631 -0
  109. package/dist/lib/community-migration-snapshot.js +770 -0
  110. package/dist/lib/community-native-application-recovery.js +425 -0
  111. package/dist/lib/community-native-child.js +240 -0
  112. package/dist/lib/community-native-database-recovery.js +456 -0
  113. package/dist/lib/community-native-lifecycle.js +2458 -0
  114. package/dist/lib/community-native-migration.js +339 -0
  115. package/dist/lib/community-native-postgres.js +596 -0
  116. package/dist/lib/community-operation-journal.js +773 -0
  117. package/dist/lib/community-operation-lock.js +596 -0
  118. package/dist/lib/community-release-resolver.js +291 -0
  119. package/dist/lib/community-release-verifier.js +475 -0
  120. package/dist/lib/community-repo-discovery.js +252 -0
  121. package/dist/lib/community-setup-server-env.js +203 -0
  122. package/dist/lib/external-url.js +110 -0
  123. package/dist/lib/official-catalog-gateway.js +108 -0
  124. package/dist/lib/official-catalog.js +364 -0
  125. package/dist/lib/server-bootstrap.js +240 -0
  126. package/dist/lib/setup-agent-assets-bridge.js +176 -0
  127. package/dist/lib/setup-agent-assets-release.js +52 -0
  128. package/dist/lib/setup-external-postgres.js +108 -0
  129. package/dist/lib/setup-init-orchestrator.js +990 -0
  130. package/dist/lib/setup-install-guide.js +52 -0
  131. package/dist/lib/setup-installer-release.js +47 -0
  132. package/dist/lib/setup-local-postgres.js +329 -0
  133. package/dist/lib/setup-official-catalog-bridge.js +148 -0
  134. package/dist/lib/setup-readiness.js +888 -0
  135. package/dist/lib/tui-launcher.js +59 -0
  136. package/dist/main.js +150 -0
  137. package/dist/seeds/agents-md.js +54 -0
  138. package/dist/utils/agent-gateway.js +275 -0
  139. package/dist/utils/agents-md.js +281 -0
  140. package/dist/utils/api.js +255 -0
  141. package/dist/utils/chatv3-session-store.js +185 -0
  142. package/dist/utils/command.js +67 -0
  143. package/dist/utils/community-host-runtime.js +376 -0
  144. package/dist/utils/config.js +1015 -0
  145. package/dist/utils/discussion-workspace.js +552 -0
  146. package/dist/utils/experience-workspace.js +326 -0
  147. package/dist/utils/guide-paths.js +67 -0
  148. package/dist/utils/hosted-sugar.js +56 -0
  149. package/dist/utils/hosted-workspace.js +229 -0
  150. package/dist/utils/memory-workspace.js +537 -0
  151. package/dist/utils/operator-runtime.js +199 -0
  152. package/dist/utils/password-crypto.js +39 -0
  153. package/dist/utils/playbook-workspace.js +479 -0
  154. package/dist/utils/project-context.js +255 -0
  155. package/dist/utils/prompts.js +70 -0
  156. package/dist/utils/refresh-race.js +28 -0
  157. package/dist/utils/repo-config.js +109 -0
  158. package/dist/utils/repo-first-projectman.js +194 -0
  159. package/dist/utils/repo-first-storage.js +13 -0
  160. package/dist/utils/repo-first-view.js +305 -0
  161. package/dist/utils/session-guidance.js +278 -0
  162. package/dist/utils/session-state.js +137 -0
  163. package/dist/utils/table.js +39 -0
  164. package/dist/utils/transient-fs.js +49 -0
  165. package/dist/utils/workspace-root.js +1 -0
  166. package/launchers/aops-cockpit.ps1 +15 -0
  167. package/launchers/aops-cockpit.sh +16 -0
  168. package/launchers/aops-server.ps1 +15 -0
  169. package/launchers/aops-server.sh +16 -0
  170. package/native/tui/win32-x64/aops-tui.exe +0 -0
  171. package/package.json +81 -0
@@ -0,0 +1,588 @@
1
+ <!-- Public packaged snapshot from canonical slug:aops working-discipline guidance. Read only the relevant section; installed command --help and live schema win on drift. -->
2
+
3
+ # AOPS Working Disciplines v7
4
+
5
+ _Release Notes:_ Adds coordinator-loop discipline (operator -> coordinator -> implementer delegation, free-form multi-task sessions) + guardrails + signal mapping
6
+
7
+ ## 1 Core model
8
+
9
+ ### 1.1 Overview
10
+
11
+ #### 1.1.1 Overview
12
+
13
+ `discipline` is the user-facing name for a policy preset. `method` is a
14
+ compatibility alias in `aops start` output and flags.
15
+
16
+ A discipline is:
17
+
18
+ - a policy preset id
19
+ - `guardrails[]`
20
+ - when-to-use signals
21
+ - review and RRR timing
22
+ - issue timing
23
+ - memory cadence
24
+ - plan and slice rhythm
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 mission-specific `mission.policy.roles`.
27
+
28
+ The four canonical ids are:
29
+
30
+ | Discipline | Best for | Primary surfaces |
31
+ | --- | --- | --- |
32
+ | `solo-pm-loop` | Single-agent or low-uncertainty work | Projectman, optional RR, memory |
33
+ | `build-review-chat` | Live implementer plus reviewer work | Projectman RR/RRR, ChatV3 wake, memory |
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 | Mission policy, Projectman RR/RRR, ChatV3 room, memory |
36
+
37
+ `mode` is transport/session shape: `solo`, `solo+async-review`, or `chat-room`.
38
+ `discipline` is the work policy. A chat-room mode usually maps to
39
+ `build-review-chat`, but an operator can override with `--discipline`.
40
+ `coordinator-loop` also runs in `chat-room` mode; the difference is the
41
+ authority shape: in `build-review-chat` the operator coordinates peers, in
42
+ `coordinator-loop` the operator talks only to the coordinator and the
43
+ coordinator directs the other agents.
44
+
45
+ `verify-first consensus-to-build` is a composite recipe, not a discipline.
46
+ Use it when an operator reports an AOPS/project improvement issue and wants two
47
+ agents to verify the problem before deciding whether a formal discuss topic is
48
+ needed. It combines a short verify-first stance from each active role,
49
+ `design-first-consensus` when the decision is material, and `build-review-chat`
50
+ for reviewed implementation slices after consensus is bound to Projectman.
51
+
52
+ ## 2 Start selection
53
+
54
+ ### 2.1 Overview
55
+
56
+ #### 2.1.1 Overview
57
+
58
+ `aops start` exposes the transition vocabulary:
59
+
60
+ ```bash
61
+ aops start --mode chat-room --board <board> --discipline build-review-chat --json
62
+ aops start --mode solo --board <board> --method solo-pm-loop --json
63
+ aops start --mode chat-room --board <board> --discipline coordinator-loop --json
64
+ ```
65
+
66
+ `--discipline` is preferred. `--method` is a compatibility alias. Supplying both
67
+ with different values is an error.
68
+
69
+ Signal mapping:
70
+
71
+ | Signal | Match | Discipline | Why |
72
+ | --- | --- | --- | --- |
73
+ | `decisionUncertainty` | `high` | `design-first-consensus` | Settle design before implementation. |
74
+ | `operatorInterface` | `delegated` | `coordinator-loop` | Operator wants one coordinator as the single interface; other agents work under it. |
75
+ | `mode` | `chat-room` | `build-review-chat` | Chat is live coordination for build/review. |
76
+ | `agentCount` | `>1` | `build-review-chat` | Multiple agents need per-slice review gates. |
77
+ | `workSize + decisionUncertainty` | `large + medium` | `design-first-consensus` | Large uncertain work should converge first. |
78
+ | default | otherwise | `solo-pm-loop` | Single-agent or low-uncertainty PM loop. |
79
+
80
+ `operatorInterface: delegated` wins over the plain `chat-room ->
81
+ build-review-chat` mapping because the delegation hierarchy changes review
82
+ authority and escalation routing, not just transport.
83
+
84
+ The start pack includes:
85
+
86
+ - `discipline.selected`, `discipline.recommended`, `discipline.reasons`
87
+ - `method.selected` with `aliasOf: "discipline"`
88
+ - `guardrails[]`
89
+ - `guardrailGroups.execution` and `guardrailGroups.closeout`
90
+ - `policy` and `policyJson` for mission policy seeding
91
+ - `policy.closeout` with explicit closeout command hints
92
+ - apply-required `deferredBindings`
93
+
94
+ ## 3 Mission policy convention
95
+
96
+ ### 3.1 Overview
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.
173
+
174
+ `guardrailGroups.execution` and `guardrailGroups.closeout` are presentation
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
184
+
185
+ #### 4.1.1 Overview
186
+
187
+ Every guardrail now has a phase:
188
+
189
+ - `execution`: applies while planning, implementing, reviewing, and committing.
190
+ - `closeout`: applies before leaving a mission/session or handing it to the next run.
191
+
192
+ 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
+ future read-only check can inspect.
196
+
197
+ | Guardrail id | Phase | Disciplines | Evidence | Enforcement |
198
+ | --- | --- | --- | --- | --- |
199
+ | `pm-task-sprint-before-implementation` | execution | all | `projectman.kanban-task`, `projectman.sprint` | advisory |
200
+ | `microtask-slice-rhythm` | execution | all | `projectman.sprint.phases.microtasks` | advisory |
201
+ | `verify-first-initial-stance` | execution | `build-review-chat`, `design-first-consensus` | `chatv3.message` | advisory |
202
+ | `coordinator-independent-research` | execution | `coordinator-loop` | `projectman.kanban-task`, `projectman.sprint` | advisory |
203
+ | `single-operator-interface` | execution | `coordinator-loop` | `chatv3.message` | advisory |
204
+ | `assignment-via-canonical-refs` | execution | `coordinator-loop` | `agentspace.mission`, `projectman.kanban-task`, `projectman.sprint` | advisory |
205
+ | `idle-window-improvement` | execution | `coordinator-loop` | `projectman.issue`, `projectman.feedback` | advisory |
206
+ | `review-request-per-slice` | execution | `build-review-chat`, `coordinator-loop` | `projectman.review-request`, `chatv3.message` | advisory |
207
+ | `verify-in-code` | execution | `build-review-chat`, `coordinator-loop` | empty | advisory |
208
+ | `smoke-before-accept` | execution | `build-review-chat`, `coordinator-loop` | empty | advisory |
209
+ | `explicit-pathspec-commit` | execution | `build-review-chat`, `coordinator-loop` | empty | advisory |
210
+ | `no-fake-validation` | execution | `build-review-chat`, `coordinator-loop` | empty | advisory |
211
+ | `material-findings-become-issues` | execution | all | `projectman.issue` | advisory |
212
+ | `memory-checkpoint-cadence` | execution | all | `agentspace.memory-item` | advisory |
213
+ | `consensus-before-implementation` | execution | `design-first-consensus` | `agentspace.discussion-topic.final-stance`, `operator.approval` | advisory |
214
+ | `consensus-to-plan-binding` | execution | `design-first-consensus`, `build-review-chat`, `coordinator-loop` | `agentspace.discussion-topic.outputs`, `projectman.sprint`, `projectman.review-request`, `operator.approval` | advisory |
215
+ | `no-conclude-before-final-stance` | execution | `design-first-consensus` | empty | advisory |
216
+ | `no-tbd-output` | execution | `design-first-consensus` | empty | advisory |
217
+ | `chat-is-coordination-only` | execution | `build-review-chat`, `design-first-consensus`, `coordinator-loop` | `projectman.review-request`, `agentspace.discussion-topic`, `agentspace.memory-item` | advisory |
218
+ | `no-hosted-mirror-hand-edit` | execution | all | empty | advisory |
219
+ | `closeout-handoff-memory` | closeout | all | `agentspace.memory-item` | soft-preflight |
220
+ | `closeout-pm-status-audit` | closeout | all | `projectman.status.audit`, `projectman.status.reconcile` | soft-preflight |
221
+ | `closeout-triage-open-reviews` | closeout | all | `projectman.review-request` | soft-preflight |
222
+ | `closeout-triage-open-issues` | closeout | all | `projectman.issue` | soft-preflight |
223
+ | `closeout-mission-status-finalized` | closeout | all | `agentspace.mission.status` | soft-preflight |
224
+ | `closeout-resume-readiness` | closeout | all | `agentspace.mission.resume-pack` | soft-preflight |
225
+ | `closeout-session-summary` | closeout | all | `agentspace.memory-item` | soft-preflight |
226
+ | `closeout-slice-review-accounted` | closeout | `build-review-chat`, `coordinator-loop` | `projectman.review-request`, `projectman.issue` | soft-preflight |
227
+ | `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` | `agentspace.mission`, `projectman.kanban-task` | soft-preflight |
229
+ | `closeout-discuss-output-finalized` | closeout | `design-first-consensus` | `agentspace.discussion-topic.outputs` | soft-preflight |
230
+ | `closeout-decision-carried-to-execution` | closeout | `design-first-consensus` | `projectman.kanban-task`, `projectman.sprint`, `projectman.issue`, `projectman.feedback` | soft-preflight |
231
+
232
+ ### 4.2 Closeout discipline
233
+
234
+ #### 4.2.1 Overview
235
+
236
+ Closeout is the explicit before-leaving phase for an active mission/session. It
237
+ is not the same as operator board closeout or leaving a ChatV3 room.
238
+
239
+ Use handoff when work continues or a future session must resume. Use complete
240
+ only when no required work remains and the operator-approved lifecycle state
241
+ allows completion. Board and room closeout stay operator-only unless the
242
+ operator explicitly delegates them.
243
+
244
+ All disciplines share this closeout checklist:
245
+
246
+ - write handoff/resume memory with next action, validation state, and source refs
247
+ - 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
+ - triage open review requests as accepted, linked to follow-up work, or deferred with owner
249
+ - 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
+ - prove resume readiness from objective, policy, plan, memory, review, issue, and next-action refs
252
+ - record a concise session summary with changed scope and validation evidence
253
+
254
+ Closeout status values are intentionally descriptive, not hard-fail booleans:
255
+ `present`, `missing`, `deferred-with-owner`, `not-applicable`, and
256
+ `waived-by-operator`.
257
+
258
+ The current Community CLI does not ship `mission check` or `mission handoff`.
259
+ Use the owner surfaces instead:
260
+
261
+ ```bash
262
+ aops pm status audit --task <task-id> --sprint <sprint-id> --json
263
+ aops pm handoff write --help
264
+ aops mem checkpoint --help
265
+ ```
266
+
267
+ Agents enforce closeout through PM/RR state, memory, review, chat wake refs,
268
+ and honest handoff notes.
269
+
270
+ ## 5 solo-pm-loop
271
+
272
+ ### 5.1 Overview
273
+
274
+ #### 5.1.1 Overview
275
+
276
+ When to use:
277
+
278
+ - one agent is implementing
279
+ - uncertainty is low or medium
280
+ - review can be optional or asynchronous
281
+ - no live coordination room is required
282
+
283
+ Preset:
284
+
285
+ - `discipline.id`: `solo-pm-loop`
286
+ - enforcement: `advisory`
287
+ - review: async optional at slice or session boundary
288
+ - issue: create when validation or review finds a material blocker
289
+ - memory: checkpoint at meaningful phase boundaries; summary at session end
290
+ - rhythm: task/sprint plus microtask iteration
291
+
292
+ Expected flow:
293
+
294
+ ```bash
295
+ aops pm ktask create --board <board> --column Doing --title "<task>" --apply --json
296
+ aops pm sprint create --task <task-id> --name "<sprint>" --goal "<goal>" --apply --json
297
+ # implement and validate
298
+ aops mem checkpoint --task-id <task-id> --content "<progress>" --apply --json
299
+ ```
300
+
301
+ RR/RRR:
302
+
303
+ - optional for low-risk work
304
+ - recommended for shared CLI/domain behavior
305
+ - material findings become PM issues
306
+
307
+ Closeout checklist:
308
+
309
+ - base closeout guardrails only: handoff memory, review/issue triage, mission status, resume readiness, and session summary
310
+ - optional async review is either accepted or deferred with owner
311
+ - next agent can resume from PM sprint/task plus memory without reading the whole chat
312
+
313
+ ## 6 build-review-chat
314
+
315
+ ### 6.1 Overview
316
+
317
+ #### 6.1.1 Overview
318
+
319
+ When to use:
320
+
321
+ - operator assigns live implementer and reviewer
322
+ - chat room is used for wake/coordination
323
+ - each implementation slice needs fast RRR
324
+ - commit should happen after accepted review
325
+
326
+ Preset:
327
+
328
+ - `discipline.id`: `build-review-chat`
329
+ - review: required per implementation slice before commit
330
+ - issue: material RRR findings become linked PM issues before re-review
331
+ - memory: checkpoint after accepted slice or handoff-relevant review
332
+ - rhythm: slice equals microtask; open RR, post chat wake, resolve before commit
333
+
334
+ Consensus-to-plan binding:
335
+
336
+ - when a material consensus exists, the implementer or reviewer proactively asks whether it should become a PM implementation plan
337
+ - the operator approval gate decides whether the consensus is carried into Projectman
338
+ - execution waits until the plan references the consensus and the reviewer accepts the plan review request
339
+ - the reusable recipe stays role-agnostic; the mission policy decides which concrete agent is implementer or reviewer
340
+
341
+ Verify-first consensus-to-build recipe:
342
+
343
+ - operator reports an issue or improvement request in the room
344
+ - each active role records a short verify-first stance before formal discuss: whether the problem appears real, which truth source was checked, whether formal consensus is needed, and the suspected risk/scope
345
+ - skip standalone discuss only when the stances agree the work is low-uncertainty or atomic; otherwise open a standalone discuss topic
346
+ - after accepted consensus, bind the decision into a PM task/sprint-backed implementation plan and require reviewer acceptance before implementation
347
+ - implementation continues through per-slice review requests, ChatV3 wakes, PM issues/feedback for material findings, checkpoints when useful, and explicit closeout
348
+
349
+ Expected flow:
350
+
351
+ ```bash
352
+ aops pm review-request create \
353
+ --task <task-id> \
354
+ --sprint <sprint-id> \
355
+ --review-scope "sprint:<plan-id>" \
356
+ --requested-by <agent> \
357
+ --target-agent <reviewer> \
358
+ --apply --json
359
+
360
+ aops chatv3 send --session <session> --room general \
361
+ --text "REVIEW READY: PM RR <id> ..." --json
362
+
363
+ # reviewer appends result
364
+ aops pm review-request result --id <rr-id> --reviewer <reviewer> \
365
+ --outcome approved --summary "<evidence>" --apply --json
366
+ ```
367
+
368
+ Reviewer RRR summaries should explicitly mention stale PM status when seen:
369
+ task Done with open sprint/microtask evidence, completed sprint with task not
370
+ Done, or progress/status mismatch. Material stale-status findings become linked
371
+ PM issues or an explicit deferred owner before approval/handoff.
372
+
373
+ Use `sprint:<plan-id>` as the default review-scope when the slice is sprint or
374
+ microtask backed; this matches the `aops start` deferred-binding hint.
375
+ `aops pm review-request create --help` also accepts `files:<glob>`, which is
376
+ appropriate when the reviewer should inspect an explicit file set. For mixed
377
+ slices, put the sprint ref in `--review-scope` and list exact files in
378
+ `--reference` or the instructions, unless the reviewer asks for a file-only RR.
379
+
380
+ Commit discipline:
381
+
382
+ - use explicit pathspec
383
+ - include only the reviewed slice
384
+ - do not bundle PM/doc/hosted drift unless that drift is the reviewed scope
385
+ - announce the commit hash in the room
386
+
387
+ Closeout checklist:
388
+
389
+ - every slice RR is accepted, linked to a PM issue, or explicitly deferred with owner
390
+ - PM status audit is clean, reconciled, or deferred with owner; stale task/sprint status must be named in the RRR instead of hidden in chat
391
+ - commit hash, reviewed pathspec, and validation evidence are recorded in PM/RR and announced in chat
392
+ - unresolved review findings become PM issues before handoff or completion
393
+ - do not close the room or board unless the operator says to close them
394
+
395
+ ## 7 design-first-consensus
396
+
397
+ ### 7.1 Overview
398
+
399
+ #### 7.1.1 Overview
400
+
401
+ When to use:
402
+
403
+ - design uncertainty is high
404
+ - a change crosses owner boundaries
405
+ - the decision is expensive to reverse
406
+ - implementation should not start until consensus is accepted
407
+
408
+ Preset:
409
+
410
+ - `discipline.id`: `design-first-consensus`
411
+ - review: after final stances and operator approval define the implementation slice
412
+ - issue: open issues for unresolved blockers
413
+ - memory: record accepted consensus and handoff checkpoints
414
+ - rhythm: discuss first, carry consensus ref into sprint plan, then implement
415
+
416
+ Expected flow:
417
+
418
+ ```bash
419
+ aops discuss start --title "<decision>" --question "<question>" --apply --json
420
+ # run the full protocol: at least four substantive non-final turns
421
+ aops discuss turn --topic <topic> --agent <agent> --kind final-stance --apply --json
422
+ aops discuss conclude --topic <topic> --apply --json
423
+ ```
424
+
425
+ Do not conclude before final stances are present. Do not publish conclusion
426
+ outputs with `_TBD_` placeholders. After conclusion, ask or record operator
427
+ approval before implementation if the consensus contract requires it.
428
+
429
+ For verify-first consensus-to-build, the discuss topic starts only after the
430
+ active roles have recorded initial stances in the room. The topic output should
431
+ carry those stance refs into the consensus, and the implementation plan should
432
+ carry the discussion ref plus the verify-first refs before any code or canonical
433
+ document changes start.
434
+
435
+ Consensus-to-plan binding is mandatory for this discipline when implementation follows from the decision:
436
+
437
+ - carry the concluded consensus ref into a Projectman task, sprint-backed implementation plan, issue, or feedback record before implementation resumes
438
+ - the implementation plan goal should explain `NE / NICIN / DONE-WHEN` in operator-readable language
439
+ - 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 mission policy; the reusable discipline names only implementer, reviewer, and operator-approver roles
441
+
442
+ Closeout checklist:
443
+
444
+ - final stances, consensus, disagreements, and open questions are finalized without placeholders
445
+ - decision refs are carried into PM task, sprint-backed implementation plan, issue, or feedback records before implementation resumes
446
+ - the plan approval review request is accepted or explicitly deferred with owner before execution begins
447
+ - unresolved decision work is deferred with owner instead of disappearing into chat
448
+ - handoff memory names the accepted decision and the next execution surface
449
+
450
+ ## 8 coordinator-loop
451
+
452
+ ### 8.1 Overview
453
+
454
+ #### 8.1.1 Overview
455
+
456
+ When to use:
457
+
458
+ - the operator wants exactly one agent as their interface and delegates session
459
+ management to it
460
+ - one or more implementer agents execute work under coordinator direction in a
461
+ shared ChatV3 room
462
+ - the session is free-form: multiple, possibly independent tasks arrive over
463
+ time and the team must adapt without a fixed sprint scope
464
+ - review authority is delegated: the coordinator (or a bound reviewer) accepts
465
+ slices; the operator is not paged per slice
466
+
467
+ Roles (generic, bound per mission in `mission.policy.roles`):
468
+
469
+ - `operator`: human intent, priorities, and approvals; speaks only to the
470
+ coordinator.
471
+ - `coordinator`: single operator interface. Researches independently before
472
+ assigning, authors mission/task/plan records, assigns work with canonical
473
+ refs, reviews RRs, instructs commits, keeps PM/mission/memory truthful, and
474
+ uses idle windows for improvement work (docs, skills, tooling) plus
475
+ issue/feedback capture.
476
+ - `implementer` (one or more): executes assigned slices, opens an RR per slice,
477
+ routes questions and decisions to the coordinator (never directly to the
478
+ operator), commits only on coordinator instruction.
479
+ - `reviewer` (optional): defaults to the coordinator; a mission may bind a
480
+ separate reviewer.
481
+
482
+ Role names are open: `master` or `operator-agent` are discouraged aliases for
483
+ `coordinator` — `coordinator` is the canonical role id because it does not
484
+ collide with the human `operator` role and carries no ambiguous authority
485
+ connotation.
486
+
487
+ Preset:
488
+
489
+ - `discipline.id`: `coordinator-loop`
490
+ - enforcement: `advisory`
491
+ - review: RR per implementation slice; reviewer defaults to the coordinator;
492
+ commit only after the RR is accepted and the coordinator instructs the commit
493
+ - issue: material findings become PM issues/feedback; both coordinator and
494
+ implementer file them; the coordinator also files doc/skill gap findings
495
+ discovered during policy checks
496
+ - memory: the coordinator writes kickoff/checkpoint/closeout memory; assignment
497
+ truth lives in mission/ktask/plan records, not in chat prose
498
+ - rhythm: operator request -> coordinator independent research (code, PM,
499
+ docs) -> mission/ktask/plan authoring -> chat assignment with canonical
500
+ refs -> implementer slices with RRs -> coordinator review and fix loop ->
501
+ instructed pathspec commit -> next task or idle-window improvement work
502
+
503
+ Expected flow:
504
+
505
+ ```bash
506
+ # coordinator: durable anchor + role binding
507
+ aops mission create --objective "<program>" \
508
+ --policy-json '{"discipline":"coordinator-loop","roles":{"operator":"<name>","coordinator":"<agent>","implementer":"<agent>"}}' \
509
+ --apply --json
510
+
511
+ # coordinator: per task
512
+ aops pm ktask create --board <board> --column Doing --title "<task>" --apply --json
513
+ aops plan create --task <task-id> --name "<plan>" --goal "<goal>" \
514
+ --scope-item "S1 ..." --scope-item "S2 ..." --apply --json
515
+ aops mission update --id <mission-id> --active-plan <plan-id> --apply --json
516
+ aops chatv3 send --session <session> --room general \
517
+ "GOREV ATAMASI: mission <id> / ktask <id> / plan <id> - S1'den basla, slice basina RR" --json
518
+
519
+ # implementer: per slice
520
+ aops pm review-request create --task <task-id> --sprint <plan-id> \
521
+ --review-scope "sprint:<plan-id>" --requested-by <implementer> \
522
+ --target-agent <coordinator> --apply --json
523
+
524
+ # coordinator: review result
525
+ aops pm review-request result --id <rr-id> --reviewer <coordinator> \
526
+ --outcome approved --summary "<evidence>" --apply --json
527
+ ```
528
+
529
+ Free-form session notes:
530
+
531
+ - multiple independent tasks may be active at once; each gets its own
532
+ ktask/plan; the mission stays the session anchor and
533
+ `activeImplementationPlanRef` tracks the current focus
534
+ - the coordinator adapts the depth of process to the task: an atomic fix may
535
+ run as a single RR without a plan; multi-slice work gets a sprint-backed plan
536
+ - when material design uncertainty appears inside a task, the coordinator runs
537
+ a bounded peer deliberation with the implementer first (for example two
538
+ turns); if positions converge the coordinator proposes the converged path,
539
+ and only unresolved material decisions escalate to the operator
540
+ - the escalation boundary is explicit: implementers never page the operator;
541
+ the coordinator escalates only operator-owned decisions (scope, budget,
542
+ irreversible product choices)
543
+ - binding project policy documents (for example a UI system doc) are named in
544
+ the assignment; both coordinator and implementer re-read the relevant
545
+ sections as a policy check before and during the work, and gaps found in
546
+ those documents are filed as PM issues/feedback
547
+
548
+ Closeout checklist:
549
+
550
+ - base closeout guardrails plus `build-review-chat` items: every slice RR
551
+ accounted for; commit hash, pathspec, and validation evidence recorded
552
+ - assignment queue truthful: every operator request in the session is bound to
553
+ a mission/ktask/plan record, completed, or explicitly deferred with owner
554
+ - coordinator improvement findings are filed as PM issues/feedback, not left in
555
+ chat
556
+ - handoff memory names the active assignments, review states, and the next
557
+ action per implementer
558
+
559
+ ## 9 Owner boundaries
560
+
561
+ ### 9.1 Overview
562
+
563
+ #### 9.1.1 Overview
564
+
565
+ | Surface | Owner | Use for |
566
+ | --- | --- | --- |
567
+ | Mission | Agentspace | durable intent and policy |
568
+ | Projectman | Projectman | task, sprint, microtask, issue, review truth |
569
+ | Discuss | Agentspace discuss | material decisions and final stances |
570
+ | Memory | Agentspace memory | durable carry-forward context |
571
+ | ChatV3 | ChatV3 | coordination and wake |
572
+ | Docman | Docman | published documentation |
573
+ | Hosted skills | Agentspace skill | reusable runtime guidance |
574
+
575
+ Do not hand-edit `.aops/hosted/**` or `.aops/docman/**` as canonical truth.
576
+ Use hosted commands, then refresh mirrors.
577
+
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.
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: aops
3
+ description: Use the installed AOPS Community gateway to discover and operate AOPS capabilities without assuming a working discipline.
4
+ ---
5
+
6
+ # AOPS Community gateway
7
+
8
+ When the task needs AOPS, run this bounded resolver first:
9
+
10
+ `aops assets resolve --gateway aops --json`
11
+
12
+ Read the verified `entryPath` returned by that command and follow only the task-relevant references from it. Do not preload unrelated assets or choose a working discipline for the operator.
13
+
14
+ If resolution fails, inspect the local client with `aops assets status --verify quick --json`. Use `aops assets --help` for lifecycle commands.
@@ -0,0 +1,19 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "source": {
4
+ "repository": "https://github.com/eeemzs/aops-community",
5
+ "commit": "e7a4ea2bcac1fef45954ed4a7efe4c5016a447be"
6
+ },
7
+ "packages": [
8
+ {
9
+ "name": "@aopslab/aops-cli",
10
+ "version": "0.1.15",
11
+ "integrity": "sha512-dTiSD61MJItNL2OTnmBV5cLGxIKL2slx6vBq7uUyJuPwDZXG02PCGoUQts5S6XN07oBFhSxwfqJV9vxehbwuTA=="
12
+ },
13
+ {
14
+ "name": "@aopslab/aops-server",
15
+ "version": "0.1.10",
16
+ "integrity": "sha512-dI9m8SH90an1iOd5kDQ4cjDAaEvIuKV0MqhZBVHKc5SzDJy0JoVhMV/93AzNOsp607DlwfElUctL67OJ2i35kA=="
17
+ }
18
+ ]
19
+ }