@askexenow/exe-os 0.9.64 → 0.9.66
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/deploy/stack-manifests/v0.9.json +4 -4
- package/dist/bin/backfill-conversations.js +22 -0
- package/dist/bin/backfill-responses.js +22 -0
- package/dist/bin/backfill-vectors.js +22 -0
- package/dist/bin/cleanup-stale-review-tasks.js +22 -0
- package/dist/bin/cli.js +2280 -1199
- package/dist/bin/exe-agent-config.js +4 -0
- package/dist/bin/exe-agent.js +16 -0
- package/dist/bin/exe-assign.js +22 -0
- package/dist/bin/exe-boot.js +116 -7
- package/dist/bin/exe-call.js +16 -0
- package/dist/bin/exe-cloud.js +6671 -464
- package/dist/bin/exe-dispatch.js +24 -0
- package/dist/bin/exe-doctor.js +2845 -1223
- package/dist/bin/exe-export-behaviors.js +24 -0
- package/dist/bin/exe-forget.js +22 -0
- package/dist/bin/exe-gateway.js +24 -0
- package/dist/bin/exe-heartbeat.js +23 -0
- package/dist/bin/exe-kill.js +22 -0
- package/dist/bin/exe-launch-agent.js +24 -0
- package/dist/bin/exe-link.js +310 -178
- package/dist/bin/exe-new-employee.js +127 -1
- package/dist/bin/exe-pending-messages.js +22 -0
- package/dist/bin/exe-pending-notifications.js +22 -0
- package/dist/bin/exe-pending-reviews.js +22 -0
- package/dist/bin/exe-rename.js +22 -0
- package/dist/bin/exe-review.js +22 -0
- package/dist/bin/exe-search.js +24 -0
- package/dist/bin/exe-session-cleanup.js +24 -0
- package/dist/bin/exe-settings.js +10 -0
- package/dist/bin/exe-start-codex.js +135 -1
- package/dist/bin/exe-start-opencode.js +149 -1
- package/dist/bin/exe-status.js +22 -0
- package/dist/bin/exe-team.js +22 -0
- package/dist/bin/git-sweep.js +24 -0
- package/dist/bin/graph-backfill.js +22 -0
- package/dist/bin/graph-export.js +22 -0
- package/dist/bin/install.js +115 -1
- package/dist/bin/intercom-check.js +24 -0
- package/dist/bin/scan-tasks.js +24 -0
- package/dist/bin/setup.js +412 -157
- package/dist/bin/shard-migrate.js +22 -0
- package/dist/bin/update.js +4 -0
- package/dist/gateway/index.js +24 -0
- package/dist/hooks/bug-report-worker.js +135 -42
- package/dist/hooks/codex-stop-task-finalizer.js +24 -0
- package/dist/hooks/commit-complete.js +24 -0
- package/dist/hooks/error-recall.js +24 -0
- package/dist/hooks/exe-heartbeat-hook.js +4 -0
- package/dist/hooks/ingest-worker.js +4 -0
- package/dist/hooks/ingest.js +23 -0
- package/dist/hooks/instructions-loaded.js +22 -0
- package/dist/hooks/notification.js +22 -0
- package/dist/hooks/post-compact.js +22 -0
- package/dist/hooks/post-tool-combined.js +24 -0
- package/dist/hooks/pre-compact.js +260 -109
- package/dist/hooks/pre-tool-use.js +22 -0
- package/dist/hooks/prompt-submit.js +24 -0
- package/dist/hooks/session-end.js +161 -122
- package/dist/hooks/session-start.js +142 -0
- package/dist/hooks/stop.js +23 -0
- package/dist/hooks/subagent-stop.js +22 -0
- package/dist/hooks/summary-worker.js +195 -79
- package/dist/index.js +24 -0
- package/dist/lib/agent-config.js +4 -0
- package/dist/lib/cloud-sync.js +50 -6
- package/dist/lib/config.js +12 -0
- package/dist/lib/consolidation.js +4 -0
- package/dist/lib/database.js +4 -0
- package/dist/lib/db-daemon-client.js +4 -0
- package/dist/lib/db.js +4 -0
- package/dist/lib/device-registry.js +4 -0
- package/dist/lib/embedder.js +12 -0
- package/dist/lib/employee-templates.js +16 -0
- package/dist/lib/employees.js +4 -0
- package/dist/lib/exe-daemon-client.js +4 -0
- package/dist/lib/exe-daemon.js +1144 -480
- package/dist/lib/hybrid-search.js +24 -0
- package/dist/lib/identity.js +4 -0
- package/dist/lib/license.js +4 -0
- package/dist/lib/messaging.js +4 -0
- package/dist/lib/reminders.js +4 -0
- package/dist/lib/schedules.js +22 -0
- package/dist/lib/skill-learning.js +12 -0
- package/dist/lib/status-brief.js +39 -0
- package/dist/lib/store.js +22 -0
- package/dist/lib/task-router.js +4 -0
- package/dist/lib/tasks.js +12 -0
- package/dist/lib/tmux-routing.js +12 -0
- package/dist/lib/token-spend.js +4 -0
- package/dist/mcp/server.js +1045 -427
- package/dist/mcp/tools/complete-reminder.js +4 -0
- package/dist/mcp/tools/create-reminder.js +4 -0
- package/dist/mcp/tools/create-task.js +12 -0
- package/dist/mcp/tools/deactivate-behavior.js +4 -0
- package/dist/mcp/tools/list-reminders.js +4 -0
- package/dist/mcp/tools/list-tasks.js +4 -0
- package/dist/mcp/tools/send-message.js +4 -0
- package/dist/mcp/tools/update-task.js +12 -0
- package/dist/runtime/index.js +24 -0
- package/dist/tui/App.js +24 -0
- package/package.json +3 -2
- package/src/commands/exe/cloud.md +15 -8
- package/src/commands/exe/link.md +7 -6
- package/stack.release.json +2 -2
|
@@ -127,6 +127,10 @@ var init_config = __esm({
|
|
|
127
127
|
checkOnBoot: true,
|
|
128
128
|
autoInstall: false,
|
|
129
129
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
130
|
+
},
|
|
131
|
+
orchestration: {
|
|
132
|
+
phase: "phase_1_coo",
|
|
133
|
+
phaseSetBy: "default"
|
|
130
134
|
}
|
|
131
135
|
};
|
|
132
136
|
}
|
|
@@ -1264,7 +1268,7 @@ function commandHasAnyMarker(command, markers) {
|
|
|
1264
1268
|
function isLegacySplitPostToolCommand(command) {
|
|
1265
1269
|
return commandHasAnyMarker(command, LEGACY_SPLIT_POST_TOOL_HOOK_MARKERS);
|
|
1266
1270
|
}
|
|
1267
|
-
var EXE_HOOKS, LEGACY_SPLIT_POST_TOOL_HOOK_MARKERS;
|
|
1271
|
+
var EXE_HOOKS, EXE_HOOK_MANIFEST, LEGACY_SPLIT_POST_TOOL_HOOK_MARKERS;
|
|
1268
1272
|
var init_runtime_hook_manifest = __esm({
|
|
1269
1273
|
"src/adapters/runtime-hook-manifest.ts"() {
|
|
1270
1274
|
"use strict";
|
|
@@ -1282,6 +1286,116 @@ var init_runtime_hook_manifest = __esm({
|
|
|
1282
1286
|
notification: "dist/hooks/notification.js",
|
|
1283
1287
|
instructionsLoaded: "dist/hooks/instructions-loaded.js"
|
|
1284
1288
|
};
|
|
1289
|
+
EXE_HOOK_MANIFEST = [
|
|
1290
|
+
{
|
|
1291
|
+
key: "postToolCombined",
|
|
1292
|
+
event: "PostToolUse",
|
|
1293
|
+
commandMarker: EXE_HOOKS.postToolCombined,
|
|
1294
|
+
owner: "exe-os",
|
|
1295
|
+
purpose: "Single PostToolUse entrypoint for ingestion, error recall, summaries, and bug detection.",
|
|
1296
|
+
runtimes: ["claude", "codex", "opencode"],
|
|
1297
|
+
checkpointRole: "none"
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
key: "sessionStart",
|
|
1301
|
+
event: "SessionStart",
|
|
1302
|
+
commandMarker: EXE_HOOKS.sessionStart,
|
|
1303
|
+
owner: "exe-os",
|
|
1304
|
+
purpose: "Loads agent identity, procedures, and boot context.",
|
|
1305
|
+
runtimes: ["claude", "codex", "opencode"],
|
|
1306
|
+
checkpointRole: "none"
|
|
1307
|
+
},
|
|
1308
|
+
{
|
|
1309
|
+
key: "promptSubmit",
|
|
1310
|
+
event: "UserPromptSubmit",
|
|
1311
|
+
commandMarker: EXE_HOOKS.promptSubmit,
|
|
1312
|
+
owner: "exe-os",
|
|
1313
|
+
purpose: "Injects current tasks, pending reviews, and local context before each prompt.",
|
|
1314
|
+
runtimes: ["claude", "codex", "opencode"],
|
|
1315
|
+
checkpointRole: "none"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
key: "heartbeat",
|
|
1319
|
+
event: "UserPromptSubmit",
|
|
1320
|
+
commandMarker: EXE_HOOKS.heartbeat,
|
|
1321
|
+
owner: "exe-os",
|
|
1322
|
+
purpose: "Lightweight heartbeat/status sidecar for Claude Code sessions.",
|
|
1323
|
+
runtimes: ["claude"],
|
|
1324
|
+
checkpointRole: "none"
|
|
1325
|
+
},
|
|
1326
|
+
{
|
|
1327
|
+
key: "stop",
|
|
1328
|
+
event: "Stop",
|
|
1329
|
+
commandMarker: EXE_HOOKS.stop,
|
|
1330
|
+
owner: "exe-os",
|
|
1331
|
+
purpose: "Finalizes task state, capacity signals, and emergency checkpointing.",
|
|
1332
|
+
runtimes: ["claude", "codex", "opencode"],
|
|
1333
|
+
checkpointRole: "capacity_checkpoint"
|
|
1334
|
+
},
|
|
1335
|
+
{
|
|
1336
|
+
key: "preToolUse",
|
|
1337
|
+
event: "PreToolUse",
|
|
1338
|
+
commandMarker: EXE_HOOKS.preToolUse,
|
|
1339
|
+
owner: "exe-os",
|
|
1340
|
+
purpose: "Preflight guardrails before shell/tool execution.",
|
|
1341
|
+
runtimes: ["claude", "codex", "opencode"],
|
|
1342
|
+
checkpointRole: "none"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
key: "subagentStop",
|
|
1346
|
+
event: "SubagentStop",
|
|
1347
|
+
commandMarker: EXE_HOOKS.subagentStop,
|
|
1348
|
+
owner: "exe-os",
|
|
1349
|
+
purpose: "Captures subagent completion context.",
|
|
1350
|
+
runtimes: ["claude"],
|
|
1351
|
+
checkpointRole: "none"
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
key: "preCompact",
|
|
1355
|
+
event: "PreCompact",
|
|
1356
|
+
commandMarker: EXE_HOOKS.preCompact,
|
|
1357
|
+
owner: "exe-os",
|
|
1358
|
+
purpose: "Writes active-task snapshot and compaction recovery context.",
|
|
1359
|
+
runtimes: ["claude"],
|
|
1360
|
+
checkpointRole: "recovery_context"
|
|
1361
|
+
},
|
|
1362
|
+
{
|
|
1363
|
+
key: "postCompact",
|
|
1364
|
+
event: "PostCompact",
|
|
1365
|
+
commandMarker: EXE_HOOKS.postCompact,
|
|
1366
|
+
owner: "exe-os",
|
|
1367
|
+
purpose: "Rehydrates recovery context after compaction.",
|
|
1368
|
+
runtimes: ["claude"],
|
|
1369
|
+
checkpointRole: "recovery_context"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
key: "sessionEnd",
|
|
1373
|
+
event: "SessionEnd",
|
|
1374
|
+
commandMarker: EXE_HOOKS.sessionEnd,
|
|
1375
|
+
owner: "exe-os",
|
|
1376
|
+
purpose: "Stores session-end checkpoint and triages orphaned in-progress tasks.",
|
|
1377
|
+
runtimes: ["claude"],
|
|
1378
|
+
checkpointRole: "session_summary"
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
key: "notification",
|
|
1382
|
+
event: "Notification",
|
|
1383
|
+
commandMarker: EXE_HOOKS.notification,
|
|
1384
|
+
owner: "exe-os",
|
|
1385
|
+
purpose: "Captures runtime notifications and nudges.",
|
|
1386
|
+
runtimes: ["claude"],
|
|
1387
|
+
checkpointRole: "none"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
key: "instructionsLoaded",
|
|
1391
|
+
event: "InstructionsLoaded",
|
|
1392
|
+
commandMarker: EXE_HOOKS.instructionsLoaded,
|
|
1393
|
+
owner: "exe-os",
|
|
1394
|
+
purpose: "Applies runtime instruction post-processing.",
|
|
1395
|
+
runtimes: ["claude"],
|
|
1396
|
+
checkpointRole: "none"
|
|
1397
|
+
}
|
|
1398
|
+
];
|
|
1285
1399
|
LEGACY_SPLIT_POST_TOOL_HOOK_MARKERS = [
|
|
1286
1400
|
"dist/hooks/ingest.js",
|
|
1287
1401
|
"dist/hooks/error-recall.js",
|
|
@@ -2428,6 +2542,12 @@ var PLATFORM_PROCEDURES = [
|
|
|
2428
2542
|
priority: "p0",
|
|
2429
2543
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
2430
2544
|
},
|
|
2545
|
+
{
|
|
2546
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
2547
|
+
domain: "workflow",
|
|
2548
|
+
priority: "p1",
|
|
2549
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
2550
|
+
},
|
|
2431
2551
|
{
|
|
2432
2552
|
title: "Single dispatch path \u2014 create_task only",
|
|
2433
2553
|
domain: "workflow",
|
|
@@ -2486,6 +2606,12 @@ var PLATFORM_PROCEDURES = [
|
|
|
2486
2606
|
priority: "p0",
|
|
2487
2607
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
2488
2608
|
},
|
|
2609
|
+
{
|
|
2610
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
2611
|
+
domain: "workflow",
|
|
2612
|
+
priority: "p1",
|
|
2613
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
2614
|
+
},
|
|
2489
2615
|
{
|
|
2490
2616
|
title: "Desktop and TUI are the same product",
|
|
2491
2617
|
domain: "architecture",
|
|
@@ -189,6 +189,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
189
189
|
const userAU = raw.autoUpdate ?? {};
|
|
190
190
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
191
191
|
}
|
|
192
|
+
function normalizeOrchestration(raw) {
|
|
193
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
194
|
+
const userOrg = raw.orchestration ?? {};
|
|
195
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
196
|
+
}
|
|
192
197
|
async function loadConfig() {
|
|
193
198
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
194
199
|
await ensurePrivateDir(dir);
|
|
@@ -213,6 +218,7 @@ async function loadConfig() {
|
|
|
213
218
|
normalizeScalingRoadmap(migratedCfg);
|
|
214
219
|
normalizeSessionLifecycle(migratedCfg);
|
|
215
220
|
normalizeAutoUpdate(migratedCfg);
|
|
221
|
+
normalizeOrchestration(migratedCfg);
|
|
216
222
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
217
223
|
if (config.dbPath.startsWith("~")) {
|
|
218
224
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -288,6 +294,10 @@ var init_config = __esm({
|
|
|
288
294
|
checkOnBoot: true,
|
|
289
295
|
autoInstall: false,
|
|
290
296
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
297
|
+
},
|
|
298
|
+
orchestration: {
|
|
299
|
+
phase: "phase_1_coo",
|
|
300
|
+
phaseSetBy: "default"
|
|
291
301
|
}
|
|
292
302
|
};
|
|
293
303
|
CONFIG_MIGRATIONS = [
|
|
@@ -4275,6 +4285,12 @@ var init_platform_procedures = __esm({
|
|
|
4275
4285
|
priority: "p0",
|
|
4276
4286
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
4277
4287
|
},
|
|
4288
|
+
{
|
|
4289
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
4290
|
+
domain: "workflow",
|
|
4291
|
+
priority: "p1",
|
|
4292
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
4293
|
+
},
|
|
4278
4294
|
{
|
|
4279
4295
|
title: "Single dispatch path \u2014 create_task only",
|
|
4280
4296
|
domain: "workflow",
|
|
@@ -4333,6 +4349,12 @@ var init_platform_procedures = __esm({
|
|
|
4333
4349
|
priority: "p0",
|
|
4334
4350
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
4335
4351
|
},
|
|
4352
|
+
{
|
|
4353
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
4354
|
+
domain: "workflow",
|
|
4355
|
+
priority: "p1",
|
|
4356
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
4357
|
+
},
|
|
4336
4358
|
{
|
|
4337
4359
|
title: "Desktop and TUI are the same product",
|
|
4338
4360
|
domain: "architecture",
|
|
@@ -190,6 +190,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
190
190
|
const userAU = raw.autoUpdate ?? {};
|
|
191
191
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
192
192
|
}
|
|
193
|
+
function normalizeOrchestration(raw) {
|
|
194
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
195
|
+
const userOrg = raw.orchestration ?? {};
|
|
196
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
197
|
+
}
|
|
193
198
|
async function loadConfig() {
|
|
194
199
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
195
200
|
await ensurePrivateDir(dir);
|
|
@@ -214,6 +219,7 @@ async function loadConfig() {
|
|
|
214
219
|
normalizeScalingRoadmap(migratedCfg);
|
|
215
220
|
normalizeSessionLifecycle(migratedCfg);
|
|
216
221
|
normalizeAutoUpdate(migratedCfg);
|
|
222
|
+
normalizeOrchestration(migratedCfg);
|
|
217
223
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
218
224
|
if (config.dbPath.startsWith("~")) {
|
|
219
225
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -289,6 +295,10 @@ var init_config = __esm({
|
|
|
289
295
|
checkOnBoot: true,
|
|
290
296
|
autoInstall: false,
|
|
291
297
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
298
|
+
},
|
|
299
|
+
orchestration: {
|
|
300
|
+
phase: "phase_1_coo",
|
|
301
|
+
phaseSetBy: "default"
|
|
292
302
|
}
|
|
293
303
|
};
|
|
294
304
|
CONFIG_MIGRATIONS = [
|
|
@@ -4341,6 +4351,12 @@ var init_platform_procedures = __esm({
|
|
|
4341
4351
|
priority: "p0",
|
|
4342
4352
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
4343
4353
|
},
|
|
4354
|
+
{
|
|
4355
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
4356
|
+
domain: "workflow",
|
|
4357
|
+
priority: "p1",
|
|
4358
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
4359
|
+
},
|
|
4344
4360
|
{
|
|
4345
4361
|
title: "Single dispatch path \u2014 create_task only",
|
|
4346
4362
|
domain: "workflow",
|
|
@@ -4399,6 +4415,12 @@ var init_platform_procedures = __esm({
|
|
|
4399
4415
|
priority: "p0",
|
|
4400
4416
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
4401
4417
|
},
|
|
4418
|
+
{
|
|
4419
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
4420
|
+
domain: "workflow",
|
|
4421
|
+
priority: "p1",
|
|
4422
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
4423
|
+
},
|
|
4402
4424
|
{
|
|
4403
4425
|
title: "Desktop and TUI are the same product",
|
|
4404
4426
|
domain: "architecture",
|
|
@@ -190,6 +190,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
190
190
|
const userAU = raw.autoUpdate ?? {};
|
|
191
191
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
192
192
|
}
|
|
193
|
+
function normalizeOrchestration(raw) {
|
|
194
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
195
|
+
const userOrg = raw.orchestration ?? {};
|
|
196
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
197
|
+
}
|
|
193
198
|
async function loadConfig() {
|
|
194
199
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
195
200
|
await ensurePrivateDir(dir);
|
|
@@ -214,6 +219,7 @@ async function loadConfig() {
|
|
|
214
219
|
normalizeScalingRoadmap(migratedCfg);
|
|
215
220
|
normalizeSessionLifecycle(migratedCfg);
|
|
216
221
|
normalizeAutoUpdate(migratedCfg);
|
|
222
|
+
normalizeOrchestration(migratedCfg);
|
|
217
223
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
218
224
|
if (config.dbPath.startsWith("~")) {
|
|
219
225
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -289,6 +295,10 @@ var init_config = __esm({
|
|
|
289
295
|
checkOnBoot: true,
|
|
290
296
|
autoInstall: false,
|
|
291
297
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
298
|
+
},
|
|
299
|
+
orchestration: {
|
|
300
|
+
phase: "phase_1_coo",
|
|
301
|
+
phaseSetBy: "default"
|
|
292
302
|
}
|
|
293
303
|
};
|
|
294
304
|
CONFIG_MIGRATIONS = [
|
|
@@ -4380,6 +4390,12 @@ var init_platform_procedures = __esm({
|
|
|
4380
4390
|
priority: "p0",
|
|
4381
4391
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
4382
4392
|
},
|
|
4393
|
+
{
|
|
4394
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
4395
|
+
domain: "workflow",
|
|
4396
|
+
priority: "p1",
|
|
4397
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
4398
|
+
},
|
|
4383
4399
|
{
|
|
4384
4400
|
title: "Single dispatch path \u2014 create_task only",
|
|
4385
4401
|
domain: "workflow",
|
|
@@ -4438,6 +4454,12 @@ var init_platform_procedures = __esm({
|
|
|
4438
4454
|
priority: "p0",
|
|
4439
4455
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
4440
4456
|
},
|
|
4457
|
+
{
|
|
4458
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
4459
|
+
domain: "workflow",
|
|
4460
|
+
priority: "p1",
|
|
4461
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
4462
|
+
},
|
|
4441
4463
|
{
|
|
4442
4464
|
title: "Desktop and TUI are the same product",
|
|
4443
4465
|
domain: "architecture",
|
package/dist/bin/exe-rename.js
CHANGED
|
@@ -124,6 +124,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
124
124
|
const userAU = raw.autoUpdate ?? {};
|
|
125
125
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
126
126
|
}
|
|
127
|
+
function normalizeOrchestration(raw) {
|
|
128
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
129
|
+
const userOrg = raw.orchestration ?? {};
|
|
130
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
131
|
+
}
|
|
127
132
|
async function loadConfig() {
|
|
128
133
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
129
134
|
await ensurePrivateDir(dir);
|
|
@@ -148,6 +153,7 @@ async function loadConfig() {
|
|
|
148
153
|
normalizeScalingRoadmap(migratedCfg);
|
|
149
154
|
normalizeSessionLifecycle(migratedCfg);
|
|
150
155
|
normalizeAutoUpdate(migratedCfg);
|
|
156
|
+
normalizeOrchestration(migratedCfg);
|
|
151
157
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
152
158
|
if (config.dbPath.startsWith("~")) {
|
|
153
159
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -223,6 +229,10 @@ var init_config = __esm({
|
|
|
223
229
|
checkOnBoot: true,
|
|
224
230
|
autoInstall: false,
|
|
225
231
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
232
|
+
},
|
|
233
|
+
orchestration: {
|
|
234
|
+
phase: "phase_1_coo",
|
|
235
|
+
phaseSetBy: "default"
|
|
226
236
|
}
|
|
227
237
|
};
|
|
228
238
|
CONFIG_MIGRATIONS = [
|
|
@@ -2806,6 +2816,12 @@ var init_platform_procedures = __esm({
|
|
|
2806
2816
|
priority: "p0",
|
|
2807
2817
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
2808
2818
|
},
|
|
2819
|
+
{
|
|
2820
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
2821
|
+
domain: "workflow",
|
|
2822
|
+
priority: "p1",
|
|
2823
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
2824
|
+
},
|
|
2809
2825
|
{
|
|
2810
2826
|
title: "Single dispatch path \u2014 create_task only",
|
|
2811
2827
|
domain: "workflow",
|
|
@@ -2864,6 +2880,12 @@ var init_platform_procedures = __esm({
|
|
|
2864
2880
|
priority: "p0",
|
|
2865
2881
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
2866
2882
|
},
|
|
2883
|
+
{
|
|
2884
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
2885
|
+
domain: "workflow",
|
|
2886
|
+
priority: "p1",
|
|
2887
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
2888
|
+
},
|
|
2867
2889
|
{
|
|
2868
2890
|
title: "Desktop and TUI are the same product",
|
|
2869
2891
|
domain: "architecture",
|
package/dist/bin/exe-review.js
CHANGED
|
@@ -124,6 +124,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
124
124
|
const userAU = raw.autoUpdate ?? {};
|
|
125
125
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
126
126
|
}
|
|
127
|
+
function normalizeOrchestration(raw) {
|
|
128
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
129
|
+
const userOrg = raw.orchestration ?? {};
|
|
130
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
131
|
+
}
|
|
127
132
|
async function loadConfig() {
|
|
128
133
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
129
134
|
await ensurePrivateDir(dir);
|
|
@@ -148,6 +153,7 @@ async function loadConfig() {
|
|
|
148
153
|
normalizeScalingRoadmap(migratedCfg);
|
|
149
154
|
normalizeSessionLifecycle(migratedCfg);
|
|
150
155
|
normalizeAutoUpdate(migratedCfg);
|
|
156
|
+
normalizeOrchestration(migratedCfg);
|
|
151
157
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
152
158
|
if (config.dbPath.startsWith("~")) {
|
|
153
159
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -223,6 +229,10 @@ var init_config = __esm({
|
|
|
223
229
|
checkOnBoot: true,
|
|
224
230
|
autoInstall: false,
|
|
225
231
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
232
|
+
},
|
|
233
|
+
orchestration: {
|
|
234
|
+
phase: "phase_1_coo",
|
|
235
|
+
phaseSetBy: "default"
|
|
226
236
|
}
|
|
227
237
|
};
|
|
228
238
|
CONFIG_MIGRATIONS = [
|
|
@@ -3852,6 +3862,12 @@ var init_platform_procedures = __esm({
|
|
|
3852
3862
|
priority: "p0",
|
|
3853
3863
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
3854
3864
|
},
|
|
3865
|
+
{
|
|
3866
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
3867
|
+
domain: "workflow",
|
|
3868
|
+
priority: "p1",
|
|
3869
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
3870
|
+
},
|
|
3855
3871
|
{
|
|
3856
3872
|
title: "Single dispatch path \u2014 create_task only",
|
|
3857
3873
|
domain: "workflow",
|
|
@@ -3910,6 +3926,12 @@ var init_platform_procedures = __esm({
|
|
|
3910
3926
|
priority: "p0",
|
|
3911
3927
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
3912
3928
|
},
|
|
3929
|
+
{
|
|
3930
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
3931
|
+
domain: "workflow",
|
|
3932
|
+
priority: "p1",
|
|
3933
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
3934
|
+
},
|
|
3913
3935
|
{
|
|
3914
3936
|
title: "Desktop and TUI are the same product",
|
|
3915
3937
|
domain: "architecture",
|
package/dist/bin/exe-search.js
CHANGED
|
@@ -203,6 +203,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
203
203
|
const userAU = raw.autoUpdate ?? {};
|
|
204
204
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
205
205
|
}
|
|
206
|
+
function normalizeOrchestration(raw) {
|
|
207
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
208
|
+
const userOrg = raw.orchestration ?? {};
|
|
209
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
210
|
+
}
|
|
206
211
|
async function loadConfig() {
|
|
207
212
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
208
213
|
await ensurePrivateDir(dir);
|
|
@@ -227,6 +232,7 @@ async function loadConfig() {
|
|
|
227
232
|
normalizeScalingRoadmap(migratedCfg);
|
|
228
233
|
normalizeSessionLifecycle(migratedCfg);
|
|
229
234
|
normalizeAutoUpdate(migratedCfg);
|
|
235
|
+
normalizeOrchestration(migratedCfg);
|
|
230
236
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
231
237
|
if (config.dbPath.startsWith("~")) {
|
|
232
238
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -250,6 +256,7 @@ function loadConfigSync() {
|
|
|
250
256
|
normalizeScalingRoadmap(migratedCfg);
|
|
251
257
|
normalizeSessionLifecycle(migratedCfg);
|
|
252
258
|
normalizeAutoUpdate(migratedCfg);
|
|
259
|
+
normalizeOrchestration(migratedCfg);
|
|
253
260
|
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
254
261
|
} catch {
|
|
255
262
|
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
@@ -271,6 +278,7 @@ async function loadConfigFrom(configPath) {
|
|
|
271
278
|
normalizeScalingRoadmap(migratedCfg);
|
|
272
279
|
normalizeSessionLifecycle(migratedCfg);
|
|
273
280
|
normalizeAutoUpdate(migratedCfg);
|
|
281
|
+
normalizeOrchestration(migratedCfg);
|
|
274
282
|
return { ...DEFAULT_CONFIG, ...migratedCfg };
|
|
275
283
|
} catch {
|
|
276
284
|
return { ...DEFAULT_CONFIG };
|
|
@@ -342,6 +350,10 @@ var init_config = __esm({
|
|
|
342
350
|
checkOnBoot: true,
|
|
343
351
|
autoInstall: false,
|
|
344
352
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
353
|
+
},
|
|
354
|
+
orchestration: {
|
|
355
|
+
phase: "phase_1_coo",
|
|
356
|
+
phaseSetBy: "default"
|
|
345
357
|
}
|
|
346
358
|
};
|
|
347
359
|
CONFIG_MIGRATIONS = [
|
|
@@ -3827,6 +3839,12 @@ var init_platform_procedures = __esm({
|
|
|
3827
3839
|
priority: "p0",
|
|
3828
3840
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
3829
3841
|
},
|
|
3842
|
+
{
|
|
3843
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
3844
|
+
domain: "workflow",
|
|
3845
|
+
priority: "p1",
|
|
3846
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
3847
|
+
},
|
|
3830
3848
|
{
|
|
3831
3849
|
title: "Single dispatch path \u2014 create_task only",
|
|
3832
3850
|
domain: "workflow",
|
|
@@ -3885,6 +3903,12 @@ var init_platform_procedures = __esm({
|
|
|
3885
3903
|
priority: "p0",
|
|
3886
3904
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
3887
3905
|
},
|
|
3906
|
+
{
|
|
3907
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
3908
|
+
domain: "workflow",
|
|
3909
|
+
priority: "p1",
|
|
3910
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
3911
|
+
},
|
|
3888
3912
|
{
|
|
3889
3913
|
title: "Desktop and TUI are the same product",
|
|
3890
3914
|
domain: "architecture",
|
|
@@ -214,6 +214,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
214
214
|
const userAU = raw.autoUpdate ?? {};
|
|
215
215
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
216
216
|
}
|
|
217
|
+
function normalizeOrchestration(raw) {
|
|
218
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
219
|
+
const userOrg = raw.orchestration ?? {};
|
|
220
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
221
|
+
}
|
|
217
222
|
async function loadConfig() {
|
|
218
223
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
219
224
|
await ensurePrivateDir(dir);
|
|
@@ -238,6 +243,7 @@ async function loadConfig() {
|
|
|
238
243
|
normalizeScalingRoadmap(migratedCfg);
|
|
239
244
|
normalizeSessionLifecycle(migratedCfg);
|
|
240
245
|
normalizeAutoUpdate(migratedCfg);
|
|
246
|
+
normalizeOrchestration(migratedCfg);
|
|
241
247
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
242
248
|
if (config.dbPath.startsWith("~")) {
|
|
243
249
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -261,6 +267,7 @@ function loadConfigSync() {
|
|
|
261
267
|
normalizeScalingRoadmap(migratedCfg);
|
|
262
268
|
normalizeSessionLifecycle(migratedCfg);
|
|
263
269
|
normalizeAutoUpdate(migratedCfg);
|
|
270
|
+
normalizeOrchestration(migratedCfg);
|
|
264
271
|
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
265
272
|
} catch {
|
|
266
273
|
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
@@ -282,6 +289,7 @@ async function loadConfigFrom(configPath) {
|
|
|
282
289
|
normalizeScalingRoadmap(migratedCfg);
|
|
283
290
|
normalizeSessionLifecycle(migratedCfg);
|
|
284
291
|
normalizeAutoUpdate(migratedCfg);
|
|
292
|
+
normalizeOrchestration(migratedCfg);
|
|
285
293
|
return { ...DEFAULT_CONFIG, ...migratedCfg };
|
|
286
294
|
} catch {
|
|
287
295
|
return { ...DEFAULT_CONFIG };
|
|
@@ -353,6 +361,10 @@ var init_config = __esm({
|
|
|
353
361
|
checkOnBoot: true,
|
|
354
362
|
autoInstall: false,
|
|
355
363
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
364
|
+
},
|
|
365
|
+
orchestration: {
|
|
366
|
+
phase: "phase_1_coo",
|
|
367
|
+
phaseSetBy: "default"
|
|
356
368
|
}
|
|
357
369
|
};
|
|
358
370
|
CONFIG_MIGRATIONS = [
|
|
@@ -3871,6 +3883,12 @@ var init_platform_procedures = __esm({
|
|
|
3871
3883
|
priority: "p0",
|
|
3872
3884
|
content: "Founder -> coordinator (the executive agent, internally routed as 'COO') -> CTO/CMO. CTO -> engineers. CMO -> content production. Never skip levels: the coordinator does not bypass managers for specialist work. Specialists report to their manager. If you need cross-team info, use ask_team_memory \u2014 don't read other agents' task folders. Each level owns dispatch downward and review upward."
|
|
3873
3885
|
},
|
|
3886
|
+
{
|
|
3887
|
+
title: "Customer orchestration maturity \u2014 recommend, never trap",
|
|
3888
|
+
domain: "workflow",
|
|
3889
|
+
priority: "p1",
|
|
3890
|
+
content: "New customers start best in Phase 1: founder \u2194 coordinator/Chief of Staff, building company context. Suggest Phase 2 executives when domain work repeats; suggest Phase 3 parallel execution only when review/permission gates are ready. This is guidance, not a blocker: users may jump phases anytime. Never overwrite their phase, role titles, identities, or custom org design."
|
|
3891
|
+
},
|
|
3874
3892
|
{
|
|
3875
3893
|
title: "Single dispatch path \u2014 create_task only",
|
|
3876
3894
|
domain: "workflow",
|
|
@@ -3929,6 +3947,12 @@ var init_platform_procedures = __esm({
|
|
|
3929
3947
|
priority: "p0",
|
|
3930
3948
|
content: "exe-build-adv is MANDATORY for ALL work touching 3+ files. Run /exe-build-adv --auto BEFORE implementation. Pipeline: Spec \u2192 AC \u2192 Tests \u2192 Evaluate \u2192 Fix. No multi-file feature ships without pipeline artifacts. No exceptions \u2014 managers reject work without them."
|
|
3931
3949
|
},
|
|
3950
|
+
{
|
|
3951
|
+
title: "Commit discipline \u2014 never leave verified work floating",
|
|
3952
|
+
domain: "workflow",
|
|
3953
|
+
priority: "p1",
|
|
3954
|
+
content: "After any code-change batch passes typecheck/tests/build, run git status, summarize changed files, and commit with a clear message before ending the session. If work must remain uncommitted for review/dogfood, explicitly say so, list the files, and state the blocker. Never imply work is complete while verified changes are still floating locally."
|
|
3955
|
+
},
|
|
3932
3956
|
{
|
|
3933
3957
|
title: "Desktop and TUI are the same product",
|
|
3934
3958
|
domain: "architecture",
|
package/dist/bin/exe-settings.js
CHANGED
|
@@ -112,6 +112,11 @@ function normalizeAutoUpdate(raw) {
|
|
|
112
112
|
const userAU = raw.autoUpdate ?? {};
|
|
113
113
|
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
114
114
|
}
|
|
115
|
+
function normalizeOrchestration(raw) {
|
|
116
|
+
const defaultOrg = DEFAULT_CONFIG.orchestration;
|
|
117
|
+
const userOrg = raw.orchestration ?? {};
|
|
118
|
+
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
119
|
+
}
|
|
115
120
|
async function loadConfig() {
|
|
116
121
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
117
122
|
await ensurePrivateDir(dir);
|
|
@@ -136,6 +141,7 @@ async function loadConfig() {
|
|
|
136
141
|
normalizeScalingRoadmap(migratedCfg);
|
|
137
142
|
normalizeSessionLifecycle(migratedCfg);
|
|
138
143
|
normalizeAutoUpdate(migratedCfg);
|
|
144
|
+
normalizeOrchestration(migratedCfg);
|
|
139
145
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
140
146
|
if (config.dbPath.startsWith("~")) {
|
|
141
147
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -218,6 +224,10 @@ var init_config = __esm({
|
|
|
218
224
|
checkOnBoot: true,
|
|
219
225
|
autoInstall: false,
|
|
220
226
|
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
227
|
+
},
|
|
228
|
+
orchestration: {
|
|
229
|
+
phase: "phase_1_coo",
|
|
230
|
+
phaseSetBy: "default"
|
|
221
231
|
}
|
|
222
232
|
};
|
|
223
233
|
CONFIG_MIGRATIONS = [
|