create-egregore 0.19.33 → 0.20.1

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 (250) hide show
  1. package/assets/egregore-launcher.js +141 -14
  2. package/bin/cli.js +19 -3
  3. package/lib/connect-runtime.js +4 -2
  4. package/lib/local.js +15 -1
  5. package/lib/prime-runtime.js +208 -0
  6. package/lib/setup.js +66 -5
  7. package/package.json +4 -3
  8. package/runtime/codex/.codex/config.toml +3 -0
  9. package/runtime/codex/.codex/skills/archive/SKILL.md +1 -1
  10. package/runtime/codex/.codex/skills/branch/SKILL.md +1 -1
  11. package/runtime/codex/.codex/skills/checkup/SKILL.md +1 -1
  12. package/runtime/codex/.codex/skills/commit/SKILL.md +1 -1
  13. package/runtime/codex/.codex/skills/contribute/SKILL.md +1 -1
  14. package/runtime/codex/.codex/skills/delete-user/SKILL.md +1 -1
  15. package/runtime/codex/.codex/skills/ingest/SKILL.md +1 -1
  16. package/runtime/codex/.codex/skills/ingest-corpus/SKILL.md +29 -0
  17. package/runtime/codex/.codex/skills/ingest-notion/SKILL.md +29 -0
  18. package/runtime/codex/.codex/skills/ingest-user-interview/SKILL.md +1 -1
  19. package/runtime/codex/.codex/skills/issue/SKILL.md +1 -1
  20. package/runtime/codex/.codex/skills/me/SKILL.md +1 -1
  21. package/runtime/codex/.codex/skills/meeting/SKILL.md +1 -1
  22. package/runtime/codex/.codex/skills/note/SKILL.md +1 -1
  23. package/runtime/codex/.codex/skills/notion-connect/SKILL.md +29 -0
  24. package/runtime/codex/.codex/skills/onboarding/SKILL.md +1 -1
  25. package/runtime/codex/.codex/skills/pr/SKILL.md +1 -1
  26. package/runtime/codex/.codex/skills/pull/SKILL.md +1 -1
  27. package/runtime/codex/.codex/skills/push/SKILL.md +1 -1
  28. package/runtime/codex/.codex/skills/reflect/SKILL.md +1 -1
  29. package/runtime/codex/.codex/skills/review-pr/SKILL.md +1 -1
  30. package/runtime/codex/.codex/skills/save/SKILL.md +3 -1
  31. package/runtime/codex/.codex/skills/slack-connect/SKILL.md +1 -1
  32. package/runtime/codex/.codex/skills/summon/SKILL.md +1 -1
  33. package/runtime/codex/.codex/skills/sync-repos/SKILL.md +1 -1
  34. package/runtime/codex/.codex/skills/teams-connect/SKILL.md +29 -0
  35. package/runtime/codex/.codex/skills/telegram-connect/SKILL.md +1 -1
  36. package/runtime/codex/.codex/skills/telemetry/SKILL.md +1 -1
  37. package/runtime/codex/.codex/skills/test/SKILL.md +1 -1
  38. package/runtime/codex/.codex/skills/tutorial/SKILL.md +1 -1
  39. package/runtime/codex/.codex/skills/update/SKILL.md +1 -1
  40. package/runtime/codex/.codex/spec-manifest.json +5 -5
  41. package/runtime/codex/AGENTS.md +41 -35
  42. package/runtime/codex/bin/activity-data.sh +4 -8
  43. package/runtime/codex/bin/agent.sh +17 -5
  44. package/runtime/codex/bin/attendant.sh +13 -0
  45. package/runtime/codex/bin/autosave.sh +27 -1
  46. package/runtime/codex/bin/codex-render-spec.mjs +33 -32
  47. package/runtime/codex/bin/codex-session-start.sh +3 -1
  48. package/runtime/codex/bin/codex-sync-skills.sh +6 -1
  49. package/runtime/codex/bin/graph-batch.sh +25 -6
  50. package/runtime/codex/bin/graph-op.sh +5 -4
  51. package/runtime/codex/bin/graph.sh +31 -5
  52. package/runtime/codex/bin/handoff-pr-backfill.sh +1 -1
  53. package/runtime/codex/bin/handoff-run.sh +8 -3
  54. package/runtime/codex/bin/handoff-save-egregore.sh +19 -7
  55. package/runtime/codex/bin/ingest.py +341 -10
  56. package/runtime/codex/bin/lib/context.sh +26 -1
  57. package/runtime/codex/bin/lib/git-message.sh +37 -0
  58. package/runtime/codex/bin/lib/git-sync.sh +10 -2
  59. package/runtime/codex/bin/lib/greeting.sh +4 -1
  60. package/runtime/codex/bin/lib/worktree-links.sh +25 -0
  61. package/runtime/codex/bin/session-autosave.sh +7 -1
  62. package/runtime/codex/bin/settings.sh +1 -1
  63. package/runtime/codex/manifest.json +10 -1
  64. package/runtime/pi/.codex/config.toml +3 -0
  65. package/runtime/pi/.codex/skills/archive/SKILL.md +1 -1
  66. package/runtime/pi/.codex/skills/branch/SKILL.md +1 -1
  67. package/runtime/pi/.codex/skills/checkup/SKILL.md +1 -1
  68. package/runtime/pi/.codex/skills/commit/SKILL.md +1 -1
  69. package/runtime/pi/.codex/skills/contribute/SKILL.md +1 -1
  70. package/runtime/pi/.codex/skills/delete-user/SKILL.md +1 -1
  71. package/runtime/pi/.codex/skills/ingest/SKILL.md +1 -1
  72. package/runtime/pi/.codex/skills/ingest-corpus/SKILL.md +29 -0
  73. package/runtime/pi/.codex/skills/ingest-notion/SKILL.md +29 -0
  74. package/runtime/pi/.codex/skills/ingest-user-interview/SKILL.md +1 -1
  75. package/runtime/pi/.codex/skills/issue/SKILL.md +1 -1
  76. package/runtime/pi/.codex/skills/me/SKILL.md +1 -1
  77. package/runtime/pi/.codex/skills/meeting/SKILL.md +1 -1
  78. package/runtime/pi/.codex/skills/note/SKILL.md +1 -1
  79. package/runtime/pi/.codex/skills/notion-connect/SKILL.md +29 -0
  80. package/runtime/pi/.codex/skills/onboarding/SKILL.md +1 -1
  81. package/runtime/pi/.codex/skills/pr/SKILL.md +1 -1
  82. package/runtime/pi/.codex/skills/pull/SKILL.md +1 -1
  83. package/runtime/pi/.codex/skills/push/SKILL.md +1 -1
  84. package/runtime/pi/.codex/skills/reflect/SKILL.md +1 -1
  85. package/runtime/pi/.codex/skills/review-pr/SKILL.md +1 -1
  86. package/runtime/pi/.codex/skills/save/SKILL.md +3 -1
  87. package/runtime/pi/.codex/skills/slack-connect/SKILL.md +1 -1
  88. package/runtime/pi/.codex/skills/summon/SKILL.md +1 -1
  89. package/runtime/pi/.codex/skills/sync-repos/SKILL.md +1 -1
  90. package/runtime/pi/.codex/skills/teams-connect/SKILL.md +29 -0
  91. package/runtime/pi/.codex/skills/telegram-connect/SKILL.md +1 -1
  92. package/runtime/pi/.codex/skills/telemetry/SKILL.md +1 -1
  93. package/runtime/pi/.codex/skills/test/SKILL.md +1 -1
  94. package/runtime/pi/.codex/skills/tutorial/SKILL.md +1 -1
  95. package/runtime/pi/.codex/skills/update/SKILL.md +1 -1
  96. package/runtime/pi/.codex/spec-manifest.json +5 -5
  97. package/runtime/pi/.pi/APPEND_SYSTEM.md +57 -33
  98. package/runtime/pi/.pi/extensions/egregore.ts +17 -6
  99. package/runtime/pi/.pi/spec-manifest.json +2 -2
  100. package/runtime/pi/AGENTS.md +41 -35
  101. package/runtime/pi/bin/activity-data.sh +4 -8
  102. package/runtime/pi/bin/agent.sh +17 -5
  103. package/runtime/pi/bin/attendant.sh +13 -0
  104. package/runtime/pi/bin/autosave.sh +27 -1
  105. package/runtime/pi/bin/codex-render-spec.mjs +33 -32
  106. package/runtime/pi/bin/codex-session-start.sh +3 -1
  107. package/runtime/pi/bin/codex-sync-skills.sh +6 -1
  108. package/runtime/pi/bin/graph-batch.sh +25 -6
  109. package/runtime/pi/bin/graph-op.sh +5 -4
  110. package/runtime/pi/bin/graph.sh +31 -5
  111. package/runtime/pi/bin/handoff-pr-backfill.sh +1 -1
  112. package/runtime/pi/bin/handoff-run.sh +8 -3
  113. package/runtime/pi/bin/handoff-save-egregore.sh +19 -7
  114. package/runtime/pi/bin/ingest.py +341 -10
  115. package/runtime/pi/bin/lib/context.sh +26 -1
  116. package/runtime/pi/bin/lib/git-message.sh +37 -0
  117. package/runtime/pi/bin/lib/git-sync.sh +10 -2
  118. package/runtime/pi/bin/lib/greeting.sh +4 -1
  119. package/runtime/pi/bin/lib/worktree-links.sh +25 -0
  120. package/runtime/pi/bin/pi-branch-policy.mjs +138 -1
  121. package/runtime/pi/bin/pi-product-workflows.mjs +35 -7
  122. package/runtime/pi/bin/pi-render-spec.mjs +52 -26
  123. package/runtime/pi/bin/session-autosave.sh +7 -1
  124. package/runtime/pi/bin/settings.sh +1 -1
  125. package/runtime/pi/manifest.json +10 -1
  126. package/runtime/prime/.claude/context/notification-consent.md +66 -0
  127. package/runtime/prime/.codex/config.toml +20 -0
  128. package/runtime/prime/.codex/hooks/branch-guard.js +461 -0
  129. package/runtime/prime/.codex/hooks/search-hint.js +67 -0
  130. package/runtime/prime/.codex/hooks.json +30 -0
  131. package/runtime/prime/.codex/skills/activity/SKILL.md +82 -0
  132. package/runtime/prime/.codex/skills/announce/SKILL.md +67 -0
  133. package/runtime/prime/.codex/skills/archive/SKILL.md +45 -0
  134. package/runtime/prime/.codex/skills/branch/SKILL.md +29 -0
  135. package/runtime/prime/.codex/skills/checkup/SKILL.md +45 -0
  136. package/runtime/prime/.codex/skills/commit/SKILL.md +29 -0
  137. package/runtime/prime/.codex/skills/contribute/SKILL.md +29 -0
  138. package/runtime/prime/.codex/skills/create-skill/SKILL.md +29 -0
  139. package/runtime/prime/.codex/skills/dark-mode/SKILL.md +29 -0
  140. package/runtime/prime/.codex/skills/dashboard/SKILL.md +59 -0
  141. package/runtime/prime/.codex/skills/deep-reflect/SKILL.md +109 -0
  142. package/runtime/prime/.codex/skills/delete-user/SKILL.md +29 -0
  143. package/runtime/prime/.codex/skills/emissary/SKILL.md +45 -0
  144. package/runtime/prime/.codex/skills/handoff/SKILL.md +166 -0
  145. package/runtime/prime/.codex/skills/harvest/QUESTION_PALETTE.md +76 -0
  146. package/runtime/prime/.codex/skills/harvest/SKILL.md +131 -0
  147. package/runtime/prime/.codex/skills/ingest/SKILL.md +29 -0
  148. package/runtime/prime/.codex/skills/ingest-corpus/SKILL.md +29 -0
  149. package/runtime/prime/.codex/skills/ingest-notion/SKILL.md +29 -0
  150. package/runtime/prime/.codex/skills/ingest-user-interview/SKILL.md +45 -0
  151. package/runtime/prime/.codex/skills/invite/SKILL.md +44 -0
  152. package/runtime/prime/.codex/skills/issue/SKILL.md +45 -0
  153. package/runtime/prime/.codex/skills/me/SKILL.md +29 -0
  154. package/runtime/prime/.codex/skills/meeting/SKILL.md +45 -0
  155. package/runtime/prime/.codex/skills/note/SKILL.md +29 -0
  156. package/runtime/prime/.codex/skills/notion-connect/SKILL.md +29 -0
  157. package/runtime/prime/.codex/skills/onboarding/SKILL.md +45 -0
  158. package/runtime/prime/.codex/skills/pr/SKILL.md +29 -0
  159. package/runtime/prime/.codex/skills/pull/SKILL.md +29 -0
  160. package/runtime/prime/.codex/skills/push/SKILL.md +29 -0
  161. package/runtime/prime/.codex/skills/quest/SKILL.md +80 -0
  162. package/runtime/prime/.codex/skills/reflect/SKILL.md +45 -0
  163. package/runtime/prime/.codex/skills/review-pr/SKILL.md +45 -0
  164. package/runtime/prime/.codex/skills/save/SKILL.md +127 -0
  165. package/runtime/prime/.codex/skills/slack-connect/SKILL.md +29 -0
  166. package/runtime/prime/.codex/skills/summon/SKILL.md +45 -0
  167. package/runtime/prime/.codex/skills/sync-repos/SKILL.md +29 -0
  168. package/runtime/prime/.codex/skills/teams-connect/SKILL.md +29 -0
  169. package/runtime/prime/.codex/skills/telegram-connect/SKILL.md +29 -0
  170. package/runtime/prime/.codex/skills/telemetry/SKILL.md +29 -0
  171. package/runtime/prime/.codex/skills/test/SKILL.md +45 -0
  172. package/runtime/prime/.codex/skills/the-spiral/SKILL.md +84 -0
  173. package/runtime/prime/.codex/skills/tui-design/SKILL.md +45 -0
  174. package/runtime/prime/.codex/skills/tutorial/SKILL.md +45 -0
  175. package/runtime/prime/.codex/skills/update/SKILL.md +29 -0
  176. package/runtime/prime/.codex/skills/view/SKILL.md +156 -0
  177. package/runtime/prime/.codex/skills/view/agents/openai.yaml +4 -0
  178. package/runtime/prime/.codex/skills/view/assets/compose-scaffold.html +221 -0
  179. package/runtime/prime/.codex/skills/visual-explain/SKILL.md +45 -0
  180. package/runtime/prime/.codex/skills/wrap/SKILL.md +58 -0
  181. package/runtime/prime/.codex/spec-manifest.json +132 -0
  182. package/runtime/prime/.prime/agent/APPEND_SYSTEM.md +416 -0
  183. package/runtime/prime/.prime/agent/extensions/egregore.ts +460 -0
  184. package/runtime/prime/.prime/agent/settings.json +4 -0
  185. package/runtime/prime/.prime/agent/skills/egregore/SKILL.md +34 -0
  186. package/runtime/prime/.prime/agent/skills/egregore/pyproject.toml +13 -0
  187. package/runtime/prime/.prime/agent/skills/egregore/src/egregore/__init__.py +156 -0
  188. package/runtime/prime/.prime/agent/spec-manifest.json +12 -0
  189. package/runtime/prime/AGENTS.md +488 -0
  190. package/runtime/prime/bin/activity-data.sh +238 -0
  191. package/runtime/prime/bin/agent.sh +787 -0
  192. package/runtime/prime/bin/attendant.sh +707 -0
  193. package/runtime/prime/bin/autosave.sh +112 -0
  194. package/runtime/prime/bin/capture-reconcile.sh +69 -0
  195. package/runtime/prime/bin/capture-run.sh +341 -0
  196. package/runtime/prime/bin/codex-install-skills.sh +78 -0
  197. package/runtime/prime/bin/codex-render-spec.mjs +435 -0
  198. package/runtime/prime/bin/codex-session-start.sh +265 -0
  199. package/runtime/prime/bin/codex-skill-render.mjs +347 -0
  200. package/runtime/prime/bin/codex-sync-skills.sh +237 -0
  201. package/runtime/prime/bin/connect-refresh.sh +33 -0
  202. package/runtime/prime/bin/dashboard-data.sh +178 -0
  203. package/runtime/prime/bin/graph-batch.sh +79 -0
  204. package/runtime/prime/bin/graph-op.sh +1102 -0
  205. package/runtime/prime/bin/graph-wal.sh +229 -0
  206. package/runtime/prime/bin/graph.sh +223 -0
  207. package/runtime/prime/bin/handoff-pr-backfill.sh +86 -0
  208. package/runtime/prime/bin/handoff-run.sh +676 -0
  209. package/runtime/prime/bin/handoff-save-egregore.sh +224 -0
  210. package/runtime/prime/bin/index-handoff.sh +322 -0
  211. package/runtime/prime/bin/ingest-graph.sh +80 -0
  212. package/runtime/prime/bin/ingest-surface.html +495 -0
  213. package/runtime/prime/bin/ingest.py +1011 -0
  214. package/runtime/prime/bin/ingest.sh +279 -0
  215. package/runtime/prime/bin/ingest_graph.py +856 -0
  216. package/runtime/prime/bin/ingest_surface.py +544 -0
  217. package/runtime/prime/bin/lib/artifact-id.sh +46 -0
  218. package/runtime/prime/bin/lib/config.sh +116 -0
  219. package/runtime/prime/bin/lib/context.sh +621 -0
  220. package/runtime/prime/bin/lib/dashboard-artifact.sh +242 -0
  221. package/runtime/prime/bin/lib/ensure-develop.sh +183 -0
  222. package/runtime/prime/bin/lib/git-message.sh +37 -0
  223. package/runtime/prime/bin/lib/git-sync.sh +414 -0
  224. package/runtime/prime/bin/lib/greeting.sh +519 -0
  225. package/runtime/prime/bin/lib/hash.sh +13 -0
  226. package/runtime/prime/bin/lib/identity.sh +213 -0
  227. package/runtime/prime/bin/lib/metrics.sh +374 -0
  228. package/runtime/prime/bin/lib/noncode.sh +31 -0
  229. package/runtime/prime/bin/lib/permissions.sh +106 -0
  230. package/runtime/prime/bin/lib/time.sh +56 -0
  231. package/runtime/prime/bin/lib/worktree-links.sh +79 -0
  232. package/runtime/prime/bin/notify.sh +636 -0
  233. package/runtime/prime/bin/person.py +630 -0
  234. package/runtime/prime/bin/person.sh +448 -0
  235. package/runtime/prime/bin/pi-branch-policy.mjs +312 -0
  236. package/runtime/prime/bin/pi-product-workflows.mjs +394 -0
  237. package/runtime/prime/bin/prime-render-spec.mjs +147 -0
  238. package/runtime/prime/bin/prime-session-start.sh +24 -0
  239. package/runtime/prime/bin/publish-artifact.sh +271 -0
  240. package/runtime/prime/bin/publish-references.sh +144 -0
  241. package/runtime/prime/bin/repo-state.sh +96 -0
  242. package/runtime/prime/bin/search.sh +240 -0
  243. package/runtime/prime/bin/session-autosave.sh +215 -0
  244. package/runtime/prime/bin/session-log.sh +199 -0
  245. package/runtime/prime/bin/settings.sh +304 -0
  246. package/runtime/prime/bin/telemetry.sh +391 -0
  247. package/runtime/prime/bin/worktree-create.sh +128 -0
  248. package/runtime/prime/bin/worktree-remove.sh +50 -0
  249. package/runtime/prime/bin/worktree.sh +198 -0
  250. package/runtime/prime/manifest.json +181 -0
package/lib/setup.js CHANGED
@@ -17,6 +17,11 @@ const {
17
17
  installPiRuntime,
18
18
  reportPiRuntimeSummary,
19
19
  } = require("./pi-runtime");
20
+ const {
21
+ hasPrimeRuntimeSupport,
22
+ installPrimeRuntime,
23
+ reportPrimeRuntimeSummary,
24
+ } = require("./prime-runtime");
20
25
  const {
21
26
  installConnectRuntime,
22
27
  reportConnectRuntimeSummary,
@@ -524,6 +529,9 @@ async function install(data, ui, targetDir, opts = {}) {
524
529
  } else if (preferredRuntime === "pi") {
525
530
  const piRuntime = installPiRuntime(egregoreDir);
526
531
  reportPiRuntimeSummary(piRuntime, ui);
532
+ } else if (preferredRuntime === "prime") {
533
+ const primeRuntime = installPrimeRuntime(egregoreDir);
534
+ reportPrimeRuntimeSummary(primeRuntime, ui);
527
535
  }
528
536
 
529
537
  // Connect is an authenticated additive overlay on the exact OSS runtime.
@@ -687,8 +695,9 @@ function ensureConnectedConfig(repoDir, data, ui) {
687
695
  }
688
696
 
689
697
  const required = ["org_name", "github_org", "memory_repo", "api_url", "slug"];
690
- const missing = required.filter((key) => !config[key]);
691
- if (missing.length) {
698
+ let missing = required.filter((key) => !config[key]);
699
+ const missingIdentity = missing.filter((key) => key !== "api_url");
700
+ if (missingIdentity.length) {
692
701
  throw new Error(
693
702
  `Connected setup is incomplete: egregore.json is missing ${missing.join(", ")}. Retry setup from egregore.xyz/setup.`
694
703
  );
@@ -704,8 +713,26 @@ function ensureConnectedConfig(repoDir, data, ui) {
704
713
  );
705
714
  }
706
715
 
716
+ let changed = false;
717
+ const tokenApiUrl = data.api_url ? String(data.api_url).replace(/\/$/, "") : "";
718
+ if (tokenApiUrl && config.api_url !== tokenApiUrl) {
719
+ config.api_url = tokenApiUrl;
720
+ changed = true;
721
+ if (ui && typeof ui.warn === "function") {
722
+ ui.warn("Reconciled Connected configuration from the authenticated setup token");
723
+ }
724
+ }
725
+ missing = required.filter((key) => !config[key]);
726
+ if (missing.length) {
727
+ throw new Error(
728
+ `Connected setup is incomplete: egregore.json is missing ${missing.join(", ")}. Retry setup from egregore.xyz/setup.`
729
+ );
730
+ }
707
731
  if (config.mode !== "connected") {
708
732
  config.mode = "connected";
733
+ changed = true;
734
+ }
735
+ if (changed) {
709
736
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
710
737
  }
711
738
  return config;
@@ -844,6 +871,7 @@ function normalizeRuntime(runtime) {
844
871
  if (raw === "claude" || raw === "claude-code" || raw === "claude_code") return "claude-code";
845
872
  if (raw === "codex" || raw === "openai-codex" || raw === "openai_codex") return "codex";
846
873
  if (raw === "pi" || raw === "pi-coding-agent" || raw === "pi_coding_agent") return "pi";
874
+ if (raw === "prime" || raw === "prime-agent" || raw === "prime_agent") return "prime";
847
875
  throw new Error(`Unsupported Egregore runtime: ${runtime}`);
848
876
  }
849
877
 
@@ -851,6 +879,7 @@ function runtimeDisplay(runtime) {
851
879
  const normalized = normalizeRuntime(runtime);
852
880
  if (normalized === "codex") return "Codex";
853
881
  if (normalized === "pi") return "Pi";
882
+ if (normalized === "prime") return "Prime Agent";
854
883
  return "Claude Code";
855
884
  }
856
885
 
@@ -858,6 +887,7 @@ function runtimeBinary(runtime) {
858
887
  const normalized = normalizeRuntime(runtime);
859
888
  if (normalized === "codex") return "codex";
860
889
  if (normalized === "pi") return "pi";
890
+ if (normalized === "prime") return "prime-agent";
861
891
  return "claude";
862
892
  }
863
893
 
@@ -867,6 +897,8 @@ function assistantInstallCommand(runtime) {
867
897
  const normalized = normalizeRuntime(runtime);
868
898
  if (normalized === "codex") return "npm install -g @openai/codex";
869
899
  if (normalized === "pi") return "npm install -g --ignore-scripts @earendil-works/pi-coding-agent";
900
+ // Prime Agent is not on the public npm registry — install via its own script.
901
+ if (normalized === "prime") return "curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh";
870
902
  return "npm install -g @anthropic-ai/claude-code";
871
903
  }
872
904
 
@@ -879,6 +911,15 @@ function piTrustArgs() {
879
911
  }
880
912
  }
881
913
 
914
+ function primeTrustArgs() {
915
+ try {
916
+ const help = spawnSync("prime-agent", ["--help"], { encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] });
917
+ return `${help.stdout || ""}\n${help.stderr || ""}`.includes("--approve") ? ["--approve"] : [];
918
+ } catch {
919
+ return [];
920
+ }
921
+ }
922
+
882
923
  function claudeLaunchArgs(egregoreDir) {
883
924
  const args = ["start"];
884
925
  const memoryLink = path.join(egregoreDir, "memory");
@@ -903,6 +944,7 @@ function runtimeLaunchArgs(runtime, egregoreDir) {
903
944
  ];
904
945
  }
905
946
  if (normalizeRuntime(runtime) === "pi") return piTrustArgs();
947
+ if (normalizeRuntime(runtime) === "prime") return primeTrustArgs();
906
948
  return claudeLaunchArgs(egregoreDir);
907
949
  }
908
950
 
@@ -1000,6 +1042,16 @@ function piSupportMessage(egregoreDir) {
1000
1042
  ].join("\n");
1001
1043
  }
1002
1044
 
1045
+ function primeSupportMessage(egregoreDir) {
1046
+ return [
1047
+ "Prime Agent runtime support is missing from this Egregore checkout.",
1048
+ ` path: ${egregoreDir}`,
1049
+ "",
1050
+ "Run npx -y create-egregore@latest to install the packaged Prime Agent runtime, then rerun egregore.",
1051
+ "Prime Agent loads Egregore through project-local .prime/agent resources and the shared portable skill corpus.",
1052
+ ].join("\n");
1053
+ }
1054
+
1003
1055
  function installCodexSkills(egregoreDir) {
1004
1056
  const script = path.join(egregoreDir, "bin", "codex-install-skills.sh");
1005
1057
  if (!fs.existsSync(script)) return false;
@@ -1093,10 +1145,10 @@ async function launchOrInstruct(egregoreDir, alias, ui, ctx = {}) {
1093
1145
  }
1094
1146
 
1095
1147
  if (!commandExists(binary)) {
1096
- const available = ["claude-code", "codex", "pi"].filter((candidate) => commandExists(runtimeBinary(candidate)));
1148
+ const available = ["claude-code", "codex", "pi", "prime"].filter((candidate) => commandExists(runtimeBinary(candidate)));
1097
1149
  // The user already chose `runtime` at the picker — lead with installing
1098
1150
  // THAT one ("install Codex first"), then offer the other as an alternative.
1099
- const other = available[0] || ["claude-code", "codex", "pi"].find((candidate) => candidate !== runtime);
1151
+ const other = available[0] || ["claude-code", "codex", "pi", "prime"].find((candidate) => candidate !== runtime);
1100
1152
  if (available.length === 0) {
1101
1153
  ui.warn(`Almost there — install ${display} to start sessions.`);
1102
1154
  ui.info(` Install ${display} first:`);
@@ -1115,7 +1167,7 @@ async function launchOrInstruct(egregoreDir, alias, ui, ctx = {}) {
1115
1167
  return;
1116
1168
  }
1117
1169
 
1118
- const quitCommand = runtime === "pi" ? "/quit" : "/exit";
1170
+ const quitCommand = runtime === "pi" || runtime === "prime" ? "/quit" : "/exit";
1119
1171
  ui.info(`Starting Egregore in ${ui.bold(display)} now — press ${ui.bold("Ctrl+D")} (or ${quitCommand}) to return to your shell.`);
1120
1172
  ui.info(`Next time, ${launcherNextStep(ui, aliasName)}`);
1121
1173
  console.log("");
@@ -1146,6 +1198,15 @@ async function launchOrInstruct(egregoreDir, alias, ui, ctx = {}) {
1146
1198
  console.log("");
1147
1199
  return;
1148
1200
  }
1201
+ } else if (runtime === "prime") {
1202
+ const primeRuntime = installPrimeRuntime(egregoreDir);
1203
+ reportPrimeRuntimeSummary(primeRuntime, ui);
1204
+ if (!hasPrimeRuntimeSupport(egregoreDir)) {
1205
+ ui.warn(primeSupportMessage(egregoreDir));
1206
+ ui.info(`Run ${ui.bold(aliasName)} after updating the checkout.`);
1207
+ console.log("");
1208
+ return;
1209
+ }
1149
1210
  }
1150
1211
 
1151
1212
  const result = spawnSync(binary, runtimeLaunchArgs(runtime, egregoreDir), {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-egregore",
3
- "version": "0.19.33",
3
+ "version": "0.20.1",
4
4
  "description": "Set up Egregore for your team in one command \u2014 installs the egregore launcher and your choice of Claude Code, Codex, or Pi.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -10,9 +10,10 @@
10
10
  "node": ">=18"
11
11
  },
12
12
  "scripts": {
13
- "build:runtime": "node ../../bin/capability-distribution.mjs generate-skill-view --root ../.. && node scripts/build-runtime-bundle.mjs && node scripts/build-pi-runtime-bundle.mjs && node ../../api/scripts/build-connect-runtime-pack.mjs",
13
+ "build:runtime": "node ../../bin/capability-distribution.mjs generate-skill-view --root ../.. && node scripts/build-runtime-bundle.mjs && node scripts/build-pi-runtime-bundle.mjs && node scripts/build-prime-runtime-bundle.mjs && node ../../api/scripts/build-connect-runtime-pack.mjs",
14
14
  "build:pi-runtime": "node scripts/build-pi-runtime-bundle.mjs",
15
- "test": "node ../../bin/capability-distribution.mjs validate --root ../.. && node scripts/build-runtime-bundle.mjs --check && node scripts/build-pi-runtime-bundle.mjs --check && node ../../api/scripts/build-connect-runtime-pack.mjs --check && node --test test/capability-distribution.test.js test/connect-runtime.test.js test/context.test.js test/path-lookup.test.js test/nixos-portability.test.js test/parse-join-target.test.js test/skip-repos.test.js test/install-origin-guard.test.js test/onboarding-shortcircuit.test.js test/welcome-screen.test.js test/runtime-selection.test.js test/command-generation.test.js test/auth-gh.test.js test/gauntlet-fixes.test.js test/codex-runtime.test.js test/pi-runtime.test.js test/pi-product-workflows.test.js test/installer-runtime-source.test.js test/scroll-repro.test.js test/launcher-refocus-redraw.test.js test/multiselect-remote-search.test.js test/back-navigation.test.js test/manifest-form.test.js test/launcher-delete.test.js test/launcher-connect.test.js test/installer-connect-choice.test.js test/launcher-connected-status.test.js test/launcher-permissions.test.js test/launcher-update.test.js test/connected-config.test.js",
15
+ "build:prime-runtime": "node scripts/build-prime-runtime-bundle.mjs",
16
+ "test": "node ../../bin/capability-distribution.mjs validate --root ../.. && node scripts/build-runtime-bundle.mjs --check && node scripts/build-pi-runtime-bundle.mjs --check && node scripts/build-prime-runtime-bundle.mjs --check && node ../../bin/prime-render-spec.mjs --check && node ../../bin/pi-render-spec.mjs --check && node ../../api/scripts/build-connect-runtime-pack.mjs --check && node --test test/capability-distribution.test.js test/connect-runtime.test.js test/context.test.js test/path-lookup.test.js test/nixos-portability.test.js test/parse-join-target.test.js test/skip-repos.test.js test/install-origin-guard.test.js test/onboarding-shortcircuit.test.js test/welcome-screen.test.js test/runtime-selection.test.js test/command-generation.test.js test/auth-gh.test.js test/gauntlet-fixes.test.js test/codex-runtime.test.js test/pi-runtime.test.js test/prime-runtime.test.js test/prime-branch-policy.test.js test/prime-bridge-skill.test.js test/prime-session-smoke.test.js test/pi-product-workflows.test.js test/installer-runtime-source.test.js test/scroll-repro.test.js test/launcher-refocus-redraw.test.js test/multiselect-remote-search.test.js test/back-navigation.test.js test/manifest-form.test.js test/launcher-delete.test.js test/launcher-connect.test.js test/installer-connect-choice.test.js test/launcher-connected-status.test.js test/launcher-permissions.test.js test/launcher-update.test.js test/connected-config.test.js",
16
17
  "test:e2e": "node --test test/e2e-local.test.js",
17
18
  "test:all": "node scripts/build-runtime-bundle.mjs --check && node scripts/build-pi-runtime-bundle.mjs --check && node --test test/"
18
19
  },
@@ -1,6 +1,9 @@
1
1
  [features]
2
2
  hooks = true
3
3
 
4
+ [mcp_servers.notion]
5
+ url = "https://mcp.notion.com/mcp"
6
+
4
7
  [tui]
5
8
  # Codex currently accepts built-in footer item IDs only. Egregore's dynamic
6
9
  # ◆ CONNECTED / ◇ LOCAL identity is rendered by bin/codex-session-start.sh.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: archive
3
- description: 'Fallback Codex adapter for the Egregore archive workflow.'
3
+ description: 'Capture an effective prompting technique or steering pattern as reusable knowledge. Use for /archive, or when a prompt worked especially well and is worth reusing — not insight about the work itself (/reflect).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: branch
3
- description: 'Fallback Codex adapter for the Egregore branch workflow.'
3
+ description: 'Create a working branch from what you are about to work on. Use for /branch, or any request to start a new branch before making changes.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: checkup
3
- description: 'Fallback Codex adapter for the Egregore checkup workflow.'
3
+ description: 'Run diagnostics on your Egregore environment and render a health report, auto-fixing what it can. Use for /checkup, a health check, or when something is broken and the root cause is unclear.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: commit
3
- description: 'Fallback Codex adapter for the Egregore commit workflow.'
3
+ description: 'Stage changes and create a commit with a properly formatted message. Use for /commit, or saving work locally — not sharing it (/push) or opening a pull request (/pr).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: contribute
3
- description: 'Fallback Codex adapter for the Egregore contribute workflow.'
3
+ description: 'Contribute an improvement back to the upstream Egregore framework as a cross-fork pull request. Use for /contribute, or submitting a framework fix upstream — not saving org work (/save) or filing a bug (/issue).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: delete-user
3
- description: 'Fallback Codex adapter for the Egregore delete-user workflow.'
3
+ description: 'Remove a member from this Egregore, revoking access across GitHub, Supabase, and Neo4j. Use for /delete-user, removing or kicking someone — not inviting (/invite) or viewing members (/dashboard).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ingest
3
- description: 'Fallback Codex adapter for the Egregore ingest workflow.'
3
+ description: 'Unified ingestion entry point — brings files, meetings, Google Workspace, Notion, or bulk corpora into intake, then promotes useful material into curated memory. Say ''ingest'', ''bring this into Egregore''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: ingest-corpus
3
+ description: 'Turn a large folder of documents into a Connect-only knowledge base that answers questions with sources. Say ''build a knowledge base''. Not a few files (/ingest) or a meeting/Notion/Google source.'
4
+ ---
5
+
6
+ <!-- generated-by: bin/codex-sync-skills.sh -->
7
+
8
+ # Egregore ingest-corpus Adapter
9
+
10
+ This is fallback coverage for a long-tail Egregore workflow that has not been
11
+ ported to a hand-written Codex-native skill yet.
12
+
13
+ Use the project shell and filesystem directly. Do not invoke Claude Code
14
+ commands. Translate interactive choices to structured Codex question tooling
15
+ when it is available; otherwise render compact numbered choices with an
16
+ `Other:` option and wait for the user.
17
+
18
+ 1. Read `.claude/skills/ingest-corpus/SKILL.md` for the workflow details.
19
+ 2. Run the referenced `bin/` scripts directly from Codex.
20
+ 3. Treat graph and publish steps as best-effort unless that workflow explicitly
21
+ says they are required.
22
+ 4. For every external notification, follow
23
+ `.claude/context/notification-consent.md`: plan without sending, then show
24
+ a separate exact Send / Edit / Cancel checkpoint. Never infer notification
25
+ consent from the workflow request or a batch approval.
26
+ 5. Keep local-mode behavior filesystem-first and avoid graph or notification
27
+ calls when `egregore.json` declares `"mode": "local"`.
28
+ 6. Never call the deprecated `egregore-handoff` CLI for Egregore project
29
+ handoffs.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: ingest-notion
3
+ description: 'Bring selected Notion pages into shared Egregore memory via Notion''s official MCP. Routed from /ingest when the source is Notion — say ''/ingest notion''. Selected pages only, not a full-workspace sync.'
4
+ ---
5
+
6
+ <!-- generated-by: bin/codex-sync-skills.sh -->
7
+
8
+ # Egregore ingest-notion Adapter
9
+
10
+ This is fallback coverage for a long-tail Egregore workflow that has not been
11
+ ported to a hand-written Codex-native skill yet.
12
+
13
+ Use the project shell and filesystem directly. Do not invoke Claude Code
14
+ commands. Translate interactive choices to structured Codex question tooling
15
+ when it is available; otherwise render compact numbered choices with an
16
+ `Other:` option and wait for the user.
17
+
18
+ 1. Read `.claude/skills/ingest-notion/SKILL.md` for the workflow details.
19
+ 2. Run the referenced `bin/` scripts directly from Codex.
20
+ 3. Treat graph and publish steps as best-effort unless that workflow explicitly
21
+ says they are required.
22
+ 4. For every external notification, follow
23
+ `.claude/context/notification-consent.md`: plan without sending, then show
24
+ a separate exact Send / Edit / Cancel checkpoint. Never infer notification
25
+ consent from the workflow request or a batch approval.
26
+ 5. Keep local-mode behavior filesystem-first and avoid graph or notification
27
+ calls when `egregore.json` declares `"mode": "local"`.
28
+ 6. Never call the deprecated `egregore-handoff` CLI for Egregore project
29
+ handoffs.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ingest-user-interview
3
- description: 'Fallback Codex adapter for the Egregore ingest-user-interview workflow.'
3
+ description: 'Analyze user interview transcripts (Granola, pasted text, or a file) through a 3-analyst-agent plus Opus-synthesis pipeline. Say ''process the interview'', ''onboarding interview'', ''research call''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: issue
3
- description: 'Fallback Codex adapter for the Egregore issue workflow.'
3
+ description: 'Report an issue — captures context and routes it to the right place. Say ''this is broken'', ''bug in'', ''file an issue'', ''report a problem''. Not a personal task (/todo) or team exploration (/quest).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: me
3
- description: 'Fallback Codex adapter for the Egregore me workflow.'
3
+ description: 'View or change your member identity — display name, email — shared across Claude Code, Codex, and Pi. Say ''who am I'', ''call me <name>'', ''change my name to X'', or run ''/me''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: meeting
3
- description: 'Fallback Codex adapter for the Egregore meeting workflow.'
3
+ description: 'Use for /meeting, /meeting sync, /meeting backfill, or a search term — adaptively analyzes a Granola meeting into decisions, findings, actions, and continuity in shared memory.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: note
3
- description: 'Fallback Codex adapter for the Egregore note workflow.'
3
+ description: 'Use when the user says ''jot this down'', ''note to self'', ''just thinking out loud'', or ''park this thought'' — saves a private personal note, never shared or pushed until explicitly promoted.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: notion-connect
3
+ description: 'Use for ''connect notion'', ''notion status'', or ''disconnect notion'' — connects the current agent runtime directly to Notion''s official hosted MCP for search and fetch, or checks/revokes that connection.'
4
+ ---
5
+
6
+ <!-- generated-by: bin/codex-sync-skills.sh -->
7
+
8
+ # Egregore notion-connect Adapter
9
+
10
+ This is fallback coverage for a long-tail Egregore workflow that has not been
11
+ ported to a hand-written Codex-native skill yet.
12
+
13
+ Use the project shell and filesystem directly. Do not invoke Claude Code
14
+ commands. Translate interactive choices to structured Codex question tooling
15
+ when it is available; otherwise render compact numbered choices with an
16
+ `Other:` option and wait for the user.
17
+
18
+ 1. Read `.claude/skills/notion-connect/SKILL.md` for the workflow details.
19
+ 2. Run the referenced `bin/` scripts directly from Codex.
20
+ 3. Treat graph and publish steps as best-effort unless that workflow explicitly
21
+ says they are required.
22
+ 4. For every external notification, follow
23
+ `.claude/context/notification-consent.md`: plan without sending, then show
24
+ a separate exact Send / Edit / Cancel checkpoint. Never infer notification
25
+ consent from the workflow request or a batch approval.
26
+ 5. Keep local-mode behavior filesystem-first and avoid graph or notification
27
+ calls when `egregore.json` declares `"mode": "local"`.
28
+ 6. Never call the deprecated `egregore-handoff` CLI for Egregore project
29
+ handoffs.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: onboarding
3
- description: 'Fallback Codex adapter for the Egregore onboarding workflow.'
3
+ description: 'Use for /onboarding, or when a new member''s onboarding is not yet complete — runs the deterministic VERIFY, ORIENT, INVITE, FIRST_HANDOFF welcome flow.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pr
3
- description: 'Fallback Codex adapter for the Egregore pr workflow.'
3
+ description: 'Use for /pr, or ''create a PR'' / ''open a pull request'' — creates a pull request for the current branch against the repo''s base branch with a formatted title and body. Not for reviewing an existing PR (review-pr).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pull
3
- description: 'Fallback Codex adapter for the Egregore pull workflow.'
3
+ description: 'Use for /pull when you need to sync the current branch and shared memory without also viewing activity (/activity auto-syncs already).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: push
3
- description: 'Fallback Codex adapter for the Egregore push workflow.'
3
+ description: 'Use for /push, or ''push my branch'' — pushes the current branch to origin, setting upstream on first push, before opening a PR with /pr.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: reflect
3
- description: 'Fallback Codex adapter for the Egregore reflect workflow.'
3
+ description: 'Use when the user says ''we decided'', ''I realized'', or ''that''s a pattern'' — captures decisions, findings, or patterns in shared memory. Not a private half-baked thought (/note) or cross-referencing (/deep-reflect).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: review-pr
3
- description: 'Fallback Codex adapter for the Egregore review-pr workflow.'
3
+ description: 'Use when the user says ''review PR'', ''is this PR safe to merge'', or ''audit PR'' — runs a CTO-level 10-point review checklist on one or more pull requests. Not creating a PR (/pr) or validating local changes (/test).'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -81,7 +81,9 @@ Where should {name} live?
81
81
  twice.
82
82
  5. Synthesize:
83
83
  - a short topic from the work,
84
- - a clear commit message,
84
+ - a commit message per `.claude/context/commit-format.md` — subject
85
+ `type(scope): imperative summary`, type/scope derived from the work
86
+ itself (never `chore(save):` for real work),
85
87
  - a one-line user-facing scope summary,
86
88
  - a PR description following `.claude/context/pr-format.md`:
87
89
  `## What` (1–4 bullets), `## Why` (1–3 sentences), and
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: slack-connect
3
- description: 'Fallback Codex adapter for the Egregore slack-connect workflow.'
3
+ description: 'Set up Slack as a notification channel for your Egregore — creates the workspace app, invites the bot, and binds a channel. Use for /slack-connect, ''connect slack'', or ''set up slack notifications''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: summon
3
- description: 'Fallback Codex adapter for the Egregore summon workflow.'
3
+ description: 'Design and launch a persistent agent (a spirit) that runs on a schedule or watches for conditions, via adaptive questioning that produces a reviewable spec before launch.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sync-repos
3
- description: 'Fallback Codex adapter for the Egregore sync-repos workflow.'
3
+ description: 'Smart sync of all Egregore repos (memory + managed repos + current repo) — fetches first, only pulls if behind. Use for /sync-repos or ''sync all repos''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: teams-connect
3
+ description: 'Set up Microsoft Teams as a notification channel for your Egregore — registers an Azure bot, uploads the app, and binds a channel. Use for /teams-connect, ''connect teams'', or ''set up teams notifications''.'
4
+ ---
5
+
6
+ <!-- generated-by: bin/codex-sync-skills.sh -->
7
+
8
+ # Egregore teams-connect Adapter
9
+
10
+ This is fallback coverage for a long-tail Egregore workflow that has not been
11
+ ported to a hand-written Codex-native skill yet.
12
+
13
+ Use the project shell and filesystem directly. Do not invoke Claude Code
14
+ commands. Translate interactive choices to structured Codex question tooling
15
+ when it is available; otherwise render compact numbered choices with an
16
+ `Other:` option and wait for the user.
17
+
18
+ 1. Read `.claude/skills/teams-connect/SKILL.md` for the workflow details.
19
+ 2. Run the referenced `bin/` scripts directly from Codex.
20
+ 3. Treat graph and publish steps as best-effort unless that workflow explicitly
21
+ says they are required.
22
+ 4. For every external notification, follow
23
+ `.claude/context/notification-consent.md`: plan without sending, then show
24
+ a separate exact Send / Edit / Cancel checkpoint. Never infer notification
25
+ consent from the workflow request or a batch approval.
26
+ 5. Keep local-mode behavior filesystem-first and avoid graph or notification
27
+ calls when `egregore.json` declares `"mode": "local"`.
28
+ 6. Never call the deprecated `egregore-handoff` CLI for Egregore project
29
+ handoffs.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: telegram-connect
3
- description: 'Fallback Codex adapter for the Egregore telegram-connect workflow.'
3
+ description: 'Set up Telegram as a notification center for your Egregore — creates the group, links the bot, and stores the chat ID. Use for /telegram-connect, ''connect telegram'', or ''set up telegram notifications''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: telemetry
3
- description: 'Fallback Codex adapter for the Egregore telemetry workflow.'
3
+ description: 'Manage your own telemetry settings — check status, opt in/out, view or clear the buffered events. Use for /telemetry, ''turn off telemetry'', or ''what data do you collect''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: test
3
- description: 'Fallback Codex adapter for the Egregore test workflow.'
3
+ description: 'Validate changes before /save — static analysis plus live Cypher validation against the graph, rendered as a pass/fail gate. Use for /test or ''test my changes''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: tutorial
3
- description: 'Fallback Codex adapter for the Egregore tutorial workflow.'
3
+ description: 'Interactive walkthrough of Egregore''s core loop — /activity, /reflect, and /quest or /add — with adaptive questions and real artifacts. Use for /tutorial or ''walk me through Egregore''.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: update
3
- description: 'Fallback Codex adapter for the Egregore update workflow.'
3
+ description: 'Update local Egregore environment — sync the framework from upstream, run post-update migrations, and pull repos. Use for /update or when framework behavior seems broken or missing.'
4
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -35,8 +35,8 @@
35
35
  {
36
36
  "section": "After Greeting — BRANCH ON FIRST RESPONSE",
37
37
  "action": "replace",
38
- "sourceHash": "88410d7c6c00",
39
- "note": "EnterWorktree -> bin/agent.sh branch with git checkout fallback; AskUserQuestion -> numbered options in plain text; branch-guard mapped to .codex/hooks/branch-guard.js with instruction fallback; plan-mode note dropped (no plan mode on Codex); /branch + /onboarding -> skill tokens. Handoff claiming and repoState auto-checkout kept verbatim (pure git)."
38
+ "sourceHash": "b13b81aea8f3",
39
+ "note": "EnterWorktree -> bin/agent.sh branch with git checkout fallback; AskUserQuestion -> numbered options in plain text; branch-guard mapped to .codex/hooks/branch-guard.js with instruction fallback; plan-mode note dropped (no plan mode on Codex); /branch + /onboarding -> skill tokens. Handoff claiming and repoState auto-checkout bash kept verbatim (pure git); surrounding prose compressed 2026-08 for the 32 KiB budget, every rule retained."
40
40
  },
41
41
  {
42
42
  "section": "Config Files",
@@ -89,7 +89,7 @@
89
89
  {
90
90
  "section": "Git Workflow",
91
91
  "action": "keep",
92
- "sourceHash": "fe3d9dabd03d",
92
+ "sourceHash": "23df84b5fe80",
93
93
  "note": "Kept; slash tokens rendered as $skill tokens. Branch diagram unchanged (code fence)."
94
94
  },
95
95
  {
@@ -101,7 +101,7 @@
101
101
  {
102
102
  "section": "Command Awareness",
103
103
  "action": "keep",
104
- "sourceHash": "905ad739e18c",
104
+ "sourceHash": "be00d1fc715f",
105
105
  "note": "Prepended the Codex command surface (skill tokens, native vs adapter split, $save abstraction); disambiguation map kept with /x -> $x token rendering. Tokens with no Codex skill (e.g. /loop, a Claude Code harness feature) are left as-is."
106
106
  },
107
107
  {
@@ -119,7 +119,7 @@
119
119
  {
120
120
  "section": "Mode",
121
121
  "action": "keep",
122
- "sourceHash": "ae5cbb9c5d30",
122
+ "sourceHash": "0f74e18fd1b4",
123
123
  "note": "Kept; /env and /checkup rendered as $skill tokens."
124
124
  },
125
125
  {