create-egregore 0.19.33 → 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 +19 -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 +4 -3
- 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 +3 -1
- 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 +7 -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 +3 -1
- 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 +7 -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,221 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!--
|
|
3
|
+
EGREGORE COMPOSITION SCAFFOLD — the reusable chrome + component kit for
|
|
4
|
+
band-5 composed artifacts (`$view <doc> --compose`).
|
|
5
|
+
|
|
6
|
+
How to use: copy this file, then
|
|
7
|
+
1. fill <title>, the manifest `register`/`grammar`, nav brand + links,
|
|
8
|
+
the hero (series / h1 / standfirst / chips), and the footer.
|
|
9
|
+
2. replace the <!-- COMPONENTS: … --> region with composed sections built
|
|
10
|
+
from the component kit below — do NOT mirror the markdown; transform
|
|
11
|
+
the substance into the grammar (statement titles, panels, cards, …).
|
|
12
|
+
3. every theme-sensitive color MUST be a var(--token). Never inline hex
|
|
13
|
+
in content — dark mode breaks. The kit already does this.
|
|
14
|
+
The token blocks (vellum/nocturne) + toggle JS are complete — leave them.
|
|
15
|
+
-->
|
|
16
|
+
<html lang="en" data-theme="vellum" data-theme-pair="meridian" data-theme-mode="auto">
|
|
17
|
+
<head>
|
|
18
|
+
<meta charset="utf-8">
|
|
19
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
20
|
+
<title>__TITLE__ — Egregore</title>
|
|
21
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
22
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
23
|
+
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,400..700&family=Hanken+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
|
24
|
+
<script type="application/json" id="egregore-design-manifest">{"system":"egregore-design-convention","version":"0.3.0","lineage":"meridian","pair":"meridian","mode":"auto","resolvedTheme":"vellum","target":"browser","register":"__REGISTER__","grammar":"__GRAMMAR__","composed":true}</script>
|
|
25
|
+
<style>
|
|
26
|
+
:root{--serif:"Fraunces",Georgia,serif;--sans:"Hanken Grotesk",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--ease:cubic-bezier(.22,.61,.36,1)}
|
|
27
|
+
[data-theme="vellum"]{--paper:#eceef2;--paper-2:#e2e6ec;--card:#f8fafc;--ink:#15212e;--ink-soft:#4d5a68;--ink-faint:#8492a0;--line:#cbd4de;--line-soft:#dde3ea;--prussian:#2c4a6b;--prussian-bright:#3f74ad;--brass:#9a7521;--brass-bright:#c0962f;--teal:#1d7a6e;--rose:#a8493e;--t1:#9a7521;--t1-bg:#f3ead0;--t2:#1d7a6e;--t2-bg:#ddefea;--t3:#a8493e;--t3-bg:#f4ddd7;--contour:#bcc6d2;--shadow:0 1px 2px rgba(21,33,46,.06),0 12px 34px -18px rgba(21,33,46,.34)}
|
|
28
|
+
[data-theme="nocturne"]{--paper:#0e151d;--paper-2:#131c26;--card:#18222e;--ink:#e7ecf2;--ink-soft:#aab6c2;--ink-faint:#76838f;--line:#2a3744;--line-soft:#202b36;--prussian:#5b8cc0;--prussian-bright:#7aa9d8;--brass:#d8b25a;--brass-bright:#e7c878;--teal:#3fb0a0;--rose:#d2796b;--t1:#d8b25a;--t1-bg:#2c2616;--t2:#3fb0a0;--t2-bg:#152b29;--t3:#d2796b;--t3-bg:#2c1c18;--contour:#283543;--shadow:0 1px 2px rgba(0,0,0,.4),0 18px 40px -20px rgba(0,0,0,.7)}
|
|
29
|
+
[data-theme="loam"]{--paper:#f0ece2;--paper-2:#e7e1d3;--card:#faf7f0;--ink:#241d12;--ink-soft:#5c4f3a;--ink-faint:#8f8168;--line:#d3c9b4;--line-soft:#e2dac8;--prussian:#5a6b3a;--brass:#9a6b21;--teal:#3a7a5c;--rose:#a85a3e;--t1:#9a6b21;--t1-bg:#efe2c8;--t2:#3a7a5c;--t2-bg:#dcebe0;--t3:#a85a3e;--t3-bg:#f2ded4;--contour:#c8bca0;--shadow:0 1px 2px rgba(36,29,18,.06),0 12px 34px -18px rgba(36,29,18,.3)}
|
|
30
|
+
|
|
31
|
+
/* ── base ── */
|
|
32
|
+
*{box-sizing:border-box;margin:0;padding:0}
|
|
33
|
+
html{scroll-behavior:smooth}
|
|
34
|
+
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased;transition:background .3s var(--ease),color .3s var(--ease)}
|
|
35
|
+
a{color:var(--prussian-bright);text-decoration:none}
|
|
36
|
+
.wrap{max-width:1080px;margin:0 auto;padding:0 32px}
|
|
37
|
+
.col{max-width:860px}
|
|
38
|
+
.contours{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5}
|
|
39
|
+
.contours path{fill:none;stroke:var(--contour);stroke-width:1}
|
|
40
|
+
main{position:relative;z-index:1}
|
|
41
|
+
.rule{border:none;border-top:1px solid var(--line-soft);margin:60px 0 0}
|
|
42
|
+
code{font-family:var(--mono);font-size:.82em;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:5px;padding:1px 6px;color:var(--prussian-bright)}
|
|
43
|
+
p{color:var(--ink-soft)} p b,li b,.lede b{color:var(--ink);font-weight:600}
|
|
44
|
+
|
|
45
|
+
/* ── nav (sticky section rail) ── */
|
|
46
|
+
nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:28px;padding:13px 32px;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}
|
|
47
|
+
nav .brand{font:500 .68rem/1 var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
|
|
48
|
+
nav .brand b{color:var(--prussian-bright);font-weight:600}
|
|
49
|
+
nav .links{display:flex;gap:20px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
|
|
50
|
+
nav .links::-webkit-scrollbar{display:none}
|
|
51
|
+
nav .links a{font:400 .7rem/1 var(--mono);color:var(--ink-soft);white-space:nowrap;padding:4px 0;border-bottom:1px solid transparent}
|
|
52
|
+
nav .links a:hover{color:var(--ink);border-bottom-color:var(--t1)}
|
|
53
|
+
.toggle{flex:0 0 auto;font:500 .66rem/1 var(--mono);letter-spacing:.5px;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:6px 12px;cursor:pointer}
|
|
54
|
+
.toggle:hover{color:var(--ink);border-color:var(--ink-faint)}
|
|
55
|
+
|
|
56
|
+
/* ── hero ── */
|
|
57
|
+
header.hero{padding:92px 0 60px}
|
|
58
|
+
.series{display:flex;align-items:center;gap:14px;font:500 .7rem/1 var(--mono);letter-spacing:2.5px;text-transform:uppercase;color:var(--t1);margin-bottom:32px}
|
|
59
|
+
.series::before{content:"";width:44px;height:1px;background:var(--t1)}
|
|
60
|
+
h1{font-family:var(--serif);font-weight:420;font-size:clamp(2.6rem,5.4vw,4rem);line-height:1.06;letter-spacing:-.02em;max-width:19ch}
|
|
61
|
+
h1 em{font-style:italic;font-weight:430;color:var(--prussian-bright)}
|
|
62
|
+
.standfirst{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.44;color:var(--ink-soft);max-width:56ch;margin:26px 0 28px}
|
|
63
|
+
|
|
64
|
+
/* ── section frame ── */
|
|
65
|
+
section{padding:72px 0 6px}
|
|
66
|
+
.seclabel{display:flex;align-items:center;gap:10px;font:500 .72rem/1 var(--mono);letter-spacing:2.5px;text-transform:uppercase;color:var(--t1);margin-bottom:16px}
|
|
67
|
+
.seclabel .n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--t1);border-radius:50%;font-size:.62rem}
|
|
68
|
+
h2{font-family:var(--serif);font-weight:430;font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.12;letter-spacing:-.015em;max-width:24ch;margin-bottom:12px}
|
|
69
|
+
.lede{font-size:1.05rem;color:var(--ink-soft);max-width:62ch;margin-bottom:24px}
|
|
70
|
+
|
|
71
|
+
/* ── chips / pills / badges ── */
|
|
72
|
+
.chips{display:flex;flex-wrap:wrap;gap:9px}
|
|
73
|
+
.chip{font:500 .68rem/1 var(--mono);letter-spacing:.4px;padding:7px 13px;border-radius:20px;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);white-space:nowrap}
|
|
74
|
+
.chip.ok{border-color:var(--t2);color:var(--t2)} .chip.ok::before{content:"● ";font-size:.6rem}
|
|
75
|
+
.chip.brass{border-color:var(--t1);color:var(--t1)} .chip.brass::before{content:"◇ ";font-size:.66rem}
|
|
76
|
+
.chip.warn{border-color:var(--t3);color:var(--t3)}
|
|
77
|
+
.bd{display:inline-flex;align-items:center;gap:5px;font:600 .64rem/1 var(--mono);letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:5px;white-space:nowrap}
|
|
78
|
+
.bd.ok{background:var(--t2-bg);color:var(--t2)} .bd.half{background:var(--t1-bg);color:var(--t1)} .bd.no{background:var(--t3-bg);color:var(--t3)} .bd.neu{background:var(--paper-2);color:var(--ink-faint)}
|
|
79
|
+
|
|
80
|
+
/* ── claim / stat cards ── */
|
|
81
|
+
.claims{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 8px}
|
|
82
|
+
.claims.four{grid-template-columns:repeat(4,1fr)} .claims.two{grid-template-columns:1fr 1fr}
|
|
83
|
+
@media(max-width:760px){.claims,.claims.four,.claims.two{grid-template-columns:1fr 1fr}}
|
|
84
|
+
.claim{background:var(--card);border:1px solid var(--line-soft);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow)}
|
|
85
|
+
.claim .v{font-family:var(--serif);font-size:1.55rem;line-height:1.1;color:var(--t1)}
|
|
86
|
+
.claim.teal .v{color:var(--t2)} .claim.rose .v{color:var(--t3)}
|
|
87
|
+
.claim .l{font-size:.84rem;color:var(--ink-soft);margin-top:8px;line-height:1.5}
|
|
88
|
+
|
|
89
|
+
/* ── labeled tag card ── */
|
|
90
|
+
.tagcard{background:var(--card);border:1px solid var(--line-soft);border-radius:14px;padding:22px 26px;margin:14px 0;box-shadow:var(--shadow)}
|
|
91
|
+
.tagcard .tag{display:inline-block;font:600 .62rem/1 var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:#fff;border-radius:6px;padding:5px 9px;margin-right:12px;vertical-align:2px;background:var(--prussian)}
|
|
92
|
+
.tagcard .tag.teal{background:var(--teal)} .tagcard .tag.rose{background:var(--rose)} .tagcard .tag.brass{background:var(--brass)}
|
|
93
|
+
.tagcard h3{display:inline;font-family:var(--serif);font-weight:500;font-size:1.16rem}
|
|
94
|
+
.tagcard p{margin-top:12px;font-size:.95rem}
|
|
95
|
+
.tagcard .verdict{margin-top:12px;font:600 .74rem/1.5 var(--mono);letter-spacing:.3px}
|
|
96
|
+
.tagcard .verdict.ok{color:var(--t2)} .tagcard .verdict.no{color:var(--t3)}
|
|
97
|
+
|
|
98
|
+
/* ── comparison panels (2–3 up) ── */
|
|
99
|
+
.panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0 10px}
|
|
100
|
+
.panels.three{grid-template-columns:repeat(3,1fr)}
|
|
101
|
+
@media(max-width:760px){.panels,.panels.three{grid-template-columns:1fr}}
|
|
102
|
+
.panel{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);box-shadow:var(--shadow);display:flex;flex-direction:column}
|
|
103
|
+
.panel .ph{font:600 .7rem/1 var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:#fff;padding:13px 18px;background:var(--prussian)}
|
|
104
|
+
.panel.b .ph{background:var(--teal)} .panel.c .ph{background:var(--ink-faint)} .panel.warn .ph{background:var(--rose)}
|
|
105
|
+
.panel .pb{padding:16px 20px;font-size:.9rem;color:var(--ink-soft);flex:1}
|
|
106
|
+
.panel .pb b{color:var(--ink)}
|
|
107
|
+
.panel .price{font-family:var(--serif);font-size:1.3rem;color:var(--t1);margin:2px 0 10px}
|
|
108
|
+
.panel ul{list-style:none;margin-top:8px} .panel li{padding:5px 0 5px 18px;position:relative;line-height:1.5}
|
|
109
|
+
.panel li::before{content:"";position:absolute;left:2px;top:12px;width:5px;height:5px;border-radius:50%;background:var(--t1)}
|
|
110
|
+
.panel .pr{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
|
|
111
|
+
.panel .pr:last-child{border-bottom:none} .panel .pr .k{font:500 .68rem/1.4 var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.4px}
|
|
112
|
+
.panel .pf{padding:12px 20px;border-top:1px solid var(--line-soft);font:500 .68rem/1.5 var(--mono);color:var(--ink-faint)}
|
|
113
|
+
.verdict-band{background:var(--t2-bg);border:1px solid var(--t2);border-radius:12px;padding:16px 22px;font:500 .82rem/1.7 var(--mono);color:var(--ink)}
|
|
114
|
+
.verdict-band b{color:var(--t2)}
|
|
115
|
+
|
|
116
|
+
/* ── highlight callout ── */
|
|
117
|
+
.hl{background:var(--t2-bg);border:1px solid var(--t2);border-radius:14px;padding:22px 26px;margin:18px 0}
|
|
118
|
+
.hl.brass{background:var(--t1-bg);border-color:var(--t1)} .hl.rose{background:var(--t3-bg);border-color:var(--t3)}
|
|
119
|
+
.hl .k{font:600 .66rem/1 var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--t2)}
|
|
120
|
+
.hl.brass .k{color:var(--t1)} .hl.rose .k{color:var(--t3)}
|
|
121
|
+
.hl h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:8px 0 10px}
|
|
122
|
+
.hl p{font-size:.96rem} .hl .num{font-family:var(--serif);font-style:italic;color:var(--ink)}
|
|
123
|
+
|
|
124
|
+
/* ── Q/A ledger ── */
|
|
125
|
+
.ledger{margin:24px 0;border-top:1px solid var(--line)}
|
|
126
|
+
.ledger .row{display:grid;grid-template-columns:230px 1fr;gap:24px;padding:16px 4px;border-bottom:1px solid var(--line-soft)}
|
|
127
|
+
@media(max-width:680px){.ledger .row{grid-template-columns:1fr}}
|
|
128
|
+
.ledger .q{font:500 .78rem/1.5 var(--mono);color:var(--ink-faint);padding-top:3px}
|
|
129
|
+
.ledger .a{font-size:.95rem;color:var(--ink-soft)} .ledger .a b{color:var(--ink)}
|
|
130
|
+
|
|
131
|
+
/* ── numbered steps ── */
|
|
132
|
+
.steps{margin:24px 0;counter-reset:st}
|
|
133
|
+
.step{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-soft)}
|
|
134
|
+
.step:last-child{border-bottom:none}
|
|
135
|
+
.step .b{counter-increment:st;font-family:var(--serif);font-size:1.25rem;color:var(--t1)} .step .b::before{content:counter(st,decimal-leading-zero)}
|
|
136
|
+
.step h4{font-family:var(--serif);font-weight:500;font-size:1.05rem;margin-bottom:3px} .step h4 .min{font:500 .64rem/1 var(--mono);color:var(--ink-faint);letter-spacing:.5px;margin-left:8px}
|
|
137
|
+
.step p{font-size:.9rem}
|
|
138
|
+
|
|
139
|
+
/* ── feature rows w/ trailing badges ── */
|
|
140
|
+
.feat{display:grid;grid-template-columns:1fr auto;gap:14px 20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line-soft)}
|
|
141
|
+
.feat:last-child{border-bottom:none} .feat .fx{font-size:.98rem;color:var(--ink-soft)} .feat .fx b{color:var(--ink);font-weight:600}
|
|
142
|
+
.feat .fb{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
|
|
143
|
+
|
|
144
|
+
/* ── checkbox thread list (decisions) ── */
|
|
145
|
+
.threads{list-style:none;margin:24px 0}
|
|
146
|
+
.threads li{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:.98rem;color:var(--ink-soft);align-items:baseline}
|
|
147
|
+
.threads li::before{content:"";flex:0 0 auto;width:12px;height:12px;border:1.5px solid var(--t1);border-radius:3px;transform:translateY(1px)}
|
|
148
|
+
.threads b{color:var(--ink)}
|
|
149
|
+
|
|
150
|
+
/* ── gap / negative callout ── */
|
|
151
|
+
.gap{background:var(--t3-bg);border:1px solid var(--t3);border-radius:14px;padding:22px 26px;margin:22px 0}
|
|
152
|
+
.gap h3{font-family:var(--serif);font-weight:500;font-size:1.15rem;color:var(--t3);margin-bottom:12px}
|
|
153
|
+
.gap ul{list-style:none} .gap li{padding:5px 0 5px 20px;position:relative;font-size:.94rem;color:var(--ink-soft)}
|
|
154
|
+
.gap li::before{content:"×";position:absolute;left:2px;color:var(--t3);font-weight:600} .gap li b{color:var(--ink)}
|
|
155
|
+
|
|
156
|
+
/* ── status / summary table ── */
|
|
157
|
+
.sumtable{width:100%;border-collapse:collapse;margin:24px 0;font-size:.9rem}
|
|
158
|
+
.sumtable th{text-align:left;font:600 .64rem/1 var(--mono);letter-spacing:.8px;text-transform:uppercase;color:var(--ink-faint);padding:0 12px 12px;border-bottom:1px solid var(--line)}
|
|
159
|
+
.sumtable th.c,.sumtable td.c{text-align:center}
|
|
160
|
+
.sumtable td{padding:11px 12px;border-bottom:1px solid var(--line-soft);color:var(--ink-soft);vertical-align:middle}
|
|
161
|
+
.sumtable tr td:first-child{color:var(--ink);font-weight:500}
|
|
162
|
+
.sumtable .tier{font:500 .64rem/1 var(--mono);text-transform:uppercase;letter-spacing:.4px;color:var(--ink-faint)}
|
|
163
|
+
.dot{display:inline-block;width:18px;height:18px;line-height:18px;border-radius:50%;font-size:.72rem;font-weight:700}
|
|
164
|
+
.dot.ok{background:var(--t2-bg);color:var(--t2)} .dot.half{background:var(--t1-bg);color:var(--t1)} .dot.no{background:var(--t3-bg);color:var(--t3)} .dot.neu{background:var(--paper-2);color:var(--ink-faint)}
|
|
165
|
+
|
|
166
|
+
/* ── accent-left readout ── */
|
|
167
|
+
.readout{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--t1);border-radius:4px;padding:20px 24px;margin:28px 0;font-size:1rem;color:var(--ink-soft)}
|
|
168
|
+
.readout b{color:var(--ink)}
|
|
169
|
+
|
|
170
|
+
/* ── footer ── */
|
|
171
|
+
footer{padding:64px 0 90px;font:400 .74rem/1.8 var(--mono);color:var(--ink-faint)}
|
|
172
|
+
footer .tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
|
|
173
|
+
footer .tg{border:1px solid var(--line-soft);border-radius:6px;padding:3px 10px;background:var(--card)}
|
|
174
|
+
</style>
|
|
175
|
+
</head>
|
|
176
|
+
<body>
|
|
177
|
+
<svg class="contours" width="100%" height="100%" preserveAspectRatio="none" viewBox="0 0 1400 900"><path d="M-50,160 C300,90 700,240 1450,130"/><path d="M-50,440 C400,360 900,540 1450,420"/><path d="M-50,720 C350,660 800,820 1450,710"/></svg>
|
|
178
|
+
<main>
|
|
179
|
+
<nav>
|
|
180
|
+
<span class="brand">EGREGORE · <b>__BRAND__</b></span>
|
|
181
|
+
<div class="links"><!-- NAV: one <a href="#anchor">Short label</a> per section --></div>
|
|
182
|
+
<button class="toggle" onclick="__t()">◐ <span id="tl">nocturne</span></button>
|
|
183
|
+
</nav>
|
|
184
|
+
|
|
185
|
+
<div class="wrap col">
|
|
186
|
+
|
|
187
|
+
<header class="hero">
|
|
188
|
+
<div class="series">__SERIES_KICKER__</div>
|
|
189
|
+
<h1>__LEAD__. <em>__ACCENT_PHRASE__</em></h1>
|
|
190
|
+
<p class="standfirst">__STANDFIRST__</p>
|
|
191
|
+
<div class="chips"><!-- CHIPS: from status/meta --></div>
|
|
192
|
+
</header>
|
|
193
|
+
|
|
194
|
+
<!-- COMPONENTS: compose sections here. Each section:
|
|
195
|
+
<hr class="rule"><section id="anchor">
|
|
196
|
+
<div class="seclabel"><span class="n">01</span> LABEL</div>
|
|
197
|
+
<h2>Statement title — the finding, not the raw heading.</h2>
|
|
198
|
+
… pick from the kit: .ledger .tagcard .claims .panels+.verdict-band
|
|
199
|
+
.hl .steps .feat .threads .gap .sumtable .readout …
|
|
200
|
+
</section>
|
|
201
|
+
-->
|
|
202
|
+
|
|
203
|
+
<footer>
|
|
204
|
+
__FOOTER_LINE__
|
|
205
|
+
<div class="tags"><span class="tg">__KIND__</span><span class="tg">__AUTHOR__</span><span class="tg">ugi · __TRAIL__</span><span class="tg">composed</span></div>
|
|
206
|
+
</footer>
|
|
207
|
+
|
|
208
|
+
</div>
|
|
209
|
+
</main>
|
|
210
|
+
<script>
|
|
211
|
+
(function(){
|
|
212
|
+
var saved=localStorage.getItem('eg-theme-mode');
|
|
213
|
+
var prefersDark=window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
214
|
+
var t=saved==='dark'||(saved!=='light'&&prefersDark)?'nocturne':'vellum';
|
|
215
|
+
apply(t);
|
|
216
|
+
window.__t=function(){apply(document.documentElement.dataset.theme==='vellum'?'nocturne':'vellum',true)};
|
|
217
|
+
function apply(theme,persist){document.documentElement.dataset.theme=theme;var el=document.getElementById('tl');if(el)el.textContent=theme==='vellum'?'nocturne':'vellum';if(persist)localStorage.setItem('eg-theme-mode',theme==='nocturne'?'dark':'light')}
|
|
218
|
+
})();
|
|
219
|
+
</script>
|
|
220
|
+
</body>
|
|
221
|
+
</html>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: visual-explain
|
|
3
|
+
description: 'Explain concepts visually using ASCII diagrams, flow charts, tables, and structural maps. Use when asked to explain, compare, or show how something works.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore visual-explain 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/visual-explain/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/visual-explain/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,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wrap
|
|
3
|
+
description: Wrap an Egregore session when the user invokes /wrap or $wrap, or says they are done, wrapping up, or at a stopping point in Codex.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Egregore Wrap
|
|
7
|
+
|
|
8
|
+
Native Codex Egregore skill. Use this inside an Egregore checkout with
|
|
9
|
+
`bin/agent.sh`. The command routes through `bin/capture-run.sh --mode personal`.
|
|
10
|
+
It writes the personal record first, appends graph and handoff-completion events
|
|
11
|
+
to the local WAL, and reconciles them detached; do not wait for or repeat that
|
|
12
|
+
background work.
|
|
13
|
+
|
|
14
|
+
## Flow
|
|
15
|
+
|
|
16
|
+
1. Synthesize a topic, a one to three sentence summary, and concise open notes
|
|
17
|
+
from the current session.
|
|
18
|
+
2. If the session has ambiguous or potentially misleading state, confirm with
|
|
19
|
+
the user. Use structured Codex question tooling when available; otherwise
|
|
20
|
+
show numbered choices plus `Other:` and wait.
|
|
21
|
+
3. Resolve the author from `.egregore-state.json` `github_username`, then
|
|
22
|
+
`name`, then git config.
|
|
23
|
+
4. Write the notes to a temp markdown file.
|
|
24
|
+
5. Run:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bin/agent.sh wrap --from "$AUTHOR" --topic "$TOPIC" --summary "$SUMMARY" --body-file "$BODY_FILE"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
6. If `git status --porcelain` reports repo changes after the wrap, run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bin/agent.sh save --message "Wrap: $TOPIC" --topic "$TOPIC"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
7. Report the `memory/wraps/...` path and whether code changes were saved.
|
|
37
|
+
|
|
38
|
+
## Output
|
|
39
|
+
|
|
40
|
+
Structured UX parity is required. Finish with the standard Egregore wrap
|
|
41
|
+
confirmation TUI, not a prose-only summary:
|
|
42
|
+
|
|
43
|
+
- Use a 72-column outer box with only the four standard line patterns:
|
|
44
|
+
top rule, separator rule, content line, bottom rule.
|
|
45
|
+
- Header: `WRAP`, author, and date.
|
|
46
|
+
- Body: topic, one compact summary, open threads or "No open threads", and
|
|
47
|
+
the `memory/wraps/...` path.
|
|
48
|
+
- Footer: saved/pushed status. If code changes were saved, show that. If the
|
|
49
|
+
wrap only touched memory, say so.
|
|
50
|
+
- Output the box directly, preferably in a `text` fenced block, with no
|
|
51
|
+
narration before it.
|
|
52
|
+
|
|
53
|
+
## Rules
|
|
54
|
+
|
|
55
|
+
- Do not use Claude Code commands.
|
|
56
|
+
- Do not invent finished work. Separate completed work, verification, and open
|
|
57
|
+
follow-ups.
|
|
58
|
+
- If save fails, report the failure and leave the local commits untouched.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generatedBy": "bin/codex-render-spec.mjs",
|
|
3
|
+
"source": "CLAUDE.md",
|
|
4
|
+
"sections": [
|
|
5
|
+
{
|
|
6
|
+
"section": "(intro)",
|
|
7
|
+
"action": "replace",
|
|
8
|
+
"sourceHash": "a33ca691aacf",
|
|
9
|
+
"note": "Reframed for Codex: names AGENTS.md as the delivery surface and the manifest; \"organizations using Claude Code\" generalized."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"section": "Identity & Upstream",
|
|
13
|
+
"action": "keep",
|
|
14
|
+
"sourceHash": "ddcbc0083aff",
|
|
15
|
+
"note": "Kept; /update, /contribute, /save tokens rendered as $skill tokens."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"section": "Cross-Runtime Compatibility",
|
|
19
|
+
"action": "keep",
|
|
20
|
+
"sourceHash": "75d02e2603f5",
|
|
21
|
+
"note": "Kept verbatim — framework parity applies equally to Claude Code, Codex, and Pi."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"section": "Voice",
|
|
25
|
+
"action": "keep",
|
|
26
|
+
"sourceHash": "af73d4eaa7cd",
|
|
27
|
+
"note": "Kept — all runtimes can consult the shared voice rules and register-specific skills."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"section": "On Launch — MANDATORY FIRST ACTION",
|
|
31
|
+
"action": "replace",
|
|
32
|
+
"sourceHash": "233d160f9ca8",
|
|
33
|
+
"note": "Claude SessionStart hook does not run on Codex; the egregore launcher renders the card via bin/codex-session-start.sh before the session. Greeting-replay instruction dropped (card is already on screen)."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"section": "After Greeting — BRANCH ON FIRST RESPONSE",
|
|
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)."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"section": "Config Files",
|
|
43
|
+
"action": "keep",
|
|
44
|
+
"sourceHash": "4ca75fe428ca",
|
|
45
|
+
"note": "Kept verbatim — shell facts, runtime-neutral."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"section": "Knowledge Graph",
|
|
49
|
+
"action": "keep",
|
|
50
|
+
"sourceHash": "b5d9a149f1a6",
|
|
51
|
+
"note": "Kept verbatim — bin/graph.sh is runtime-neutral."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"section": "Egregore Retrieval Beat",
|
|
55
|
+
"action": "keep",
|
|
56
|
+
"sourceHash": "0c4d4715fb13",
|
|
57
|
+
"note": "Kept verbatim — product attribution applies across runtimes."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"section": "Notifications",
|
|
61
|
+
"action": "keep",
|
|
62
|
+
"sourceHash": "1649d6eebb96",
|
|
63
|
+
"note": "Kept verbatim — bin/notify.sh is runtime-neutral."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"section": "Onboarding",
|
|
67
|
+
"action": "keep",
|
|
68
|
+
"sourceHash": "ee3ecb296252",
|
|
69
|
+
"note": "Kept; /onboarding rendered as $onboarding."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"section": "Transparency Beat",
|
|
73
|
+
"action": "keep",
|
|
74
|
+
"sourceHash": "e06da653d3ad",
|
|
75
|
+
"note": "Kept verbatim."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"section": "Memory",
|
|
79
|
+
"action": "keep",
|
|
80
|
+
"sourceHash": "d75dc9f6d88c",
|
|
81
|
+
"note": "Kept verbatim."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"section": "Loom Routing",
|
|
85
|
+
"action": "replace",
|
|
86
|
+
"sourceHash": "b6a6ca2bc2b7",
|
|
87
|
+
"note": "Loom delegation rides the Claude Code Agent tool; Codex has no subagent delegation — commands run inline. Preambles and bin/loom.sh calls marked skippable."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"section": "Git Workflow",
|
|
91
|
+
"action": "keep",
|
|
92
|
+
"sourceHash": "fe3d9dabd03d",
|
|
93
|
+
"note": "Kept; slash tokens rendered as $skill tokens. Branch diagram unchanged (code fence)."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"section": "Working Conventions",
|
|
97
|
+
"action": "keep",
|
|
98
|
+
"sourceHash": "2e4ec18b72a6",
|
|
99
|
+
"note": "Kept verbatim."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"section": "Command Awareness",
|
|
103
|
+
"action": "keep",
|
|
104
|
+
"sourceHash": "be00d1fc715f",
|
|
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
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"section": "Socratic Questioning (MANDATORY)",
|
|
109
|
+
"action": "replace",
|
|
110
|
+
"sourceHash": "febe45868016",
|
|
111
|
+
"note": "AskUserQuestion -> numbered plain-text question batches with explicit stop-and-wait; multiSelect -> \"pick any that apply\"."
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"section": "Telemetry",
|
|
115
|
+
"action": "keep",
|
|
116
|
+
"sourceHash": "f45afa2da8ac",
|
|
117
|
+
"note": "Kept verbatim — bin/telemetry.sh is runtime-neutral."
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"section": "Mode",
|
|
121
|
+
"action": "keep",
|
|
122
|
+
"sourceHash": "0f74e18fd1b4",
|
|
123
|
+
"note": "Kept; /env and /checkup rendered as $skill tokens."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"section": "Environment Isolation",
|
|
127
|
+
"action": "replace",
|
|
128
|
+
"sourceHash": "086e2c1d9019",
|
|
129
|
+
"note": "boundary-check is a Claude PreToolUse hook with no .codex equivalent — two-tier model stated as a standing instruction; AskUserQuestion remediation -> numbered options, now including the two consent-grant options (session grant -> .egregore-boundary-consent, instance grant -> .egregore-boundary.local.json read[])."
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|