@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.
Files changed (105) hide show
  1. package/deploy/stack-manifests/v0.9.json +4 -4
  2. package/dist/bin/backfill-conversations.js +22 -0
  3. package/dist/bin/backfill-responses.js +22 -0
  4. package/dist/bin/backfill-vectors.js +22 -0
  5. package/dist/bin/cleanup-stale-review-tasks.js +22 -0
  6. package/dist/bin/cli.js +2280 -1199
  7. package/dist/bin/exe-agent-config.js +4 -0
  8. package/dist/bin/exe-agent.js +16 -0
  9. package/dist/bin/exe-assign.js +22 -0
  10. package/dist/bin/exe-boot.js +116 -7
  11. package/dist/bin/exe-call.js +16 -0
  12. package/dist/bin/exe-cloud.js +6671 -464
  13. package/dist/bin/exe-dispatch.js +24 -0
  14. package/dist/bin/exe-doctor.js +2845 -1223
  15. package/dist/bin/exe-export-behaviors.js +24 -0
  16. package/dist/bin/exe-forget.js +22 -0
  17. package/dist/bin/exe-gateway.js +24 -0
  18. package/dist/bin/exe-heartbeat.js +23 -0
  19. package/dist/bin/exe-kill.js +22 -0
  20. package/dist/bin/exe-launch-agent.js +24 -0
  21. package/dist/bin/exe-link.js +310 -178
  22. package/dist/bin/exe-new-employee.js +127 -1
  23. package/dist/bin/exe-pending-messages.js +22 -0
  24. package/dist/bin/exe-pending-notifications.js +22 -0
  25. package/dist/bin/exe-pending-reviews.js +22 -0
  26. package/dist/bin/exe-rename.js +22 -0
  27. package/dist/bin/exe-review.js +22 -0
  28. package/dist/bin/exe-search.js +24 -0
  29. package/dist/bin/exe-session-cleanup.js +24 -0
  30. package/dist/bin/exe-settings.js +10 -0
  31. package/dist/bin/exe-start-codex.js +135 -1
  32. package/dist/bin/exe-start-opencode.js +149 -1
  33. package/dist/bin/exe-status.js +22 -0
  34. package/dist/bin/exe-team.js +22 -0
  35. package/dist/bin/git-sweep.js +24 -0
  36. package/dist/bin/graph-backfill.js +22 -0
  37. package/dist/bin/graph-export.js +22 -0
  38. package/dist/bin/install.js +115 -1
  39. package/dist/bin/intercom-check.js +24 -0
  40. package/dist/bin/scan-tasks.js +24 -0
  41. package/dist/bin/setup.js +412 -157
  42. package/dist/bin/shard-migrate.js +22 -0
  43. package/dist/bin/update.js +4 -0
  44. package/dist/gateway/index.js +24 -0
  45. package/dist/hooks/bug-report-worker.js +135 -42
  46. package/dist/hooks/codex-stop-task-finalizer.js +24 -0
  47. package/dist/hooks/commit-complete.js +24 -0
  48. package/dist/hooks/error-recall.js +24 -0
  49. package/dist/hooks/exe-heartbeat-hook.js +4 -0
  50. package/dist/hooks/ingest-worker.js +4 -0
  51. package/dist/hooks/ingest.js +23 -0
  52. package/dist/hooks/instructions-loaded.js +22 -0
  53. package/dist/hooks/notification.js +22 -0
  54. package/dist/hooks/post-compact.js +22 -0
  55. package/dist/hooks/post-tool-combined.js +24 -0
  56. package/dist/hooks/pre-compact.js +260 -109
  57. package/dist/hooks/pre-tool-use.js +22 -0
  58. package/dist/hooks/prompt-submit.js +24 -0
  59. package/dist/hooks/session-end.js +161 -122
  60. package/dist/hooks/session-start.js +142 -0
  61. package/dist/hooks/stop.js +23 -0
  62. package/dist/hooks/subagent-stop.js +22 -0
  63. package/dist/hooks/summary-worker.js +195 -79
  64. package/dist/index.js +24 -0
  65. package/dist/lib/agent-config.js +4 -0
  66. package/dist/lib/cloud-sync.js +50 -6
  67. package/dist/lib/config.js +12 -0
  68. package/dist/lib/consolidation.js +4 -0
  69. package/dist/lib/database.js +4 -0
  70. package/dist/lib/db-daemon-client.js +4 -0
  71. package/dist/lib/db.js +4 -0
  72. package/dist/lib/device-registry.js +4 -0
  73. package/dist/lib/embedder.js +12 -0
  74. package/dist/lib/employee-templates.js +16 -0
  75. package/dist/lib/employees.js +4 -0
  76. package/dist/lib/exe-daemon-client.js +4 -0
  77. package/dist/lib/exe-daemon.js +1144 -480
  78. package/dist/lib/hybrid-search.js +24 -0
  79. package/dist/lib/identity.js +4 -0
  80. package/dist/lib/license.js +4 -0
  81. package/dist/lib/messaging.js +4 -0
  82. package/dist/lib/reminders.js +4 -0
  83. package/dist/lib/schedules.js +22 -0
  84. package/dist/lib/skill-learning.js +12 -0
  85. package/dist/lib/status-brief.js +39 -0
  86. package/dist/lib/store.js +22 -0
  87. package/dist/lib/task-router.js +4 -0
  88. package/dist/lib/tasks.js +12 -0
  89. package/dist/lib/tmux-routing.js +12 -0
  90. package/dist/lib/token-spend.js +4 -0
  91. package/dist/mcp/server.js +1045 -427
  92. package/dist/mcp/tools/complete-reminder.js +4 -0
  93. package/dist/mcp/tools/create-reminder.js +4 -0
  94. package/dist/mcp/tools/create-task.js +12 -0
  95. package/dist/mcp/tools/deactivate-behavior.js +4 -0
  96. package/dist/mcp/tools/list-reminders.js +4 -0
  97. package/dist/mcp/tools/list-tasks.js +4 -0
  98. package/dist/mcp/tools/send-message.js +4 -0
  99. package/dist/mcp/tools/update-task.js +12 -0
  100. package/dist/runtime/index.js +24 -0
  101. package/dist/tui/App.js +24 -0
  102. package/package.json +3 -2
  103. package/src/commands/exe/cloud.md +15 -8
  104. package/src/commands/exe/link.md +7 -6
  105. package/stack.release.json +2 -2
@@ -123,6 +123,11 @@ function normalizeAutoUpdate(raw) {
123
123
  const userAU = raw.autoUpdate ?? {};
124
124
  raw.autoUpdate = { ...defaultAU, ...userAU };
125
125
  }
126
+ function normalizeOrchestration(raw) {
127
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
128
+ const userOrg = raw.orchestration ?? {};
129
+ raw.orchestration = { ...defaultOrg, ...userOrg };
130
+ }
126
131
  async function loadConfig() {
127
132
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
128
133
  await ensurePrivateDir(dir);
@@ -147,6 +152,7 @@ async function loadConfig() {
147
152
  normalizeScalingRoadmap(migratedCfg);
148
153
  normalizeSessionLifecycle(migratedCfg);
149
154
  normalizeAutoUpdate(migratedCfg);
155
+ normalizeOrchestration(migratedCfg);
150
156
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
151
157
  if (config.dbPath.startsWith("~")) {
152
158
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
@@ -170,6 +176,7 @@ function loadConfigSync() {
170
176
  normalizeScalingRoadmap(migratedCfg);
171
177
  normalizeSessionLifecycle(migratedCfg);
172
178
  normalizeAutoUpdate(migratedCfg);
179
+ normalizeOrchestration(migratedCfg);
173
180
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
174
181
  } catch {
175
182
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
@@ -241,6 +248,10 @@ var init_config = __esm({
241
248
  checkOnBoot: true,
242
249
  autoInstall: false,
243
250
  checkIntervalMs: 24 * 60 * 60 * 1e3
251
+ },
252
+ orchestration: {
253
+ phase: "phase_1_coo",
254
+ phaseSetBy: "default"
244
255
  }
245
256
  };
246
257
  CONFIG_MIGRATIONS = [
@@ -4006,6 +4017,12 @@ var init_platform_procedures = __esm({
4006
4017
  priority: "p0",
4007
4018
  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."
4008
4019
  },
4020
+ {
4021
+ title: "Customer orchestration maturity \u2014 recommend, never trap",
4022
+ domain: "workflow",
4023
+ priority: "p1",
4024
+ 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."
4025
+ },
4009
4026
  {
4010
4027
  title: "Single dispatch path \u2014 create_task only",
4011
4028
  domain: "workflow",
@@ -4064,6 +4081,12 @@ var init_platform_procedures = __esm({
4064
4081
  priority: "p0",
4065
4082
  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."
4066
4083
  },
4084
+ {
4085
+ title: "Commit discipline \u2014 never leave verified work floating",
4086
+ domain: "workflow",
4087
+ priority: "p1",
4088
+ 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."
4089
+ },
4067
4090
  {
4068
4091
  title: "Desktop and TUI are the same product",
4069
4092
  domain: "architecture",
@@ -123,6 +123,11 @@ function normalizeAutoUpdate(raw) {
123
123
  const userAU = raw.autoUpdate ?? {};
124
124
  raw.autoUpdate = { ...defaultAU, ...userAU };
125
125
  }
126
+ function normalizeOrchestration(raw) {
127
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
128
+ const userOrg = raw.orchestration ?? {};
129
+ raw.orchestration = { ...defaultOrg, ...userOrg };
130
+ }
126
131
  async function loadConfig() {
127
132
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
128
133
  await ensurePrivateDir(dir);
@@ -147,6 +152,7 @@ async function loadConfig() {
147
152
  normalizeScalingRoadmap(migratedCfg);
148
153
  normalizeSessionLifecycle(migratedCfg);
149
154
  normalizeAutoUpdate(migratedCfg);
155
+ normalizeOrchestration(migratedCfg);
150
156
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
151
157
  if (config.dbPath.startsWith("~")) {
152
158
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
@@ -222,6 +228,10 @@ var init_config = __esm({
222
228
  checkOnBoot: true,
223
229
  autoInstall: false,
224
230
  checkIntervalMs: 24 * 60 * 60 * 1e3
231
+ },
232
+ orchestration: {
233
+ phase: "phase_1_coo",
234
+ phaseSetBy: "default"
225
235
  }
226
236
  };
227
237
  CONFIG_MIGRATIONS = [
@@ -3840,6 +3850,12 @@ var init_platform_procedures = __esm({
3840
3850
  priority: "p0",
3841
3851
  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."
3842
3852
  },
3853
+ {
3854
+ title: "Customer orchestration maturity \u2014 recommend, never trap",
3855
+ domain: "workflow",
3856
+ priority: "p1",
3857
+ 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."
3858
+ },
3843
3859
  {
3844
3860
  title: "Single dispatch path \u2014 create_task only",
3845
3861
  domain: "workflow",
@@ -3898,6 +3914,12 @@ var init_platform_procedures = __esm({
3898
3914
  priority: "p0",
3899
3915
  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."
3900
3916
  },
3917
+ {
3918
+ title: "Commit discipline \u2014 never leave verified work floating",
3919
+ domain: "workflow",
3920
+ priority: "p1",
3921
+ 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."
3922
+ },
3901
3923
  {
3902
3924
  title: "Desktop and TUI are the same product",
3903
3925
  domain: "architecture",
@@ -123,6 +123,11 @@ function normalizeAutoUpdate(raw) {
123
123
  const userAU = raw.autoUpdate ?? {};
124
124
  raw.autoUpdate = { ...defaultAU, ...userAU };
125
125
  }
126
+ function normalizeOrchestration(raw) {
127
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
128
+ const userOrg = raw.orchestration ?? {};
129
+ raw.orchestration = { ...defaultOrg, ...userOrg };
130
+ }
126
131
  async function loadConfig() {
127
132
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
128
133
  await ensurePrivateDir(dir);
@@ -147,6 +152,7 @@ async function loadConfig() {
147
152
  normalizeScalingRoadmap(migratedCfg);
148
153
  normalizeSessionLifecycle(migratedCfg);
149
154
  normalizeAutoUpdate(migratedCfg);
155
+ normalizeOrchestration(migratedCfg);
150
156
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
151
157
  if (config.dbPath.startsWith("~")) {
152
158
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
@@ -222,6 +228,10 @@ var init_config = __esm({
222
228
  checkOnBoot: true,
223
229
  autoInstall: false,
224
230
  checkIntervalMs: 24 * 60 * 60 * 1e3
231
+ },
232
+ orchestration: {
233
+ phase: "phase_1_coo",
234
+ phaseSetBy: "default"
225
235
  }
226
236
  };
227
237
  CONFIG_MIGRATIONS = [
@@ -3840,6 +3850,12 @@ var init_platform_procedures = __esm({
3840
3850
  priority: "p0",
3841
3851
  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."
3842
3852
  },
3853
+ {
3854
+ title: "Customer orchestration maturity \u2014 recommend, never trap",
3855
+ domain: "workflow",
3856
+ priority: "p1",
3857
+ 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."
3858
+ },
3843
3859
  {
3844
3860
  title: "Single dispatch path \u2014 create_task only",
3845
3861
  domain: "workflow",
@@ -3898,6 +3914,12 @@ var init_platform_procedures = __esm({
3898
3914
  priority: "p0",
3899
3915
  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."
3900
3916
  },
3917
+ {
3918
+ title: "Commit discipline \u2014 never leave verified work floating",
3919
+ domain: "workflow",
3920
+ priority: "p1",
3921
+ 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."
3922
+ },
3901
3923
  {
3902
3924
  title: "Desktop and TUI are the same product",
3903
3925
  domain: "architecture",
@@ -134,6 +134,11 @@ function normalizeAutoUpdate(raw) {
134
134
  const userAU = raw.autoUpdate ?? {};
135
135
  raw.autoUpdate = { ...defaultAU, ...userAU };
136
136
  }
137
+ function normalizeOrchestration(raw) {
138
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
139
+ const userOrg = raw.orchestration ?? {};
140
+ raw.orchestration = { ...defaultOrg, ...userOrg };
141
+ }
137
142
  async function loadConfig() {
138
143
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
139
144
  await ensurePrivateDir(dir);
@@ -158,6 +163,7 @@ async function loadConfig() {
158
163
  normalizeScalingRoadmap(migratedCfg);
159
164
  normalizeSessionLifecycle(migratedCfg);
160
165
  normalizeAutoUpdate(migratedCfg);
166
+ normalizeOrchestration(migratedCfg);
161
167
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
162
168
  if (config.dbPath.startsWith("~")) {
163
169
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
@@ -233,6 +239,10 @@ var init_config = __esm({
233
239
  checkOnBoot: true,
234
240
  autoInstall: false,
235
241
  checkIntervalMs: 24 * 60 * 60 * 1e3
242
+ },
243
+ orchestration: {
244
+ phase: "phase_1_coo",
245
+ phaseSetBy: "default"
236
246
  }
237
247
  };
238
248
  CONFIG_MIGRATIONS = [
@@ -4278,6 +4288,12 @@ var init_platform_procedures = __esm({
4278
4288
  priority: "p0",
4279
4289
  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."
4280
4290
  },
4291
+ {
4292
+ title: "Customer orchestration maturity \u2014 recommend, never trap",
4293
+ domain: "workflow",
4294
+ priority: "p1",
4295
+ 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."
4296
+ },
4281
4297
  {
4282
4298
  title: "Single dispatch path \u2014 create_task only",
4283
4299
  domain: "workflow",
@@ -4336,6 +4352,12 @@ var init_platform_procedures = __esm({
4336
4352
  priority: "p0",
4337
4353
  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."
4338
4354
  },
4355
+ {
4356
+ title: "Commit discipline \u2014 never leave verified work floating",
4357
+ domain: "workflow",
4358
+ priority: "p1",
4359
+ 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."
4360
+ },
4339
4361
  {
4340
4362
  title: "Desktop and TUI are the same product",
4341
4363
  domain: "architecture",
@@ -138,6 +138,11 @@ function normalizeAutoUpdate(raw) {
138
138
  const userAU = raw.autoUpdate ?? {};
139
139
  raw.autoUpdate = { ...defaultAU, ...userAU };
140
140
  }
141
+ function normalizeOrchestration(raw) {
142
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
143
+ const userOrg = raw.orchestration ?? {};
144
+ raw.orchestration = { ...defaultOrg, ...userOrg };
145
+ }
141
146
  async function loadConfig() {
142
147
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
143
148
  await ensurePrivateDir(dir);
@@ -162,6 +167,7 @@ async function loadConfig() {
162
167
  normalizeScalingRoadmap(migratedCfg);
163
168
  normalizeSessionLifecycle(migratedCfg);
164
169
  normalizeAutoUpdate(migratedCfg);
170
+ normalizeOrchestration(migratedCfg);
165
171
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
166
172
  if (config.dbPath.startsWith("~")) {
167
173
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
@@ -185,6 +191,7 @@ function loadConfigSync() {
185
191
  normalizeScalingRoadmap(migratedCfg);
186
192
  normalizeSessionLifecycle(migratedCfg);
187
193
  normalizeAutoUpdate(migratedCfg);
194
+ normalizeOrchestration(migratedCfg);
188
195
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
189
196
  } catch {
190
197
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
@@ -206,6 +213,7 @@ async function loadConfigFrom(configPath) {
206
213
  normalizeScalingRoadmap(migratedCfg);
207
214
  normalizeSessionLifecycle(migratedCfg);
208
215
  normalizeAutoUpdate(migratedCfg);
216
+ normalizeOrchestration(migratedCfg);
209
217
  return { ...DEFAULT_CONFIG, ...migratedCfg };
210
218
  } catch {
211
219
  return { ...DEFAULT_CONFIG };
@@ -277,6 +285,10 @@ var init_config = __esm({
277
285
  checkOnBoot: true,
278
286
  autoInstall: false,
279
287
  checkIntervalMs: 24 * 60 * 60 * 1e3
288
+ },
289
+ orchestration: {
290
+ phase: "phase_1_coo",
291
+ phaseSetBy: "default"
280
292
  }
281
293
  };
282
294
  CONFIG_MIGRATIONS = [
@@ -4004,6 +4016,12 @@ var init_platform_procedures = __esm({
4004
4016
  priority: "p0",
4005
4017
  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."
4006
4018
  },
4019
+ {
4020
+ title: "Customer orchestration maturity \u2014 recommend, never trap",
4021
+ domain: "workflow",
4022
+ priority: "p1",
4023
+ 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."
4024
+ },
4007
4025
  {
4008
4026
  title: "Single dispatch path \u2014 create_task only",
4009
4027
  domain: "workflow",
@@ -4062,6 +4080,12 @@ var init_platform_procedures = __esm({
4062
4080
  priority: "p0",
4063
4081
  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."
4064
4082
  },
4083
+ {
4084
+ title: "Commit discipline \u2014 never leave verified work floating",
4085
+ domain: "workflow",
4086
+ priority: "p1",
4087
+ 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."
4088
+ },
4065
4089
  {
4066
4090
  title: "Desktop and TUI are the same product",
4067
4091
  domain: "architecture",