create-egregore 0.20.0 → 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 (147) hide show
  1. package/assets/egregore-launcher.js +25 -3
  2. package/lib/setup.js +21 -2
  3. package/package.json +1 -1
  4. package/runtime/codex/.codex/config.toml +3 -0
  5. package/runtime/codex/.codex/skills/archive/SKILL.md +1 -1
  6. package/runtime/codex/.codex/skills/branch/SKILL.md +1 -1
  7. package/runtime/codex/.codex/skills/checkup/SKILL.md +1 -1
  8. package/runtime/codex/.codex/skills/commit/SKILL.md +1 -1
  9. package/runtime/codex/.codex/skills/contribute/SKILL.md +1 -1
  10. package/runtime/codex/.codex/skills/delete-user/SKILL.md +1 -1
  11. package/runtime/codex/.codex/skills/ingest/SKILL.md +1 -1
  12. package/runtime/codex/.codex/skills/ingest-corpus/SKILL.md +29 -0
  13. package/runtime/codex/.codex/skills/ingest-notion/SKILL.md +1 -1
  14. package/runtime/codex/.codex/skills/ingest-user-interview/SKILL.md +1 -1
  15. package/runtime/codex/.codex/skills/issue/SKILL.md +1 -1
  16. package/runtime/codex/.codex/skills/me/SKILL.md +1 -1
  17. package/runtime/codex/.codex/skills/meeting/SKILL.md +1 -1
  18. package/runtime/codex/.codex/skills/note/SKILL.md +1 -1
  19. package/runtime/codex/.codex/skills/notion-connect/SKILL.md +1 -1
  20. package/runtime/codex/.codex/skills/onboarding/SKILL.md +1 -1
  21. package/runtime/codex/.codex/skills/pr/SKILL.md +1 -1
  22. package/runtime/codex/.codex/skills/pull/SKILL.md +1 -1
  23. package/runtime/codex/.codex/skills/push/SKILL.md +1 -1
  24. package/runtime/codex/.codex/skills/reflect/SKILL.md +1 -1
  25. package/runtime/codex/.codex/skills/review-pr/SKILL.md +1 -1
  26. package/runtime/codex/.codex/skills/save/SKILL.md +3 -1
  27. package/runtime/codex/.codex/skills/slack-connect/SKILL.md +1 -1
  28. package/runtime/codex/.codex/skills/summon/SKILL.md +1 -1
  29. package/runtime/codex/.codex/skills/sync-repos/SKILL.md +1 -1
  30. package/runtime/codex/.codex/skills/teams-connect/SKILL.md +1 -1
  31. package/runtime/codex/.codex/skills/telegram-connect/SKILL.md +1 -1
  32. package/runtime/codex/.codex/skills/telemetry/SKILL.md +1 -1
  33. package/runtime/codex/.codex/skills/test/SKILL.md +1 -1
  34. package/runtime/codex/.codex/skills/tutorial/SKILL.md +1 -1
  35. package/runtime/codex/.codex/skills/update/SKILL.md +1 -1
  36. package/runtime/codex/.codex/spec-manifest.json +3 -3
  37. package/runtime/codex/AGENTS.md +30 -31
  38. package/runtime/codex/bin/agent.sh +17 -5
  39. package/runtime/codex/bin/codex-render-spec.mjs +27 -32
  40. package/runtime/codex/bin/codex-sync-skills.sh +6 -1
  41. package/runtime/codex/bin/handoff-pr-backfill.sh +1 -1
  42. package/runtime/codex/bin/handoff-run.sh +8 -3
  43. package/runtime/codex/bin/handoff-save-egregore.sh +19 -7
  44. package/runtime/codex/bin/ingest.py +260 -5
  45. package/runtime/codex/bin/lib/git-message.sh +37 -0
  46. package/runtime/codex/bin/lib/git-sync.sh +10 -2
  47. package/runtime/codex/bin/session-autosave.sh +7 -1
  48. package/runtime/codex/bin/settings.sh +1 -1
  49. package/runtime/codex/manifest.json +4 -1
  50. package/runtime/pi/.codex/config.toml +3 -0
  51. package/runtime/pi/.codex/skills/archive/SKILL.md +1 -1
  52. package/runtime/pi/.codex/skills/branch/SKILL.md +1 -1
  53. package/runtime/pi/.codex/skills/checkup/SKILL.md +1 -1
  54. package/runtime/pi/.codex/skills/commit/SKILL.md +1 -1
  55. package/runtime/pi/.codex/skills/contribute/SKILL.md +1 -1
  56. package/runtime/pi/.codex/skills/delete-user/SKILL.md +1 -1
  57. package/runtime/pi/.codex/skills/ingest/SKILL.md +1 -1
  58. package/runtime/pi/.codex/skills/ingest-corpus/SKILL.md +29 -0
  59. package/runtime/pi/.codex/skills/ingest-notion/SKILL.md +1 -1
  60. package/runtime/pi/.codex/skills/ingest-user-interview/SKILL.md +1 -1
  61. package/runtime/pi/.codex/skills/issue/SKILL.md +1 -1
  62. package/runtime/pi/.codex/skills/me/SKILL.md +1 -1
  63. package/runtime/pi/.codex/skills/meeting/SKILL.md +1 -1
  64. package/runtime/pi/.codex/skills/note/SKILL.md +1 -1
  65. package/runtime/pi/.codex/skills/notion-connect/SKILL.md +1 -1
  66. package/runtime/pi/.codex/skills/onboarding/SKILL.md +1 -1
  67. package/runtime/pi/.codex/skills/pr/SKILL.md +1 -1
  68. package/runtime/pi/.codex/skills/pull/SKILL.md +1 -1
  69. package/runtime/pi/.codex/skills/push/SKILL.md +1 -1
  70. package/runtime/pi/.codex/skills/reflect/SKILL.md +1 -1
  71. package/runtime/pi/.codex/skills/review-pr/SKILL.md +1 -1
  72. package/runtime/pi/.codex/skills/save/SKILL.md +3 -1
  73. package/runtime/pi/.codex/skills/slack-connect/SKILL.md +1 -1
  74. package/runtime/pi/.codex/skills/summon/SKILL.md +1 -1
  75. package/runtime/pi/.codex/skills/sync-repos/SKILL.md +1 -1
  76. package/runtime/pi/.codex/skills/teams-connect/SKILL.md +1 -1
  77. package/runtime/pi/.codex/skills/telegram-connect/SKILL.md +1 -1
  78. package/runtime/pi/.codex/skills/telemetry/SKILL.md +1 -1
  79. package/runtime/pi/.codex/skills/test/SKILL.md +1 -1
  80. package/runtime/pi/.codex/skills/tutorial/SKILL.md +1 -1
  81. package/runtime/pi/.codex/skills/update/SKILL.md +1 -1
  82. package/runtime/pi/.codex/spec-manifest.json +3 -3
  83. package/runtime/pi/.pi/APPEND_SYSTEM.md +54 -31
  84. package/runtime/pi/.pi/spec-manifest.json +2 -2
  85. package/runtime/pi/AGENTS.md +30 -31
  86. package/runtime/pi/bin/agent.sh +17 -5
  87. package/runtime/pi/bin/codex-render-spec.mjs +27 -32
  88. package/runtime/pi/bin/codex-sync-skills.sh +6 -1
  89. package/runtime/pi/bin/handoff-pr-backfill.sh +1 -1
  90. package/runtime/pi/bin/handoff-run.sh +8 -3
  91. package/runtime/pi/bin/handoff-save-egregore.sh +19 -7
  92. package/runtime/pi/bin/ingest.py +260 -5
  93. package/runtime/pi/bin/lib/git-message.sh +37 -0
  94. package/runtime/pi/bin/lib/git-sync.sh +10 -2
  95. package/runtime/pi/bin/pi-render-spec.mjs +52 -26
  96. package/runtime/pi/bin/session-autosave.sh +7 -1
  97. package/runtime/pi/bin/settings.sh +1 -1
  98. package/runtime/pi/manifest.json +4 -1
  99. package/runtime/prime/.codex/config.toml +3 -0
  100. package/runtime/prime/.codex/skills/archive/SKILL.md +1 -1
  101. package/runtime/prime/.codex/skills/branch/SKILL.md +1 -1
  102. package/runtime/prime/.codex/skills/checkup/SKILL.md +1 -1
  103. package/runtime/prime/.codex/skills/commit/SKILL.md +1 -1
  104. package/runtime/prime/.codex/skills/contribute/SKILL.md +1 -1
  105. package/runtime/prime/.codex/skills/delete-user/SKILL.md +1 -1
  106. package/runtime/prime/.codex/skills/ingest/SKILL.md +1 -1
  107. package/runtime/prime/.codex/skills/ingest-corpus/SKILL.md +29 -0
  108. package/runtime/prime/.codex/skills/ingest-notion/SKILL.md +1 -1
  109. package/runtime/prime/.codex/skills/ingest-user-interview/SKILL.md +1 -1
  110. package/runtime/prime/.codex/skills/issue/SKILL.md +1 -1
  111. package/runtime/prime/.codex/skills/me/SKILL.md +1 -1
  112. package/runtime/prime/.codex/skills/meeting/SKILL.md +1 -1
  113. package/runtime/prime/.codex/skills/note/SKILL.md +1 -1
  114. package/runtime/prime/.codex/skills/notion-connect/SKILL.md +1 -1
  115. package/runtime/prime/.codex/skills/onboarding/SKILL.md +1 -1
  116. package/runtime/prime/.codex/skills/pr/SKILL.md +1 -1
  117. package/runtime/prime/.codex/skills/pull/SKILL.md +1 -1
  118. package/runtime/prime/.codex/skills/push/SKILL.md +1 -1
  119. package/runtime/prime/.codex/skills/reflect/SKILL.md +1 -1
  120. package/runtime/prime/.codex/skills/review-pr/SKILL.md +1 -1
  121. package/runtime/prime/.codex/skills/save/SKILL.md +3 -1
  122. package/runtime/prime/.codex/skills/slack-connect/SKILL.md +1 -1
  123. package/runtime/prime/.codex/skills/summon/SKILL.md +1 -1
  124. package/runtime/prime/.codex/skills/sync-repos/SKILL.md +1 -1
  125. package/runtime/prime/.codex/skills/teams-connect/SKILL.md +1 -1
  126. package/runtime/prime/.codex/skills/telegram-connect/SKILL.md +1 -1
  127. package/runtime/prime/.codex/skills/telemetry/SKILL.md +1 -1
  128. package/runtime/prime/.codex/skills/test/SKILL.md +1 -1
  129. package/runtime/prime/.codex/skills/tutorial/SKILL.md +1 -1
  130. package/runtime/prime/.codex/skills/update/SKILL.md +1 -1
  131. package/runtime/prime/.codex/spec-manifest.json +3 -3
  132. package/runtime/prime/.prime/agent/APPEND_SYSTEM.md +54 -31
  133. package/runtime/prime/.prime/agent/spec-manifest.json +2 -2
  134. package/runtime/prime/AGENTS.md +30 -31
  135. package/runtime/prime/bin/agent.sh +17 -5
  136. package/runtime/prime/bin/codex-render-spec.mjs +27 -32
  137. package/runtime/prime/bin/codex-sync-skills.sh +6 -1
  138. package/runtime/prime/bin/handoff-pr-backfill.sh +1 -1
  139. package/runtime/prime/bin/handoff-run.sh +8 -3
  140. package/runtime/prime/bin/handoff-save-egregore.sh +19 -7
  141. package/runtime/prime/bin/ingest.py +260 -5
  142. package/runtime/prime/bin/lib/git-message.sh +37 -0
  143. package/runtime/prime/bin/lib/git-sync.sh +10 -2
  144. package/runtime/prime/bin/prime-render-spec.mjs +51 -27
  145. package/runtime/prime/bin/session-autosave.sh +7 -1
  146. package/runtime/prime/bin/settings.sh +1 -1
  147. package/runtime/prime/manifest.json +4 -1
@@ -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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ingest-notion
3
- description: 'Fallback Codex adapter for the Egregore ingest-notion workflow.'
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
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -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 -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: notion-connect
3
- description: 'Fallback Codex adapter for the Egregore notion-connect workflow.'
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
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -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 -->
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: teams-connect
3
- description: 'Fallback Codex adapter for the Egregore teams-connect workflow.'
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
4
  ---
5
5
 
6
6
  <!-- generated-by: bin/codex-sync-skills.sh -->
@@ -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": "d28a5c162ab4",
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
  {
@@ -53,20 +53,11 @@ The project-local Prime Agent extension renders the Egregore startup card (ident
53
53
 
54
54
  **Mandatory behavioral rule.** When the user describes work, your **first action** — before reading files, exploring code, or anything else — is to get onto a working branch:
55
55
 
56
- The integration branch is `develop` by default. When top-level
57
- `egregore.json.base_branch` is set, that configured branch replaces
58
- `develop` as the branch point, rebase target, PR base, and protected
59
- integration branch.
56
+ The integration branch is `develop` unless top-level `egregore.json.base_branch` sets another; the configured branch is then the branch point, rebase target, PR base, and protected branch everywhere below.
60
57
 
61
58
  1. Derive a topic slug from what the user said (kebab-case, 2–4 words)
62
59
  2. Run `bin/agent.sh branch --topic "<topic>"` — it resolves the configured base and creates a work branch from `origin/{base}` in a task worktree (`dev/{author}/{slug}`, or `feature/{slug}` / `bugfix/{slug}` when the topic reads as a feature or fix). Continue all file work from the printed path.
63
- 3. Give a value-first workspace receipt. Do not lead with Git terminology:
64
-
65
- `Your stable project is protected. I’m working in a separate workspace for **{topic}**, where changes stay isolated, reviewable, and reversible.`
66
-
67
- Then expose the implementation as secondary detail:
68
-
69
- `Workspace: {branch} (worktree).`
60
+ 3. Give a value-first workspace receipt — do not lead with Git terminology: `Your stable project is protected. I’m working in a separate workspace for **{topic}**, where changes stay isolated, reviewable, and reversible.` Then, as secondary detail: `Workspace: {branch} (worktree).`
70
61
 
71
62
  **Fallback:** If `bin/agent.sh branch` fails, resolve `{base}` with
72
63
  `_get_base_branch`, then use
@@ -76,14 +67,20 @@ integration branch.
76
67
 
77
68
  ### Starting-work UX contract
78
69
 
79
- Before execution begins, make Egregore's useful structure legible without turning every task start into a tutorial:
70
+ Sequence: **intent → safe workspace → relevant context → consequential assumptions → execution**. Make Egregore's structure legible without turning task starts into a tutorial; keep technical identifiers secondary to user value.
71
+
72
+ - **Workspace** — the value-first receipt above, only for a new workspace or topic pivot; do not repeat it on the same branch.
73
+ - **Context** — when organizational retrieval materially informs the work, keep the required Egregore Retrieval Beat plus one compact receipt: `↳ Context restored: {decision, handoff, or prior work} · {source/date}`. Never claim context was restored when retrieval found nothing useful.
74
+ - **Assumptions** — surface only consequential ones: `Assumption: {assumption} — based on {evidence}.` Add a correction path when cheap; do not narrate obvious operational choices.
75
+ - **Transition** — state the outcome you are starting toward in one short sentence and begin.
76
+
77
+ ### Returning-work UX contract
80
78
 
81
- - **Workspace** — use the value-first receipt above for a newly created workspace or topic pivot. If already on the appropriate working branch, do not repeat it.
82
- - **Context** — when organizational retrieval materially informs the work, keep the required Egregore Retrieval Beat and then add one compact result receipt: `↳ Context restored: {decision, handoff, or prior work} · {source/date}`. Never claim context was restored when retrieval found nothing useful.
83
- - **Assumptions** — surface only consequential assumptions that could change the implementation. Use `Assumption: {assumption} — based on {evidence}.` Add a correction path when cheap; do not narrate obvious operational choices.
84
- - **Transition** — once workspace, context, and assumptions are settled, state the outcome you are starting toward in one short sentence and begin.
79
+ When the user continues the current branch's work or asks to resume — sequence: **continuation intent → prior workspace → restored context → open threads → resumed execution**:
85
80
 
86
- The intended sequence is: **intent → safe workspace → relevant context → consequential assumptions → execution**. Keep technical identifiers available but subordinate them to user value.
81
+ - Do not create a new workspace for the same topic. After confirming relevance, say: `I found your previous work on **{topic}** and restored its workspace and context.` Show `Workspace: {branch} (worktree).` secondarily.
82
+ - Retrieve relevant decisions, handoffs, or prior work; keep the Retrieval Beat and `↳ Context restored:` receipt. Never claim context was restored from a branch name alone.
83
+ - Name only unresolved items that could change the next move, state the next outcome briefly, and continue without replaying setup.
87
84
 
88
85
  ### Handoff claiming
89
86
 
@@ -92,7 +89,7 @@ If `addressed_to_user` handoffs exist and the user is picking one up, create the
92
89
  bash bin/graph-op.sh claim-handoff "$SESSION_ID" "$HANDOFF_SESSION_ID" 2>/dev/null &
93
90
  ```
94
91
 
95
- **Auto-checkout repos from handoff**: After claiming, check the `addressed_rich` context for `repoState`. If the handoff includes repo state (non-empty `repoState` array), check out the handoff's branches in each managed repo:
92
+ **Auto-checkout repos from handoff**: after claiming, if `addressed_rich` carries a non-empty `repoState`, check out each entry's branch in its managed repo:
96
93
 
97
94
  ```bash
98
95
  PARENT_DIR="$(cd .. && pwd)"
@@ -105,21 +102,19 @@ if [ -d "$REPO_DIR/.git" ] || [ -f "$REPO_DIR/.git" ]; then
105
102
  fi
106
103
  ```
107
104
 
108
- Report results: `✓ Checked out {branch} in {repo1}, {repo2}`. If a branch no longer exists (PR was merged): `◐ {repo}: PR #{N} merged — on {base}`. If `repoState` is absent or empty, skip auto-checkout silently.
105
+ Report `✓ Checked out {branch} in {repo1}, {repo2}`; for a merged-away branch, `◐ {repo}: PR #{N} merged — on {base}`. If `repoState` is absent or empty, skip silently.
109
106
 
110
- **Exceptions** — skip branching when:
111
- - The user explicitly created or named a branch themselves
112
- - Already on a working branch AND the user's intent continues the current branch's topic
107
+ **Exceptions** — skip branching when the user explicitly created or named a branch themselves, or the intent continues the current working branch's topic.
113
108
 
114
- **Topic pivot while on a working branch:** If the user describes work **unrelated** to the current branch's topic, treat it as a new topic and create a new branch (`bin/agent.sh branch --topic "<new topic>"`). Do NOT mix unrelated work on one branch.
109
+ **Topic pivot:** work **unrelated** to the current branch's topic gets a new branch (`bin/agent.sh branch --topic "<new topic>"`). Do NOT mix unrelated work on one branch.
115
110
 
116
111
  If still on the configured base branch after two messages, create a branch immediately from whatever context you have.
117
112
 
118
113
  ### Branch-guard protocol
119
114
 
120
- The `.prime/agent/extensions/egregore.ts` `tool_call` gate (loaded from the project-local extension) protects project writes on the configured base branch as well as `develop`/`main`/`master`. Its block message is operational guidance, not a reason to interrupt the user with routine Git choices:
115
+ The `.prime/agent/extensions/egregore.ts` `tool_call` gate (loaded from the project-local extension) protects project writes on the configured base plus `develop`/`main`/`master`. Its block message is operational guidance — do not interrupt the user with routine Git choices:
121
116
 
122
- - **Topic is clear** (the user said "fix X", "add Y feature") → run `bin/agent.sh branch --topic "<topic>"` automatically, continue in the printed worktree, and say one short sentence so the branch change is visible. Do not ask the user to approve routine branching.
117
+ - **Topic is clear** → run `bin/agent.sh branch --topic "<topic>"` automatically, continue in the printed worktree, and say one short sentence so the change is visible — never ask approval for routine branching.
123
118
  - **Topic is genuinely ambiguous** → ask only for the topic, using compact numbered options:
124
119
 
125
120
  ```text
@@ -132,7 +127,7 @@ The `.prime/agent/extensions/egregore.ts` `tool_call` gate (loaded from the proj
132
127
  Wait for the reply, then branch.
133
128
  - **The user explicitly requested the protected branch** → that request is consent. Record it with `echo '{branch}' > .egregore-branch-consent`, then retry. Never create the marker merely to silence the hook.
134
129
 
135
- Memory, managed-repo, and runtime-state writes should bypass the project guard. If one triggers it, correct the operation target/context instead of asking for protected-branch consent.
130
+ Memory, managed-repo, and runtime-state writes bypass the project guard — if one triggers it, correct the target/context instead of asking for consent.
136
131
 
137
132
  If Prime Agent project extensions are disabled, follow the same discipline as a standing instruction: never write or commit on the configured base, develop, main, or master.
138
133
 
@@ -270,7 +265,7 @@ Always use HTTPS for git operations — `github-auth.sh` handles credential stor
270
265
 
271
266
  ## Loom Routing
272
267
 
273
- Loom routes commands across model tiers on the Claude Code runtime (`loom/routes.json` + `bin/loom.sh` + a model-pinned executor subagent). Prime Agent has no built-in subagent delegation — every command runs inline in the current session. Ignore "Loom routing" preambles if you encounter them in a skill spec, and skip `bin/loom.sh` calls; `loom/` and `.claude/agents/` are framework files synced for the Claude runtime.
268
+ Loom routes commands across model tiers on the Claude Code runtime (`loom/routes.json` + `bin/loom.sh` + a model-pinned executor subagent). Prime Agent has no built-in subagent delegation — commands run inline. Ignore "Loom routing" preambles in skill specs and skip `bin/loom.sh` calls; `loom/` and `.claude/agents/` are Claude-runtime framework files.
274
269
 
275
270
  ---
276
271
 
@@ -299,6 +294,10 @@ main ← stable (/release)
299
294
 
300
295
  Every PR body follows `.claude/context/pr-format.md`, enforced by the `pr-format` CI check regardless of which harness opened it: `## What` (1–4 bullets) + `## Why` (1–3 sentences) always; `## Verification` when the diff touches non-markdown files (how it was checked, or an honest `Not verified — <reason>`); `## Risk`/`## Links` when real; title `type(scope): imperative summary` (advisory). **Never create a PR with an empty body or `--fill`** — write the body and pass it explicitly (`gh pr create --body`, or `bin/agent.sh save --pr-body` for shell agents; the bridge auto-generates a compliant skeleton only as a last resort).
301
296
 
297
+ ### Commit format (all harnesses)
298
+
299
+ Every commit follows `.claude/context/commit-format.md`: subject `type(scope): imperative summary` (≤ 72 chars, aim ≤ 50, lowercase, same grammar and type set as PR titles), body wrapped at 72 explaining what and why — never how, and git trailers on agent-authored commits (`Egregore-Session: <id>` from `.egregore-session-id`, plus the harness `Co-Authored-By` line). Background scripts commit as `chore(<subsystem>): …`, but a commit carrying real work derives its type/scope from the diff — the transport never masks the work. Git-generated messages (merges, reverts, autosquash fixups) keep their native form. Wording for commits and PRs follows `.claude/context/git-language.md`.
300
+
302
301
  ### Managed Repos
303
302
 
304
303
  Repos in `egregore.json` → `repos[]` are cloned as siblings (`../{repo}/`). Each entry can be a string or `{"name": "...", "description": "..."}`. Match user intent to the right repo using `description`. Same branching strategy. Use `git -C` with absolute paths — never `cd` into repos. `/save` scans all managed repos for uncommitted changes.
@@ -317,7 +316,7 @@ Repos in `egregore.json` → `repos[]` are cloned as siblings (`../{repo}/`). Ea
317
316
 
318
317
  Egregore workflows are available as Prime Agent slash commands such as `/activity`, `/handoff`, `/save`, and `/view`. They are registered from the shared skill inventory by `.prime/agent/extensions/egregore.ts`; the duplicate `/skill:name` listings are disabled so each workflow appears once. Natural-language requests work normally — and are the route for any workflow whose name collides with a Prime Agent built-in: **say "update egregore" rather than typing `/update`**, which is Prime Agent's own self-updater. `/save` is the user-facing abstraction for committing, pushing, opening or reusing pull requests, and syncing memory — never make users manage the git workflow by hand.
319
318
 
320
- Invoke commands from user intent — don't wait for the slash. Read the selected skill's `SKILL.md` completely before acting. Codex wording inside the shared portable skills means the shell-capable runtime adapter; in Prime Agent, run referenced `bin/` scripts through the IPython kernel (or the bash tool when active), use ordinary shell/network access, ignore Codex approval-channel wording, and render compact numbered questions when no UI question surface is available.
319
+ Read the selected skill's `SKILL.md` completely before acting. Codex wording inside the shared portable skills means the shell-capable runtime adapter; in Prime Agent, run referenced `bin/` scripts through the IPython kernel (or the bash tool when active), use ordinary shell/network access, ignore Codex approval-channel wording, and render compact numbered questions when no UI question surface is available.
321
320
 
322
321
  The `egregore` Python-backed skill exposes the mechanics as kernel functions — `import egregore`, then `egregore.search(query)`, `egregore.activity()`, `egregore.handoff(to, topic, body)`, `egregore.save(message, topic)`, `egregore.branch(topic)`, `egregore.notify_plan(recipient, message)`. Prefer these over re-deriving `bin/` CLI usage by reading scripts. `notify_plan` is proposal-only: approval and dispatch always pass through the explicit human Send / Edit / Cancel checkpoint.
323
322
 
@@ -325,13 +324,37 @@ The `egregore` Python-backed skill exposes the mechanics as kernel functions —
325
324
 
326
325
  Kernel shell escapes can be time-capped by the harness. Egregore `bin/` scripts that sync git state or query the connected graph legitimately run 10–120 seconds: run them with a generous timeout (a `%%bash` cell, or the longest limit the harness exposes). If a command dies suspiciously fast (~5s) with partial output, treat it as a timeout — rerun once with a longer limit or render the workflow's designed one-line fallback. Never debug data plumbing inside a product workflow. Connected mode works normally here: graph reads and `bin/search.sh` enrichment use the instance's configured credentials, and when graph data is degraded say so in one plain line rather than narrating connectivity theories.
327
326
 
327
+ Invoke commands from user intent — don't wait for the slash. Each command file has a `## When to invoke` section. Load it for the full spec.
328
+
328
329
  **Core loop** — `/activity` `/dashboard` `/handoff` `/wrap` `/save` `/reflect` `/todo`
329
- **Knowledge** — `/search` `/deep-reflect` `/archive` `/note` `/add` `/meeting` `/ingest` `/scroll`
330
- **Identity** — `/me`
330
+ **Knowledge** — `/search` `/deep-reflect` `/archive` `/note` `/add` `/meeting` `/ingest` `/scroll` `/mock` `/audit`
331
+ **Identity** — `/me` (view profile or set display name)
331
332
  **Coordination** — `/ask` `/quest` `/issue` `/invite` `/delete-user` `/announce`
333
+ **Connectors** — `/notion-connect` (Notion workspace) `/telegram-connect` (Telegram group setup) `/teams-connect` (Microsoft Teams channel setup) `/slack-connect` (Slack channel setup)
332
334
  **Git** — `/branch` `/commit` `/push` `/pr` `/save` `/review-pr` `/contribute`
335
+ **Spirits** — `/summon` (persistent agent processes)
336
+ **Skills** — `/create-skill` (org-owned skill: scaffold, protect from updates, share)
333
337
  **Infra** — `/setup` `/update` `/pull` `/env` `/infra` `/sync-repos` `/release` `/checkup`
334
338
 
339
+ **Disambiguation:**
340
+ - Knowledge: `/reflect` (share-ready) · `/note` (half-baked) · `/deep-reflect` (deep research over memory — questions AND cross-referencing) · `/archive` (AI patterns) · `/audit` (evidence-mined forensic sweep of the org's own record — any target)
341
+ - Finding things — **organizational recall starts with `bash bin/search.sh query`** (ranked filesystem retrieval in OSS; automatic relationship/status enrichment in Connect). Use `bin/graph.sh` named reads first only for a pure relationship/status traversal. Use Grep/Glob first for repository code, filenames, and exact error strings—not shared-memory recall. Do not `cd` into the sibling memory repository.
342
+ - Finding **something you generated** (a scroll, handoff, emissary, decision, any hosted egregore.xyz link): `bash bin/artifacts.sh find <query>`. Every generative surface already records into memory — hosted artifacts self-register into `memory/artifacts/` at publish (and the record is committed+pushed, so it's findable from *any* session, not just the one that made it); handoffs land in `memory/handoffs/`, emissaries in `memory/handoffs/outbound/`, decisions/findings/patterns in `memory/knowledge/`. The finder searches **all** of them, ranks title/topic matches above passing body mentions, tags each hit by type (`[document]`/`[handoff]`/`[emissary]`/`[decision]`), and surfaces the shareable URL. Findable by **content, not just name**, across all three layers — grep-first for OSS, folding in search + graph when available. *"bring me the artifact where I laid out our GTM plan"* → this.
343
+ - Artifacts with questions: `/scroll` (living paper + embedded harvest, updates in place) · `/view` (static render) · `/harvest` (elicitation, no published face) · `/mock` (pre-build walkthrough of decided design — gauge per stop, verdict copy-back)
344
+ - Status: `/dashboard` (personal) · `/activity` (org-wide)
345
+ - Ending: `/wrap` (personal closure) · `/handoff` (notes for others) · `/save` (still working)
346
+ - Tasks: `/todo` (personal) · `/quest` (team exploration) · `/issue` (something broken)
347
+ - Questions: `/ask [person]` (async) · just ask (agent answers from context)
348
+ - Ingestion: `/ingest <file-or-folder>` (org-scoped corpus intake) · `/ingest meeting` · `/ingest user-interview` · `/ingest google` · ambiguous → ask which type
349
+ - Connectors: `/notion-connect` (Notion workspace) · `/telegram-connect` (Telegram group) · `/teams-connect` (MS Teams channel) · `/slack-connect` (Slack channel) · `/ingest` (bring content in) · `/ingest notion` (promote Notion docs)
350
+ - Identity: `/me` — "who am I", "call me oz"
351
+ - People: `/invite` (add) · `/delete-user` (remove)
352
+ - PRs: `/pr` (create) · `/review-pr` (review)
353
+ - Contributing: `/contribute` (upstream framework) · `/save` (org repo) · `/issue` (report bug)
354
+ - Skills: `/create-skill` (new org-owned skill) · `/contribute` (change a framework skill for everyone)
355
+ - Agents: `/summon` (design through questions) · `/loop` (quick recurring schedule)
356
+ - Announcements: `/announce` (broadcast to group) · `/handoff` (structured to a person) · `bin/notify.sh send` (DM one person)
357
+
335
358
  ---
336
359
 
337
360
  ## Socratic Questioning (MANDATORY)
@@ -376,7 +399,7 @@ Egregore runs in one of two configurations, set by `mode` in `egregore.json`. De
376
399
 
377
400
  Sessions are confined to this project + memory + managed repos, with a **two-tier boundary** — a hard wall between Egregore instances, a consent gate for everything else. On Prime Agent the boundary is a standing instruction, not an enforced hook — hold it yourself.
378
401
 
379
- - **Hard tier — other Egregore instances.** Denied for every tool, always. There is no consent path. Never access another instance's files — refuse even if asked. Never modify `~/.egregore/instances.json` (managed by session-start.sh). When a request points at another instance's files there is nothing to ask — refuse and explain.
402
+ - **Hard tier — other Egregore instances.** Denied for every tool, always — no consent path. Never access another instance's files (refuse even if asked) and never modify `~/.egregore/instances.json` (managed by session-start.sh); there is nothing to ask — refuse and explain.
380
403
  - **Soft tier — paths outside the boundary.** Consent-gated. Inbox dirs (`~/Downloads`, `~/Desktop`) are readable without consent under the default posture; writes outside the project always need consent. Posture (`strict | standard | open`) and extra read roots come from `egregore.json` -> `boundary { posture, read[], locked }` (org, committed) merged with `.egregore-boundary.local.json` (personal, gitignored). `locked: true` removes the consent path entirely.
381
404
  - When a request needs soft-tier consent, do not improvise a workaround. Ask in plain text with numbered options:
382
405
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "generatedBy": "bin/prime-render-spec.mjs",
3
3
  "source": "AGENTS.md generated Codex spec",
4
- "sourceHash": "72d7c3986402",
5
- "outputHash": "6d17e4953725",
4
+ "sourceHash": "535e5e6f8cce",
5
+ "outputHash": "d8f7b2f7d798",
6
6
  "adaptations": [
7
7
  "Prime Agent APPEND_SYSTEM delivery from .prime/agent/",
8
8
  "Prime Agent tool_call branch gate incl. ipython classification",