create-egregore 0.21.6 → 0.22.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 +58 -6
- package/assets/egregore-launcher.sh +15 -2
- package/lib/claude-runtime.js +2 -0
- package/lib/codex-runtime.js +2 -0
- package/lib/setup.js +20 -3
- package/package.json +2 -2
- package/runtime/claude/.claude/context/commit-format.md +7 -4
- package/runtime/claude/.claude/context/handoff-claiming.md +32 -0
- package/runtime/claude/.claude/context/notification-consent.md +12 -9
- package/runtime/claude/.claude/hooks/boundary-check.sh +14 -331
- package/runtime/claude/.claude/hooks/memory-read-guard.sh +9 -1
- package/runtime/claude/.claude/rules/voice-bedrock.md +6 -2
- package/runtime/claude/.claude/settings.json +1 -1
- package/runtime/claude/.claude/skills/commit/SKILL.md +5 -3
- package/runtime/claude/.claude/skills/dark-mode/SKILL.md +48 -369
- package/runtime/claude/.claude/skills/records/SKILL.md +158 -0
- package/runtime/claude/.claude/skills/reflect/SKILL.md +50 -21
- package/runtime/claude/.claude/skills/review-pr/SKILL.md +4 -2
- package/runtime/claude/.claude/skills/save/SKILL.md +9 -3
- package/runtime/claude/.claude/skills/summon/SKILL.md +138 -207
- package/runtime/claude/.claude/skills/tui-design/SKILL.md +1 -1
- package/runtime/claude/.claude/skills/update/SKILL.md +1 -1
- package/runtime/claude/.claude/skills/view/SKILL.md +52 -16
- package/runtime/claude/.claude/skills/view/compose-scaffold.html +19 -13
- package/runtime/claude/CLAUDE.md +59 -95
- package/runtime/claude/bin/agent.sh +231 -7
- package/runtime/claude/bin/api-call.sh +44 -23
- package/runtime/claude/bin/artifact-register.sh +7 -1
- package/runtime/claude/bin/artifact-writeback.sh +1 -1
- package/runtime/claude/bin/artifacts.sh +66 -265
- package/runtime/claude/bin/attendant.sh +4 -1
- package/runtime/claude/bin/boundary-guard.cjs +1848 -0
- package/runtime/claude/bin/boundary-hook.sh +41 -0
- package/runtime/claude/bin/boundary.sh +15 -155
- package/runtime/claude/bin/capture-run.sh +32 -2
- package/runtime/claude/bin/codex-render-spec.mjs +24 -46
- package/runtime/claude/bin/codex-session-start.sh +19 -0
- package/runtime/claude/bin/codex-skill-render.mjs +18 -0
- package/runtime/claude/bin/config-get.sh +10 -1
- package/runtime/claude/bin/connect-refresh.sh +16 -0
- package/runtime/claude/bin/corpus_map.py +5 -0
- package/runtime/claude/bin/data/capabilities/claude.json +1480 -0
- package/runtime/claude/bin/genui.sh +19 -0
- package/runtime/claude/bin/graph-batch.sh +1 -1
- package/runtime/claude/bin/graph-op.sh +14 -0
- package/runtime/claude/bin/graph.sh +1 -1
- package/runtime/claude/bin/handoff-pr-backfill.sh +1 -1
- package/runtime/claude/bin/handoff-run.sh +11 -6
- package/runtime/claude/bin/ingest-item.sh +1 -1
- package/runtime/claude/bin/ingest-surface.html +22 -4
- package/runtime/claude/bin/issue.sh +1 -1
- package/runtime/claude/bin/knowledge.sh +1 -1
- package/runtime/claude/bin/lib/card-delivery.sh +329 -0
- package/runtime/claude/bin/lib/config.sh +148 -3
- package/runtime/claude/bin/lib/context.sh +38 -67
- package/runtime/claude/bin/lib/genui-entry.py +36 -0
- package/runtime/claude/bin/lib/git-message.sh +25 -6
- package/runtime/claude/bin/lib/git-sync.sh +12 -4
- package/runtime/claude/bin/lib/greeting.sh +255 -28
- package/runtime/claude/bin/lib/handoff_meta.py +294 -0
- package/runtime/claude/bin/lib/health-footer.sh +83 -2
- package/runtime/claude/bin/lib/identity.sh +31 -10
- package/runtime/claude/bin/lib/instance-registry.sh +71 -0
- package/runtime/claude/bin/lib/local_ci_receipt.py +249 -0
- package/runtime/claude/bin/lib/metrics.sh +121 -8
- package/runtime/claude/bin/lib/notices.sh +36 -0
- package/runtime/claude/bin/lib/record_outcomes.py +729 -0
- package/runtime/claude/bin/lib/reflexes.py +267 -0
- package/runtime/claude/bin/lib/retrieval_scorecard.py +624 -0
- package/runtime/claude/bin/lib/session-record-prompt.txt +18 -0
- package/runtime/claude/bin/lib/session_record.py +3747 -0
- package/runtime/claude/bin/lib/session_trail.py +1983 -0
- package/runtime/claude/bin/lib/settings-drift.sh +8 -5
- package/runtime/claude/bin/lib/startup-restart.sh +41 -0
- package/runtime/claude/bin/lib/worktree-links.sh +92 -0
- package/runtime/claude/bin/memory-push.sh +6 -0
- package/runtime/claude/bin/merge-gate.sh +498 -0
- package/runtime/claude/bin/notify.sh +5 -2
- package/runtime/claude/bin/page-access.sh +103 -0
- package/runtime/claude/bin/person.sh +13 -2
- package/runtime/claude/bin/pi-render-spec.mjs +0 -1
- package/runtime/claude/bin/pi-spirit-discovery.mjs +34 -0
- package/runtime/claude/bin/post-update.sh +181 -0
- package/runtime/claude/bin/prime-render-spec.mjs +0 -1
- package/runtime/claude/bin/publish-artifact.sh +89 -42
- package/runtime/claude/bin/qa-inventory.sh +2 -2
- package/runtime/claude/bin/quest.sh +1 -1
- package/runtime/claude/bin/records.sh +11 -0
- package/runtime/claude/bin/reflexes/05-vitals.sh +9 -0
- package/runtime/claude/bin/reflexes/10-open-items.sh +12 -0
- package/runtime/claude/bin/reflexes/15-retrieval.sh +8 -0
- package/runtime/claude/bin/reflexes/20-nightly.sh +100 -0
- package/runtime/claude/bin/reflexes/20-sandbox.sh +85 -0
- package/runtime/claude/bin/reflexes/30-cost.py +116 -0
- package/runtime/claude/bin/reflexes/40-shells.py +51 -0
- package/runtime/claude/bin/reflexes/README.md +61 -0
- package/runtime/claude/bin/reflexes.sh +7 -0
- package/runtime/claude/bin/runtime-identity.sh +140 -42
- package/runtime/claude/bin/screenshot.sh +77 -0
- package/runtime/claude/bin/scroll.sh +1 -1
- package/runtime/claude/bin/search.sh +31 -5
- package/runtime/claude/bin/session-autosave.sh +6 -3
- package/runtime/claude/bin/session-id.sh +147 -0
- package/runtime/claude/bin/session-log.sh +19 -0
- package/runtime/claude/bin/session-record.sh +26 -0
- package/runtime/claude/bin/session-start.sh +121 -151
- package/runtime/claude/bin/settings.sh +13 -8
- package/runtime/claude/bin/spirit-discovery-claude.sh +4 -0
- package/runtime/claude/bin/spirit-discovery-codex.sh +4 -0
- package/runtime/claude/bin/spirit-discovery-pi.sh +4 -0
- package/runtime/claude/bin/spirit-discovery-prime.sh +4 -0
- package/runtime/claude/bin/spirit-discovery.sh +4 -0
- package/runtime/claude/bin/startup-check.sh +1 -1
- package/runtime/claude/bin/telemetry.sh +11 -4
- package/runtime/claude/bin/test-baseline.sh +33 -5
- package/runtime/claude/bin/todo.sh +1 -1
- package/runtime/claude/bin/worktree-create.sh +15 -45
- package/runtime/claude/bin/worktree.sh +6 -0
- package/runtime/claude/docs/spirit-discovery.md +96 -0
- package/runtime/claude/egregore_runtime/__init__.py +18 -12
- package/runtime/claude/egregore_runtime/access.py +608 -0
- package/runtime/claude/egregore_runtime/access_cli.py +190 -0
- package/runtime/claude/egregore_runtime/adapters/invitation.py +5 -3
- package/runtime/claude/egregore_runtime/adapters/qmd.py +521 -47
- package/runtime/claude/egregore_runtime/admin_entry.py +56 -0
- package/runtime/claude/egregore_runtime/artifacts.py +222 -16
- package/runtime/claude/egregore_runtime/contracts.py +27 -0
- package/runtime/claude/egregore_runtime/eligibility.py +5 -12
- package/runtime/claude/egregore_runtime/episode_binding.py +16 -5
- package/runtime/claude/egregore_runtime/github_issues.py +2 -2
- package/runtime/claude/egregore_runtime/handoff_lookup.py +9 -20
- package/runtime/claude/egregore_runtime/harness_cli.py +674 -149
- package/runtime/claude/egregore_runtime/held.py +2436 -0
- package/runtime/claude/egregore_runtime/hosted_api.py +137 -0
- package/runtime/claude/egregore_runtime/identity.py +196 -65
- package/runtime/claude/egregore_runtime/identity_transfer.py +6 -2
- package/runtime/claude/egregore_runtime/ingest_cli.py +2 -2
- package/runtime/claude/egregore_runtime/ingest_index_cli.py +4 -16
- package/runtime/claude/egregore_runtime/installation.py +119 -0
- package/runtime/claude/egregore_runtime/investigation.py +64 -41
- package/runtime/claude/egregore_runtime/investigation_guidance.py +16 -11
- package/runtime/claude/egregore_runtime/issue_cli.py +51 -32
- package/runtime/claude/egregore_runtime/issue_reporting.py +4 -3
- package/runtime/claude/egregore_runtime/issue_triage_service.py +2 -2
- package/runtime/claude/egregore_runtime/issues.py +12 -6
- package/runtime/claude/egregore_runtime/knowledge.py +331 -5
- package/runtime/claude/egregore_runtime/knowledge_cli.py +57 -17
- package/runtime/claude/egregore_runtime/lifecycle.py +88 -22
- package/runtime/claude/egregore_runtime/lifecycle_cli.py +21 -13
- package/runtime/claude/egregore_runtime/line_ids.py +10 -0
- package/runtime/claude/egregore_runtime/memory_push.py +349 -0
- package/runtime/claude/egregore_runtime/observe.py +64 -25
- package/runtime/claude/egregore_runtime/observers.py +19 -0
- package/runtime/claude/egregore_runtime/optional_modules.py +13 -0
- package/runtime/claude/egregore_runtime/outputs_cli.py +321 -0
- package/runtime/claude/egregore_runtime/policy.py +651 -24
- package/runtime/claude/egregore_runtime/private_result.py +2 -1
- package/runtime/claude/egregore_runtime/projection.py +946 -0
- package/runtime/claude/egregore_runtime/quest_cli.py +20 -23
- package/runtime/claude/egregore_runtime/question_cli.py +15 -11
- package/runtime/claude/egregore_runtime/questions.py +10 -10
- package/runtime/claude/egregore_runtime/quests.py +10 -10
- package/runtime/claude/egregore_runtime/record_publish.py +548 -0
- package/runtime/claude/egregore_runtime/record_subject.py +564 -0
- package/runtime/claude/egregore_runtime/research_ingest.py +2 -4
- package/runtime/claude/egregore_runtime/runtime.py +169 -60
- package/runtime/claude/egregore_runtime/sandbox.py +194 -0
- package/runtime/claude/egregore_runtime/scroll_cli.py +22 -32
- package/runtime/claude/egregore_runtime/scrolls.py +23 -15
- package/runtime/claude/egregore_runtime/shadow.py +262 -0
- package/runtime/claude/egregore_runtime/spirit_discovery.py +487 -0
- package/runtime/claude/egregore_runtime/spirit_discovery_cli.py +25 -0
- package/runtime/claude/egregore_runtime/spirit_discovery_transport.py +18 -0
- package/runtime/claude/egregore_runtime/status.py +101 -44
- package/runtime/claude/egregore_runtime/status_cli.py +13 -5
- package/runtime/claude/egregore_runtime/sync.py +39 -21
- package/runtime/claude/egregore_runtime/taste.py +934 -0
- package/runtime/claude/egregore_runtime/taste_cli.py +242 -0
- package/runtime/claude/egregore_runtime/taste_rules.py +91 -0
- package/runtime/claude/egregore_runtime/telemetry.py +26 -3
- package/runtime/claude/egregore_runtime/todo_cli.py +15 -12
- package/runtime/claude/egregore_runtime/todos.py +3 -2
- package/runtime/claude/egregore_runtime/upgrade.py +85 -58
- package/runtime/claude/egregore_runtime/writeback.py +330 -24
- package/runtime/claude/manifest.json +65 -5
- package/runtime/codex/.claude/context/handoff-claiming.md +32 -0
- package/runtime/codex/.claude/context/notification-consent.md +12 -9
- package/runtime/codex/.claude/skills/view/SKILL.md +438 -0
- package/runtime/codex/.codex/hooks.json +11 -0
- package/runtime/codex/.codex/skills/dark-mode/SKILL.md +1 -1
- package/runtime/codex/.codex/skills/records/SKILL.md +29 -0
- package/runtime/codex/.codex/skills/summon/SKILL.md +1 -1
- package/runtime/codex/.codex/skills/view/assets/compose-scaffold.html +19 -13
- package/runtime/codex/.codex/spec-manifest.json +13 -19
- package/runtime/codex/AGENTS.md +54 -105
- package/runtime/codex/bin/agent.sh +231 -7
- package/runtime/codex/bin/api-call.sh +44 -23
- package/runtime/codex/bin/artifact-register.sh +7 -1
- package/runtime/codex/bin/artifact-writeback.sh +1 -1
- package/runtime/codex/bin/artifacts.sh +66 -265
- package/runtime/codex/bin/attendant.sh +4 -1
- package/runtime/codex/bin/boundary-guard.cjs +1848 -0
- package/runtime/codex/bin/boundary-hook.sh +41 -0
- package/runtime/codex/bin/capture-run.sh +32 -2
- package/runtime/codex/bin/codex-render-spec.mjs +24 -46
- package/runtime/codex/bin/codex-session-start.sh +19 -0
- package/runtime/codex/bin/codex-skill-render.mjs +18 -0
- package/runtime/codex/bin/config-get.sh +10 -1
- package/runtime/codex/bin/connect-refresh.sh +16 -0
- package/runtime/codex/bin/corpus_map.py +5 -0
- package/runtime/codex/bin/data/capabilities/codex.json +1458 -0
- package/runtime/codex/bin/genui.sh +19 -0
- package/runtime/codex/bin/graph-batch.sh +1 -1
- package/runtime/codex/bin/graph-op.sh +14 -0
- package/runtime/codex/bin/graph.sh +1 -1
- package/runtime/codex/bin/handoff-pr-backfill.sh +1 -1
- package/runtime/codex/bin/handoff-run.sh +11 -6
- package/runtime/codex/bin/ingest-item.sh +1 -1
- package/runtime/codex/bin/ingest-surface.html +22 -4
- package/runtime/codex/bin/issue.sh +1 -1
- package/runtime/codex/bin/knowledge.sh +1 -1
- package/runtime/codex/bin/lib/card-delivery.sh +329 -0
- package/runtime/codex/bin/lib/config.sh +148 -3
- package/runtime/codex/bin/lib/context.sh +38 -67
- package/runtime/codex/bin/lib/genui-entry.py +36 -0
- package/runtime/codex/bin/lib/git-message.sh +25 -6
- package/runtime/codex/bin/lib/git-sync.sh +12 -4
- package/runtime/codex/bin/lib/greeting.sh +255 -28
- package/runtime/codex/bin/lib/handoff_meta.py +294 -0
- package/runtime/codex/bin/lib/health-footer.sh +83 -2
- package/runtime/codex/bin/lib/identity.sh +31 -10
- package/runtime/codex/bin/lib/instance-registry.sh +71 -0
- package/runtime/codex/bin/lib/local_ci_receipt.py +249 -0
- package/runtime/codex/bin/lib/metrics.sh +121 -8
- package/runtime/codex/bin/lib/notices.sh +36 -0
- package/runtime/codex/bin/lib/record_outcomes.py +729 -0
- package/runtime/codex/bin/lib/reflexes.py +267 -0
- package/runtime/codex/bin/lib/retrieval_scorecard.py +624 -0
- package/runtime/codex/bin/lib/session-record-prompt.txt +18 -0
- package/runtime/codex/bin/lib/session_record.py +3747 -0
- package/runtime/codex/bin/lib/session_trail.py +1983 -0
- package/runtime/codex/bin/lib/settings-drift.sh +8 -5
- package/runtime/codex/bin/lib/startup-restart.sh +41 -0
- package/runtime/codex/bin/lib/worktree-links.sh +92 -0
- package/runtime/codex/bin/memory-push.sh +6 -0
- package/runtime/codex/bin/merge-gate.sh +498 -0
- package/runtime/codex/bin/notify.sh +5 -2
- package/runtime/codex/bin/page-access.sh +103 -0
- package/runtime/codex/bin/person.sh +13 -2
- package/runtime/codex/bin/pi-render-spec.mjs +0 -1
- package/runtime/codex/bin/pi-spirit-discovery.mjs +34 -0
- package/runtime/codex/bin/post-update.sh +181 -0
- package/runtime/codex/bin/prime-render-spec.mjs +0 -1
- package/runtime/codex/bin/publish-artifact.sh +89 -42
- package/runtime/codex/bin/qa-inventory.sh +2 -2
- package/runtime/codex/bin/quest.sh +1 -1
- package/runtime/codex/bin/records.sh +11 -0
- package/runtime/codex/bin/reflexes/05-vitals.sh +9 -0
- package/runtime/codex/bin/reflexes/10-open-items.sh +12 -0
- package/runtime/codex/bin/reflexes/15-retrieval.sh +8 -0
- package/runtime/codex/bin/reflexes/20-nightly.sh +100 -0
- package/runtime/codex/bin/reflexes/20-sandbox.sh +85 -0
- package/runtime/codex/bin/reflexes/30-cost.py +116 -0
- package/runtime/codex/bin/reflexes/40-shells.py +51 -0
- package/runtime/codex/bin/reflexes/README.md +61 -0
- package/runtime/codex/bin/reflexes.sh +7 -0
- package/runtime/codex/bin/runtime-identity.sh +140 -42
- package/runtime/codex/bin/screenshot.sh +77 -0
- package/runtime/codex/bin/scroll.sh +1 -1
- package/runtime/codex/bin/search.sh +31 -5
- package/runtime/codex/bin/session-autosave.sh +6 -3
- package/runtime/codex/bin/session-id.sh +147 -0
- package/runtime/codex/bin/session-log.sh +19 -0
- package/runtime/codex/bin/session-record.sh +26 -0
- package/runtime/codex/bin/settings.sh +13 -8
- package/runtime/codex/bin/spirit-discovery-claude.sh +4 -0
- package/runtime/codex/bin/spirit-discovery-codex.sh +4 -0
- package/runtime/codex/bin/spirit-discovery-pi.sh +4 -0
- package/runtime/codex/bin/spirit-discovery-prime.sh +4 -0
- package/runtime/codex/bin/spirit-discovery.sh +4 -0
- package/runtime/codex/bin/startup-check.sh +1 -1
- package/runtime/codex/bin/telemetry.sh +11 -4
- package/runtime/codex/bin/test-baseline.sh +33 -5
- package/runtime/codex/bin/todo.sh +1 -1
- package/runtime/codex/bin/worktree-create.sh +15 -45
- package/runtime/codex/bin/worktree.sh +6 -0
- package/runtime/codex/docs/spirit-discovery.md +96 -0
- package/runtime/codex/egregore_runtime/__init__.py +18 -12
- package/runtime/codex/egregore_runtime/access.py +608 -0
- package/runtime/codex/egregore_runtime/access_cli.py +190 -0
- package/runtime/codex/egregore_runtime/adapters/invitation.py +5 -3
- package/runtime/codex/egregore_runtime/adapters/qmd.py +521 -47
- package/runtime/codex/egregore_runtime/admin_entry.py +56 -0
- package/runtime/codex/egregore_runtime/artifacts.py +222 -16
- package/runtime/codex/egregore_runtime/contracts.py +27 -0
- package/runtime/codex/egregore_runtime/eligibility.py +5 -12
- package/runtime/codex/egregore_runtime/episode_binding.py +16 -5
- package/runtime/codex/egregore_runtime/github_issues.py +2 -2
- package/runtime/codex/egregore_runtime/handoff_lookup.py +9 -20
- package/runtime/codex/egregore_runtime/harness_cli.py +674 -149
- package/runtime/codex/egregore_runtime/held.py +2436 -0
- package/runtime/codex/egregore_runtime/hosted_api.py +137 -0
- package/runtime/codex/egregore_runtime/identity.py +196 -65
- package/runtime/codex/egregore_runtime/identity_transfer.py +6 -2
- package/runtime/codex/egregore_runtime/ingest_cli.py +2 -2
- package/runtime/codex/egregore_runtime/ingest_index_cli.py +4 -16
- package/runtime/codex/egregore_runtime/installation.py +119 -0
- package/runtime/codex/egregore_runtime/investigation.py +64 -41
- package/runtime/codex/egregore_runtime/investigation_guidance.py +16 -11
- package/runtime/codex/egregore_runtime/issue_cli.py +51 -32
- package/runtime/codex/egregore_runtime/issue_reporting.py +4 -3
- package/runtime/codex/egregore_runtime/issue_triage_service.py +2 -2
- package/runtime/codex/egregore_runtime/issues.py +12 -6
- package/runtime/codex/egregore_runtime/knowledge.py +331 -5
- package/runtime/codex/egregore_runtime/knowledge_cli.py +57 -17
- package/runtime/codex/egregore_runtime/lifecycle.py +88 -22
- package/runtime/codex/egregore_runtime/lifecycle_cli.py +21 -13
- package/runtime/codex/egregore_runtime/line_ids.py +10 -0
- package/runtime/codex/egregore_runtime/memory_push.py +349 -0
- package/runtime/codex/egregore_runtime/observe.py +64 -25
- package/runtime/codex/egregore_runtime/observers.py +19 -0
- package/runtime/codex/egregore_runtime/optional_modules.py +13 -0
- package/runtime/codex/egregore_runtime/outputs_cli.py +321 -0
- package/runtime/codex/egregore_runtime/policy.py +651 -24
- package/runtime/codex/egregore_runtime/private_result.py +2 -1
- package/runtime/codex/egregore_runtime/projection.py +946 -0
- package/runtime/codex/egregore_runtime/quest_cli.py +20 -23
- package/runtime/codex/egregore_runtime/question_cli.py +15 -11
- package/runtime/codex/egregore_runtime/questions.py +10 -10
- package/runtime/codex/egregore_runtime/quests.py +10 -10
- package/runtime/codex/egregore_runtime/record_publish.py +548 -0
- package/runtime/codex/egregore_runtime/record_subject.py +564 -0
- package/runtime/codex/egregore_runtime/research_ingest.py +2 -4
- package/runtime/codex/egregore_runtime/runtime.py +169 -60
- package/runtime/codex/egregore_runtime/sandbox.py +194 -0
- package/runtime/codex/egregore_runtime/scroll_cli.py +22 -32
- package/runtime/codex/egregore_runtime/scrolls.py +23 -15
- package/runtime/codex/egregore_runtime/shadow.py +262 -0
- package/runtime/codex/egregore_runtime/spirit_discovery.py +487 -0
- package/runtime/codex/egregore_runtime/spirit_discovery_cli.py +25 -0
- package/runtime/codex/egregore_runtime/spirit_discovery_transport.py +18 -0
- package/runtime/codex/egregore_runtime/status.py +101 -44
- package/runtime/codex/egregore_runtime/status_cli.py +13 -5
- package/runtime/codex/egregore_runtime/sync.py +39 -21
- package/runtime/codex/egregore_runtime/taste.py +934 -0
- package/runtime/codex/egregore_runtime/taste_cli.py +242 -0
- package/runtime/codex/egregore_runtime/taste_rules.py +91 -0
- package/runtime/codex/egregore_runtime/telemetry.py +26 -3
- package/runtime/codex/egregore_runtime/todo_cli.py +15 -12
- package/runtime/codex/egregore_runtime/todos.py +3 -2
- package/runtime/codex/egregore_runtime/upgrade.py +85 -58
- package/runtime/codex/egregore_runtime/writeback.py +330 -24
- package/runtime/codex/manifest.json +66 -5
- package/runtime/pi/.claude/context/handoff-claiming.md +32 -0
- package/runtime/pi/.claude/context/notification-consent.md +12 -9
- package/runtime/pi/.claude/skills/view/SKILL.md +438 -0
- package/runtime/pi/.codex/hooks.json +11 -0
- package/runtime/pi/.codex/skills/dark-mode/SKILL.md +1 -1
- package/runtime/pi/.codex/skills/records/SKILL.md +29 -0
- package/runtime/pi/.codex/skills/summon/SKILL.md +1 -1
- package/runtime/pi/.codex/skills/view/assets/compose-scaffold.html +19 -13
- package/runtime/pi/.codex/spec-manifest.json +13 -19
- package/runtime/pi/.pi/APPEND_SYSTEM.md +53 -99
- package/runtime/pi/.pi/extensions/egregore.ts +13 -1
- package/runtime/pi/.pi/spec-manifest.json +2 -2
- package/runtime/pi/AGENTS.md +54 -105
- package/runtime/pi/bin/agent.sh +231 -7
- package/runtime/pi/bin/api-call.sh +44 -23
- package/runtime/pi/bin/artifact-register.sh +7 -1
- package/runtime/pi/bin/artifact-writeback.sh +1 -1
- package/runtime/pi/bin/artifacts.sh +66 -265
- package/runtime/pi/bin/attendant.sh +4 -1
- package/runtime/pi/bin/boundary-guard.cjs +1848 -0
- package/runtime/pi/bin/boundary-hook.sh +41 -0
- package/runtime/pi/bin/capture-run.sh +32 -2
- package/runtime/pi/bin/codex-render-spec.mjs +24 -46
- package/runtime/pi/bin/codex-session-start.sh +19 -0
- package/runtime/pi/bin/codex-skill-render.mjs +18 -0
- package/runtime/pi/bin/config-get.sh +10 -1
- package/runtime/pi/bin/connect-refresh.sh +16 -0
- package/runtime/pi/bin/corpus_map.py +5 -0
- package/runtime/pi/bin/data/capabilities/pi.json +1458 -0
- package/runtime/pi/bin/genui.sh +19 -0
- package/runtime/pi/bin/graph-batch.sh +1 -1
- package/runtime/pi/bin/graph-op.sh +14 -0
- package/runtime/pi/bin/graph.sh +1 -1
- package/runtime/pi/bin/handoff-pr-backfill.sh +1 -1
- package/runtime/pi/bin/handoff-run.sh +11 -6
- package/runtime/pi/bin/ingest-item.sh +1 -1
- package/runtime/pi/bin/ingest-surface.html +22 -4
- package/runtime/pi/bin/issue.sh +1 -1
- package/runtime/pi/bin/knowledge.sh +1 -1
- package/runtime/pi/bin/lib/card-delivery.sh +329 -0
- package/runtime/pi/bin/lib/config.sh +148 -3
- package/runtime/pi/bin/lib/context.sh +38 -67
- package/runtime/pi/bin/lib/genui-entry.py +36 -0
- package/runtime/pi/bin/lib/git-message.sh +25 -6
- package/runtime/pi/bin/lib/git-sync.sh +12 -4
- package/runtime/pi/bin/lib/greeting.sh +255 -28
- package/runtime/pi/bin/lib/handoff_meta.py +294 -0
- package/runtime/pi/bin/lib/health-footer.sh +83 -2
- package/runtime/pi/bin/lib/identity.sh +31 -10
- package/runtime/pi/bin/lib/instance-registry.sh +71 -0
- package/runtime/pi/bin/lib/local_ci_receipt.py +249 -0
- package/runtime/pi/bin/lib/metrics.sh +121 -8
- package/runtime/pi/bin/lib/notices.sh +36 -0
- package/runtime/pi/bin/lib/record_outcomes.py +729 -0
- package/runtime/pi/bin/lib/reflexes.py +267 -0
- package/runtime/pi/bin/lib/retrieval_scorecard.py +624 -0
- package/runtime/pi/bin/lib/session-record-prompt.txt +18 -0
- package/runtime/pi/bin/lib/session_record.py +3747 -0
- package/runtime/pi/bin/lib/session_trail.py +1983 -0
- package/runtime/pi/bin/lib/settings-drift.sh +8 -5
- package/runtime/pi/bin/lib/startup-restart.sh +41 -0
- package/runtime/pi/bin/lib/worktree-links.sh +92 -0
- package/runtime/pi/bin/memory-push.sh +6 -0
- package/runtime/pi/bin/merge-gate.sh +498 -0
- package/runtime/pi/bin/notify.sh +5 -2
- package/runtime/pi/bin/page-access.sh +103 -0
- package/runtime/pi/bin/person.sh +13 -2
- package/runtime/pi/bin/pi-branch-policy.mjs +37 -0
- package/runtime/pi/bin/pi-observe-context.mjs +97 -4
- package/runtime/pi/bin/pi-render-spec.mjs +0 -1
- package/runtime/pi/bin/pi-session-start.sh +4 -1
- package/runtime/pi/bin/pi-spirit-discovery.mjs +34 -0
- package/runtime/pi/bin/post-update.sh +181 -0
- package/runtime/pi/bin/prime-render-spec.mjs +0 -1
- package/runtime/pi/bin/publish-artifact.sh +89 -42
- package/runtime/pi/bin/qa-inventory.sh +2 -2
- package/runtime/pi/bin/quest.sh +1 -1
- package/runtime/pi/bin/records.sh +11 -0
- package/runtime/pi/bin/reflexes/05-vitals.sh +9 -0
- package/runtime/pi/bin/reflexes/10-open-items.sh +12 -0
- package/runtime/pi/bin/reflexes/15-retrieval.sh +8 -0
- package/runtime/pi/bin/reflexes/20-nightly.sh +100 -0
- package/runtime/pi/bin/reflexes/20-sandbox.sh +85 -0
- package/runtime/pi/bin/reflexes/30-cost.py +116 -0
- package/runtime/pi/bin/reflexes/40-shells.py +51 -0
- package/runtime/pi/bin/reflexes/README.md +61 -0
- package/runtime/pi/bin/reflexes.sh +7 -0
- package/runtime/pi/bin/runtime-identity.sh +140 -42
- package/runtime/pi/bin/screenshot.sh +77 -0
- package/runtime/pi/bin/scroll.sh +1 -1
- package/runtime/pi/bin/search.sh +31 -5
- package/runtime/pi/bin/session-autosave.sh +6 -3
- package/runtime/pi/bin/session-id.sh +147 -0
- package/runtime/pi/bin/session-log.sh +19 -0
- package/runtime/pi/bin/session-record.sh +26 -0
- package/runtime/pi/bin/settings.sh +13 -8
- package/runtime/pi/bin/spirit-discovery-claude.sh +4 -0
- package/runtime/pi/bin/spirit-discovery-codex.sh +4 -0
- package/runtime/pi/bin/spirit-discovery-pi.sh +4 -0
- package/runtime/pi/bin/spirit-discovery-prime.sh +4 -0
- package/runtime/pi/bin/spirit-discovery.sh +4 -0
- package/runtime/pi/bin/startup-check.sh +1 -1
- package/runtime/pi/bin/telemetry.sh +11 -4
- package/runtime/pi/bin/test-baseline.sh +33 -5
- package/runtime/pi/bin/todo.sh +1 -1
- package/runtime/pi/bin/worktree-create.sh +15 -45
- package/runtime/pi/bin/worktree.sh +6 -0
- package/runtime/pi/docs/spirit-discovery.md +96 -0
- package/runtime/pi/egregore_runtime/__init__.py +18 -12
- package/runtime/pi/egregore_runtime/access.py +608 -0
- package/runtime/pi/egregore_runtime/access_cli.py +190 -0
- package/runtime/pi/egregore_runtime/adapters/invitation.py +5 -3
- package/runtime/pi/egregore_runtime/adapters/qmd.py +521 -47
- package/runtime/pi/egregore_runtime/admin_entry.py +56 -0
- package/runtime/pi/egregore_runtime/artifacts.py +222 -16
- package/runtime/pi/egregore_runtime/contracts.py +27 -0
- package/runtime/pi/egregore_runtime/eligibility.py +5 -12
- package/runtime/pi/egregore_runtime/episode_binding.py +16 -5
- package/runtime/pi/egregore_runtime/github_issues.py +2 -2
- package/runtime/pi/egregore_runtime/handoff_lookup.py +9 -20
- package/runtime/pi/egregore_runtime/harness_cli.py +674 -149
- package/runtime/pi/egregore_runtime/held.py +2436 -0
- package/runtime/pi/egregore_runtime/hosted_api.py +137 -0
- package/runtime/pi/egregore_runtime/identity.py +196 -65
- package/runtime/pi/egregore_runtime/identity_transfer.py +6 -2
- package/runtime/pi/egregore_runtime/ingest_cli.py +2 -2
- package/runtime/pi/egregore_runtime/ingest_index_cli.py +4 -16
- package/runtime/pi/egregore_runtime/installation.py +119 -0
- package/runtime/pi/egregore_runtime/investigation.py +64 -41
- package/runtime/pi/egregore_runtime/investigation_guidance.py +16 -11
- package/runtime/pi/egregore_runtime/issue_cli.py +51 -32
- package/runtime/pi/egregore_runtime/issue_reporting.py +4 -3
- package/runtime/pi/egregore_runtime/issue_triage_service.py +2 -2
- package/runtime/pi/egregore_runtime/issues.py +12 -6
- package/runtime/pi/egregore_runtime/knowledge.py +331 -5
- package/runtime/pi/egregore_runtime/knowledge_cli.py +57 -17
- package/runtime/pi/egregore_runtime/lifecycle.py +88 -22
- package/runtime/pi/egregore_runtime/lifecycle_cli.py +21 -13
- package/runtime/pi/egregore_runtime/line_ids.py +10 -0
- package/runtime/pi/egregore_runtime/memory_push.py +349 -0
- package/runtime/pi/egregore_runtime/observe.py +64 -25
- package/runtime/pi/egregore_runtime/observers.py +19 -0
- package/runtime/pi/egregore_runtime/optional_modules.py +13 -0
- package/runtime/pi/egregore_runtime/outputs_cli.py +321 -0
- package/runtime/pi/egregore_runtime/policy.py +651 -24
- package/runtime/pi/egregore_runtime/private_result.py +2 -1
- package/runtime/pi/egregore_runtime/projection.py +946 -0
- package/runtime/pi/egregore_runtime/quest_cli.py +20 -23
- package/runtime/pi/egregore_runtime/question_cli.py +15 -11
- package/runtime/pi/egregore_runtime/questions.py +10 -10
- package/runtime/pi/egregore_runtime/quests.py +10 -10
- package/runtime/pi/egregore_runtime/record_publish.py +548 -0
- package/runtime/pi/egregore_runtime/record_subject.py +564 -0
- package/runtime/pi/egregore_runtime/research_ingest.py +2 -4
- package/runtime/pi/egregore_runtime/runtime.py +169 -60
- package/runtime/pi/egregore_runtime/sandbox.py +194 -0
- package/runtime/pi/egregore_runtime/scroll_cli.py +22 -32
- package/runtime/pi/egregore_runtime/scrolls.py +23 -15
- package/runtime/pi/egregore_runtime/shadow.py +262 -0
- package/runtime/pi/egregore_runtime/spirit_discovery.py +487 -0
- package/runtime/pi/egregore_runtime/spirit_discovery_cli.py +25 -0
- package/runtime/pi/egregore_runtime/spirit_discovery_transport.py +18 -0
- package/runtime/pi/egregore_runtime/status.py +101 -44
- package/runtime/pi/egregore_runtime/status_cli.py +13 -5
- package/runtime/pi/egregore_runtime/sync.py +39 -21
- package/runtime/pi/egregore_runtime/taste.py +934 -0
- package/runtime/pi/egregore_runtime/taste_cli.py +242 -0
- package/runtime/pi/egregore_runtime/taste_rules.py +91 -0
- package/runtime/pi/egregore_runtime/telemetry.py +26 -3
- package/runtime/pi/egregore_runtime/todo_cli.py +15 -12
- package/runtime/pi/egregore_runtime/todos.py +3 -2
- package/runtime/pi/egregore_runtime/upgrade.py +85 -58
- package/runtime/pi/egregore_runtime/writeback.py +330 -24
- package/runtime/pi/manifest.json +66 -5
- package/runtime/prime/.claude/context/handoff-claiming.md +32 -0
- package/runtime/prime/.claude/context/notification-consent.md +12 -9
- package/runtime/prime/.claude/skills/view/SKILL.md +438 -0
- package/runtime/prime/.codex/hooks.json +11 -0
- package/runtime/prime/.codex/skills/dark-mode/SKILL.md +1 -1
- package/runtime/prime/.codex/skills/records/SKILL.md +29 -0
- package/runtime/prime/.codex/skills/summon/SKILL.md +1 -1
- package/runtime/prime/.codex/skills/view/assets/compose-scaffold.html +19 -13
- package/runtime/prime/.codex/spec-manifest.json +13 -19
- package/runtime/prime/.prime/agent/APPEND_SYSTEM.md +53 -99
- package/runtime/prime/.prime/agent/extensions/egregore.ts +14 -1
- package/runtime/prime/.prime/agent/skills/egregore/SKILL.md +14 -6
- package/runtime/prime/.prime/agent/skills/egregore/src/egregore/__init__.py +66 -1
- package/runtime/prime/.prime/agent/spec-manifest.json +2 -2
- package/runtime/prime/AGENTS.md +54 -105
- package/runtime/prime/bin/agent.sh +231 -7
- package/runtime/prime/bin/api-call.sh +44 -23
- package/runtime/prime/bin/artifact-register.sh +7 -1
- package/runtime/prime/bin/artifact-writeback.sh +1 -1
- package/runtime/prime/bin/artifacts.sh +66 -265
- package/runtime/prime/bin/attendant.sh +4 -1
- package/runtime/prime/bin/boundary-guard.cjs +1848 -0
- package/runtime/prime/bin/boundary-hook.sh +41 -0
- package/runtime/prime/bin/capture-run.sh +32 -2
- package/runtime/prime/bin/codex-render-spec.mjs +24 -46
- package/runtime/prime/bin/codex-session-start.sh +19 -0
- package/runtime/prime/bin/codex-skill-render.mjs +18 -0
- package/runtime/prime/bin/config-get.sh +10 -1
- package/runtime/prime/bin/connect-refresh.sh +16 -0
- package/runtime/prime/bin/corpus_map.py +5 -0
- package/runtime/prime/bin/data/capabilities/prime.json +1458 -0
- package/runtime/prime/bin/genui.sh +19 -0
- package/runtime/prime/bin/graph-batch.sh +1 -1
- package/runtime/prime/bin/graph-op.sh +14 -0
- package/runtime/prime/bin/graph.sh +1 -1
- package/runtime/prime/bin/handoff-pr-backfill.sh +1 -1
- package/runtime/prime/bin/handoff-run.sh +11 -6
- package/runtime/prime/bin/ingest-item.sh +1 -1
- package/runtime/prime/bin/ingest-surface.html +22 -4
- package/runtime/prime/bin/issue.sh +1 -1
- package/runtime/prime/bin/knowledge.sh +1 -1
- package/runtime/prime/bin/lib/card-delivery.sh +329 -0
- package/runtime/prime/bin/lib/config.sh +148 -3
- package/runtime/prime/bin/lib/context.sh +38 -67
- package/runtime/prime/bin/lib/genui-entry.py +36 -0
- package/runtime/prime/bin/lib/git-message.sh +25 -6
- package/runtime/prime/bin/lib/git-sync.sh +12 -4
- package/runtime/prime/bin/lib/greeting.sh +255 -28
- package/runtime/prime/bin/lib/handoff_meta.py +294 -0
- package/runtime/prime/bin/lib/health-footer.sh +83 -2
- package/runtime/prime/bin/lib/identity.sh +31 -10
- package/runtime/prime/bin/lib/instance-registry.sh +71 -0
- package/runtime/prime/bin/lib/local_ci_receipt.py +249 -0
- package/runtime/prime/bin/lib/metrics.sh +121 -8
- package/runtime/prime/bin/lib/notices.sh +36 -0
- package/runtime/prime/bin/lib/record_outcomes.py +729 -0
- package/runtime/prime/bin/lib/reflexes.py +267 -0
- package/runtime/prime/bin/lib/retrieval_scorecard.py +624 -0
- package/runtime/prime/bin/lib/session-record-prompt.txt +18 -0
- package/runtime/prime/bin/lib/session_record.py +3747 -0
- package/runtime/prime/bin/lib/session_trail.py +1983 -0
- package/runtime/prime/bin/lib/settings-drift.sh +8 -5
- package/runtime/prime/bin/lib/startup-restart.sh +41 -0
- package/runtime/prime/bin/lib/worktree-links.sh +92 -0
- package/runtime/prime/bin/memory-push.sh +6 -0
- package/runtime/prime/bin/merge-gate.sh +498 -0
- package/runtime/prime/bin/notify.sh +5 -2
- package/runtime/prime/bin/page-access.sh +103 -0
- package/runtime/prime/bin/person.sh +13 -2
- package/runtime/prime/bin/pi-branch-policy.mjs +37 -0
- package/runtime/prime/bin/pi-observe-context.mjs +97 -4
- package/runtime/prime/bin/pi-render-spec.mjs +0 -1
- package/runtime/prime/bin/pi-spirit-discovery.mjs +34 -0
- package/runtime/prime/bin/post-update.sh +181 -0
- package/runtime/prime/bin/prime-render-spec.mjs +0 -1
- package/runtime/prime/bin/prime-session-start.sh +3 -1
- package/runtime/prime/bin/publish-artifact.sh +89 -42
- package/runtime/prime/bin/qa-inventory.sh +2 -2
- package/runtime/prime/bin/quest.sh +1 -1
- package/runtime/prime/bin/records.sh +11 -0
- package/runtime/prime/bin/reflexes/05-vitals.sh +9 -0
- package/runtime/prime/bin/reflexes/10-open-items.sh +12 -0
- package/runtime/prime/bin/reflexes/15-retrieval.sh +8 -0
- package/runtime/prime/bin/reflexes/20-nightly.sh +100 -0
- package/runtime/prime/bin/reflexes/20-sandbox.sh +85 -0
- package/runtime/prime/bin/reflexes/30-cost.py +116 -0
- package/runtime/prime/bin/reflexes/40-shells.py +51 -0
- package/runtime/prime/bin/reflexes/README.md +61 -0
- package/runtime/prime/bin/reflexes.sh +7 -0
- package/runtime/prime/bin/runtime-identity.sh +140 -42
- package/runtime/prime/bin/screenshot.sh +77 -0
- package/runtime/prime/bin/scroll.sh +1 -1
- package/runtime/prime/bin/search.sh +31 -5
- package/runtime/prime/bin/session-autosave.sh +6 -3
- package/runtime/prime/bin/session-id.sh +147 -0
- package/runtime/prime/bin/session-log.sh +19 -0
- package/runtime/prime/bin/session-record.sh +26 -0
- package/runtime/prime/bin/settings.sh +13 -8
- package/runtime/prime/bin/spirit-discovery-claude.sh +4 -0
- package/runtime/prime/bin/spirit-discovery-codex.sh +4 -0
- package/runtime/prime/bin/spirit-discovery-pi.sh +4 -0
- package/runtime/prime/bin/spirit-discovery-prime.sh +4 -0
- package/runtime/prime/bin/spirit-discovery.sh +4 -0
- package/runtime/prime/bin/startup-check.sh +1 -1
- package/runtime/prime/bin/telemetry.sh +11 -4
- package/runtime/prime/bin/test-baseline.sh +33 -5
- package/runtime/prime/bin/todo.sh +1 -1
- package/runtime/prime/bin/worktree-create.sh +15 -45
- package/runtime/prime/bin/worktree.sh +6 -0
- package/runtime/prime/docs/spirit-discovery.md +96 -0
- package/runtime/prime/egregore_runtime/__init__.py +18 -12
- package/runtime/prime/egregore_runtime/access.py +608 -0
- package/runtime/prime/egregore_runtime/access_cli.py +190 -0
- package/runtime/prime/egregore_runtime/adapters/invitation.py +5 -3
- package/runtime/prime/egregore_runtime/adapters/qmd.py +521 -47
- package/runtime/prime/egregore_runtime/admin_entry.py +56 -0
- package/runtime/prime/egregore_runtime/artifacts.py +222 -16
- package/runtime/prime/egregore_runtime/contracts.py +27 -0
- package/runtime/prime/egregore_runtime/eligibility.py +5 -12
- package/runtime/prime/egregore_runtime/episode_binding.py +16 -5
- package/runtime/prime/egregore_runtime/github_issues.py +2 -2
- package/runtime/prime/egregore_runtime/handoff_lookup.py +9 -20
- package/runtime/prime/egregore_runtime/harness_cli.py +674 -149
- package/runtime/prime/egregore_runtime/held.py +2436 -0
- package/runtime/prime/egregore_runtime/hosted_api.py +137 -0
- package/runtime/prime/egregore_runtime/identity.py +196 -65
- package/runtime/prime/egregore_runtime/identity_transfer.py +6 -2
- package/runtime/prime/egregore_runtime/ingest_cli.py +2 -2
- package/runtime/prime/egregore_runtime/ingest_index_cli.py +4 -16
- package/runtime/prime/egregore_runtime/installation.py +119 -0
- package/runtime/prime/egregore_runtime/investigation.py +64 -41
- package/runtime/prime/egregore_runtime/investigation_guidance.py +16 -11
- package/runtime/prime/egregore_runtime/issue_cli.py +51 -32
- package/runtime/prime/egregore_runtime/issue_reporting.py +4 -3
- package/runtime/prime/egregore_runtime/issue_triage_service.py +2 -2
- package/runtime/prime/egregore_runtime/issues.py +12 -6
- package/runtime/prime/egregore_runtime/knowledge.py +331 -5
- package/runtime/prime/egregore_runtime/knowledge_cli.py +57 -17
- package/runtime/prime/egregore_runtime/lifecycle.py +88 -22
- package/runtime/prime/egregore_runtime/lifecycle_cli.py +21 -13
- package/runtime/prime/egregore_runtime/line_ids.py +10 -0
- package/runtime/prime/egregore_runtime/memory_push.py +349 -0
- package/runtime/prime/egregore_runtime/observe.py +64 -25
- package/runtime/prime/egregore_runtime/observers.py +19 -0
- package/runtime/prime/egregore_runtime/optional_modules.py +13 -0
- package/runtime/prime/egregore_runtime/outputs_cli.py +321 -0
- package/runtime/prime/egregore_runtime/policy.py +651 -24
- package/runtime/prime/egregore_runtime/private_result.py +2 -1
- package/runtime/prime/egregore_runtime/projection.py +946 -0
- package/runtime/prime/egregore_runtime/quest_cli.py +20 -23
- package/runtime/prime/egregore_runtime/question_cli.py +15 -11
- package/runtime/prime/egregore_runtime/questions.py +10 -10
- package/runtime/prime/egregore_runtime/quests.py +10 -10
- package/runtime/prime/egregore_runtime/record_publish.py +548 -0
- package/runtime/prime/egregore_runtime/record_subject.py +564 -0
- package/runtime/prime/egregore_runtime/research_ingest.py +2 -4
- package/runtime/prime/egregore_runtime/runtime.py +169 -60
- package/runtime/prime/egregore_runtime/sandbox.py +194 -0
- package/runtime/prime/egregore_runtime/scroll_cli.py +22 -32
- package/runtime/prime/egregore_runtime/scrolls.py +23 -15
- package/runtime/prime/egregore_runtime/shadow.py +262 -0
- package/runtime/prime/egregore_runtime/spirit_discovery.py +487 -0
- package/runtime/prime/egregore_runtime/spirit_discovery_cli.py +25 -0
- package/runtime/prime/egregore_runtime/spirit_discovery_transport.py +18 -0
- package/runtime/prime/egregore_runtime/status.py +101 -44
- package/runtime/prime/egregore_runtime/status_cli.py +13 -5
- package/runtime/prime/egregore_runtime/sync.py +39 -21
- package/runtime/prime/egregore_runtime/taste.py +934 -0
- package/runtime/prime/egregore_runtime/taste_cli.py +242 -0
- package/runtime/prime/egregore_runtime/taste_rules.py +91 -0
- package/runtime/prime/egregore_runtime/telemetry.py +26 -3
- package/runtime/prime/egregore_runtime/todo_cli.py +15 -12
- package/runtime/prime/egregore_runtime/todos.py +3 -2
- package/runtime/prime/egregore_runtime/upgrade.py +85 -58
- package/runtime/prime/egregore_runtime/writeback.py +330 -24
- package/runtime/prime/manifest.json +66 -5
- package/runtime/claude/bin/thread.sh +0 -9
- package/runtime/claude/egregore_runtime/admin_gate.py +0 -102
- package/runtime/claude/egregore_runtime/thread_cli.py +0 -173
- package/runtime/claude/egregore_runtime/threads.py +0 -521
- package/runtime/codex/bin/thread.sh +0 -9
- package/runtime/codex/egregore_runtime/admin_gate.py +0 -102
- package/runtime/codex/egregore_runtime/thread_cli.py +0 -173
- package/runtime/codex/egregore_runtime/threads.py +0 -521
- package/runtime/pi/bin/thread.sh +0 -9
- package/runtime/pi/egregore_runtime/admin_gate.py +0 -102
- package/runtime/pi/egregore_runtime/thread_cli.py +0 -173
- package/runtime/pi/egregore_runtime/threads.py +0 -521
- package/runtime/prime/bin/thread.sh +0 -9
- package/runtime/prime/egregore_runtime/admin_gate.py +0 -102
- package/runtime/prime/egregore_runtime/thread_cli.py +0 -173
- package/runtime/prime/egregore_runtime/threads.py +0 -521
|
@@ -48,7 +48,7 @@ main-loop-only: render inline, then print
|
|
|
48
48
|
`bash bin/loom.sh footer view --override` and mark telemetry as an override.
|
|
49
49
|
For the deterministic renderer:
|
|
50
50
|
|
|
51
|
-
1. Resolve `
|
|
51
|
+
1. Resolve the route: run `bash bin/loom.sh route view` and read the JSON line it prints. When `bin/loom.sh` is not
|
|
52
52
|
present (Loom is internal-only and does not ship in the OSS distribution),
|
|
53
53
|
skip route resolution and the footer entirely and follow the script route
|
|
54
54
|
below — it is the framework default and needs no Loom.
|
|
@@ -183,11 +183,14 @@ Picking the five ids is judgment and stays in the main loop; the brief file
|
|
|
183
183
|
rides into the render through `--` and participates in the cache key.
|
|
184
184
|
|
|
185
185
|
Pick the five ids from the substance, one line of judgment each (e.g. a
|
|
186
|
-
strategy prep doc → decide · operators · editorial ·
|
|
187
|
-
public explainer → persuade · newcomer · marketing ·
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
strategy prep doc → decide · operators · editorial · ledger · decisive; a
|
|
187
|
+
public explainer → persuade · newcomer · marketing · ledger · quiet). For the
|
|
188
|
+
palette, use `ledger`, the registry default pair (`sovereign`), unless the
|
|
189
|
+
content has a stated reason for another registered pair; a palette with no
|
|
190
|
+
registered pair is never a default pick. The brief drives palette + grammar
|
|
191
|
+
treatment; the designed layout (nav · hero · anchored sections) renders
|
|
192
|
+
regardless. If the checked-out generative-ui layer is unavailable, render
|
|
193
|
+
without `--brief`; never fetch it or block on the trace.
|
|
191
194
|
|
|
192
195
|
The deterministic renderer already owns its light/dark theme contract. Do not
|
|
193
196
|
invoke or reread a separate visual-theme skill for an ordinary render. Apply
|
|
@@ -216,14 +219,36 @@ picking wrong is the single most common way a composed render lands badly.
|
|
|
216
219
|
|
|
217
220
|
**Procedure (run inline — never delegate; see the compose note in Loom routing):**
|
|
218
221
|
|
|
219
|
-
1. Read the source document in full.
|
|
222
|
+
1. Read the source document in full. Then read what people have said they
|
|
223
|
+
like in generated interfaces and keep it as context: words to consider,
|
|
224
|
+
never a template to copy. `{task}` is a few words naming this work:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
bash bin/genui.sh taste --task '{task}' --form view
|
|
228
|
+
```
|
|
229
|
+
|
|
220
230
|
2. Start from the scaffold: `.claude/skills/view/compose-scaffold.html` (copy it;
|
|
221
|
-
it carries the
|
|
222
|
-
|
|
223
|
-
|
|
231
|
+
it carries the chrome — fonts, sticky nav, theme toggle, contours — and a
|
|
232
|
+
documented component kit). You fill content; you do **not** rebuild the
|
|
233
|
+
chrome or invent colors.
|
|
224
234
|
3. Walk the UGI graph for the register/palette/grammar (as above) and stamp the
|
|
225
|
-
manifest `register`/`grammar` + the footer trail.
|
|
226
|
-
|
|
235
|
+
manifest `register`/`grammar` + the footer trail. For the palette, use the
|
|
236
|
+
registry default pair (`sovereign`) unless the content has a stated reason
|
|
237
|
+
for another registered pair. The scaffold predates the registry: its theme
|
|
238
|
+
blocks are the `meridian` pair (`vellum`, `nocturne`) plus an older `loam`
|
|
239
|
+
block, and its header note to leave them in place no longer holds. Take the
|
|
240
|
+
chosen pair's two theme blocks from the first of these files that exists:
|
|
241
|
+
- `packages/design-system/dist/egregore-design.css` (the source repository)
|
|
242
|
+
- `packages/egregore-artifacts/lib/vendor/design-system/dist/egregore-design.css`
|
|
243
|
+
- `lib/vendor/design-system/dist/egregore-design.css` inside the installed
|
|
244
|
+
`egregore-artifacts` package that `bin/view-render.sh` runs
|
|
245
|
+
|
|
246
|
+
Replace all three scaffold blocks with them; match the `<html>` attributes,
|
|
247
|
+
the manifest `pair` and `resolvedTheme`, and the toggle's theme ids and
|
|
248
|
+
label to that pair; and point the scaffold's meridian-only names
|
|
249
|
+
(`--prussian*`, `--brass*`, `--teal`, `--rose`, `--contour`) at role tokens.
|
|
250
|
+
If none of the three files exists, keep the scaffold's `meridian` blocks and
|
|
251
|
+
say so in the report.
|
|
227
252
|
4. **Decide the register FIRST — editorial or technical.** This governs every
|
|
228
253
|
sentence you then write, and it is not a style preference; it is what the
|
|
229
254
|
document *is*. Ask: does a reader come here to be *persuaded of a view*, or
|
|
@@ -262,15 +287,25 @@ picking wrong is the single most common way a composed render lands badly.
|
|
|
262
287
|
- technical renders lean on captioned tables, `Decision:` blocks, numbered
|
|
263
288
|
rationale lists, and `.note`/`.note.caution` for limitations and hazards;
|
|
264
289
|
they use `.hl`/`.readout` sparingly and never as a substitute for a heading
|
|
290
|
+
- **Highlights: no side stripes.** Never draw a coloured bar down one side
|
|
291
|
+
of a box. In the scaffold, `.hl` is the quiet status panel (6% tone tint,
|
|
292
|
+
1px tone hairline, 12px radius) whose `.k` label carries the tone's shape:
|
|
293
|
+
● for the plain `.hl`, ▲ and ■ for its warn and critical variants.
|
|
294
|
+
`.readout` is the key point: bigger type, no box. Typed renders take the
|
|
295
|
+
same treatments from the kit's recipe classes
|
|
296
|
+
(`packages/egregore-artifacts/lib/recipe.js`): `.eg-mark` for a marker
|
|
297
|
+
under the words, `.eg-margin` with an `.eg-label` for a label in the
|
|
298
|
+
margin, `.eg-quote` for a quote with a hanging opening mark, and
|
|
299
|
+
`.eg-panel` with a shaped `.eg-label` for status
|
|
265
300
|
- **transformation in technical register means structure, not voice** — split
|
|
266
301
|
prose into tables, number the rationale, surface the decisions; do not
|
|
267
302
|
rewrite the author's claims into slogans
|
|
268
303
|
- nav links: one per composed section, to its `id` anchor
|
|
269
304
|
6. **Never inline a hex in content** — every theme-sensitive color is a
|
|
270
305
|
`var(--token)`, or the toggle breaks dark mode. The kit already obeys this.
|
|
271
|
-
Verify before opening: every `var(--x)` used must be defined in **both**
|
|
272
|
-
|
|
273
|
-
silently on that element.
|
|
306
|
+
Verify before opening: every `var(--x)` used must be defined in **both** of
|
|
307
|
+
the chosen pair's theme blocks (for `sovereign`: `[data-theme="ledger"]` and
|
|
308
|
+
`[data-theme="bedrock"]`), or dark mode breaks silently on that element.
|
|
274
309
|
7. Write to `/tmp/egregore-artifacts/composed-{slug}.html` and open directly
|
|
275
310
|
(`open <path>`), then report the path + `Renderer: composed (band 5, inline)`.
|
|
276
311
|
|
|
@@ -302,6 +337,7 @@ manage publication transport itself. If no Runtime publication adapter is
|
|
|
302
337
|
available, keep the local artifact and say publishing is unavailable rather
|
|
303
338
|
than falling back to a legacy script. Notification consent remains separate.
|
|
304
339
|
|
|
340
|
+
|
|
305
341
|
### 4. Report
|
|
306
342
|
|
|
307
343
|
Report the exact HTML path returned by the renderer or written by composition;
|
|
@@ -314,7 +350,7 @@ do not infer a filename from the examples below.
|
|
|
314
350
|
|
|
315
351
|
Only after an approved SHARE action returns a URL, append:
|
|
316
352
|
```
|
|
317
|
-
◆
|
|
353
|
+
◆ {receipt.url} (use the exact URL returned by the approved publication)
|
|
318
354
|
```
|
|
319
355
|
Read `org_slug` from `egregore.json`.
|
|
320
356
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
How to use: copy this file, then
|
|
7
7
|
1. fill <title>, the manifest `register`/`grammar`, nav brand + links,
|
|
8
8
|
the hero (series / h1 / standfirst / chips), and the footer.
|
|
9
|
-
2. replace the
|
|
9
|
+
2. replace the COMPONENTS comment region with composed sections built
|
|
10
10
|
from the component kit below — do NOT mirror the markdown; transform
|
|
11
11
|
the substance into the grammar (statement titles, panels, cards, …).
|
|
12
12
|
3. every theme-sensitive color MUST be a var(--token). Never inline hex
|
|
@@ -24,9 +24,9 @@
|
|
|
24
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
25
|
<style>
|
|
26
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)}
|
|
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;--ok:#1d7a6e;--ok-bg:#ddefea;--note:#3a6b96;--note-bg:#ddeaf6;--warn:#8c680b;--warn-bg:#f3ead0;--critical:#a8493e;--critical-bg:#f4ddd7;--neutral:#667381;--neutral-bg:#e4e8ed;--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;--ok:#3fb0a0;--ok-bg:#152b29;--note:#6fa6d4;--note-bg:#1a2834;--warn:#d8b25a;--warn-bg:#2c2616;--critical:#d2796b;--critical-bg:#2c1c18;--neutral:#8694a2;--neutral-bg:#21262b;--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;--ok:#3a5a40;--ok-bg:#e7eee2;--note:#3d6a78;--note-bg:#d9ecf2;--warn:#8e6900;--warn-bg:#f3e9cf;--critical:#a4543b;--critical-bg:#f0ddd2;--neutral:#746a5a;--neutral-bg:#eae6dd;--contour:#c8bca0;--shadow:0 1px 2px rgba(36,29,18,.06),0 12px 34px -18px rgba(36,29,18,.3)}
|
|
30
30
|
|
|
31
31
|
/* ── base ── */
|
|
32
32
|
*{box-sizing:border-box;margin:0;padding:0}
|
|
@@ -113,12 +113,17 @@ h2{font-family:var(--serif);font-weight:430;font-size:clamp(1.9rem,3.4vw,2.6rem)
|
|
|
113
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
114
|
.verdict-band b{color:var(--t2)}
|
|
115
115
|
|
|
116
|
-
/* ── highlight
|
|
117
|
-
|
|
118
|
-
.
|
|
119
|
-
.hl
|
|
120
|
-
.hl
|
|
121
|
-
.hl
|
|
116
|
+
/* ── highlight: the one thing to land, as a quiet status panel (no side stripe) ──
|
|
117
|
+
6% tone tint, a 1px tone hairline all round, 12px radius. The tone comes from
|
|
118
|
+
the role tokens and the .k label carries its shape, so it reads in greyscale:
|
|
119
|
+
.hl = ok ● (decided) · .hl.brass = warn ▲ (owed, the ask) · .hl.rose = critical ■ (risk) */
|
|
120
|
+
.hl{--tone:var(--ok);background:color-mix(in oklab,var(--tone) 6%,var(--card));border:1px solid color-mix(in oklab,var(--tone) 30%,transparent);border-radius:12px;padding:16px 20px 18px;margin:18px 0}
|
|
121
|
+
.hl.brass{--tone:var(--warn)} .hl.rose{--tone:var(--critical)}
|
|
122
|
+
.hl .k{display:inline-flex;align-items:center;gap:8px;font:500 .69rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tone)}
|
|
123
|
+
.hl .k::before{content:"";width:8px;height:8px;background:currentColor;border-radius:50%;flex:none}
|
|
124
|
+
.hl.brass .k::before{border-radius:0;width:9px;clip-path:polygon(50% 0,100% 100%,0 100%)}
|
|
125
|
+
.hl.rose .k::before{border-radius:1px}
|
|
126
|
+
.hl h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:10px 0 8px}
|
|
122
127
|
.hl p{font-size:.96rem} .hl .num{font-family:var(--serif);font-style:italic;color:var(--ink)}
|
|
123
128
|
|
|
124
129
|
/* ── Q/A ledger ── */
|
|
@@ -163,9 +168,10 @@ h2{font-family:var(--serif);font-weight:430;font-size:clamp(1.9rem,3.4vw,2.6rem)
|
|
|
163
168
|
.dot{display:inline-block;width:18px;height:18px;line-height:18px;border-radius:50%;font-size:.72rem;font-weight:700}
|
|
164
169
|
.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
170
|
|
|
166
|
-
/* ──
|
|
167
|
-
.readout{
|
|
168
|
-
.readout b{color:var(--ink)}
|
|
171
|
+
/* ── readout: the bottom line as a key point — bigger type, no box ── */
|
|
172
|
+
.readout{margin:28px 0;max-width:62ch;font-size:1.15em;line-height:1.5;font-weight:500;color:var(--ink)}
|
|
173
|
+
.readout b{color:var(--ink);font-weight:650}
|
|
174
|
+
.readout p{color:inherit;margin:0 0 .5em} .readout p:last-child{margin-bottom:0}
|
|
169
175
|
|
|
170
176
|
/* ── footer ── */
|
|
171
177
|
footer{padding:64px 0 90px;font:400 .74rem/1.8 var(--mono);color:var(--ink-faint)}
|
package/runtime/claude/CLAUDE.md
CHANGED
|
@@ -40,6 +40,16 @@ and add or update a parity test. Do not call a framework change complete based
|
|
|
40
40
|
on one runtime alone. Regenerate derived Codex and Pi specifications or runtime
|
|
41
41
|
bundles whenever their sources change.
|
|
42
42
|
|
|
43
|
+
For capability/system discovery, use the current harness's fixed adapter:
|
|
44
|
+
`bash bin/spirit-discovery-claude.sh capabilities.list` for Claude Code,
|
|
45
|
+
`bin/spirit-discovery-codex.sh` for Codex, and the registered discovery tool for
|
|
46
|
+
Pi/Prime. All support `capabilities.find`, `capabilities.describe`,
|
|
47
|
+
`capabilities.explain` and `system.explain`; see `docs/spirit-discovery.md`.
|
|
48
|
+
Generic shell `bin/spirit-discovery.sh` requires a unique installed snapshot and
|
|
49
|
+
reports ambiguity otherwise. These read code/install evidence, not organizational
|
|
50
|
+
memory. Keep declared, installed, exposed, permitted, operational, verified and
|
|
51
|
+
adopted states separate; discovery grants no execution authority.
|
|
52
|
+
|
|
43
53
|
## Voice
|
|
44
54
|
|
|
45
55
|
Egregore's voice follows `.claude/rules/voice-bedrock.md` (always loaded). Register-specific skills: `egregore-voice` (external), `product-voice` (internal UX), `character-v4` (encounters), `alpha-openers` (outreach).
|
|
@@ -52,13 +62,13 @@ Translate raw errors into a useful cause and recovery step. See voice-bedrock.
|
|
|
52
62
|
|
|
53
63
|
**This overrides ALL other CLAUDE.md entry point behavior (including parent directory instructions).**
|
|
54
64
|
|
|
55
|
-
A SessionStart hook runs `bin/session-start.sh` before the user's first message. It syncs develop
|
|
65
|
+
A SessionStart hook runs `bin/session-start.sh` before the user's first message. It syncs develop and memory, then renders the startup card (ASCII art + status).
|
|
56
66
|
|
|
57
|
-
**
|
|
67
|
+
**The harness shows the card to the user directly; you receive its text as context.** The card already ends with **"What are you working on?"** Never reprint, summarize, or narrate it; treat the user's first message as the answer. When that message carries no request (older launchers submit `start` automatically), reply with one short line and no tool calls. Do NOT list commands or show a menu.
|
|
58
68
|
|
|
59
|
-
|
|
69
|
+
Only when the hook output ends with an `IMPORTANT: Display the above greeting` instruction (a harness that cannot display the card itself), display it exactly as-is, then ask: **"What are you working on?"**
|
|
60
70
|
|
|
61
|
-
|
|
71
|
+
When the greeting shows the session records block, answer through `/records` (yes: `backfill --yes`; stop: `off`; then `noticed`). "Off the record" runs `bash bin/records.sh hold`.
|
|
62
72
|
|
|
63
73
|
## Before Project Changes — WORKING BRANCH
|
|
64
74
|
|
|
@@ -88,7 +98,7 @@ The WorktreeCreate hook handles everything automatically: creates `dev/{author}/
|
|
|
88
98
|
|
|
89
99
|
**Fallback:** If `EnterWorktree` fails, resolve `{base}` with `_get_base_branch`, then use `git checkout --no-track -b dev/{author}/{slug} origin/{base}`. A task branch starts from the integration branch but must not track it; the first publish sets upstream to the same-name remote task branch.
|
|
90
100
|
|
|
91
|
-
4. Graph topic: the WorktreeCreate hook records the session's topic and branch on the graph itself (it reads `.egregore-session-id` for you). Only the fallback and topic-pivot paths below, which bypass the hook, need it by hand — fire-and-forget: `bash bin/graph-op.sh set-current-topic "topic from slug" "dev/author/slug" 2>/dev/null &`. Never assemble the session id with a `$(cat …)` substitution: a worktree-isolated session refuses that shape and the write silently never happens.
|
|
101
|
+
4. Graph topic: the WorktreeCreate hook records the session's topic and branch on the graph itself (it reads `.egregore-session-id` for you). Only the fallback and topic-pivot paths below, which bypass the hook, need it by hand — fire-and-forget: `bash bin/graph-op.sh set-current-topic "topic from slug" "dev/author/slug" 2>/dev/null &`. Never assemble the session id with a `$(cat …)` substitution: a worktree-isolated session refuses that shape and the write silently never happens. The shapes the worktree guard refuses and their plain forms are in `.claude/context/plain-shell.md`; split a refused command instead of retrying it.
|
|
92
102
|
|
|
93
103
|
### Starting-work UX contract
|
|
94
104
|
|
|
@@ -144,27 +154,7 @@ return as picking up a living thread, not reconstructing a Git session.
|
|
|
144
154
|
|
|
145
155
|
### Handoff claiming
|
|
146
156
|
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
bash bin/graph-op.sh claim-handoff "$SESSION_ID" "$HANDOFF_SESSION_ID" 2>/dev/null &
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**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:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
PARENT_DIR="$(cd .. && pwd)"
|
|
156
|
-
# For each entry in repoState:
|
|
157
|
-
REPO_DIR="$PARENT_DIR/$REPO_NAME"
|
|
158
|
-
if [ -d "$REPO_DIR/.git" ] || [ -f "$REPO_DIR/.git" ]; then
|
|
159
|
-
git -C "$REPO_DIR" fetch origin "$BRANCH" --quiet 2>/dev/null
|
|
160
|
-
git -C "$REPO_DIR" checkout "$BRANCH" 2>/dev/null || \
|
|
161
|
-
git -C "$REPO_DIR" checkout -b "$BRANCH" "origin/$BRANCH" 2>/dev/null
|
|
162
|
-
fi
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Report results: `✓ Checked out {branch} in {repo1}, {repo2}`. If a branch no longer exists (PR was merged): `◐ {repo}: PR #{N} merged — on {base}`. This works in both local and connected modes (pure git).
|
|
166
|
-
|
|
167
|
-
If `repoState` is absent or empty (old handoff format), skip auto-checkout silently.
|
|
157
|
+
When the user picks up a handoff addressed to them, follow `.claude/context/handoff-claiming.md` after branch creation: it claims the handoff and checks out the branches its `repoState` names in each managed repo.
|
|
168
158
|
|
|
169
159
|
**Exceptions** — skip branching when:
|
|
170
160
|
- User says `/branch` (doing it themselves)
|
|
@@ -202,6 +192,8 @@ Plan mode is **not** blocked by branch-guard — you can enter plan mode on deve
|
|
|
202
192
|
|
|
203
193
|
If hook output contains `onboarding_needed`, invoke `/onboarding` instead of the greeting.
|
|
204
194
|
|
|
195
|
+
|
|
196
|
+
|
|
205
197
|
---
|
|
206
198
|
|
|
207
199
|
## Config Files
|
|
@@ -226,7 +218,7 @@ answers it: `open-handoffs`, `pending-questions`, `lineage`, or
|
|
|
226
218
|
`meeting-history`. Verify projection freshness/coverage and open its canonical
|
|
227
219
|
`evidencePath` before acting. Canonical Markdown wins on disagreement.
|
|
228
220
|
|
|
229
|
-
Run `catalog` only when the route is unclear.
|
|
221
|
+
Run `catalog` only when the route is unclear. Open only the returned `evidencePath` files needed to answer; on partial coverage, name `unprojectedPaths` instead of claiming them. Use `bin/graph.sh` for unsupported Neo4j queries and never construct curl calls directly (schema: DEVELOPMENT.md §1).
|
|
230
222
|
|
|
231
223
|
## Egregore Retrieval Beat
|
|
232
224
|
|
|
@@ -237,60 +229,42 @@ For each user-directed organizational lookup, show exactly one visible line:
|
|
|
237
229
|
- retrieval that actually queries the connected graph:
|
|
238
230
|
`⌕ Egregore Connect · searching your organization’s memory and relationships`
|
|
239
231
|
|
|
240
|
-
When `EGREGORE_ORG_CONTEXT_V1` is attached, reuse its authorized evidence.
|
|
241
|
-
For a remaining gap continue a Runtime investigation, preserving earlier findings.
|
|
242
|
-
Follow `.claude/context/retrieval-investigation.md`: the model chooses keyword,
|
|
243
|
-
semantic, hybrid, filename, literal, or date inventory; Runtime owns permissions,
|
|
244
|
-
evidence history, pages and per-prompt limits. Empty results allow refinements
|
|
245
|
-
within the requested dates. Never relax the date boundary to manufacture coverage.
|
|
246
|
-
|
|
247
|
-
**Scope.** Egregore Runtime is for organizational recall only: team memory,
|
|
248
|
-
decisions, handoffs, prior work. Code, files, Git, and tests use the harness's
|
|
249
|
-
normal tools, with no beat and no Runtime call.
|
|
250
|
-
|
|
251
232
|
**Visibility is the contract.** Emit it verbatim as a standalone assistant
|
|
252
233
|
message before the first tool call that performs the organizational recall
|
|
253
234
|
(the `bin/search.sh` query or a graph read). Tool output does not satisfy it.
|
|
254
|
-
Do not paraphrase the line.
|
|
235
|
+
Do not paraphrase the line. Emit once per episode.
|
|
236
|
+
Never name `Egregore Connect` unless a graph read will actually run.
|
|
255
237
|
|
|
256
|
-
|
|
257
|
-
|
|
238
|
+
**Scope.** Egregore Runtime is for organizational recall only: team memory,
|
|
239
|
+
decisions, handoffs, prior work. Code, files, Git, and tests use the harness's
|
|
240
|
+
normal tools, with no beat and no Runtime call. Startup hydration, graph
|
|
241
|
+
writes, ingestion, background sync, maintenance, and internal queries get no beat.
|
|
258
242
|
|
|
259
243
|
**Routing:** Organizational recall always enters Egregore Runtime. The model is
|
|
260
244
|
the semantic intent authority, deciding from meaning rather than fixed phrases.
|
|
245
|
+
Do not run retrieval on unrelated prompts or infer graph from recall intent.
|
|
261
246
|
Prompt hooks attach identity and guidance only; they never retrieve evidence.
|
|
262
|
-
|
|
247
|
+
The full retrieval contract arrives with the session's first prompt as
|
|
248
|
+
`EGREGORE_ACTOR_CONTEXT_V1` (later prompts carry a reminder); follow it.
|
|
249
|
+
When `EGREGORE_ORG_CONTEXT_V1` is attached, reuse its authorized evidence.
|
|
250
|
+
When the full contract is not in your context (a subagent, a missed hook, or
|
|
251
|
+
after a compaction), start with
|
|
263
252
|
|
|
264
253
|
```bash
|
|
265
254
|
bash bin/search.sh find "<query>" --kind <kind> --context-packet
|
|
266
255
|
```
|
|
267
256
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
JSON operations, episode arguments, or gap explanations for normal retrieval.
|
|
273
|
-
Use `find` for model-led discovery; `query` is a compatibility command. Read
|
|
274
|
-
canonical sources through `search.sh open`, never a raw file-read tool or shell
|
|
275
|
-
read. An adequate excerpt already supports an answer; no extra open is needed.
|
|
257
|
+
and follow `.claude/context/retrieval-investigation.md`.
|
|
258
|
+
Open necessary sources together with `bash bin/search.sh open`; never read
|
|
259
|
+
memory with a raw file tool, `grep` or `ls`. Do not `cd` into the sibling memory repository.
|
|
260
|
+
Never relax the date boundary to manufacture coverage.
|
|
276
261
|
|
|
277
262
|
`--context-packet` attaches the evidence privately; the visible output is the
|
|
278
263
|
attribution line alone. Never re-print ranked results or raw JSON.
|
|
279
264
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
team/person synthesis, retain the requested subject and choose a `recent_days`
|
|
284
|
-
window. Use date filters for a known topic, or a bounded date inventory for
|
|
285
|
-
a recent-work overview. `/activity`, `/dashboard`, and `/project`
|
|
286
|
-
display bounded status surfaces only when named or directly requested as a
|
|
287
|
-
card. Explained syntheses of current organizational work and prior-work
|
|
288
|
-
discovery are Runtime/QMD recall. Do not run retrieval on unrelated prompts or
|
|
289
|
-
infer graph from recall intent.
|
|
290
|
-
|
|
291
|
-
Do not emit the beat for code search, Git inspection, startup hydration, graph
|
|
292
|
-
writes, ingestion, background sync, maintenance, or internal queries.
|
|
293
|
-
Never name `Egregore Connect` unless a graph read will actually run.
|
|
265
|
+
`/activity`, `/dashboard`, and `/project` display bounded status surfaces only
|
|
266
|
+
when named or directly requested as a card.
|
|
267
|
+
Explained syntheses of current organizational work and prior-work discovery are Runtime/QMD recall.
|
|
294
268
|
|
|
295
269
|
## Notifications
|
|
296
270
|
|
|
@@ -332,12 +306,15 @@ Never repeat it.
|
|
|
332
306
|
|
|
333
307
|
## Memory
|
|
334
308
|
|
|
335
|
-
`memory/`
|
|
336
|
-
- `people/` — team
|
|
337
|
-
- `handoffs/` —
|
|
338
|
-
- `knowledge/decisions/` —
|
|
339
|
-
- `knowledge/patterns/` —
|
|
340
|
-
- `infrastructure/` —
|
|
309
|
+
`memory/` links to the repo in `egregore.json`:
|
|
310
|
+
- `people/` — team
|
|
311
|
+
- `handoffs/` — handoffs and index
|
|
312
|
+
- `knowledge/decisions/` — decisions
|
|
313
|
+
- `knowledge/patterns/` — patterns
|
|
314
|
+
- `infrastructure/` — services and credential locations
|
|
315
|
+
|
|
316
|
+
Write memory through its commands, never the files: `/reflect` for decisions, `/handoff` for handoffs.
|
|
317
|
+
|
|
341
318
|
|
|
342
319
|
Always use HTTPS for git operations — `github-auth.sh` handles credential storage.
|
|
343
320
|
|
|
@@ -356,9 +333,8 @@ needs) or escalate one tier (uncertainty). Full spec:
|
|
|
356
333
|
## Git Workflow
|
|
357
334
|
|
|
358
335
|
`develop` is the default integration branch. A top-level
|
|
359
|
-
`egregore.json.base_branch` replaces it
|
|
360
|
-
|
|
361
|
-
git directly.
|
|
336
|
+
`egregore.json.base_branch` replaces it; `base_branch: "main"` is single-branch
|
|
337
|
+
mode. Users never interact with git directly.
|
|
362
338
|
|
|
363
339
|
```
|
|
364
340
|
main ← selected `/release` candidates
|
|
@@ -372,10 +348,9 @@ develop ← CL integration (available internally)
|
|
|
372
348
|
- **On launch**: syncs the configured base branch + memory. Does NOT create a branch.
|
|
373
349
|
- **Branch creation**: required before project changes; read-only work stays put.
|
|
374
350
|
- **Resuming**: rebase onto the configured base branch and continue.
|
|
375
|
-
- **Read-only sessions**: no branch creation based on message count.
|
|
376
351
|
- **`/save`**: pushes the working branch and opens a PR to the configured base. Auto-merges markdown-only PRs.
|
|
377
352
|
- **Memory repo**: stays on main (separate repo, auto-merge).
|
|
378
|
-
- **Never push directly to the configured base, main, or develop.**
|
|
353
|
+
- **Never push directly to the configured base, main, or develop.** Changes flow through PRs, merged with `bash bin/agent.sh merge <pr>`, never `gh pr merge`; a red check needs a receipt naming each failing job and why.
|
|
379
354
|
|
|
380
355
|
### Pull request format (all harnesses)
|
|
381
356
|
|
|
@@ -383,23 +358,17 @@ Every PR body follows `.claude/context/pr-format.md`, enforced by the `pr-format
|
|
|
383
358
|
|
|
384
359
|
### Commit format (all harnesses)
|
|
385
360
|
|
|
386
|
-
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
|
|
361
|
+
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 `bash bin/session-id.sh`, 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`.
|
|
387
362
|
|
|
388
363
|
### Managed Repos
|
|
389
364
|
|
|
390
365
|
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.
|
|
391
366
|
|
|
392
|
-
## Working Conventions
|
|
393
|
-
|
|
394
|
-
- For unfamiliar org work, use Observe context; if absent, run `bash bin/search.sh find` with an appropriate lookup kind.
|
|
395
|
-
- Document significant decisions in `memory/knowledge/decisions/`
|
|
396
|
-
- After substantial sessions, log to `memory/handoffs/` and update `index.md`
|
|
397
|
-
|
|
398
367
|
## Command Awareness
|
|
399
368
|
|
|
400
369
|
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.
|
|
401
370
|
|
|
402
|
-
**Core loop** — `/activity` `/dashboard` `/handoff` `/wrap` `/save` `/reflect` `/todo`
|
|
371
|
+
**Core loop** — `/activity` `/dashboard` `/handoff` `/wrap` `/save` `/reflect` `/todo` `/records`
|
|
403
372
|
**Knowledge** — `/search` `/deep-reflect` `/archive` `/note` `/add` `/meeting` `/ingest` `/scroll` `/mock` `/audit`
|
|
404
373
|
**Identity** — `/me` (view profile or set display name)
|
|
405
374
|
**Coordination** — `/ask` `/quest` `/issue` `/invite` `/delete-user` `/announce`
|
|
@@ -411,17 +380,10 @@ Invoke commands from user intent — don't wait for the slash. Each command file
|
|
|
411
380
|
|
|
412
381
|
**Disambiguation:**
|
|
413
382
|
- 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)
|
|
414
|
-
-
|
|
415
|
-
- Finding
|
|
416
|
-
Reuse equivalent evidence and investigate distinct gaps through the same Runtime.
|
|
417
|
-
Use `bash bin/search.sh find` or `open` and the shared investigation contract. Use Grep/Glob for code and exact errors, not org
|
|
418
|
-
recall. Do not `cd` into the sibling memory repository.
|
|
419
|
-
- Finding **something you generated** (a scroll, handoff, emissary, decision, any hosted egregore.xyz link): `bash bin/artifacts.sh find <query>`. Every generative surface records into memory — hosted artifacts self-register into `memory/artifacts/` at publish (committed+pushed, findable from any session); handoffs in `memory/handoffs/`, emissaries in `memory/handoffs/outbound/`, decisions/findings/patterns in `memory/knowledge/`. The finder searches all of them by **content, not just name**, ranks title/topic matches above body mentions, tags hits by type (`[document]`/`[handoff]`/`[emissary]`/`[decision]`), and surfaces the shareable URL — grep-first in OSS, search + graph when available. *"bring me the artifact where I laid out our GTM plan"* → this.
|
|
383
|
+
- Finding things — organizational recall through Runtime (Egregore Retrieval Beat); Grep/Glob for code and exact errors.
|
|
384
|
+
- Finding **something you generated** (a scroll, handoff, emissary, decision, any hosted egregore.xyz link): `bash bin/artifacts.sh find <query>` searches every generated record by content, tags its type and returns the shareable URL. *"bring me the artifact where I laid out our GTM plan"* → this.
|
|
420
385
|
- 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)
|
|
421
|
-
-
|
|
422
|
-
`/project` (named project). These display cards when named or directly
|
|
423
|
-
requested. Analytical questions about organizational work and specific
|
|
424
|
-
prior-work continuation route through Runtime/QMD recall.
|
|
386
|
+
- Status cards: `/dashboard` (personal) · `/activity` (org-wide) · `/project` (named project), only when named or requested as a card.
|
|
425
387
|
- Ending: `/wrap` (personal closure) · `/handoff` (notes for others) · `/save` (still working)
|
|
426
388
|
- Tasks: `/todo` (personal) · `/quest` (team exploration) · `/issue` (something broken)
|
|
427
389
|
- Questions: `/ask [person]` (async) · just ask (agent answers from context)
|
|
@@ -435,6 +397,8 @@ Invoke commands from user intent — don't wait for the slash. Each command file
|
|
|
435
397
|
- Agents: `/summon` (design through questions) · `/loop` (quick recurring schedule)
|
|
436
398
|
- Announcements: `/announce` (broadcast to group) · `/handoff` (structured to a person) · `bin/notify.sh send` (DM one person)
|
|
437
399
|
|
|
400
|
+
**Interface taste** — when someone likes or dislikes a generated interface, follow the contract in `bash bin/genui.sh --help`.
|
|
401
|
+
|
|
438
402
|
## Socratic Questioning (MANDATORY)
|
|
439
403
|
|
|
440
404
|
**Triggers**: "ask me questions", "question me", "help me think through", or any request to be questioned.
|
|
@@ -469,9 +433,9 @@ Egregore runs in one of two configurations, set by `mode` in `egregore.json`. De
|
|
|
469
433
|
|
|
470
434
|
## Environment Isolation
|
|
471
435
|
|
|
472
|
-
Sessions are confined to this project + memory + managed repos, with a **two-tier boundary** enforced by the PreToolUse hook — a hard wall between Egregore instances, a consent gate for everything else.
|
|
436
|
+
Sessions are confined to this project + memory + managed repos, with a **two-tier boundary** enforced by a check before each action on every runtime (`bin/boundary-guard.cjs`; here the PreToolUse hook) — a hard wall between Egregore instances, a consent gate for everything else. The check reliably denies literal paths into another instance, through structured tools and in shell text, and fails closed on its own state; it cannot see paths built at run time or commands split across calls, so it is a seatbelt, not a sandbox (an OS-level layer is the planned follow-up). Never construct a path at run time to reach another instance.
|
|
473
437
|
|
|
474
438
|
- **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 the hook denies a hard-tier path there is nothing to ask — refuse and explain.
|
|
475
439
|
- **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. Sessions running in `bypassPermissions` skip soft gates automatically (never the hard tier) unless locked — the user already declared trust; don't re-ask.
|
|
476
|
-
- **When the hook asks for consent** (soft-tier block): do not retry yet, do not route around via Bash, and do not list remediation as prose. Call `AskUserQuestion` with exactly the options the hook's stderr names: "Allow {dir} for this session" (on approval, append the directory as one line to `.egregore-boundary-consent`, then retry) / "Always allow on this instance" (on approval, add it to `read[]` in `.egregore-boundary.local.json`, then retry) / "Paste contents inline" / "Cancel". Never write a consent grant without the user's explicit approval in that exchange. Session grants are cleared on session start.
|
|
440
|
+
- **When the hook asks for consent** (soft-tier block): do not retry yet, do not route around via Bash, and do not list remediation as prose. Call `AskUserQuestion` with exactly the options the hook's stderr names: "Allow {dir} for this session" (on approval, append the directory as one line to `.egregore-boundary-consent`, then retry) / "Always allow on this instance" (reads only, so a blocked write never offers it; on approval, add it to `read[]` in `.egregore-boundary.local.json`, then retry) / "Paste contents inline" / "Cancel". Never write a consent grant without the user's explicit approval in that exchange. Session grants are cleared on session start.
|
|
477
441
|
- See DEVELOPMENT.md §3 for boundary details and `memory/knowledge/decisions/2026-07-08-boundary-hook-consent-design.md` for the design decisions
|