@aopslabs/aops 0.3.23 → 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 -31
- 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/global-update.js +447 -22
- 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-cockpit-lifecycle.js +95 -1
- 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 +147 -5
- 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/linux-arm64/aops-agent-assets-fs +0 -0
- package/native/bin/linux-x64/aops-agent-assets-fs +0 -0
- package/native/bin/win32-x64/aops-agent-assets-fs.exe +0 -0
- package/native/manifest.json +6 -6
- 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 +21 -9
- 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
package/dist/commands/start.js
CHANGED
|
@@ -10,8 +10,7 @@ import { buildReadOnlyActivePlaybookNudgePackFromContext, } from '../utils/playb
|
|
|
10
10
|
import { buildSessionGuidancePack } from '../utils/session-guidance.js';
|
|
11
11
|
import { buildReadOnlyRepoFirstMemoryBriefFromContext } from './memory.js';
|
|
12
12
|
import { applyCommonOptions, compactPayload } from '../utils/command.js';
|
|
13
|
-
import {
|
|
14
|
-
import { START_DISCIPLINES, START_DISCIPLINE_PROFILES, START_DISCIPLINE_SIGNAL_MAPPING, startGuardrailGroupsForDiscipline, startGuardrailsForDiscipline, } from './start-disciplines.js';
|
|
13
|
+
import { START_DISCIPLINES, START_DISCIPLINE_PROFILES, startGuardrailsForDiscipline, } from './start-disciplines.js';
|
|
15
14
|
export const START_PROMPT_MIRROR_PATH = '.aops/hosted/prompts/aops-collaborative-startup.md';
|
|
16
15
|
export const START_MODES = ['solo', 'solo+async-review', 'chat-room'];
|
|
17
16
|
export const START_METHODS = START_DISCIPLINES;
|
|
@@ -131,11 +130,11 @@ const START_METHOD_RECIPES = {
|
|
|
131
130
|
'coordinator-loop': {
|
|
132
131
|
title: 'Coordinator loop',
|
|
133
132
|
steps: [
|
|
134
|
-
'The coordinator researches independently, authors
|
|
133
|
+
'The coordinator researches independently, authors ktask/plan records, and assigns work with canonical refs.',
|
|
135
134
|
'Implementers execute slices, open a review request per slice, and route questions to the coordinator instead of the operator.',
|
|
136
135
|
'The coordinator reviews with code/runtime verification, then instructs the pathspec commit and the next assignment.',
|
|
137
136
|
],
|
|
138
|
-
defaultSurfaces: ['
|
|
137
|
+
defaultSurfaces: ['chatv3.room', 'projectman.implementation-plan', 'projectman.review-request'],
|
|
139
138
|
},
|
|
140
139
|
};
|
|
141
140
|
function serializeStartGuardrail(guardrail) {
|
|
@@ -159,8 +158,6 @@ function buildCheckpointCreateCommand(params) {
|
|
|
159
158
|
];
|
|
160
159
|
if (params.position)
|
|
161
160
|
parts.push('--position', quoteCommandArg(params.position));
|
|
162
|
-
if (params.missionId)
|
|
163
|
-
parts.push('--mission-id', params.missionId);
|
|
164
161
|
if (params.sprintId)
|
|
165
162
|
parts.push('--sprint-id', params.sprintId);
|
|
166
163
|
if (params.phaseId)
|
|
@@ -214,386 +211,6 @@ function recommendStartDiscipline(answers) {
|
|
|
214
211
|
reasons.push('single-agent or low-uncertainty execution');
|
|
215
212
|
return { discipline: 'solo-pm-loop', reasons, signals };
|
|
216
213
|
}
|
|
217
|
-
function buildMissionPolicySeed(params) {
|
|
218
|
-
const profile = START_DISCIPLINE_PROFILES[params.selected];
|
|
219
|
-
const guardrails = startGuardrailsForDiscipline(params.selected);
|
|
220
|
-
const guardrailGroups = startGuardrailGroupsForDiscipline(params.selected);
|
|
221
|
-
return compactPayload({
|
|
222
|
-
discipline: {
|
|
223
|
-
id: params.selected,
|
|
224
|
-
version: profile.version,
|
|
225
|
-
enforcement: 'advisory',
|
|
226
|
-
selectedBy: params.explicit ? 'operator' : 'signals',
|
|
227
|
-
selectedVia: params.explicitSource ? `--${params.explicitSource}` : 'signal-mapping',
|
|
228
|
-
recommended: params.recommended,
|
|
229
|
-
signals: params.signals,
|
|
230
|
-
rationale: params.reasons,
|
|
231
|
-
},
|
|
232
|
-
guardrails: guardrails.map(serializeStartGuardrail),
|
|
233
|
-
guardrailGroups: {
|
|
234
|
-
execution: guardrailGroups.execution.map(serializeStartGuardrail),
|
|
235
|
-
closeout: guardrailGroups.closeout.map(serializeStartGuardrail),
|
|
236
|
-
},
|
|
237
|
-
closeout: {
|
|
238
|
-
required: true,
|
|
239
|
-
trigger: 'explicit',
|
|
240
|
-
guardrailIds: profile.closeoutGuardrailIds,
|
|
241
|
-
check: {
|
|
242
|
-
command: 'aops-cli mission check --closeout --id <mission-id> --json',
|
|
243
|
-
mode: 'read-only',
|
|
244
|
-
statusStates: ['present', 'missing', 'deferred-with-owner', 'not-applicable', 'waived-by-operator'],
|
|
245
|
-
note: 'Later closeout validator; reports evidence for closeout guardrails and does not mutate PM, memory, git, boards, or chat rooms.',
|
|
246
|
-
},
|
|
247
|
-
handoff: {
|
|
248
|
-
command: 'aops-cli mission handoff --id <mission-id> [--complete] --apply --json',
|
|
249
|
-
mode: 'later-apply-helper',
|
|
250
|
-
note: 'Conservative mission-level helper only; board and room closeout remain operator-approved lifecycle actions.',
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
review: profile.review,
|
|
254
|
-
issue: profile.issue,
|
|
255
|
-
memory: profile.memory,
|
|
256
|
-
plan: profile.plan,
|
|
257
|
-
vocabBridge: {
|
|
258
|
-
mode: {
|
|
259
|
-
value: params.mode,
|
|
260
|
-
meaning: 'transport/session shape',
|
|
261
|
-
},
|
|
262
|
-
discipline: {
|
|
263
|
-
value: params.selected,
|
|
264
|
-
meaning: 'policy preset plus guardrails, review, issue, memory, and plan rhythm',
|
|
265
|
-
},
|
|
266
|
-
method: {
|
|
267
|
-
value: params.selected,
|
|
268
|
-
aliasOf: 'discipline',
|
|
269
|
-
compatibility: 'kept for existing start consumers during the transition',
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
signalMapping: START_DISCIPLINE_SIGNAL_MAPPING,
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
function buildStartMissionPack(answers, params) {
|
|
276
|
-
const recommended = recommendStartDiscipline(answers);
|
|
277
|
-
const explicit = resolveExplicitDiscipline(answers);
|
|
278
|
-
const selected = explicit.discipline ?? recommended.discipline;
|
|
279
|
-
const resumeRef = normalize(answers.resume);
|
|
280
|
-
const missionRef = resumeRef ?? normalize(answers.mission);
|
|
281
|
-
const objective = normalize(answers.objective) ?? normalize(answers.task);
|
|
282
|
-
const planId = normalize(answers.plan);
|
|
283
|
-
const mode = normalize(answers.mode) ?? 'solo';
|
|
284
|
-
const board = normalize(answers.board);
|
|
285
|
-
const projectSlug = normalize(answers.projectSlug) ?? params.projectSlug;
|
|
286
|
-
const roomSlug = normalize(answers.roomSlug);
|
|
287
|
-
const checkpointStart = booleanFlag(answers.checkpointStart);
|
|
288
|
-
const checkpointAutoBetweenPhases = booleanFlag(answers.checkpointAutoBetweenPhases);
|
|
289
|
-
const checkpointMissionId = missionRef ?? '<mission-id>';
|
|
290
|
-
const checkpointStartCommand = buildCheckpointCreateCommand({
|
|
291
|
-
summary: objective ? `Mission start: ${objective}` : 'Mission start checkpoint',
|
|
292
|
-
position: planId ? `Starting implementation plan ${planId}` : 'Mission start',
|
|
293
|
-
missionId: checkpointMissionId,
|
|
294
|
-
sprintId: planId,
|
|
295
|
-
});
|
|
296
|
-
const checkpointPhaseTransitionCommand = buildCheckpointCreateCommand({
|
|
297
|
-
summary: '<phase transition checkpoint summary>',
|
|
298
|
-
position: '<from phase> -> <to phase>',
|
|
299
|
-
missionId: checkpointMissionId,
|
|
300
|
-
sprintId: planId ?? '<sprint-id>',
|
|
301
|
-
phaseId: '<phase-id>',
|
|
302
|
-
});
|
|
303
|
-
const checkpointSuggestedActions = [
|
|
304
|
-
checkpointStart
|
|
305
|
-
? {
|
|
306
|
-
kind: 'mission-start-checkpoint',
|
|
307
|
-
policyPath: 'mission.policy.checkpoint.start',
|
|
308
|
-
mode: 'nudge-first',
|
|
309
|
-
applyRequired: true,
|
|
310
|
-
command: checkpointStartCommand,
|
|
311
|
-
}
|
|
312
|
-
: undefined,
|
|
313
|
-
checkpointAutoBetweenPhases
|
|
314
|
-
? {
|
|
315
|
-
kind: 'phase-transition-checkpoint',
|
|
316
|
-
policyPath: 'mission.policy.checkpoint.autoBetweenPhases',
|
|
317
|
-
mode: 'nudge-first',
|
|
318
|
-
applyRequired: true,
|
|
319
|
-
command: checkpointPhaseTransitionCommand,
|
|
320
|
-
}
|
|
321
|
-
: undefined,
|
|
322
|
-
].filter((action) => action !== undefined);
|
|
323
|
-
const syncStatusCommand = buildScopedSyncCommand({ action: 'status', projectSlug });
|
|
324
|
-
const syncDiffCommand = buildScopedSyncCommand({ action: 'diff', projectSlug });
|
|
325
|
-
const syncSuggestedActions = [
|
|
326
|
-
{
|
|
327
|
-
kind: 'cache-sync-status',
|
|
328
|
-
policyPath: 'mission.policy.sync.startStatus',
|
|
329
|
-
mode: 'read-only',
|
|
330
|
-
applyRequired: false,
|
|
331
|
-
command: syncStatusCommand,
|
|
332
|
-
note: 'Run at session start to inspect the read-only local cache vs the hosted server.',
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
kind: 'cache-sync-diff',
|
|
336
|
-
policyPath: 'mission.policy.sync.startDiff',
|
|
337
|
-
mode: 'read-only',
|
|
338
|
-
applyRequired: false,
|
|
339
|
-
command: syncDiffCommand,
|
|
340
|
-
note: 'Run at session start to inspect cache-vs-hosted drift; the hosted server is the source of truth.',
|
|
341
|
-
},
|
|
342
|
-
];
|
|
343
|
-
const playbookSet = params.playbookSet;
|
|
344
|
-
const playbookNudges = params.playbookNudges;
|
|
345
|
-
const playbookSuggestedActions = playbookNudges?.suggestedActions ?? playbookSet?.suggestedActions ?? [];
|
|
346
|
-
const deferredBindings = [
|
|
347
|
-
planId
|
|
348
|
-
? {
|
|
349
|
-
surface: 'projectman.implementation-plan',
|
|
350
|
-
status: 'deferred',
|
|
351
|
-
applyRequired: true,
|
|
352
|
-
command: `aops-cli plan update --id ${planId} --reference <ref> --apply --json`,
|
|
353
|
-
}
|
|
354
|
-
: {
|
|
355
|
-
surface: 'projectman.implementation-plan',
|
|
356
|
-
status: 'deferred',
|
|
357
|
-
applyRequired: true,
|
|
358
|
-
command: 'aops-cli plan create --task <task-id> --name "<name>" --goal "<goal>" --apply --json',
|
|
359
|
-
},
|
|
360
|
-
selected === 'build-review-chat' || mode === 'chat-room'
|
|
361
|
-
? {
|
|
362
|
-
surface: 'projectman.review-request',
|
|
363
|
-
status: 'deferred',
|
|
364
|
-
applyRequired: true,
|
|
365
|
-
command: 'aops-cli pm review-request create --review-scope sprint:<plan-id> --target-agent <reviewer> --apply --json',
|
|
366
|
-
}
|
|
367
|
-
: undefined,
|
|
368
|
-
selected === 'design-first-consensus'
|
|
369
|
-
? {
|
|
370
|
-
surface: 'agentspace.discuss',
|
|
371
|
-
status: 'deferred',
|
|
372
|
-
applyRequired: true,
|
|
373
|
-
command: 'aops-cli discuss start --title "<decision>" --question "<question>" --apply --json',
|
|
374
|
-
}
|
|
375
|
-
: undefined,
|
|
376
|
-
...checkpointSuggestedActions.map((action) => ({
|
|
377
|
-
surface: 'agentspace.memory-item.checkpoint',
|
|
378
|
-
status: 'suggested',
|
|
379
|
-
applyRequired: true,
|
|
380
|
-
policyPath: action.policyPath,
|
|
381
|
-
command: action.command,
|
|
382
|
-
})),
|
|
383
|
-
].filter((binding) => binding !== undefined);
|
|
384
|
-
const state = missionRef ? 'resume' : objective ? 'define' : 'implicit';
|
|
385
|
-
const mission = compactPayload({
|
|
386
|
-
ref: missionRef,
|
|
387
|
-
objective,
|
|
388
|
-
projectSlug,
|
|
389
|
-
});
|
|
390
|
-
const selectionReasons = explicit.discipline
|
|
391
|
-
? [`explicit ${explicit.source === 'method' ? 'method alias' : 'discipline'} flag supplied`, ...recommended.reasons]
|
|
392
|
-
: recommended.reasons;
|
|
393
|
-
const policyBase = buildMissionPolicySeed({
|
|
394
|
-
selected,
|
|
395
|
-
recommended: recommended.discipline,
|
|
396
|
-
explicit: explicit.discipline !== undefined,
|
|
397
|
-
explicitSource: explicit.source,
|
|
398
|
-
reasons: selectionReasons,
|
|
399
|
-
signals: recommended.signals,
|
|
400
|
-
mode,
|
|
401
|
-
});
|
|
402
|
-
const policy = compactPayload({
|
|
403
|
-
...policyBase,
|
|
404
|
-
orchestration: {
|
|
405
|
-
mode: 'read-only-pack',
|
|
406
|
-
sideEffects: 'none',
|
|
407
|
-
activeBindings: 'deferred',
|
|
408
|
-
note: 'start recommends PM/chat/discuss surfaces but does not create or bind records; run deferred commands with --apply to mutate truth surfaces.',
|
|
409
|
-
},
|
|
410
|
-
checkpoint: {
|
|
411
|
-
start: checkpointStart,
|
|
412
|
-
autoBetweenPhases: checkpointAutoBetweenPhases,
|
|
413
|
-
mode: 'nudge-first',
|
|
414
|
-
defaultWrite: false,
|
|
415
|
-
writeRequires: 'explicit aops-cli checkpoint create --apply --json',
|
|
416
|
-
suggestedActions: checkpointSuggestedActions,
|
|
417
|
-
note: 'start composes checkpoint policy and suggested actions only; it never writes checkpoint memory by itself.',
|
|
418
|
-
},
|
|
419
|
-
sync: {
|
|
420
|
-
mode: 'read-only-cache',
|
|
421
|
-
startStatus: true,
|
|
422
|
-
startDiff: true,
|
|
423
|
-
defaultWrite: false,
|
|
424
|
-
readOnly: true,
|
|
425
|
-
readOnlyAtStart: ['status', 'diff'],
|
|
426
|
-
sourceOfTruth: 'hosted-server',
|
|
427
|
-
note: 'Server-first: the hosted aops-server is the source of truth and .aops/** is a read-only local cache. start composes read-only status/diff actions only; there is no push-back from the cache.',
|
|
428
|
-
suggestedActions: syncSuggestedActions,
|
|
429
|
-
},
|
|
430
|
-
playbook: {
|
|
431
|
-
owner: 'agentspace.memory-item',
|
|
432
|
-
surface: 'agentspace.playbook',
|
|
433
|
-
mode: 'nudge-first-read-only',
|
|
434
|
-
defaultWrite: false,
|
|
435
|
-
scopes: ['project', 'session'],
|
|
436
|
-
durability: {
|
|
437
|
-
project: ['sticky', 'durable'],
|
|
438
|
-
session: ['short', 'durable', 'sticky'],
|
|
439
|
-
},
|
|
440
|
-
reviewState: ['accepted'],
|
|
441
|
-
count: playbookSet?.count ?? 0,
|
|
442
|
-
activeCount: playbookNudges?.count ?? playbookSet?.count ?? 0,
|
|
443
|
-
projectCount: playbookNudges?.project.count ?? playbookSet?.count ?? 0,
|
|
444
|
-
sessionCount: playbookNudges?.session.count ?? 0,
|
|
445
|
-
suggestedActions: playbookSuggestedActions,
|
|
446
|
-
closeoutCapture: playbookNudges?.closeoutCapture,
|
|
447
|
-
examples: playbookNudges?.examples,
|
|
448
|
-
note: 'start reads active accepted project/session playbooks as nudge-first guidance only; capture and promotion remain explicit playbook/experience commands with --apply.',
|
|
449
|
-
},
|
|
450
|
-
planning: {
|
|
451
|
-
owner: 'projectman',
|
|
452
|
-
surface: 'projectman.implementation-plan.*',
|
|
453
|
-
sprintBacked: true,
|
|
454
|
-
planId: planId ?? null,
|
|
455
|
-
note: 'implementation-plan id is the underlying sprint id',
|
|
456
|
-
},
|
|
457
|
-
chat: selected === 'build-review-chat' || mode === 'chat-room'
|
|
458
|
-
? {
|
|
459
|
-
owner: 'chatv3',
|
|
460
|
-
roomSlug: roomSlug ?? null,
|
|
461
|
-
note: 'coordination and wake only; PM remains execution/review truth',
|
|
462
|
-
}
|
|
463
|
-
: undefined,
|
|
464
|
-
discuss: selected === 'design-first-consensus'
|
|
465
|
-
? {
|
|
466
|
-
owner: 'agentspace.discuss',
|
|
467
|
-
note: 'record final stances before implementation when design uncertainty is material',
|
|
468
|
-
}
|
|
469
|
-
: undefined,
|
|
470
|
-
});
|
|
471
|
-
const policyJson = JSON.stringify(policy);
|
|
472
|
-
const guardrails = startGuardrailsForDiscipline(selected);
|
|
473
|
-
const guardrailGroups = startGuardrailGroupsForDiscipline(selected);
|
|
474
|
-
const profile = START_DISCIPLINE_PROFILES[selected];
|
|
475
|
-
return {
|
|
476
|
-
state,
|
|
477
|
-
...(Object.keys(mission).length > 0 ? { mission } : {}),
|
|
478
|
-
...(params.resumePack ? { resumePack: params.resumePack.result } : {}),
|
|
479
|
-
discipline: {
|
|
480
|
-
selected,
|
|
481
|
-
recommended: recommended.discipline,
|
|
482
|
-
explicit: explicit.discipline !== undefined,
|
|
483
|
-
selectedBy: explicit.discipline ? 'operator' : 'signals',
|
|
484
|
-
reasons: selectionReasons,
|
|
485
|
-
signals: recommended.signals,
|
|
486
|
-
profile,
|
|
487
|
-
},
|
|
488
|
-
method: {
|
|
489
|
-
selected,
|
|
490
|
-
recommended: recommended.discipline,
|
|
491
|
-
explicit: explicit.discipline !== undefined,
|
|
492
|
-
aliasOf: 'discipline',
|
|
493
|
-
reasons: selectionReasons,
|
|
494
|
-
},
|
|
495
|
-
guardrails,
|
|
496
|
-
guardrailGroups,
|
|
497
|
-
recipe: START_METHOD_RECIPES[selected],
|
|
498
|
-
policy,
|
|
499
|
-
policyJson,
|
|
500
|
-
...(playbookSet ? { playbookSet } : {}),
|
|
501
|
-
...(playbookNudges ? { playbookNudges } : {}),
|
|
502
|
-
startPack: compactPayload({
|
|
503
|
-
mode,
|
|
504
|
-
discipline: selected,
|
|
505
|
-
method: selected,
|
|
506
|
-
methodAliasOf: 'discipline',
|
|
507
|
-
board,
|
|
508
|
-
task: normalize(answers.task),
|
|
509
|
-
objective,
|
|
510
|
-
planId,
|
|
511
|
-
policySeed: {
|
|
512
|
-
target: 'mission.policy',
|
|
513
|
-
flag: '--policy-json',
|
|
514
|
-
json: policy,
|
|
515
|
-
jsonString: policyJson,
|
|
516
|
-
commandHint: missionRef
|
|
517
|
-
? 'aops-cli mission update --id <mission-id> --policy-json \'<result.mission.policyJson>\' --apply --json'
|
|
518
|
-
: 'aops-cli mission create --objective "<objective>" --policy-json \'<result.mission.policyJson>\' --apply --json',
|
|
519
|
-
},
|
|
520
|
-
orchestration: {
|
|
521
|
-
mode: 'read-only-pack',
|
|
522
|
-
sideEffects: 'none',
|
|
523
|
-
activeBindings: 'deferred',
|
|
524
|
-
note: 'start recommends PM/chat/discuss surfaces but does not create or bind records; run deferred commands with --apply to mutate truth surfaces.',
|
|
525
|
-
},
|
|
526
|
-
checkpoint: {
|
|
527
|
-
policyPath: 'mission.policy.checkpoint',
|
|
528
|
-
start: checkpointStart,
|
|
529
|
-
autoBetweenPhases: checkpointAutoBetweenPhases,
|
|
530
|
-
mode: 'nudge-first',
|
|
531
|
-
defaultWrite: false,
|
|
532
|
-
suggestedActions: checkpointSuggestedActions,
|
|
533
|
-
note: 'checkpoint hooks are opt-in nudges; execute the suggested aops-cli checkpoint create command with --apply to write memory.',
|
|
534
|
-
},
|
|
535
|
-
sync: {
|
|
536
|
-
policyPath: 'mission.policy.sync',
|
|
537
|
-
mode: 'read-only-cache',
|
|
538
|
-
startStatus: true,
|
|
539
|
-
startDiff: true,
|
|
540
|
-
readOnly: true,
|
|
541
|
-
sourceOfTruth: 'hosted-server',
|
|
542
|
-
suggestedActions: syncSuggestedActions,
|
|
543
|
-
note: 'Server-first: run read-only status/diff at session start. .aops/** is a read-only local cache refreshed from the hosted server; there is no push-back.',
|
|
544
|
-
},
|
|
545
|
-
playbookSet,
|
|
546
|
-
playbookNudges,
|
|
547
|
-
planning: {
|
|
548
|
-
owner: 'projectman',
|
|
549
|
-
surface: 'projectman.implementation-plan.*',
|
|
550
|
-
sprintBacked: true,
|
|
551
|
-
planId: planId ?? null,
|
|
552
|
-
note: 'implementation-plan id is the underlying sprint id',
|
|
553
|
-
},
|
|
554
|
-
chat: selected === 'build-review-chat' || mode === 'chat-room'
|
|
555
|
-
? {
|
|
556
|
-
owner: 'chatv3',
|
|
557
|
-
roomSlug: roomSlug ?? null,
|
|
558
|
-
note: 'coordination and wake only; PM remains execution/review truth',
|
|
559
|
-
}
|
|
560
|
-
: undefined,
|
|
561
|
-
discuss: selected === 'design-first-consensus'
|
|
562
|
-
? {
|
|
563
|
-
owner: 'agentspace.discuss',
|
|
564
|
-
note: 'record final stances before implementation when design uncertainty is material',
|
|
565
|
-
}
|
|
566
|
-
: undefined,
|
|
567
|
-
closeout: {
|
|
568
|
-
required: true,
|
|
569
|
-
trigger: 'explicit',
|
|
570
|
-
guardrailIds: profile.closeoutGuardrailIds,
|
|
571
|
-
checkCommandHint: 'aops-cli mission check --closeout --id <mission-id> --json',
|
|
572
|
-
handoffCommandHint: 'aops-cli mission handoff --id <mission-id> [--complete] --apply --json',
|
|
573
|
-
note: 'closeout is the before-leaving phase; deferred-with-owner is valid for unresolved PM truth, and board/room closeout stays operator-only',
|
|
574
|
-
},
|
|
575
|
-
deferredBindings,
|
|
576
|
-
nextCommands: [
|
|
577
|
-
missionRef
|
|
578
|
-
? 'aops-cli mission update --id <mission-id> --policy-json \'<result.mission.policyJson>\' --apply --json'
|
|
579
|
-
: 'aops-cli mission create --objective "<objective>" --policy-json \'<result.mission.policyJson>\' --apply --json',
|
|
580
|
-
planId
|
|
581
|
-
? `aops-cli plan get --id ${planId} --json`
|
|
582
|
-
: 'aops-cli plan create --task <task-id> --name "<name>" --goal "<goal>" --apply --json',
|
|
583
|
-
selected === 'build-review-chat'
|
|
584
|
-
? 'aops-cli pm review-request create --review-scope sprint:<plan-id> --target-agent <reviewer> --apply --json'
|
|
585
|
-
: undefined,
|
|
586
|
-
selected === 'design-first-consensus'
|
|
587
|
-
? 'aops-cli discuss start --title "<decision>" --question "<question>" --apply --json'
|
|
588
|
-
: undefined,
|
|
589
|
-
syncStatusCommand,
|
|
590
|
-
syncDiffCommand,
|
|
591
|
-
...playbookSuggestedActions.map((action) => action.command),
|
|
592
|
-
...checkpointSuggestedActions.map((action) => action.command),
|
|
593
|
-
].filter(Boolean),
|
|
594
|
-
}),
|
|
595
|
-
};
|
|
596
|
-
}
|
|
597
214
|
function buildPromptRef(prompt, params) {
|
|
598
215
|
return {
|
|
599
216
|
bytes: Buffer.byteLength(prompt, 'utf8'),
|
|
@@ -610,12 +227,6 @@ function compactStartGuardrail(guardrail) {
|
|
|
610
227
|
enforcementLevel: guardrail.enforcementLevel,
|
|
611
228
|
});
|
|
612
229
|
}
|
|
613
|
-
function compactStartGuardrailGroups(groups) {
|
|
614
|
-
return compactPayload({
|
|
615
|
-
execution: groups.execution.map(compactStartGuardrail),
|
|
616
|
-
closeout: groups.closeout.map(compactStartGuardrail),
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
230
|
function compactStartProfile(profile) {
|
|
620
231
|
return compactPayload({
|
|
621
232
|
id: profile.id,
|
|
@@ -631,7 +242,6 @@ function compactPolicySeed(seed) {
|
|
|
631
242
|
target: record.target,
|
|
632
243
|
flag: record.flag,
|
|
633
244
|
commandHint: record.commandHint,
|
|
634
|
-
jsonRef: 'result.mission.policyJson',
|
|
635
245
|
});
|
|
636
246
|
}
|
|
637
247
|
function compactStartPack(startPack) {
|
|
@@ -699,49 +309,6 @@ function compactResumePack(resumePack) {
|
|
|
699
309
|
playbookRef: 'result.sessionGuidance.layers.playbooks',
|
|
700
310
|
});
|
|
701
311
|
}
|
|
702
|
-
function compactStartMissionPack(mission, params) {
|
|
703
|
-
return compactPayload({
|
|
704
|
-
state: mission.state,
|
|
705
|
-
mission: mission.mission,
|
|
706
|
-
resumePack: compactResumePack(mission.resumePack),
|
|
707
|
-
discipline: compactPayload({
|
|
708
|
-
selected: mission.discipline.selected,
|
|
709
|
-
recommended: mission.discipline.recommended,
|
|
710
|
-
explicit: mission.discipline.explicit,
|
|
711
|
-
selectedBy: mission.discipline.selectedBy,
|
|
712
|
-
reasons: mission.discipline.reasons,
|
|
713
|
-
signals: mission.discipline.signals,
|
|
714
|
-
profile: compactStartProfile(mission.discipline.profile),
|
|
715
|
-
}),
|
|
716
|
-
method: compactPayload({
|
|
717
|
-
selected: mission.method.selected,
|
|
718
|
-
recommended: mission.method.recommended,
|
|
719
|
-
explicit: mission.method.explicit,
|
|
720
|
-
aliasOf: mission.method.aliasOf,
|
|
721
|
-
reasons: mission.method.reasons,
|
|
722
|
-
}),
|
|
723
|
-
guardrailGroups: compactStartGuardrailGroups(mission.guardrailGroups),
|
|
724
|
-
recipe: mission.recipe,
|
|
725
|
-
policyJson: mission.policyJson,
|
|
726
|
-
policyRef: 'mission.policyJson',
|
|
727
|
-
startPack: compactStartPack(mission.startPack),
|
|
728
|
-
sessionGuidance: params.includeSessionGuidance ? mission.sessionGuidance : undefined,
|
|
729
|
-
sessionGuidanceRef: params.includeSessionGuidance ? undefined : 'result.sessionGuidance',
|
|
730
|
-
});
|
|
731
|
-
}
|
|
732
|
-
function appendMissionPackToPrompt(prompt, mission) {
|
|
733
|
-
const compactMission = compactStartMissionPack(mission, { includeSessionGuidance: true });
|
|
734
|
-
return `${prompt.trimEnd()}
|
|
735
|
-
|
|
736
|
-
## Mission Orchestration Pack (read-only)
|
|
737
|
-
|
|
738
|
-
Use this compact pack to choose the working discipline and PM/chat/discuss surfaces. \`discipline\` is the canonical policy preset; \`method\` is kept beside it as a compatibility alias. \`start\` is read-only in this v1 path: it does not create plans, bind chat rooms, open discuss topics, promote playbooks, or run sync by itself. Read \`sessionGuidance\` first for layered rules L1-L3: runtime rules, working-discipline guardrails, accepted playbooks, and ranked experience briefs. Read \`startPack.sync\`: run the read-only sync status/diff commands at session start to compare the local cache against the hosted server. Server-first: the hosted aops-server is the source of truth and \`.aops/**\` is a read-only local cache; there is no push-back from the cache. \`policyJson\` is the single mission-policy seed; \`startPack.policySeed.jsonRef\` points back to it instead of duplicating it. Treat \`deferredBindings\` as the apply-required follow-up list, and write Projectman records for durable task state.
|
|
739
|
-
|
|
740
|
-
\`\`\`json
|
|
741
|
-
${JSON.stringify(compactMission, null, 2)}
|
|
742
|
-
\`\`\`
|
|
743
|
-
`;
|
|
744
|
-
}
|
|
745
312
|
function isMultiAgentMode(mode) {
|
|
746
313
|
return mode !== undefined && MULTI_AGENT_MODES.has(mode);
|
|
747
314
|
}
|
|
@@ -906,7 +473,6 @@ function collectAnswers(options) {
|
|
|
906
473
|
roomSlug: normalize(options.roomSlug),
|
|
907
474
|
roomTitle: normalize(options.roomTitle),
|
|
908
475
|
roles: normalize(options.roles),
|
|
909
|
-
mission: normalize(options.mission),
|
|
910
476
|
resume: normalize(options.resume),
|
|
911
477
|
objective: normalize(options.objective),
|
|
912
478
|
discipline: normalize(options.discipline),
|
|
@@ -920,31 +486,6 @@ function collectAnswers(options) {
|
|
|
920
486
|
checkpointAutoBetweenPhases: options.checkpointAutoBetweenPhases,
|
|
921
487
|
};
|
|
922
488
|
}
|
|
923
|
-
async function loadStartMissionResumePack(options, answers, activeProject) {
|
|
924
|
-
const missionId = normalize(answers.resume);
|
|
925
|
-
if (!missionId)
|
|
926
|
-
return undefined;
|
|
927
|
-
const loaded = await loadMissionResumePack({
|
|
928
|
-
apiBaseUrl: options.apiBaseUrl,
|
|
929
|
-
accessToken: options.accessToken,
|
|
930
|
-
refreshToken: options.refreshToken,
|
|
931
|
-
timeoutMs: options.timeoutMs,
|
|
932
|
-
tenantId: options.tenantId,
|
|
933
|
-
locale: options.locale,
|
|
934
|
-
fallbackLocale: options.fallbackLocale,
|
|
935
|
-
scopeId: normalize(options.scopeId) ?? normalize(activeProject?.scopeId) ?? normalize(activeProject?.projectId),
|
|
936
|
-
scopeResolution: options.scopeResolution,
|
|
937
|
-
projectId: normalize(options.projectId) ?? normalize(activeProject?.projectId),
|
|
938
|
-
projectName: normalize(options.projectName),
|
|
939
|
-
id: missionId,
|
|
940
|
-
depth: normalize(options.missionResumeDepth) ?? 'light',
|
|
941
|
-
limit: options.missionResumeLimit ?? 8,
|
|
942
|
-
full: options.missionResumeFull,
|
|
943
|
-
});
|
|
944
|
-
if (!loaded)
|
|
945
|
-
throw new Error('Mission resume pack could not be loaded. Check host availability/auth and retry.');
|
|
946
|
-
return loaded;
|
|
947
|
-
}
|
|
948
489
|
function missingQuestions(answers, questions) {
|
|
949
490
|
return questions.filter((question) => question.required && normalize(answers[question.key]) === undefined);
|
|
950
491
|
}
|
|
@@ -998,17 +539,16 @@ export async function composeStart(options = {}) {
|
|
|
998
539
|
depth: 'light',
|
|
999
540
|
});
|
|
1000
541
|
const memoryBrief = memoryBriefResultFromEnvelope(memoryBriefEnvelope);
|
|
1001
|
-
const activePlaybookMissionId = normalize(answers.resume) ?? normalize(answers.mission);
|
|
1002
542
|
const playbookNudges = await buildReadOnlyActivePlaybookNudgePackFromContext({
|
|
1003
543
|
repoRoot: rootDir,
|
|
1004
544
|
localRoot: activeProject?.localRoot,
|
|
1005
545
|
projectSlug,
|
|
1006
|
-
}, {
|
|
1007
|
-
missionId: activePlaybookMissionId,
|
|
1008
|
-
});
|
|
546
|
+
}, {});
|
|
1009
547
|
const playbookSet = playbookNudges.project;
|
|
1010
|
-
const
|
|
1011
|
-
const
|
|
548
|
+
const recommendedDiscipline = recommendStartDiscipline(answers);
|
|
549
|
+
const explicitDiscipline = resolveExplicitDiscipline(answers);
|
|
550
|
+
const selectedDiscipline = explicitDiscipline.discipline ?? recommendedDiscipline.discipline;
|
|
551
|
+
const disciplineGuardrails = startGuardrailsForDiscipline(selectedDiscipline);
|
|
1012
552
|
const sessionGuidance = await buildSessionGuidancePack({
|
|
1013
553
|
repoRoot: rootDir,
|
|
1014
554
|
localRoot: activeProject?.localRoot,
|
|
@@ -1016,29 +556,20 @@ export async function composeStart(options = {}) {
|
|
|
1016
556
|
}, {
|
|
1017
557
|
surface: 'start',
|
|
1018
558
|
task: normalize(answers.task) ?? normalize(answers.objective),
|
|
1019
|
-
missionId: normalize(answers.resume) ?? normalize(answers.mission),
|
|
1020
559
|
planId: normalize(answers.plan),
|
|
1021
560
|
area: normalize(options.area),
|
|
1022
561
|
limit: options.limit,
|
|
1023
562
|
playbookNudges,
|
|
1024
563
|
discipline: {
|
|
1025
|
-
selected:
|
|
1026
|
-
recommended:
|
|
1027
|
-
explicit:
|
|
1028
|
-
profile:
|
|
1029
|
-
guardrails:
|
|
564
|
+
selected: selectedDiscipline,
|
|
565
|
+
recommended: recommendedDiscipline.discipline,
|
|
566
|
+
explicit: explicitDiscipline.discipline !== undefined,
|
|
567
|
+
profile: START_DISCIPLINE_PROFILES[selectedDiscipline],
|
|
568
|
+
guardrails: disciplineGuardrails,
|
|
1030
569
|
},
|
|
1031
570
|
});
|
|
1032
|
-
const mission = {
|
|
1033
|
-
...missionBase,
|
|
1034
|
-
sessionGuidance,
|
|
1035
|
-
startPack: compactPayload({
|
|
1036
|
-
...missionBase.startPack,
|
|
1037
|
-
sessionGuidance,
|
|
1038
|
-
}),
|
|
1039
|
-
};
|
|
1040
571
|
const composed = composeStartPrompt(body, answers, projectSlug, memoryBrief);
|
|
1041
|
-
const prompt =
|
|
572
|
+
const prompt = composed.prompt;
|
|
1042
573
|
const warnings = composed.warnings;
|
|
1043
574
|
let outFile;
|
|
1044
575
|
if (normalize(options.out)) {
|
|
@@ -1047,7 +578,7 @@ export async function composeStart(options = {}) {
|
|
|
1047
578
|
await fs.writeFile(outFile, prompt, 'utf-8');
|
|
1048
579
|
}
|
|
1049
580
|
const promptRef = buildPromptRef(prompt, { path: outFile, inline: true });
|
|
1050
|
-
return { ...base, status: 'ready', missing: [], warnings, memoryBrief,
|
|
581
|
+
return { ...base, status: 'ready', missing: [], warnings, memoryBrief, sessionGuidance, prompt, promptRef, outFile };
|
|
1051
582
|
}
|
|
1052
583
|
export async function composeStartReminder(options = {}) {
|
|
1053
584
|
assertSupportedMode(normalize(options.mode));
|
|
@@ -1073,7 +604,6 @@ export async function composeStartReminder(options = {}) {
|
|
|
1073
604
|
localRoot: activeProject?.localRoot,
|
|
1074
605
|
projectSlug,
|
|
1075
606
|
}, {
|
|
1076
|
-
missionId: normalize(answers.resume) ?? normalize(answers.mission),
|
|
1077
607
|
limit: parsePositiveInteger(options.limit),
|
|
1078
608
|
});
|
|
1079
609
|
const guardrails = startGuardrailsForDiscipline(selected);
|
|
@@ -1085,7 +615,6 @@ export async function composeStartReminder(options = {}) {
|
|
|
1085
615
|
}, {
|
|
1086
616
|
surface: 'start-reminder',
|
|
1087
617
|
task: normalize(answers.task) ?? normalize(answers.objective),
|
|
1088
|
-
missionId: normalize(answers.resume) ?? normalize(answers.mission),
|
|
1089
618
|
planId: normalize(answers.plan),
|
|
1090
619
|
area: normalize(options.area),
|
|
1091
620
|
limit: options.limit,
|
|
@@ -1131,15 +660,8 @@ function serializableStartResult(result, params) {
|
|
|
1131
660
|
: undefined,
|
|
1132
661
|
outFile: result.outFile,
|
|
1133
662
|
};
|
|
1134
|
-
if (params.compact) {
|
|
1135
|
-
return {
|
|
1136
|
-
...base,
|
|
1137
|
-
mission: result.mission ? compactStartMissionPack(result.mission, { includeSessionGuidance: false }) : undefined,
|
|
1138
|
-
};
|
|
1139
|
-
}
|
|
1140
663
|
return {
|
|
1141
664
|
...base,
|
|
1142
|
-
mission: result.mission,
|
|
1143
665
|
prompt: result.prompt,
|
|
1144
666
|
};
|
|
1145
667
|
}
|
|
@@ -1204,9 +726,7 @@ export function makeStartCommand() {
|
|
|
1204
726
|
.option('--room-slug <slug>', 'Hosted chat room slug (chat-room mode)')
|
|
1205
727
|
.option('--room-title <title>', 'Hosted chat room title (chat-room mode)')
|
|
1206
728
|
.option('--roles <list>', 'Operator-assigned roles, e.g. "claude=implementer, codex=reviewer, mzs=operator"')
|
|
1207
|
-
.option('--
|
|
1208
|
-
.option('--resume <mission-id>', 'Hosted mission id to resume; embeds a compact mission resume pack')
|
|
1209
|
-
.option('--objective <text>', 'Mission objective override; defaults to --task when omitted')
|
|
729
|
+
.option('--objective <text>', 'Objective override; defaults to --task when omitted')
|
|
1210
730
|
.option('--discipline <discipline>', `Working discipline: ${START_DISCIPLINES.join(' | ')}`)
|
|
1211
731
|
.option('--method <method>', `Compatibility alias for --discipline: ${START_METHODS.join(' | ')}`)
|
|
1212
732
|
.option('--work-size <size>', 'Work size signal for method recommendation: small | medium | large')
|
|
@@ -1214,16 +734,13 @@ export function makeStartCommand() {
|
|
|
1214
734
|
.option('--decision-uncertainty <level>', 'Decision uncertainty signal: low | medium | high')
|
|
1215
735
|
.option('--operator-interface <shape>', 'Operator interface signal: direct | delegated (delegated recommends coordinator-loop)')
|
|
1216
736
|
.option('--plan <id>', 'Existing implementation-plan id; this is the underlying sprint id')
|
|
1217
|
-
.option('--checkpoint-start', 'Seed
|
|
1218
|
-
.option('--checkpoint-auto-between-phases', 'Seed
|
|
1219
|
-
.option('--mission-resume-depth <depth>', 'Hosted mission resume depth: light | standard', 'light')
|
|
1220
|
-
.option('--mission-resume-limit <n>', 'Maximum refs/rows for the compact hosted mission resume pack', '8')
|
|
1221
|
-
.option('--mission-resume-full', 'Embed the full hosted mission resume skeleton instead of the compact summary')
|
|
737
|
+
.option('--checkpoint-start', 'Seed checkpoint.start=true and surface a checkpoint create suggested action; start remains read-only')
|
|
738
|
+
.option('--checkpoint-auto-between-phases', 'Seed checkpoint.autoBetweenPhases=true and surface phase-transition checkpoint nudges')
|
|
1222
739
|
.option('--reminder', 'Build a bounded read-only session guidance reminder pack instead of the full kickoff prompt')
|
|
1223
740
|
.option('--area <area>', 'Area hint for reminder/session guidance experience ranking')
|
|
1224
741
|
.option('--limit <n>', 'Maximum experience briefs in session guidance; default 3, max 5')
|
|
1225
742
|
.option('--compact', 'Use compact JSON output with promptRef instead of inline prompt (default for --json)')
|
|
1226
|
-
.option('--full-output', 'With --json, include the full composed prompt and uncompact
|
|
743
|
+
.option('--full-output', 'With --json, include the full composed prompt and uncompact passion payload')
|
|
1227
744
|
.option('--root <path>', 'Workspace root override (default: nearest repo config ancestor)')
|
|
1228
745
|
.option('--out <file>', 'Write the composed prompt to a file')
|
|
1229
746
|
.option('--no-memory-brief', 'Do not build/embed the read-only local memory cache brief')
|
|
@@ -1246,7 +763,6 @@ Examples:
|
|
|
1246
763
|
aops-cli start --mode solo --board ops --full-output --json
|
|
1247
764
|
aops-cli start --reminder --task "continue S1" --area aops-cli --json
|
|
1248
765
|
aops-cli start --mode chat-room --board ops --discipline build-review-chat --json
|
|
1249
|
-
aops-cli start --resume <mission-id> --mode solo --board ops --json
|
|
1250
766
|
aops-cli start --mode chat-room --board ops \\
|
|
1251
767
|
--room-slug ops-room --room-title "Ops" \\
|
|
1252
768
|
--roles "claude=implementer, codex=reviewer, mzs=operator" --json
|
|
@@ -1263,7 +779,7 @@ Agent flow:
|
|
|
1263
779
|
after meaningful progress.
|
|
1264
780
|
`);
|
|
1265
781
|
applyCommonOptions(cmd, { withProject: true });
|
|
1266
|
-
cmd.option('--scope-id <id>', 'Canonical owner scope override
|
|
782
|
+
cmd.option('--scope-id <id>', 'Canonical owner scope override');
|
|
1267
783
|
cmd.option('--scope-resolution <mode>', 'Scope resolution for hosted reads: explicit | cascade');
|
|
1268
784
|
cmd.option('--tenant-id <id>', 'Tenant id header (x-tenant-id)');
|
|
1269
785
|
cmd.option('--locale <locale>', 'Locale header (x-locale)');
|