create-egregore 0.19.32 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/egregore-launcher.js +118 -13
- package/bin/cli.js +48 -3
- package/lib/connect-runtime.js +4 -2
- package/lib/local.js +15 -1
- package/lib/prime-runtime.js +208 -0
- package/lib/setup.js +45 -3
- package/package.json +5 -4
- package/runtime/codex/.codex/skills/ingest-notion/SKILL.md +29 -0
- package/runtime/codex/.codex/skills/notion-connect/SKILL.md +29 -0
- package/runtime/codex/.codex/skills/teams-connect/SKILL.md +29 -0
- package/runtime/codex/.codex/spec-manifest.json +3 -3
- package/runtime/codex/AGENTS.md +11 -4
- package/runtime/codex/bin/activity-data.sh +4 -8
- package/runtime/codex/bin/attendant.sh +13 -0
- package/runtime/codex/bin/autosave.sh +27 -1
- package/runtime/codex/bin/codex-render-spec.mjs +6 -0
- package/runtime/codex/bin/codex-session-start.sh +8 -1
- package/runtime/codex/bin/connect-refresh.sh +33 -0
- package/runtime/codex/bin/graph-batch.sh +25 -6
- package/runtime/codex/bin/graph-op.sh +5 -4
- package/runtime/codex/bin/graph.sh +31 -5
- package/runtime/codex/bin/ingest.py +81 -5
- package/runtime/codex/bin/lib/context.sh +26 -1
- package/runtime/codex/bin/lib/greeting.sh +4 -1
- package/runtime/codex/bin/lib/worktree-links.sh +25 -0
- package/runtime/codex/manifest.json +8 -1
- package/runtime/pi/.codex/skills/ingest-notion/SKILL.md +29 -0
- package/runtime/pi/.codex/skills/notion-connect/SKILL.md +29 -0
- package/runtime/pi/.codex/skills/teams-connect/SKILL.md +29 -0
- package/runtime/pi/.codex/spec-manifest.json +3 -3
- package/runtime/pi/.pi/APPEND_SYSTEM.md +3 -2
- package/runtime/pi/.pi/extensions/egregore.ts +17 -6
- package/runtime/pi/.pi/spec-manifest.json +2 -2
- package/runtime/pi/AGENTS.md +11 -4
- package/runtime/pi/bin/activity-data.sh +4 -8
- package/runtime/pi/bin/attendant.sh +13 -0
- package/runtime/pi/bin/autosave.sh +27 -1
- package/runtime/pi/bin/codex-render-spec.mjs +6 -0
- package/runtime/pi/bin/codex-session-start.sh +8 -1
- package/runtime/pi/bin/connect-refresh.sh +33 -0
- package/runtime/pi/bin/graph-batch.sh +25 -6
- package/runtime/pi/bin/graph-op.sh +5 -4
- package/runtime/pi/bin/graph.sh +31 -5
- package/runtime/pi/bin/ingest.py +81 -5
- package/runtime/pi/bin/lib/context.sh +26 -1
- package/runtime/pi/bin/lib/greeting.sh +4 -1
- package/runtime/pi/bin/lib/worktree-links.sh +25 -0
- package/runtime/pi/bin/pi-branch-policy.mjs +138 -1
- package/runtime/pi/bin/pi-product-workflows.mjs +35 -7
- package/runtime/pi/manifest.json +8 -1
- package/runtime/prime/.claude/context/notification-consent.md +66 -0
- package/runtime/prime/.codex/config.toml +17 -0
- package/runtime/prime/.codex/hooks/branch-guard.js +461 -0
- package/runtime/prime/.codex/hooks/search-hint.js +67 -0
- package/runtime/prime/.codex/hooks.json +30 -0
- package/runtime/prime/.codex/skills/activity/SKILL.md +82 -0
- package/runtime/prime/.codex/skills/announce/SKILL.md +67 -0
- package/runtime/prime/.codex/skills/archive/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/branch/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/checkup/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/commit/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/contribute/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/create-skill/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/dark-mode/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/dashboard/SKILL.md +59 -0
- package/runtime/prime/.codex/skills/deep-reflect/SKILL.md +109 -0
- package/runtime/prime/.codex/skills/delete-user/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/emissary/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/handoff/SKILL.md +166 -0
- package/runtime/prime/.codex/skills/harvest/QUESTION_PALETTE.md +76 -0
- package/runtime/prime/.codex/skills/harvest/SKILL.md +131 -0
- package/runtime/prime/.codex/skills/ingest/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/ingest-notion/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/ingest-user-interview/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/invite/SKILL.md +44 -0
- package/runtime/prime/.codex/skills/issue/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/me/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/meeting/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/note/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/notion-connect/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/onboarding/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/pr/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/pull/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/push/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/quest/SKILL.md +80 -0
- package/runtime/prime/.codex/skills/reflect/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/review-pr/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/save/SKILL.md +125 -0
- package/runtime/prime/.codex/skills/slack-connect/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/summon/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/sync-repos/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/teams-connect/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/telegram-connect/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/telemetry/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/test/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/the-spiral/SKILL.md +84 -0
- package/runtime/prime/.codex/skills/tui-design/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/tutorial/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/update/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/view/SKILL.md +156 -0
- package/runtime/prime/.codex/skills/view/agents/openai.yaml +4 -0
- package/runtime/prime/.codex/skills/view/assets/compose-scaffold.html +221 -0
- package/runtime/prime/.codex/skills/visual-explain/SKILL.md +45 -0
- package/runtime/prime/.codex/skills/wrap/SKILL.md +58 -0
- package/runtime/prime/.codex/spec-manifest.json +132 -0
- package/runtime/prime/.prime/agent/APPEND_SYSTEM.md +393 -0
- package/runtime/prime/.prime/agent/extensions/egregore.ts +460 -0
- package/runtime/prime/.prime/agent/settings.json +4 -0
- package/runtime/prime/.prime/agent/skills/egregore/SKILL.md +34 -0
- package/runtime/prime/.prime/agent/skills/egregore/pyproject.toml +13 -0
- package/runtime/prime/.prime/agent/skills/egregore/src/egregore/__init__.py +156 -0
- package/runtime/prime/.prime/agent/spec-manifest.json +12 -0
- package/runtime/prime/AGENTS.md +489 -0
- package/runtime/prime/bin/activity-data.sh +238 -0
- package/runtime/prime/bin/agent.sh +775 -0
- package/runtime/prime/bin/attendant.sh +707 -0
- package/runtime/prime/bin/autosave.sh +112 -0
- package/runtime/prime/bin/capture-reconcile.sh +69 -0
- package/runtime/prime/bin/capture-run.sh +341 -0
- package/runtime/prime/bin/codex-install-skills.sh +78 -0
- package/runtime/prime/bin/codex-render-spec.mjs +440 -0
- package/runtime/prime/bin/codex-session-start.sh +265 -0
- package/runtime/prime/bin/codex-skill-render.mjs +347 -0
- package/runtime/prime/bin/codex-sync-skills.sh +232 -0
- package/runtime/prime/bin/connect-refresh.sh +33 -0
- package/runtime/prime/bin/dashboard-data.sh +178 -0
- package/runtime/prime/bin/graph-batch.sh +79 -0
- package/runtime/prime/bin/graph-op.sh +1102 -0
- package/runtime/prime/bin/graph-wal.sh +229 -0
- package/runtime/prime/bin/graph.sh +223 -0
- package/runtime/prime/bin/handoff-pr-backfill.sh +86 -0
- package/runtime/prime/bin/handoff-run.sh +671 -0
- package/runtime/prime/bin/handoff-save-egregore.sh +212 -0
- package/runtime/prime/bin/index-handoff.sh +322 -0
- package/runtime/prime/bin/ingest-graph.sh +80 -0
- package/runtime/prime/bin/ingest-surface.html +495 -0
- package/runtime/prime/bin/ingest.py +756 -0
- package/runtime/prime/bin/ingest.sh +279 -0
- package/runtime/prime/bin/ingest_graph.py +856 -0
- package/runtime/prime/bin/ingest_surface.py +544 -0
- package/runtime/prime/bin/lib/artifact-id.sh +46 -0
- package/runtime/prime/bin/lib/config.sh +116 -0
- package/runtime/prime/bin/lib/context.sh +621 -0
- package/runtime/prime/bin/lib/dashboard-artifact.sh +242 -0
- package/runtime/prime/bin/lib/ensure-develop.sh +183 -0
- package/runtime/prime/bin/lib/git-sync.sh +406 -0
- package/runtime/prime/bin/lib/greeting.sh +519 -0
- package/runtime/prime/bin/lib/hash.sh +13 -0
- package/runtime/prime/bin/lib/identity.sh +213 -0
- package/runtime/prime/bin/lib/metrics.sh +374 -0
- package/runtime/prime/bin/lib/noncode.sh +31 -0
- package/runtime/prime/bin/lib/permissions.sh +106 -0
- package/runtime/prime/bin/lib/time.sh +56 -0
- package/runtime/prime/bin/lib/worktree-links.sh +79 -0
- package/runtime/prime/bin/notify.sh +636 -0
- package/runtime/prime/bin/person.py +630 -0
- package/runtime/prime/bin/person.sh +448 -0
- package/runtime/prime/bin/pi-branch-policy.mjs +312 -0
- package/runtime/prime/bin/pi-product-workflows.mjs +394 -0
- package/runtime/prime/bin/prime-render-spec.mjs +123 -0
- package/runtime/prime/bin/prime-session-start.sh +24 -0
- package/runtime/prime/bin/publish-artifact.sh +271 -0
- package/runtime/prime/bin/publish-references.sh +144 -0
- package/runtime/prime/bin/repo-state.sh +96 -0
- package/runtime/prime/bin/search.sh +240 -0
- package/runtime/prime/bin/session-autosave.sh +209 -0
- package/runtime/prime/bin/session-log.sh +199 -0
- package/runtime/prime/bin/settings.sh +304 -0
- package/runtime/prime/bin/telemetry.sh +391 -0
- package/runtime/prime/bin/worktree-create.sh +128 -0
- package/runtime/prime/bin/worktree-remove.sh +50 -0
- package/runtime/prime/bin/worktree.sh +198 -0
- package/runtime/prime/manifest.json +178 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
// search-hint.js — UserPromptSubmit hook (Codex runtime).
|
|
4
|
+
//
|
|
5
|
+
// Mirror of .claude/hooks/search-hint.sh: when the user's prompt is
|
|
6
|
+
// recall-shaped ("find the handoff about…", "did we decide…"), inject a
|
|
7
|
+
// routing hint toward `bash bin/search.sh query` — one ranked call over
|
|
8
|
+
// memory/ — instead of improvised ls/grep/graph exploration.
|
|
9
|
+
//
|
|
10
|
+
// Advisory only, never blocks, rate-limited once per session, exits 0.
|
|
11
|
+
// If the Codex runtime does not fire UserPromptSubmit, this file is inert.
|
|
12
|
+
|
|
13
|
+
const fs = require("node:fs");
|
|
14
|
+
const path = require("node:path");
|
|
15
|
+
const os = require("node:os");
|
|
16
|
+
|
|
17
|
+
function readStdin() {
|
|
18
|
+
try { return fs.readFileSync(0, "utf-8"); } catch { return ""; }
|
|
19
|
+
}
|
|
20
|
+
function parseJson(raw) {
|
|
21
|
+
try { return JSON.parse(raw || "{}"); } catch { return {}; }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const input = parseJson(readStdin());
|
|
25
|
+
const prompt = String(input.prompt || input.user_prompt || "");
|
|
26
|
+
if (!prompt) process.exit(0);
|
|
27
|
+
|
|
28
|
+
const root = process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
29
|
+
if (!fs.existsSync(path.join(root, "bin", "search.sh"))) process.exit(0);
|
|
30
|
+
|
|
31
|
+
// Already oriented toward search.
|
|
32
|
+
if (/(\/search\b|search\.sh|\bsearch (the )?memory\b)/i.test(prompt)) process.exit(0);
|
|
33
|
+
|
|
34
|
+
const RECALL = new RegExp(
|
|
35
|
+
[
|
|
36
|
+
"\\b(find|locate|dig up|look up|pull up)\\b.*\\b(handoff|decision|notes?|docs?|meeting|harvest|quest|reflection)s?\\b",
|
|
37
|
+
"\\bdid we (decide|discuss|agree|say|talk about|cover)\\b",
|
|
38
|
+
"\\bdo we have (any )?(notes?|docs?|anything|something)( on| about)?\\b",
|
|
39
|
+
"\\bwhat did we (decide|say|agree|discuss)\\b",
|
|
40
|
+
"\\bhave we (discussed|decided|covered|talked about|looked at)\\b",
|
|
41
|
+
"\\bnotes on\\b",
|
|
42
|
+
"\\bhandoff (from|about)\\b",
|
|
43
|
+
"\\bwho worked on\\b",
|
|
44
|
+
"\\bdidn.?t (someone|we) already\\b",
|
|
45
|
+
"\\bwas there (a|any) (handoff|decision|discussion|meeting)\\b",
|
|
46
|
+
"\\b(our|company|org|organization|team)\\b.*\\b(pricing|price|tiers?|plans?|paid|free|strategy|policy|positioning|ownership|decision)\\b",
|
|
47
|
+
"\\b(pricing|price|tiers?|plans?|paid|free)\\b.*\\b(our|company|org|organization|team)\\b",
|
|
48
|
+
].join("|"),
|
|
49
|
+
"i"
|
|
50
|
+
);
|
|
51
|
+
if (!RECALL.test(prompt)) process.exit(0);
|
|
52
|
+
|
|
53
|
+
// Rate-limit once per session.
|
|
54
|
+
let sid = "default";
|
|
55
|
+
try { sid = fs.readFileSync(path.join(root, ".egregore-session-id"), "utf-8").trim() || "default"; } catch {}
|
|
56
|
+
const flag = path.join(os.tmpdir(), `egregore-search-hint-${sid}`);
|
|
57
|
+
if (fs.existsSync(flag)) process.exit(0);
|
|
58
|
+
try { fs.writeFileSync(flag, "1"); } catch {}
|
|
59
|
+
|
|
60
|
+
process.stdout.write(JSON.stringify({
|
|
61
|
+
hookSpecificOutput: {
|
|
62
|
+
hookEventName: "UserPromptSubmit",
|
|
63
|
+
additionalContext:
|
|
64
|
+
"Routing hint: this prompt asks for recall from org memory. FIRST action: `bash bin/search.sh query \"<the concept, not the literal sentence>\"` — one ranked call over all of memory/ (hybrid keyword+semantic; graph-state annotations attach automatically in connected mode). Read the top hits and cite paths. Do NOT improvise ls/grep/graph exploration first — hand-written graph queries against invented labels (e.g. :Handoff — handoffs are :Session nodes) return empty. Full spec: the search skill.",
|
|
65
|
+
},
|
|
66
|
+
}) + "\n");
|
|
67
|
+
process.exit(0);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"UserPromptSubmit": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/search-hint.js\"",
|
|
10
|
+
"timeout": 5,
|
|
11
|
+
"statusMessage": "Checking recall routing"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"PreToolUse": [
|
|
17
|
+
{
|
|
18
|
+
"matcher": "Bash|apply_patch|Edit|Write",
|
|
19
|
+
"hooks": [
|
|
20
|
+
{
|
|
21
|
+
"type": "command",
|
|
22
|
+
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/branch-guard.js\"",
|
|
23
|
+
"timeout": 5,
|
|
24
|
+
"statusMessage": "Checking Egregore branch policy"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: activity
|
|
3
|
+
description: Show Egregore team activity, pending handoffs, and open questions when the user invokes /activity or $activity, or asks what is happening in an Egregore checkout.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Egregore Activity
|
|
7
|
+
|
|
8
|
+
Native Codex Egregore skill. Use this only inside an Egregore checkout.
|
|
9
|
+
|
|
10
|
+
Show the live team activity view without sending the user through Claude Code.
|
|
11
|
+
The graph API is useful when reachable, but the filesystem and memory repo must
|
|
12
|
+
remain enough to render a useful answer.
|
|
13
|
+
|
|
14
|
+
## Flow
|
|
15
|
+
|
|
16
|
+
1. Verify `bin/agent.sh` exists. If it does not, say this is not an Egregore
|
|
17
|
+
checkout.
|
|
18
|
+
2. If the request is `activity done N`, `activity expire N`, or
|
|
19
|
+
`activity reopen N`, fetch `bin/activity-data.sh` to a temporary JSON file,
|
|
20
|
+
map `N` to the corresponding `handoffs_to_me[N-1].sessionId`, and run:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bash bin/activity-action.sh <done|expire|reopen> "<session-id>"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Report the resulting topic and state. Never accept a raw session ID from the
|
|
27
|
+
visible command when a numbered activity item is available; the number keeps
|
|
28
|
+
the mutation tied to what the user just saw. In local mode, preserve the
|
|
29
|
+
script's explicit unavailable result.
|
|
30
|
+
3. Run `bin/agent.sh sync`.
|
|
31
|
+
4. Resolve the requested handle:
|
|
32
|
+
- If the user named a person, match it against `memory/people/*.md`.
|
|
33
|
+
- Otherwise use `.egregore-state.json` `github_username`, then git user
|
|
34
|
+
fallback.
|
|
35
|
+
5. Run `bash bin/activity-data.sh [handle]` with network escalation and capture
|
|
36
|
+
stdout as JSON. This command performs the graph API call internally; a
|
|
37
|
+
normal sandboxed Codex shell can make a healthy graph look unreachable.
|
|
38
|
+
6. Classify the graph status:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
node bin/codex-skill-render.mjs classify-graph --mode connected
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
If the network-enabled command still returns `retry` because `graph_reason` is
|
|
45
|
+
`unreachable`, render the filesystem fallback and mention that the graph service
|
|
46
|
+
was unreachable after a network-enabled attempt. If network escalation is denied
|
|
47
|
+
or unavailable, run the command without escalation, render the fallback, and
|
|
48
|
+
say Codex graph network access was not granted; do not claim the graph itself
|
|
49
|
+
was unreachable. Do not retry for `missing_config`, `auth_error`, or
|
|
50
|
+
`server_error`; render the clear reason instead.
|
|
51
|
+
|
|
52
|
+
7. Render the card with:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
node bin/codex-skill-render.mjs activity-card <json-file>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Paste the rendered card exactly in the visible response, preferably in a
|
|
59
|
+
`text` fenced block. Do not paraphrase the card into bullets unless the user
|
|
60
|
+
asks for a summary.
|
|
61
|
+
|
|
62
|
+
8. Offer one compact focus prompt:
|
|
63
|
+
- `Handoffs` - open pending handoffs.
|
|
64
|
+
- `Questions` - answer or inspect pending questions.
|
|
65
|
+
- `Recent work` - inspect sessions and wraps.
|
|
66
|
+
- `Dashboard` - switch to the personal dashboard.
|
|
67
|
+
- `Done` - stop.
|
|
68
|
+
|
|
69
|
+
Use structured Codex question tooling when it is available. Otherwise render a
|
|
70
|
+
numbered list plus `Other:` and wait for the user.
|
|
71
|
+
|
|
72
|
+
## Rules
|
|
73
|
+
|
|
74
|
+
- Never show raw JSON.
|
|
75
|
+
- Do not narrate each command step unless something blocks the workflow; the
|
|
76
|
+
final visible response should lead with the rendered card.
|
|
77
|
+
- Structured UX parity is required: preserve the rendered activity TUI card,
|
|
78
|
+
no preamble, no prose-only replacement, and no raw collector output.
|
|
79
|
+
- Do not call `egregore-handoff`.
|
|
80
|
+
- Do not use Claude Code commands.
|
|
81
|
+
- Keep graph, pull request, and publish data best-effort; local memory remains
|
|
82
|
+
the source of truth when connected services are down.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: announce
|
|
3
|
+
description: Draft, confirm, and send an Egregore group announcement from Codex when the user invokes /announce or $announce.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Egregore Announce
|
|
7
|
+
|
|
8
|
+
Native Codex Egregore skill. Use this to send concise team announcements
|
|
9
|
+
through the existing Egregore notification path.
|
|
10
|
+
|
|
11
|
+
## Flow
|
|
12
|
+
|
|
13
|
+
1. Draft a message from the user request and current context. Keep it under
|
|
14
|
+
500 characters unless the user provided exact text.
|
|
15
|
+
2. If the announcement references a memory artifact, publish it first and add
|
|
16
|
+
the returned URL only when publication succeeds:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
bash bin/publish-artifact.sh document "$FILE_PATH" --title "$TITLE" --author "$AUTHOR" --description "$DESCRIPTION"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Use `handoff`, `quest`, or `document` as the artifact type when appropriate.
|
|
23
|
+
Never fabricate a URL.
|
|
24
|
+
|
|
25
|
+
3. Follow `.claude/context/notification-consent.md`. Create a plan without
|
|
26
|
+
sending:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
PLAN_JSON=$(bash bin/notify.sh plan group "$MESSAGE")
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
4. Preview the plan's exact organization, all deliveries/channels, and exact
|
|
33
|
+
final message. Confirm in a separate checkpoint with structured Codex
|
|
34
|
+
question tooling when available; otherwise render those fields followed by:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Send this announcement?
|
|
38
|
+
1. Send
|
|
39
|
+
2. Edit
|
|
40
|
+
3. Cancel
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
5. If the user edits, cancel the old plan, redraft, plan, and preview again.
|
|
44
|
+
If they cancel, cancel the plan and stop. Only after they select Send for
|
|
45
|
+
that exact preview, run:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
APPROVAL_JSON=$(bash bin/notify.sh approve "$PLAN_ID" "$DIGEST" APPROVE_EXACT_NOTIFICATION)
|
|
49
|
+
APPROVAL_TOKEN=$(printf '%s' "$APPROVAL_JSON" | jq -r '.approval_token')
|
|
50
|
+
bash bin/notify.sh dispatch "$PLAN_ID" "$APPROVAL_TOKEN"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
6. Emit telemetry in the background:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
bash bin/telemetry.sh emit "command" '{"command":"announce"}' >/dev/null 2>&1 &
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
7. Confirm whether the exact approved group send succeeded.
|
|
60
|
+
|
|
61
|
+
## Rules
|
|
62
|
+
|
|
63
|
+
- The request to announce is not dispatch consent. Always use a dedicated
|
|
64
|
+
exact-delivery checkpoint.
|
|
65
|
+
- Do not expose notification credentials.
|
|
66
|
+
- Use `bin/notify.sh`; do not call Telegram directly.
|
|
67
|
+
- Do not use Claude Code commands.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: archive
|
|
3
|
+
description: 'Fallback Codex adapter for the Egregore archive workflow.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore archive 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
|
+
## Structured UX parity
|
|
19
|
+
|
|
20
|
+
This workflow has a Claude skill with user-visible structured output. After
|
|
21
|
+
reading `.claude/skills/archive/SKILL.md`, reproduce the same visible UX in Codex:
|
|
22
|
+
|
|
23
|
+
- Preserve TUI boxes, markdown tables, rich cards, browser artifact rendering,
|
|
24
|
+
exact confirmation blocks, and "no preamble" rules from the source skill.
|
|
25
|
+
- Use the source skill's frame width, section order, labels, status footer,
|
|
26
|
+
and examples as the contract for the final response.
|
|
27
|
+
- Never replace a required box/table/card/artifact view with a prose summary
|
|
28
|
+
unless the user explicitly asks for a summary.
|
|
29
|
+
- When the source says to output a TUI box directly, paste that box as the
|
|
30
|
+
visible response, preferably in a `text` fenced block.
|
|
31
|
+
- Never show raw JSON, raw command output, or unformatted script output when
|
|
32
|
+
the source skill requires formatted status or rendered output.
|
|
33
|
+
|
|
34
|
+
1. Read `.claude/skills/archive/SKILL.md` for the workflow details.
|
|
35
|
+
2. Run the referenced `bin/` scripts directly from Codex.
|
|
36
|
+
3. Treat graph and publish steps as best-effort unless that workflow explicitly
|
|
37
|
+
says they are required.
|
|
38
|
+
4. For every external notification, follow
|
|
39
|
+
`.claude/context/notification-consent.md`: plan without sending, then show
|
|
40
|
+
a separate exact Send / Edit / Cancel checkpoint. Never infer notification
|
|
41
|
+
consent from the workflow request or a batch approval.
|
|
42
|
+
5. Keep local-mode behavior filesystem-first and avoid graph or notification
|
|
43
|
+
calls when `egregore.json` declares `"mode": "local"`.
|
|
44
|
+
6. Never call the deprecated `egregore-handoff` CLI for Egregore project
|
|
45
|
+
handoffs.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: branch
|
|
3
|
+
description: 'Fallback Codex adapter for the Egregore branch workflow.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore branch 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/branch/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,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checkup
|
|
3
|
+
description: 'Fallback Codex adapter for the Egregore checkup workflow.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore checkup 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
|
+
## Structured UX parity
|
|
19
|
+
|
|
20
|
+
This workflow has a Claude skill with user-visible structured output. After
|
|
21
|
+
reading `.claude/skills/checkup/SKILL.md`, reproduce the same visible UX in Codex:
|
|
22
|
+
|
|
23
|
+
- Preserve TUI boxes, markdown tables, rich cards, browser artifact rendering,
|
|
24
|
+
exact confirmation blocks, and "no preamble" rules from the source skill.
|
|
25
|
+
- Use the source skill's frame width, section order, labels, status footer,
|
|
26
|
+
and examples as the contract for the final response.
|
|
27
|
+
- Never replace a required box/table/card/artifact view with a prose summary
|
|
28
|
+
unless the user explicitly asks for a summary.
|
|
29
|
+
- When the source says to output a TUI box directly, paste that box as the
|
|
30
|
+
visible response, preferably in a `text` fenced block.
|
|
31
|
+
- Never show raw JSON, raw command output, or unformatted script output when
|
|
32
|
+
the source skill requires formatted status or rendered output.
|
|
33
|
+
|
|
34
|
+
1. Read `.claude/skills/checkup/SKILL.md` for the workflow details.
|
|
35
|
+
2. Run the referenced `bin/` scripts directly from Codex.
|
|
36
|
+
3. Treat graph and publish steps as best-effort unless that workflow explicitly
|
|
37
|
+
says they are required.
|
|
38
|
+
4. For every external notification, follow
|
|
39
|
+
`.claude/context/notification-consent.md`: plan without sending, then show
|
|
40
|
+
a separate exact Send / Edit / Cancel checkpoint. Never infer notification
|
|
41
|
+
consent from the workflow request or a batch approval.
|
|
42
|
+
5. Keep local-mode behavior filesystem-first and avoid graph or notification
|
|
43
|
+
calls when `egregore.json` declares `"mode": "local"`.
|
|
44
|
+
6. Never call the deprecated `egregore-handoff` CLI for Egregore project
|
|
45
|
+
handoffs.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: 'Fallback Codex adapter for the Egregore commit workflow.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore commit 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/commit/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: contribute
|
|
3
|
+
description: 'Fallback Codex adapter for the Egregore contribute workflow.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore contribute 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/contribute/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: create-skill
|
|
3
|
+
description: 'Create a skill your org owns — scaffolded in this Egregore, protected from framework updates, shared with teammates via /save.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore create-skill 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/create-skill/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: dark-mode
|
|
3
|
+
description: 'Use when generating or modifying any visual output that renders in a browser or artifact viewer: HTML pages, CSS, React SSR components, Egregore artifacts, markdown renderers, web components, design-system tokens, Tailwind themes, or standalone demos. Triggers on requests involving dark mode, theme toggles, color systems, card surfaces, browser rendering, or visual polish. The load-bearing lesson: if React SSR emits an inline hex color through `style={}`, CSS dark-mode overrides cannot reach it, so every theme-sensitive color must be emitted as `var(--token)` rather than a resolved hex. Do not use for TUI output, plain markdown files, or non-visual code.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore dark-mode 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/dark-mode/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,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: Show the current user's Egregore dashboard, recent sessions, open threads, and current work from Codex when the user invokes /dashboard or $dashboard, or asks for their dashboard.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Egregore Dashboard
|
|
7
|
+
|
|
8
|
+
Native Codex Egregore skill. Render the personal dashboard immediately from
|
|
9
|
+
`bin/dashboard-data.sh` and the shared renderer.
|
|
10
|
+
|
|
11
|
+
## Flow
|
|
12
|
+
|
|
13
|
+
1. Map user range words to ISO-ish ranges:
|
|
14
|
+
- empty or `week` -> `P7D`
|
|
15
|
+
- `today` -> `P1D`
|
|
16
|
+
- `month` -> `P30D`
|
|
17
|
+
- `all` -> `P365D`
|
|
18
|
+
2. Run `bash bin/dashboard-data.sh "" "$TIME_RANGE"` with network escalation
|
|
19
|
+
and capture stdout as JSON. This command performs the graph API call
|
|
20
|
+
internally; a normal sandboxed Codex shell can make a healthy graph look
|
|
21
|
+
unreachable.
|
|
22
|
+
3. Classify graph status:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node bin/codex-skill-render.mjs classify-graph --mode connected
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If the network-enabled command still returns `retry` because the reason is
|
|
29
|
+
`unreachable`, render the filesystem fallback and mention that the graph service
|
|
30
|
+
was unreachable after a network-enabled attempt. If network escalation is denied
|
|
31
|
+
or unavailable, run the command without escalation, render the fallback, and
|
|
32
|
+
say Codex graph network access was not granted; do not claim the graph itself
|
|
33
|
+
was unreachable.
|
|
34
|
+
|
|
35
|
+
4. Render:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node bin/codex-skill-render.mjs dashboard-card <json-file>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Paste the rendered card exactly in the visible response, preferably in a
|
|
42
|
+
`text` fenced block. Do not paraphrase the card into bullets unless the user
|
|
43
|
+
asks for a summary.
|
|
44
|
+
|
|
45
|
+
5. End with a compact next-action prompt. Use structured Codex question
|
|
46
|
+
tooling when available; otherwise render numbered choices plus `Other:`.
|
|
47
|
+
|
|
48
|
+
## Rules
|
|
49
|
+
|
|
50
|
+
- Never show raw JSON.
|
|
51
|
+
- Do not narrate each command step unless something blocks the workflow; the
|
|
52
|
+
final visible response should lead with the rendered card.
|
|
53
|
+
- Structured UX parity is required: preserve the rendered dashboard TUI card,
|
|
54
|
+
no preamble, no prose-only replacement, and no raw collector output.
|
|
55
|
+
- Do not call `bin/graph.sh` directly; `bin/dashboard-data.sh` is the data
|
|
56
|
+
boundary.
|
|
57
|
+
- In local mode, do not mention graph setup; memory files are the source of
|
|
58
|
+
truth.
|
|
59
|
+
- Do not use Claude Code commands.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deep-reflect
|
|
3
|
+
description: Deep research over the Egregore org memory — multi-hop, evidence-verified synthesis of what the org collectively knows — when the user invokes /deep-reflect or $deep-reflect.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Egregore Deep Reflect (v4)
|
|
7
|
+
|
|
8
|
+
Native Codex Egregore skill. Ask the org's memory a question and return a
|
|
9
|
+
verified, cited synthesis of what it collectively knows — including what it
|
|
10
|
+
doesn't. `/reflect` captures user thought; `/deep-reflect` researches what the
|
|
11
|
+
org already knows.
|
|
12
|
+
|
|
13
|
+
Full contracts live in `.claude/skills/deep-reflect/` (`SKILL.md` entry,
|
|
14
|
+
`RESEARCH.md` engine, `ROLES.md` agent roles, `REPORT.md` output). Follow them;
|
|
15
|
+
this file is the Codex-runtime adapter.
|
|
16
|
+
|
|
17
|
+
## Modes
|
|
18
|
+
|
|
19
|
+
- Question (default): interrogative or bare-topic arguments → "what does the
|
|
20
|
+
org know about X?"
|
|
21
|
+
- Cross-ref: "cross-reference this" / a declarative insight → "how does this
|
|
22
|
+
insight sit against existing memory?"
|
|
23
|
+
- Depth: `--brief` (1 hop wave), standard (≤3), `--deep` (≤5). Default is
|
|
24
|
+
dynamic from the corpus probe.
|
|
25
|
+
|
|
26
|
+
## Flow
|
|
27
|
+
|
|
28
|
+
1. Check `egregore.json` mode FIRST. Local mode: full engine over files; never
|
|
29
|
+
call graph, batch-graph, or notification scripts; zero graph vocabulary in
|
|
30
|
+
output. Connected: graph adds hop rails and writeback, every graph call
|
|
31
|
+
non-fatal (`2>/dev/null || true`).
|
|
32
|
+
2. FRAME: corpus probe — 2× `bin/agent.sh search "$TOPIC" --fast -n 20` with
|
|
33
|
+
different wordings + `bin/artifacts.sh find "$TOPIC"` +
|
|
34
|
+
`grep -ril "$TOPIC" memory/knowledge/ memory/handoffs/ memory/artifacts/`.
|
|
35
|
+
N = the union of unique paths; set the wave budget from N per
|
|
36
|
+
`RESEARCH.md` §Budget; decompose the question into 2-4 sub-questions;
|
|
37
|
+
print a plan line (`Researching: … · ~N relevant docs · budget M waves ·
|
|
38
|
+
est ~X min`). Under ~5 relevant docs: say memory is too thin and offer
|
|
39
|
+
`/reflect` or `/harvest` instead of faking research. If search errors or
|
|
40
|
+
returns nothing while grep hits, rely on grep and note "recall degraded".
|
|
41
|
+
3. SEED: check `memory/knowledge/research/` for prior runs on the topic —
|
|
42
|
+
their cited artifacts (frontmatter `artifacts_cited`, older reports use
|
|
43
|
+
`artifacts_consulted`; resolve filename stems with `find`) are pre-warmed
|
|
44
|
+
leads, and their `null_regions` gaps get re-audited. Build a frontier of
|
|
45
|
+
≤12 docs from search probes, frontmatter topic/quest greps, and index
|
|
46
|
+
ledgers.
|
|
47
|
+
4. HOP WAVES: the Codex runtime has no Workflow tool — run the foreground
|
|
48
|
+
staged path from `ROLES.md`: per wave, read 8-12 docs (subagents if the
|
|
49
|
+
session offers them, otherwise staged single-model passes), extract
|
|
50
|
+
claims-with-verbatim-excerpts and typed leads (doc links, quests, people,
|
|
51
|
+
sessions, topic terms, named absences). Dedup against the seen-set, score
|
|
52
|
+
leads, hop until saturation per `RESEARCH.md` (coverage on every
|
|
53
|
+
sub-question plus low novelty or zero yield; or budget).
|
|
54
|
+
5. PATTERN: two de-correlated passes. Without subagents true blindness is
|
|
55
|
+
impossible — degrade deliberately: run the TENSION pass FIRST (grouped by
|
|
56
|
+
topic), then the convergence pass (chronological), so tension-finding is
|
|
57
|
+
never anchored by an existing convergence story. Disagreement between
|
|
58
|
+
passes is a finding, never averaged away.
|
|
59
|
+
6. VERIFY: for every claim, whitespace-normalize the excerpt and re-find it in
|
|
60
|
+
the cited file (miss = miscite = kill; supported paraphrase = correct the
|
|
61
|
+
excerpt). The mechanical re-check survives self-verification — it is a
|
|
62
|
+
grep, not a judgment. Re-attack every gap claim with one extra probe; a
|
|
63
|
+
found doc refutes the gap and joins the ledger. Evidence older than ~90
|
|
64
|
+
days gets one `--fast` newer-artifact probe. Report the kill count. When
|
|
65
|
+
the verifying context is the same one that made the claims, mark the
|
|
66
|
+
report's provenance `verification: self-checked`.
|
|
67
|
+
7. SYNTHESIZE + PRESENT: stance, not summary — answer first, then ◆ primary /
|
|
68
|
+
◇ secondary findings with `memory/...` path citations, tensions, and "what
|
|
69
|
+
memory doesn't hold" (gaps + the probes that prove them). Confidence is
|
|
70
|
+
derived from evidence structure (verified + ≥3 independent sources = high;
|
|
71
|
+
single-source always labeled). Register: analyst, not critic.
|
|
72
|
+
8. CAPTURE (user-gated): Save (default) / Edit first / File follow-ups /
|
|
73
|
+
Skip. On Save write `memory/knowledge/research/YYYY-MM-DD-author-slug.md`
|
|
74
|
+
with frontmatter (question, mode, stop_reason, waves, docs_read,
|
|
75
|
+
claims_killed, builds_on, artifacts_consulted, artifacts_cited,
|
|
76
|
+
null_regions), then connected-mode best-effort graph writes per the main
|
|
77
|
+
`REPORT.md` §Writeback (MERGE with filePath — do NOT use
|
|
78
|
+
`graph-op.sh register-artifact`; `RELATES_TO`/`TENSION_WITH` for verified
|
|
79
|
+
cross-ref claims only), then
|
|
80
|
+
`bin/agent.sh save --message "Deep research: $TOPIC" --topic "$TOPIC"`.
|
|
81
|
+
On Skip: nothing is written except the local run ledger under
|
|
82
|
+
`.egregore/research-runs/`. Render the TUI box AFTER the gate, reflecting
|
|
83
|
+
the actual outcome.
|
|
84
|
+
|
|
85
|
+
## Output
|
|
86
|
+
|
|
87
|
+
Render the Egregore deep-reflect confirmation TUI after the capture gate:
|
|
88
|
+
|
|
89
|
+
- 72-column outer box, standard top/separator/content/bottom lines only.
|
|
90
|
+
- Header: `◈ DEEP REFLECT`, author, date.
|
|
91
|
+
- Body: question, ◆/◇ finding counts, confidence, waves · docs read · cited ·
|
|
92
|
+
claims cut in verification.
|
|
93
|
+
- Footer: actual saved/pushed state; say "graphed" only if the graph write
|
|
94
|
+
succeeded; in local mode omit graph language entirely.
|
|
95
|
+
- Structured UX parity is required: preserve the rendered deep-reflect TUI
|
|
96
|
+
box, no preamble, no prose-only replacement, and no raw search or graph
|
|
97
|
+
output.
|
|
98
|
+
- Never show raw graph JSON; never replace the box with prose.
|
|
99
|
+
|
|
100
|
+
## Rules
|
|
101
|
+
|
|
102
|
+
- Search budget: at most ONE non-`--fast` search probe per run (seed only);
|
|
103
|
+
`--fast` everywhere else. Count result blocks, never the banner hit count.
|
|
104
|
+
- No claim without a verbatim excerpt that survives re-finding in the file.
|
|
105
|
+
- Absence is a first-class finding — cite the probes that prove it.
|
|
106
|
+
- Don't manufacture significance: "memory holds nothing structural on this"
|
|
107
|
+
is a valid report.
|
|
108
|
+
- At most ONE clarifying question before the run, plus the capture gate.
|
|
109
|
+
- Do not use Claude Code commands.
|