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
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: view
|
|
3
|
+
description: "Generate a branded HTML artifact from Egregore data (quest, handoff, activity, board, network, or any document) and open it in the browser. Use for /view, 'render this', or 'show me visually'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Generate a branded HTML artifact from Egregore data and open it in the browser.
|
|
7
|
+
|
|
8
|
+
Works in both connected and local mode — resolves data from memory files, not the graph.
|
|
9
|
+
|
|
10
|
+
## When to invoke
|
|
11
|
+
|
|
12
|
+
User says: "show me visually", "render this", "view as artifact", "open in browser",
|
|
13
|
+
"make this readable", "generate artifact", "show me [quest/handoff/plan]", "/view"
|
|
14
|
+
|
|
15
|
+
Not this: terminal formatting → just format in markdown · dashboard → `/dashboard`
|
|
16
|
+
|
|
17
|
+
Arguments: $ARGUMENTS (Optional: artifact type and/or name, or a file path)
|
|
18
|
+
|
|
19
|
+
## Runtime source boundary
|
|
20
|
+
|
|
21
|
+
Resolve deictic requests from the current conversation before organizational
|
|
22
|
+
retrieval. When `this`, `that`, `it`, or `the above` unambiguously refers to
|
|
23
|
+
the single artifact just created, accepted, or shown, reuse its full content
|
|
24
|
+
already in context and stage it verbatim. If that content is collapsed or the
|
|
25
|
+
prior receipt supplies only a canonical path, open that exact path once through
|
|
26
|
+
`bin/search.sh open`; do not run `bin/search.sh query` to rediscover a known
|
|
27
|
+
artifact.
|
|
28
|
+
|
|
29
|
+
Resolve organizational sources from the attached authorized
|
|
30
|
+
`EGREGORE_ORG_CONTEXT_V1` block first. Do not repeat its retrieval or reopen
|
|
31
|
+
its already opened sources. When the requested source is absent, run one
|
|
32
|
+
Runtime query and open the selected canonical file through
|
|
33
|
+
`bin/search.sh open`; do not use raw `ls`, `find`, or graph traversal as an
|
|
34
|
+
authorization bypass. Local rendering is the default. Publishing or replacing
|
|
35
|
+
a stable hosted view requires an explicit `SHARE` request and checkpoint.
|
|
36
|
+
Never publish from an ordinary view request.
|
|
37
|
+
|
|
38
|
+
## Loom routing
|
|
39
|
+
|
|
40
|
+
Claude Code: use this Loom routing section. Other harnesses continue with
|
|
41
|
+
Rendering mode below.
|
|
42
|
+
|
|
43
|
+
Skip this section when the prompt contains `LOOM-EXECUTOR`; execute the
|
|
44
|
+
authorized render directly and never re-delegate.
|
|
45
|
+
|
|
46
|
+
Explicit `--compose`, designed/flagship, or client-facing requests remain
|
|
47
|
+
main-loop-only: render inline, then print
|
|
48
|
+
`bash bin/loom.sh footer view --override` and mark telemetry as an override.
|
|
49
|
+
For the deterministic renderer:
|
|
50
|
+
|
|
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
|
+
present (Loom is internal-only and does not ship in the OSS distribution),
|
|
53
|
+
skip route resolution and the footer entirely and follow the script route
|
|
54
|
+
below — it is the framework default and needs no Loom.
|
|
55
|
+
2. **Script route (`"mode": "script"` — the framework default).** Judgment
|
|
56
|
+
stays in the main loop: resolve what the user means into a type and source
|
|
57
|
+
(the Resolution logic below). Then run the mechanics with no model in the
|
|
58
|
+
loop — one call, which stages the source through the Runtime read boundary,
|
|
59
|
+
serves repeat views from a content-addressed cache, renders, and opens:
|
|
60
|
+
`bash bin/view-render.sh <type> <memory/...-or-file> [-- --brief <path>]`.
|
|
61
|
+
Print its output verbatim, then `bash bin/loom.sh footer view`. Do not
|
|
62
|
+
spawn a subagent, re-open the source yourself, or re-run retrieval for the
|
|
63
|
+
render. If the script exits non-zero, report its error; only a composition
|
|
64
|
+
or interaction need justifies taking over inline.
|
|
65
|
+
3. For an inline route, continue below in the main loop.
|
|
66
|
+
4. For a delegate route (org override), delegate only when available and
|
|
67
|
+
permitted in this session; otherwise continue inline. When delegating,
|
|
68
|
+
spawn `loom-executor` at the returned tier with `LOOM-DECISION-ID`, `LOOM-EXECUTOR: Execute
|
|
69
|
+
.claude/skills/view/SKILL.md`, the user's exact arguments, and the attached
|
|
70
|
+
`EGREGORE_ORG_CONTEXT_V1` block verbatim; print its final output, then
|
|
71
|
+
`bash bin/loom.sh footer view`. On `LOW_CONFIDENCE:` take over inline.
|
|
72
|
+
5. Emit telemetry best-effort from the driver:
|
|
73
|
+
`bash bin/telemetry.sh emit "command" '{"command":"view","routed":true}' 2>/dev/null &`.
|
|
74
|
+
|
|
75
|
+
Loom transports the authorized context; it never grants new read or SHARE
|
|
76
|
+
authority. The minion workflow is unrelated to this render route.
|
|
77
|
+
|
|
78
|
+
## Rendering mode
|
|
79
|
+
|
|
80
|
+
Use the packaged deterministic renderer by default, driven through
|
|
81
|
+
`bin/view-render.sh` — rendering is mechanical, so no model belongs in that
|
|
82
|
+
path. Run inline composition only when the user explicitly requests it. A
|
|
83
|
+
normal “view/open/render this” uses the script route without duplicate
|
|
84
|
+
retrieval. A repeat view of unchanged content reports
|
|
85
|
+
`(served from render cache)` — that is expected, not staleness: the cache key
|
|
86
|
+
is the content bytes, the renderer, and the arguments.
|
|
87
|
+
|
|
88
|
+
## Supported artifact types
|
|
89
|
+
|
|
90
|
+
- `quest` — renders quest markdown from `memory/quests/`
|
|
91
|
+
- `handoff` — renders handoff markdown from `memory/handoffs/`
|
|
92
|
+
- `activity` — renders live team activity dashboard (no file needed)
|
|
93
|
+
- `board` — renders the typed live project-board surface (interactive editor with 5 tabs: Activity / Priority / Person / Timeline / Done). Publishing the stable hosted board is a separate explicit action.
|
|
94
|
+
- `network` — renders people/relationship network (no file needed)
|
|
95
|
+
- `document` — renders any markdown file with branded styling (auto-detected fallback)
|
|
96
|
+
|
|
97
|
+
## Resolution logic
|
|
98
|
+
|
|
99
|
+
The key job of `/view` is resolving what the user wants to see into a file path. This must work without a graph.
|
|
100
|
+
|
|
101
|
+
### 1. Parse the arguments
|
|
102
|
+
|
|
103
|
+
- `/view quest artifact-generation` → type=quest, name=artifact-generation
|
|
104
|
+
- `/view handoff oss-security-audit` → type=handoff, name=oss-security-audit
|
|
105
|
+
- `/view activity` → type=activity, no file needed
|
|
106
|
+
- `/view board` → type=board, typed live surface; no source path resolution
|
|
107
|
+
- `/view network` → type=network, no file needed
|
|
108
|
+
- `/view artifact-generation` → no type specified, search all types
|
|
109
|
+
- `/view memory/knowledge/decisions/some-decision.md` → direct file path
|
|
110
|
+
- `show me the security audit visually` → extract keywords, search
|
|
111
|
+
|
|
112
|
+
### 2. Resolve the file
|
|
113
|
+
|
|
114
|
+
**Direct canonical file path**: If the argument names `memory/...`, open it
|
|
115
|
+
through `bash bin/search.sh open "memory/..."` into a temporary render source.
|
|
116
|
+
A denied or missing source stops resolution; never pass the raw canonical path
|
|
117
|
+
to the renderer or fall through to an unchecked filesystem read. An explicit
|
|
118
|
+
non-memory path inside the current repository may be rendered as a repository
|
|
119
|
+
document, but it is never treated as organizational memory.
|
|
120
|
+
|
|
121
|
+
**Quest, handoff, document, or auto-detected name**: Prefer the best matching
|
|
122
|
+
canonical source and opened content already present in
|
|
123
|
+
`EGREGORE_ORG_CONTEXT_V1`; stage that content as a temporary render source
|
|
124
|
+
without reopening it. Otherwise run one ranked call, optionally including the
|
|
125
|
+
requested type in the concept, then open only the selected result into the
|
|
126
|
+
temporary render source:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
bash bin/search.sh query "<artifact name and optional type>" -n 6 --compact --context-packet
|
|
130
|
+
bash bin/search.sh open "<selected memory/... path>"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Claude Code: `--compact --context-packet` keeps the ranked evidence out of the
|
|
134
|
+
visible transcript — the resolution query must never print result blocks
|
|
135
|
+
before the render. Pass the selected source to the renderer script as its
|
|
136
|
+
`memory/...` canonical path, never as an absolute filesystem path.
|
|
137
|
+
|
|
138
|
+
Infer the renderer type from the selected canonical path. If several results
|
|
139
|
+
are genuinely ambiguous, show the short choices rather than scanning the
|
|
140
|
+
repository again.
|
|
141
|
+
|
|
142
|
+
**Activity**: No file resolution needed — runs `bin/activity-data.sh` live.
|
|
143
|
+
|
|
144
|
+
**Board / Network**: Use only the renderer's typed Runtime-backed live surface;
|
|
145
|
+
do not pre-scan or pre-open memory files.
|
|
146
|
+
|
|
147
|
+
**Auto-detect type** (no type specified): infer `quest` or `handoff` from the
|
|
148
|
+
authorized result path; everything else is `document`.
|
|
149
|
+
|
|
150
|
+
### 3. Generate and open
|
|
151
|
+
|
|
152
|
+
**On the script route, `bin/view-render.sh` owns everything in this section**:
|
|
153
|
+
it resolves the packaged renderer locally (checked-out
|
|
154
|
+
`packages/egregore-artifacts` with dependencies first, then the instance's
|
|
155
|
+
managed renderer, then an installed `egregore-artifacts` on PATH;
|
|
156
|
+
never `npx`, never a registry fetch), stages complete `memory/...` documents
|
|
157
|
+
through the existing authorized `Runtime.open_source` adapter (ordinary model
|
|
158
|
+
evidence reads remain bounded), serves unchanged content from the content-addressed
|
|
159
|
+
render cache, invokes the renderer exactly once with `--output`, and opens the
|
|
160
|
+
browser. Call it once with the resolved type and source; do not re-implement
|
|
161
|
+
these steps inline. The commands below describe what the script does and are
|
|
162
|
+
the inline fallback only when the resolved route is `inline`.
|
|
163
|
+
|
|
164
|
+
**Design trace (documents).** A `document` render should follow the design
|
|
165
|
+
trace, not ship bare: auto-walk the UGI synthesis graph from the document's
|
|
166
|
+
substance (five stage ids — objective · audience · register · palette ·
|
|
167
|
+
grammar; option ids and auto-walk rules in
|
|
168
|
+
`packages/design-system/generative-ui/skill/SKILL.md`), resolve the brief, and
|
|
169
|
+
pass it to the renderer:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
bash bin/node-run.sh --input-type=module -e "
|
|
173
|
+
import { resolveBrief } from './packages/design-system/generative-ui/resolve-brief.js';
|
|
174
|
+
import fs from 'node:fs';
|
|
175
|
+
fs.mkdirSync('tmp', { recursive: true });
|
|
176
|
+
fs.writeFileSync('tmp/view-brief-{slug}.json',
|
|
177
|
+
JSON.stringify(resolveBrief(['{objective}','{audience}','{register}','{palette}','{grammar}'])));
|
|
178
|
+
"
|
|
179
|
+
bash bin/view-render.sh document <memory/...-or-file> -- --brief tmp/view-brief-{slug}.json
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Picking the five ids is judgment and stays in the main loop; the brief file
|
|
183
|
+
rides into the render through `--` and participates in the cache key.
|
|
184
|
+
|
|
185
|
+
Pick the five ids from the substance, one line of judgment each (e.g. a
|
|
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.
|
|
194
|
+
|
|
195
|
+
The deterministic renderer already owns its light/dark theme contract. Do not
|
|
196
|
+
invoke or reread a separate visual-theme skill for an ordinary render. Apply
|
|
197
|
+
the Dark Mode contract only while authoring composed HTML or changing renderer
|
|
198
|
+
code.
|
|
199
|
+
|
|
200
|
+
### Composition path (`--compose`) — band 5, main-loop only
|
|
201
|
+
|
|
202
|
+
The template above is the **floor**. `--compose` is the **ceiling**: the design
|
|
203
|
+
trace at full depth means COMPOSITION, not pass-through (D6 free-generative band
|
|
204
|
+
— how the reference pages were made). The template renderer can never reach it;
|
|
205
|
+
composition is the frontier model authoring the page from the substance. This
|
|
206
|
+
path is what makes that reachable from the command instead of only by accident.
|
|
207
|
+
|
|
208
|
+
This path fires only on explicit cues: `--compose`, "compose / make it
|
|
209
|
+
presentable / client-facing / flagship / with the design trace / use the design
|
|
210
|
+
trace / designed artifact / band 5". **When the user names "the design trace,"
|
|
211
|
+
they mean this composed ceiling — never the floor.** Otherwise use the local
|
|
212
|
+
deterministic renderer.
|
|
213
|
+
|
|
214
|
+
**Technical documents compose too — in a different register.** A spec, RFC,
|
|
215
|
+
protocol, architecture doc, API reference, evaluation report, or postmortem is
|
|
216
|
+
flagship and gets the full chrome, but it does **not** get editorial voice. See
|
|
217
|
+
step 4 below: the register decision comes before any content is written, and
|
|
218
|
+
picking wrong is the single most common way a composed render lands badly.
|
|
219
|
+
|
|
220
|
+
**Procedure (run inline — never delegate; see the compose note in Loom routing):**
|
|
221
|
+
|
|
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
|
+
|
|
230
|
+
2. Start from the scaffold: `.claude/skills/view/compose-scaffold.html` (copy it;
|
|
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.
|
|
234
|
+
3. Walk the UGI graph for the register/palette/grammar (as above) and stamp the
|
|
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.
|
|
252
|
+
4. **Decide the register FIRST — editorial or technical.** This governs every
|
|
253
|
+
sentence you then write, and it is not a style preference; it is what the
|
|
254
|
+
document *is*. Ask: does a reader come here to be *persuaded of a view*, or
|
|
255
|
+
to *look something up and implement it*?
|
|
256
|
+
|
|
257
|
+
| | **Editorial** | **Technical** |
|
|
258
|
+
|---|---|---|
|
|
259
|
+
| Documents | strategy · prep · briefing · explainer · analysis · narrative recap · pitch | spec · RFC · protocol · architecture · API reference · evaluation report · runbook · postmortem |
|
|
260
|
+
| Headings | **statement titles** — the section's *finding* as display copy ("Most of the zoom-out is already decided.") | **descriptive, numbered** — the section's *name* ("3.3 Toponym and cultivar collision") |
|
|
261
|
+
| Hero | two-tone `Lead. <em>accent phrase</em>` + italic standfirst | plain title + a `.meta` grid (version · date · author · depends-on) |
|
|
262
|
+
| Prose | argues, lands a point, carries voice | states, qualifies, cites; declarative and neutral |
|
|
263
|
+
| Opens with | the claim | Abstract, then Scope |
|
|
264
|
+
| Decisions | `.hl` / `.readout` — the thing to land | explicit `Decision:` blocks, individually citable |
|
|
265
|
+
| Tables | `.sumtable`, status matrices | numbered with `<caption>` ("Table 2 — …") so prose can reference them |
|
|
266
|
+
| Never | bury the finding in a neutral heading | editorialize a heading, or assert without the measurement behind it |
|
|
267
|
+
|
|
268
|
+
Signals for technical: numbered sections, a version field, "spec"/"protocol"/
|
|
269
|
+
"requirements" in the title, code blocks carrying invocations, tables of
|
|
270
|
+
measurements, a References section. **When the document is something someone
|
|
271
|
+
will implement from, choose technical.** Editorial voice on a spec reads as
|
|
272
|
+
unserious and buries the lookup value — that is the failure mode this table
|
|
273
|
+
exists to prevent.
|
|
274
|
+
|
|
275
|
+
Stamp the choice into the manifest `register` and the footer trail
|
|
276
|
+
(`editorial` / `technical`, with a matching grammar such as `decisive` or
|
|
277
|
+
`specification`).
|
|
278
|
+
|
|
279
|
+
5. **Transform, don't mirror** — in the chosen register. Never reproduce the
|
|
280
|
+
markdown structure verbatim; pick a component per section from the kit by
|
|
281
|
+
what the content *is*:
|
|
282
|
+
- `.ledger` for Q→A pairs · `.tagcard` for named claims · `.claims` for
|
|
283
|
+
numbers/stats · `.panels`+`.verdict-band` for option sets · `.hl` for the
|
|
284
|
+
one thing to land · `.steps` for sequences · `.feat` for capability+status
|
|
285
|
+
rows · `.threads` for decision lists · `.gap` for negatives · `.sumtable`
|
|
286
|
+
with `.dot`s for a status matrix · `.readout` for the honest bottom line
|
|
287
|
+
- technical renders lean on captioned tables, `Decision:` blocks, numbered
|
|
288
|
+
rationale lists, and `.note`/`.note.caution` for limitations and hazards;
|
|
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
|
|
300
|
+
- **transformation in technical register means structure, not voice** — split
|
|
301
|
+
prose into tables, number the rationale, surface the decisions; do not
|
|
302
|
+
rewrite the author's claims into slogans
|
|
303
|
+
- nav links: one per composed section, to its `id` anchor
|
|
304
|
+
6. **Never inline a hex in content** — every theme-sensitive color is a
|
|
305
|
+
`var(--token)`, or the toggle breaks dark mode. The kit already obeys this.
|
|
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.
|
|
309
|
+
7. Write to `/tmp/egregore-artifacts/composed-{slug}.html` and open directly
|
|
310
|
+
(`open <path>`), then report the path + `Renderer: composed (band 5, inline)`.
|
|
311
|
+
|
|
312
|
+
Composition is judgment, not a script — the scaffold is the vocabulary, the
|
|
313
|
+
substance decides the sentence. When `--compose` is absent, use the fast
|
|
314
|
+
template path below.
|
|
315
|
+
|
|
316
|
+
For typed artifacts with a file:
|
|
317
|
+
```bash
|
|
318
|
+
bash bin/view-render.sh <type> <memory/...-or-file>
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
For auto-detected (just a file path):
|
|
322
|
+
```bash
|
|
323
|
+
bash bin/view-render.sh document <memory/...-or-file>
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
For activity (no file — live surfaces are never cached):
|
|
327
|
+
```bash
|
|
328
|
+
bash bin/view-render.sh activity
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**For an explicitly requested publish:** local render/open is already complete.
|
|
332
|
+
Authorize `SHARE` for the exact staged artifact and show a Publish / Cancel
|
|
333
|
+
checkpoint containing the organization, destination, title, source, and
|
|
334
|
+
whether a stable URL will be replaced. After approval, invoke the Runtime
|
|
335
|
+
publication adapter once. `/view` does not inspect hosting configuration or
|
|
336
|
+
manage publication transport itself. If no Runtime publication adapter is
|
|
337
|
+
available, keep the local artifact and say publishing is unavailable rather
|
|
338
|
+
than falling back to a legacy script. Notification consent remains separate.
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
### 4. Report
|
|
342
|
+
|
|
343
|
+
Report the exact HTML path returned by the renderer or written by composition;
|
|
344
|
+
do not infer a filename from the examples below.
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
✓ Artifact opened in browser
|
|
348
|
+
File: /tmp/egregore-artifacts/{type}-{name}-{ts}.html
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
Only after an approved SHARE action returns a URL, append:
|
|
352
|
+
```
|
|
353
|
+
◆ {receipt.url} (use the exact URL returned by the approved publication)
|
|
354
|
+
```
|
|
355
|
+
Read `org_slug` from `egregore.json`.
|
|
356
|
+
|
|
357
|
+
## Fallback
|
|
358
|
+
|
|
359
|
+
If the local renderer is unavailable, report that the instance renderer needs
|
|
360
|
+
installation or repair. Do not install or fetch software implicitly.
|
|
361
|
+
|
|
362
|
+
## Ambiguity handling
|
|
363
|
+
|
|
364
|
+
If the name matches multiple files, ask with a structured question when available and permitted in this session; otherwise ask in plain text:
|
|
365
|
+
```
|
|
366
|
+
Found multiple matches for "security":
|
|
367
|
+
1. handoffs/2026-03/31-cem-oss-security-audit.md
|
|
368
|
+
2. quests/oss-security-review.md
|
|
369
|
+
Which one?
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
If no matches found, **fall through to synthesis mode** (see below).
|
|
373
|
+
|
|
374
|
+
## Synthesis mode
|
|
375
|
+
|
|
376
|
+
When the input is a prompt or topic rather than a file name — or when file resolution finds nothing — synthesize an artifact from multiple sources.
|
|
377
|
+
|
|
378
|
+
1. **Reuse authorized evidence** — start from `EGREGORE_ORG_CONTEXT_V1`. If it
|
|
379
|
+
is absent or insufficient, run Runtime Observe once through
|
|
380
|
+
`bin/search.sh query`; open only a selected returned canonical source through
|
|
381
|
+
`bin/search.sh open`. Never scan `memory/`. Read repository files only when
|
|
382
|
+
the user explicitly asked to synthesize codebase material.
|
|
383
|
+
2. **Write a temporary markdown file** — synthesize only the authorized
|
|
384
|
+
evidence into `tmp/view-synthesized-{slug}.md`. When the
|
|
385
|
+
attached context already contains opened content, stage that content without
|
|
386
|
+
reopening its canonical source.
|
|
387
|
+
3. **Render it** — `bash bin/view-render.sh document tmp/view-synthesized-{slug}.md`
|
|
388
|
+
4. **Report** — same as normal: `✓ Artifact opened in browser`
|
|
389
|
+
|
|
390
|
+
This is the default fallback — don't ask the user if they want synthesis. If `/view auth architecture` doesn't match a file, just do the research and render it.
|
|
391
|
+
|
|
392
|
+
**When to synthesize vs. when to say "not found":**
|
|
393
|
+
- Prompt is a topic/question ("auth architecture", "how does onboarding work") → synthesize
|
|
394
|
+
- Prompt looks like a filename that should exist but doesn't ("my-missing-doc") → say not found
|
|
395
|
+
- Use judgment — if the user clearly expects a specific file, don't synthesize a guess
|
|
396
|
+
|
|
397
|
+
## Examples
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
> /view quest artifact-generation
|
|
401
|
+
|
|
402
|
+
✓ Artifact opened in browser
|
|
403
|
+
File: /tmp/egregore-artifacts/quest-artifact-generation.html
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
> show me the security audit visually
|
|
408
|
+
|
|
409
|
+
Resolving "security audit"...
|
|
410
|
+
Found: memory/handoffs/2026-03/31-cem-oss-security-audit.md
|
|
411
|
+
|
|
412
|
+
✓ Artifact opened in browser
|
|
413
|
+
File: /tmp/egregore-artifacts/handoff-31-cem-oss-security-audit.html
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
```
|
|
417
|
+
> /view memory/knowledge/decisions/auth-redirect.md
|
|
418
|
+
|
|
419
|
+
✓ Artifact opened in browser
|
|
420
|
+
File: /tmp/egregore-artifacts/document-auth-redirect.html
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
> /view activity
|
|
425
|
+
|
|
426
|
+
✓ Artifact opened in browser
|
|
427
|
+
File: /tmp/egregore-artifacts/activity-2026-04-06.html
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
```
|
|
431
|
+
> /view auth architecture
|
|
432
|
+
|
|
433
|
+
No file match — synthesizing from codebase...
|
|
434
|
+
Reading: api/main.py, api/auth.py, api/services/storage.py, ...
|
|
435
|
+
|
|
436
|
+
✓ Artifact opened in browser
|
|
437
|
+
File: /tmp/egregore-artifacts/document-auth-architecture.html
|
|
438
|
+
```
|
|
@@ -14,6 +14,17 @@
|
|
|
14
14
|
}
|
|
15
15
|
],
|
|
16
16
|
"PreToolUse": [
|
|
17
|
+
{
|
|
18
|
+
"matcher": "Bash|exec_command|shell_command|shell|write_stdin|apply_patch|Edit|Write|Read|view_image",
|
|
19
|
+
"hooks": [
|
|
20
|
+
{
|
|
21
|
+
"type": "command",
|
|
22
|
+
"command": "h=\"$(git rev-parse --show-toplevel)/bin/boundary-hook.sh\"; if [ -f \"$h\" ]; then exec bash \"$h\" codex; fi; echo 'Environment isolation: boundary guard missing (bin/boundary-hook.sh) — run /update, then restart the session. Every action is blocked until the guard is back.' >&2; exit 2",
|
|
23
|
+
"timeout": 10,
|
|
24
|
+
"statusMessage": "Checking Egregore instance boundary"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
17
28
|
{
|
|
18
29
|
"matcher": "Bash|exec_command|apply_patch|Edit|Write",
|
|
19
30
|
"hooks": [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dark-mode
|
|
3
|
-
description: 'Use when authoring or modifying browser-rendered visual output: HTML, CSS, React SSR, artifact templates, markdown renderers, design tokens, themes, or composed pages. Do not invoke for an ordinary /view render—the checked-in renderer already owns its theme contract. The load-bearing rule is that theme-sensitive colors must be emitted as `var(--token)`, never resolved inline hex.'
|
|
3
|
+
description: 'Use when authoring or modifying browser-rendered visual output: HTML, CSS, React SSR, artifact templates, markdown renderers, design tokens, themes, or composed pages. Do not invoke for an ordinary /view render—the checked-in renderer already owns its theme contract. The load-bearing rule is that theme-sensitive colors must be emitted as `var(--token)`, never resolved inline hex; the colors themselves come from the design system registry.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: records
|
|
3
|
+
description: 'View or change your session records, hold the current session, redact a past record, record past sessions from this machine, and close or file the open items records carry.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
7
|
+
|
|
8
|
+
# Egregore records Adapter
|
|
9
|
+
|
|
10
|
+
This adapter runs the canonical Egregore workflow for `records`. Its one
|
|
11
|
+
maintained body is `.claude/skills/records/SKILL.md`; read that file completely and follow it here.
|
|
12
|
+
|
|
13
|
+
Use the project shell and filesystem directly. Do not invoke Claude Code
|
|
14
|
+
commands. Translate interactive choices to structured Codex question tooling
|
|
15
|
+
when it is available; otherwise render compact numbered choices with an
|
|
16
|
+
`Other:` option and wait for the user.
|
|
17
|
+
|
|
18
|
+
1. Read `.claude/skills/records/SKILL.md` for the workflow details.
|
|
19
|
+
2. Run the referenced `bin/` scripts directly from Codex.
|
|
20
|
+
3. Treat graph and publish steps as best-effort unless that workflow explicitly
|
|
21
|
+
says they are required.
|
|
22
|
+
4. For every external notification, follow
|
|
23
|
+
`.claude/context/notification-consent.md`: plan without sending, then show
|
|
24
|
+
a separate exact Send / Edit / Cancel checkpoint. Never infer notification
|
|
25
|
+
consent from the workflow request or a batch approval.
|
|
26
|
+
5. Keep local-mode behavior filesystem-first and avoid graph or notification
|
|
27
|
+
calls when `egregore.json` declares `"mode": "local"`.
|
|
28
|
+
6. Never call the deprecated `egregore-handoff` CLI for Egregore project
|
|
29
|
+
handoffs.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: summon
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Reuse, design, and launch Egregore spirits. Review available recipes and current host permissions, then start authorized on-demand work or design a scheduled process for an available scheduler.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- generated-by: bin/codex-sync-skills.sh -->
|
|
@@ -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)}
|