@zerwiz/ymir 0.1.4 → 0.1.7
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/.agents/README.md +291 -0
- package/.agents/agents/bragi-marketer.md +111 -0
- package/.agents/agents/brokk.md +352 -0
- package/.agents/agents/forseti-reviewer.md +93 -0
- package/.agents/agents/frigg-consent.md +77 -0
- package/.agents/agents/groa-update.md +77 -0
- package/.agents/agents/hnoss-designer.md +69 -0
- package/.agents/agents/huginn-researcher.md +99 -0
- package/.agents/agents/jord-projects.md +78 -0
- package/.agents/agents/kvasir-scout.md +91 -0
- package/.agents/agents/mimir-planner.md +92 -0
- package/.agents/agents/muninn-stow.md +77 -0
- package/.agents/agents/saga-bearings.md +78 -0
- package/.agents/agents/sindri-developer.md +114 -0
- package/.agents/agents/snotra-documenter.md +105 -0
- package/.agents/agents/syn-recovery.md +78 -0
- package/.agents/agents/tyr-check.md +78 -0
- package/.agents/agents/urdh-hold.md +77 -0
- package/.agents/agents/volundr-smith.md +80 -0
- package/.agents/agents/vor-diagnostics.md +77 -0
- package/.agents/assets/agents/naming.md +50 -0
- package/.agents/assets/agents/registry.md +93 -0
- package/.agents/assets/agents/runtime.md +36 -0
- package/.agents/assets/agents/toon-tasks-cli.md +42 -0
- package/.agents/assets/templates/company_entity.template.md +37 -0
- package/.agents/backend/README.md +74 -0
- package/.agents/backend/backends/cmux.sh +649 -0
- package/.agents/backend/backends/herdr-eventwait.py +157 -0
- package/.agents/backend/backends/herdr-workspace-move.py +114 -0
- package/.agents/backend/backends/herdr.sh +3386 -0
- package/.agents/backend/backends/orca.sh +290 -0
- package/.agents/backend/backends/tmux.sh +357 -0
- package/.agents/backend/backends/zellij.sh +700 -0
- package/.agents/backend/fm-afk-launch.sh +654 -0
- package/.agents/backend/fm-afk-return.sh +241 -0
- package/.agents/backend/fm-afk-start.sh +172 -0
- package/.agents/backend/fm-arm-command-policy.mjs +960 -0
- package/.agents/backend/fm-arm-pretool-check.sh +200 -0
- package/.agents/backend/fm-backend-hometag-lib.sh +52 -0
- package/.agents/backend/fm-backend.sh +981 -0
- package/.agents/backend/fm-backlog-handoff.sh +909 -0
- package/.agents/backend/fm-backlog-receive.sh +187 -0
- package/.agents/backend/fm-backlog-transition-lib.sh +779 -0
- package/.agents/backend/fm-bearings-board.sh +204 -0
- package/.agents/backend/fm-bearings-snapshot.sh +546 -0
- package/.agents/backend/fm-bootstrap.sh +1568 -0
- package/.agents/backend/fm-branch-outcome.sh +203 -0
- package/.agents/backend/fm-branch-prompt.sh +101 -0
- package/.agents/backend/fm-brief.sh +452 -0
- package/.agents/backend/fm-busy-event.sh +234 -0
- package/.agents/backend/fm-busy-lib.sh +986 -0
- package/.agents/backend/fm-captain-hold.sh +1001 -0
- package/.agents/backend/fm-cd-command-policy.mjs +153 -0
- package/.agents/backend/fm-cd-pretool-check.sh +190 -0
- package/.agents/backend/fm-check-lib.sh +74 -0
- package/.agents/backend/fm-check-register.sh +42 -0
- package/.agents/backend/fm-check-unregister.sh +52 -0
- package/.agents/backend/fm-classify-lib.sh +1770 -0
- package/.agents/backend/fm-claude-stop-autoarm.sh +334 -0
- package/.agents/backend/fm-composer-lib.sh +1416 -0
- package/.agents/backend/fm-config-inherit-lib.sh +1202 -0
- package/.agents/backend/fm-config-push.sh +254 -0
- package/.agents/backend/fm-control-lib.sh +251 -0
- package/.agents/backend/fm-control.sh +878 -0
- package/.agents/backend/fm-crew-state.sh +625 -0
- package/.agents/backend/fm-cursor-lib.sh +243 -0
- package/.agents/backend/fm-decision-hold.sh +232 -0
- package/.agents/backend/fm-doc-audience-check.sh +269 -0
- package/.agents/backend/fm-dod-lib.sh +67 -0
- package/.agents/backend/fm-ensure-agents-md.sh +253 -0
- package/.agents/backend/fm-extension-launch-barrier.mjs +129 -0
- package/.agents/backend/fm-extension.mjs +2577 -0
- package/.agents/backend/fm-extension.sh +16 -0
- package/.agents/backend/fm-ff-lib.sh +420 -0
- package/.agents/backend/fm-fleet-snapshot.sh +1463 -0
- package/.agents/backend/fm-fleet-sync.sh +458 -0
- package/.agents/backend/fm-fleet-view.sh +96 -0
- package/.agents/backend/fm-gate-refuse-lib.sh +102 -0
- package/.agents/backend/fm-guard.sh +242 -0
- package/.agents/backend/fm-harness.sh +195 -0
- package/.agents/backend/fm-herdr-ci-cleanup.sh +115 -0
- package/.agents/backend/fm-herdr-lab.sh +346 -0
- package/.agents/backend/fm-herdr-session-cleanup.sh +337 -0
- package/.agents/backend/fm-home-seed.sh +984 -0
- package/.agents/backend/fm-home-summary-refresh.sh +255 -0
- package/.agents/backend/fm-hook-host-lib.sh +36 -0
- package/.agents/backend/fm-inactive-reconcile.sh +531 -0
- package/.agents/backend/fm-inbox.sh +399 -0
- package/.agents/backend/fm-install-actionlint.sh +84 -0
- package/.agents/backend/fm-install-herdr.sh +96 -0
- package/.agents/backend/fm-install-shellcheck.sh +84 -0
- package/.agents/backend/fm-install-treehouse.sh +95 -0
- package/.agents/backend/fm-kimi-turnend-hook.sh +276 -0
- package/.agents/backend/fm-lease-lib.sh +218 -0
- package/.agents/backend/fm-lease.sh +189 -0
- package/.agents/backend/fm-line-cap-lib.sh +51 -0
- package/.agents/backend/fm-lint-workflows.sh +137 -0
- package/.agents/backend/fm-lint.sh +591 -0
- package/.agents/backend/fm-lock-lib.sh +104 -0
- package/.agents/backend/fm-lock.sh +107 -0
- package/.agents/backend/fm-marker-lib.sh +12 -0
- package/.agents/backend/fm-merge-local.sh +74 -0
- package/.agents/backend/fm-merge-outcome-lib.sh +138 -0
- package/.agents/backend/fm-nm-run-lib.sh +124 -0
- package/.agents/backend/fm-on.sh +125 -0
- package/.agents/backend/fm-operational-input.sh +253 -0
- package/.agents/backend/fm-peek.sh +46 -0
- package/.agents/backend/fm-pending-reply-lib.sh +1409 -0
- package/.agents/backend/fm-pr-check.sh +135 -0
- package/.agents/backend/fm-pr-lib.sh +1016 -0
- package/.agents/backend/fm-pr-merge.sh +707 -0
- package/.agents/backend/fm-pr-poll.sh +110 -0
- package/.agents/backend/fm-primary-scope-lib.sh +33 -0
- package/.agents/backend/fm-procevent-extension-capture.pl +259 -0
- package/.agents/backend/fm-procevent-lavish.sh +628 -0
- package/.agents/backend/fm-procevent-lib.sh +892 -0
- package/.agents/backend/fm-procevent-quota.sh +290 -0
- package/.agents/backend/fm-procevent-remote-reply.sh +577 -0
- package/.agents/backend/fm-procevent-when.sh +504 -0
- package/.agents/backend/fm-procevent.sh +1466 -0
- package/.agents/backend/fm-project-mode.sh +92 -0
- package/.agents/backend/fm-project-origin-lib.sh +180 -0
- package/.agents/backend/fm-promote.sh +282 -0
- package/.agents/backend/fm-public-followup-emit.sh +260 -0
- package/.agents/backend/fm-public-followup-lib.sh +398 -0
- package/.agents/backend/fm-public-followup.sh +1330 -0
- package/.agents/backend/fm-push-transition-lib.sh +168 -0
- package/.agents/backend/fm-quota-axi-lib.sh +93 -0
- package/.agents/backend/fm-quota-choose.sh +384 -0
- package/.agents/backend/fm-remote-delta-read.sh +189 -0
- package/.agents/backend/fm-remote-doctor.sh +800 -0
- package/.agents/backend/fm-remote-entrypoint.sh +193 -0
- package/.agents/backend/fm-remote-file.sh +234 -0
- package/.agents/backend/fm-remote-home-provision.sh +259 -0
- package/.agents/backend/fm-remote-home-seed.sh +259 -0
- package/.agents/backend/fm-remote-inherit-push.sh +90 -0
- package/.agents/backend/fm-remote-inherit.sh +179 -0
- package/.agents/backend/fm-remote-job-lib.sh +1241 -0
- package/.agents/backend/fm-remote-job-reap-orphans.sh +137 -0
- package/.agents/backend/fm-remote-job-worker.sh +1124 -0
- package/.agents/backend/fm-remote-readiness-lib.sh +44 -0
- package/.agents/backend/fm-remote-secondmate-control.sh +340 -0
- package/.agents/backend/fm-review-diff.sh +158 -0
- package/.agents/backend/fm-secondmate-charter-lib.sh +44 -0
- package/.agents/backend/fm-secondmate-nudge-lib.sh +68 -0
- package/.agents/backend/fm-secondmate-parent-lib.sh +70 -0
- package/.agents/backend/fm-secondmate-reconcile.sh +371 -0
- package/.agents/backend/fm-secondmate-registry-lib.sh +311 -0
- package/.agents/backend/fm-secondmate-report.sh +88 -0
- package/.agents/backend/fm-send.sh +1059 -0
- package/.agents/backend/fm-session-lock-lib.sh +176 -0
- package/.agents/backend/fm-session-start.sh +970 -0
- package/.agents/backend/fm-sessionstart-cursor.sh +40 -0
- package/.agents/backend/fm-sessionstart-nudge.sh +45 -0
- package/.agents/backend/fm-sessionstart-run.sh +145 -0
- package/.agents/backend/fm-spawn.sh +3153 -0
- package/.agents/backend/fm-startup-memory-budget-lib.sh +224 -0
- package/.agents/backend/fm-startup-memory-budget.sh +94 -0
- package/.agents/backend/fm-startup-network.sh +642 -0
- package/.agents/backend/fm-stow-cascade.sh +251 -0
- package/.agents/backend/fm-subagent-pretool-check.sh +207 -0
- package/.agents/backend/fm-supervise-daemon.sh +1732 -0
- package/.agents/backend/fm-supervision-instructions.sh +215 -0
- package/.agents/backend/fm-supervision-lib.sh +90 -0
- package/.agents/backend/fm-supervisor-target-lib.sh +78 -0
- package/.agents/backend/fm-tangle-lib.sh +53 -0
- package/.agents/backend/fm-task-inbox-lib.sh +402 -0
- package/.agents/backend/fm-tasks-axi-lib.sh +123 -0
- package/.agents/backend/fm-teardown.sh +2922 -0
- package/.agents/backend/fm-test-isolation-proof.sh +588 -0
- package/.agents/backend/fm-test-run.sh +2191 -0
- package/.agents/backend/fm-timeout-lib.sh +141 -0
- package/.agents/backend/fm-timing-lib.sh +179 -0
- package/.agents/backend/fm-tmux-lib.sh +291 -0
- package/.agents/backend/fm-tool-update-check.sh +898 -0
- package/.agents/backend/fm-trace-context-lib.sh +227 -0
- package/.agents/backend/fm-transition-lib.sh +103 -0
- package/.agents/backend/fm-turnend-guard-cursor.sh +391 -0
- package/.agents/backend/fm-turnend-guard-grok.sh +90 -0
- package/.agents/backend/fm-turnend-guard.sh +432 -0
- package/.agents/backend/fm-update.sh +110 -0
- package/.agents/backend/fm-vendor-auth-probe.sh +190 -0
- package/.agents/backend/fm-voice-client.py +1373 -0
- package/.agents/backend/fm-voice-relay.py +1256 -0
- package/.agents/backend/fm-wake-drain.sh +592 -0
- package/.agents/backend/fm-wake-grant.sh +127 -0
- package/.agents/backend/fm-wake-lib.sh +1849 -0
- package/.agents/backend/fm-watch-arm.sh +602 -0
- package/.agents/backend/fm-watch-checkpoint.sh +109 -0
- package/.agents/backend/fm-watch.sh +1962 -0
- package/.agents/backend/fm-x-dismiss.sh +116 -0
- package/.agents/backend/fm-x-followup.sh +286 -0
- package/.agents/backend/fm-x-lib.sh +1000 -0
- package/.agents/backend/fm-x-link.sh +234 -0
- package/.agents/backend/fm-x-poll.sh +185 -0
- package/.agents/backend/fm-x-reply.sh +385 -0
- package/.agents/backend/fm_voice_frame.py +166 -0
- package/.agents/backend/fm_voice_records.py +574 -0
- package/.agents/backend/model-bridge.py +360 -0
- package/.agents/backend/opencode-go-bridge.py +30 -0
- package/.agents/bus/README.md +12 -0
- package/.agents/bus/messages.json +1 -0
- package/.agents/config/agents.machine.example.yaml +16 -0
- package/.agents/config/agents.yaml.example +72 -0
- package/.agents/config/crew-dispatch.json +22 -0
- package/.agents/config/cron.yaml +11 -0
- package/.agents/config/eindri-dispatch.json +67 -0
- package/.agents/config/eindri-harness +1 -0
- package/.agents/config/startup-memory-budget +1 -0
- package/.agents/filebrowser/.filebrowser.json +6 -0
- package/.agents/filebrowser/README.md +11 -0
- package/.agents/gateway/README.md +12 -0
- package/.agents/github/README.md +15 -0
- package/.agents/github/webhooks/.gitkeep +0 -0
- package/.agents/github/workflows/.gitkeep +0 -0
- package/.agents/harness/opencode/plugins/lib/rodd-operational-input.js +37 -0
- package/.agents/harness/opencode/plugins/package.json +4 -0
- package/.agents/harness/opencode/plugins/saga-sessionstart.js +77 -0
- package/.agents/harness/opencode/plugins/syn-cd-check.js +61 -0
- package/.agents/harness/opencode/plugins/syn-pretool-check.js +68 -0
- package/.agents/harness/opencode/plugins/syn-turnend-guard.js +105 -0
- package/.agents/harness/opencode/plugins/syn-watch-arm.js +521 -0
- package/.agents/memory/README.md +46 -0
- package/.agents/memory/runes_audit.md +5 -0
- package/.agents/migrations/0001-hodd-layout.sh +38 -0
- package/.agents/migrations/0002-a2a-mcp.sh +27 -0
- package/.agents/migrations/0003-private-data-separation.sh +121 -0
- package/.agents/migrations/0004-hoard-and-realms.sh +104 -0
- package/.agents/migrations/0005-roots-out-of-tree.sh +158 -0
- package/.agents/sandbox/Dockerfile.utgard +19 -0
- package/.agents/sandbox/README.md +14 -0
- package/.agents/sandbox/utgard.config.json +14 -0
- package/.agents/skills/README.md +59 -0
- package/.agents/skills/bragi-marketing/README.md +3 -0
- package/.agents/skills/bragi-marketing/SKILL.md +82 -0
- package/.agents/skills/eindri-homes/README.md +3 -0
- package/.agents/skills/eindri-homes/SKILL.md +291 -0
- package/.agents/skills/eindri-homes/assets/control-plane.md +122 -0
- package/.agents/skills/eindri-homes/assets/dispatch.md +80 -0
- package/.agents/skills/frigg-consent/README.md +3 -0
- package/.agents/skills/frigg-consent/SKILL.md +56 -0
- package/.agents/skills/galdr-ymirsystem/README.md +3 -0
- package/.agents/skills/galdr-ymirsystem/SKILL.md +159 -0
- package/.agents/skills/galdr-ymirsystem/assets/README.md +74 -0
- package/.agents/skills/galdr-ymirsystem/assets/brokk-distro-runtime.md +390 -0
- package/.agents/skills/galdr-ymirsystem/assets/build-method.md +113 -0
- package/.agents/skills/galdr-ymirsystem/assets/build-tool-categories.md +178 -0
- package/.agents/skills/galdr-ymirsystem/assets/eindri-orchestration.md +518 -0
- package/.agents/skills/galdr-ymirsystem/assets/eindri-profiles.md +136 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/README.md +736 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/claude-code.md +197 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/codex.md +191 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/cursor.md +193 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/opencode.md +262 -0
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/pi.md +295 -0
- package/.agents/skills/galdr-ymirsystem/assets/hlidskjalf-ui.md +539 -0
- package/.agents/skills/galdr-ymirsystem/assets/installation.md +763 -0
- package/.agents/skills/galdr-ymirsystem/assets/local-models/HOST-DATA.example.md +72 -0
- package/.agents/skills/galdr-ymirsystem/assets/local-models.md +274 -0
- package/.agents/skills/galdr-ymirsystem/assets/memory-well.md +163 -0
- package/.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md +415 -0
- package/.agents/skills/galdr-ymirsystem/assets/norse-naming.md +325 -0
- package/.agents/skills/galdr-ymirsystem/assets/odrerir-hall.md +133 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/einherjar-spawn.schema.json +81 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/herdr-profile.toml +75 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/pi-profile.yml +101 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot/supervision-tree.yml +163 -0
- package/.agents/skills/galdr-ymirsystem/assets/pi-boot-guide.md +58 -0
- package/.agents/skills/galdr-ymirsystem/assets/porting-upstream-to-norse.md +301 -0
- package/.agents/skills/galdr-ymirsystem/assets/principles.md +385 -0
- package/.agents/skills/galdr-ymirsystem/assets/reference-adoption.md +99 -0
- package/.agents/skills/galdr-ymirsystem/assets/registry.md +379 -0
- package/.agents/skills/galdr-ymirsystem/assets/runtime-compliance.md +463 -0
- package/.agents/skills/galdr-ymirsystem/assets/runtime-components.md +553 -0
- package/.agents/skills/galdr-ymirsystem/assets/smidja.md +180 -0
- package/.agents/skills/galdr-ymirsystem/schemas/toon-schemas.md +190 -0
- package/.agents/skills/galdr-ymirsystem/scripts/README.md +45 -0
- package/.agents/skills/galdr-ymirsystem/scripts/bench-one.sh +248 -0
- package/.agents/skills/galdr-ymirsystem/scripts/compliance-check.sh +503 -0
- package/.agents/skills/galdr-ymirsystem/scripts/gpu-sample.sh +43 -0
- package/.agents/skills/galdr-ymirsystem/scripts/stop-all.sh +34 -0
- package/.agents/skills/galdr-ymirsystem/scripts/toon-check.py +188 -0
- package/.agents/skills/gjallarhorn-relay/README.md +3 -0
- package/.agents/skills/gjallarhorn-relay/SKILL.md +283 -0
- package/.agents/skills/groa-update/SKILL.md +90 -0
- package/.agents/skills/hamr-adapters/README.md +3 -0
- package/.agents/skills/hamr-adapters/SKILL.md +123 -0
- package/.agents/skills/hamr-adapters/references/common/control-and-recovery.md +37 -0
- package/.agents/skills/hamr-adapters/references/common/dispatch.md +32 -0
- package/.agents/skills/hamr-adapters/references/common/model-and-effort.md +42 -0
- package/.agents/skills/hamr-adapters/references/common/primary-hooks.md +40 -0
- package/.agents/skills/hamr-adapters/references/harness/claude.md +55 -0
- package/.agents/skills/hamr-adapters/references/harness/codex.md +43 -0
- package/.agents/skills/hamr-adapters/references/harness/cursor.md +75 -0
- package/.agents/skills/hamr-adapters/references/harness/grok.md +69 -0
- package/.agents/skills/hamr-adapters/references/harness/kimi.md +51 -0
- package/.agents/skills/hamr-adapters/references/harness/muse.md +70 -0
- package/.agents/skills/hamr-adapters/references/harness/opencode.md +42 -0
- package/.agents/skills/hamr-adapters/references/harness/pi.md +56 -0
- package/.agents/skills/herdr-panes/README.md +3 -0
- package/.agents/skills/herdr-panes/SKILL.md +92 -0
- package/.agents/skills/herdr-panes/assets/herdr-backend.md +346 -0
- package/.agents/skills/herdr-panes/assets/tmux-backend.md +115 -0
- package/.agents/skills/hnoss-design/DESIGN.md +19 -0
- package/.agents/skills/hnoss-design/README.md +3 -0
- package/.agents/skills/hnoss-design/SKILL.md +83 -0
- package/.agents/skills/hvild-afk/README.md +3 -0
- package/.agents/skills/hvild-afk/SKILL.md +241 -0
- package/.agents/skills/jord-projects/README.md +3 -0
- package/.agents/skills/jord-projects/SKILL.md +92 -0
- package/.agents/skills/lifecycle/SKILL.md +56 -0
- package/.agents/skills/lifecycle/smoke_test.sh +57 -0
- package/.agents/skills/lifecycle/start.sh +21 -0
- package/.agents/skills/lifecycle/status.sh +35 -0
- package/.agents/skills/lifecycle/stop.sh +16 -0
- package/.agents/skills/muninn-stow/README.md +3 -0
- package/.agents/skills/muninn-stow/SKILL.md +309 -0
- package/.agents/skills/no-mistakes/SKILL.md +379 -0
- package/.agents/skills/nornir-schedule/README.md +3 -0
- package/.agents/skills/nornir-schedule/SKILL.md +25 -0
- package/.agents/skills/nornir-schedule/assets/events.md +137 -0
- package/.agents/skills/nornir-schedule/assets/quota.md +131 -0
- package/.agents/skills/nsr-compliance/README.md +3 -0
- package/.agents/skills/nsr-compliance/SKILL.md +29 -0
- package/.agents/skills/nsr-compliance/assets/nsr/README.md +40 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/README.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/git-workflow.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/security.md +22 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/RULES/tech-stack.md +8 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/SKILL.md +71 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/config/core_four.yaml +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/validate_code.sh +29 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/gates/verify_docs.py +66 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/generate.sh +109 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/NSRcompliance/templates/compliance/telemetry/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/README.md +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/README.md +36 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/features/SKILL-template.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/README.md +25 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/SKILL.md +13 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/create_branch.sh +6 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/safe_commit.sh +9 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/git_ops/sync_upstream.sh +6 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/README.md +27 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/SKILL.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/smoke_test.sh +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/start.sh +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/status.sh +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/agents_skills/lifecycle/stop.sh +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/config/core_four.yaml +13 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/compliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/README.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/api.md +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/compliance-wiring.md +155 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/BEST_PRACTICES/frontend.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/README.md +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/README.md +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/clients/template-README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/deploy.sh +49 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/development.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/production.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/envs/staging.env.example +17 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/CI_CD/deployment/tenants/template.env.example +8 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/README.md +26 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/agent.md +7 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/developers/dev-1.md +20 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/linux.md +9 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/macos.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/shared.md +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/DEVELOPER_SETUP/windows.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/README.md +25 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/_template.md +41 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/HOSTING/hosting-1.md +41 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/README.md +21 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/README.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/deployment.md +19 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/disaster-recovery.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/RUNBOOK/ops-tasks.md +14 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/features/README.md +16 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/project-skills.md +146 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/research/software-compliance-research.md +269 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/docs/working-with-agents.md +260 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/AGENTS.md +38 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/ARCHITECTURE.md +36 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/BEST_PRACTICES.md +27 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/CI_CD.md +23 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/FEATURES.md +15 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/README.md +22 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/RULES.md +37 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/STRUCTURE.md +45 -0
- package/.agents/skills/nsr-compliance/assets/nsr/assets/root/TECH_STACK.md +28 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scaffold-spec.md +63 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scripts/scaffold.sh +103 -0
- package/.agents/skills/nsr-compliance/assets/nsr/scripts/validate.sh +52 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/SKILL.md +71 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/config/core_four.yaml +16 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_danger.sh +102 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/check_wiring.sh +69 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/validate_code.sh +29 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/gates/verify_docs.py +66 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/generate.sh +109 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/result_envelope.json +14 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/envelopes/task_envelope.json +20 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/harness/runner.py +303 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/telemetry/logger.py +112 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/README.md +18 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/config/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/README.md +12 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_env.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_paths.sh +20 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/gates/check_platform.sh +23 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/README.md +11 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/harness/envelopes/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/README.md +10 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/installer/install.sh +125 -0
- package/.agents/skills/nsr-compliance/assets/nsrcompliance/templates/compliance/telemetry/README.md +11 -0
- package/.agents/skills/pr-ops/README.md +3 -0
- package/.agents/skills/pr-ops/SKILL.md +109 -0
- package/.agents/skills/ratatoskr-a2a/README.md +3 -0
- package/.agents/skills/ratatoskr-a2a/SKILL.md +148 -0
- package/.agents/skills/rules-check-drift/SKILL.md +81 -0
- package/.agents/skills/saga-bearings/README.md +3 -0
- package/.agents/skills/saga-bearings/SKILL.md +26 -0
- package/.agents/skills/saga-bearings/assets/bearings.md +161 -0
- package/.agents/skills/saga-bearings/assets/board-template.html +731 -0
- package/.agents/skills/saga-bearings/assets/recap.md +56 -0
- package/.agents/skills/syn-recovery/README.md +3 -0
- package/.agents/skills/syn-recovery/SKILL.md +54 -0
- package/.agents/skills/tyr-check/README.md +3 -0
- package/.agents/skills/tyr-check/SKILL.md +218 -0
- package/.agents/skills/urdh-hold/README.md +3 -0
- package/.agents/skills/urdh-hold/SKILL.md +25 -0
- package/.agents/skills/urdh-hold/assets/decisions.md +15 -0
- package/.agents/skills/urdh-hold/assets/hold.md +54 -0
- package/.agents/skills/vor-diagnostics/README.md +3 -0
- package/.agents/skills/vor-diagnostics/SKILL.md +68 -0
- package/.agents/skills/ymir-host/README.md +3 -0
- package/.agents/skills/ymir-host/SKILL.md +35 -0
- package/.agents/skills/ymir-host/assets/desktop.md +36 -0
- package/.agents/skills/ymir-host/assets/install.md +69 -0
- package/.agents/skills/ymir-host/assets/omarchy.md +297 -0
- package/.agents/skills/ymir-host/assets/runbooks.md +15 -0
- package/.agents/skills/ymir-host/assets/thjazi.md +220 -0
- package/.agents/skills/ymir-host/assets/update.md +64 -0
- package/.agents/tests/assets/board-render-harness.mjs +117 -0
- package/.agents/tests/cmux-test-safety.sh +51 -0
- package/.agents/tests/fixtures.sh +291 -0
- package/.agents/tests/fm-afk-inject-e2e.test.sh +428 -0
- package/.agents/tests/fm-afk-inject-herdr-e2e.test.sh +536 -0
- package/.agents/tests/fm-afk-launch.test.sh +961 -0
- package/.agents/tests/fm-afk-pi-herdr-return-e2e.test.sh +297 -0
- package/.agents/tests/fm-afk-return.test.sh +283 -0
- package/.agents/tests/fm-arm-pretool-check.test.sh +482 -0
- package/.agents/tests/fm-ask-user-authority.test.sh +42 -0
- package/.agents/tests/fm-backend-autodetect-smoke.test.sh +176 -0
- package/.agents/tests/fm-backend-cmux-smoke.test.sh +188 -0
- package/.agents/tests/fm-backend-cmux.test.sh +1166 -0
- package/.agents/tests/fm-backend-herdr-eventwait-smoke.test.sh +136 -0
- package/.agents/tests/fm-backend-herdr-eventwait.test.py +106 -0
- package/.agents/tests/fm-backend-herdr-focus-flash-e2e.test.sh +409 -0
- package/.agents/tests/fm-backend-herdr-launcher-workspace-e2e.test.sh +437 -0
- package/.agents/tests/fm-backend-herdr-presentation-e2e.test.sh +1424 -0
- package/.agents/tests/fm-backend-herdr-prune-safety-e2e.test.sh +180 -0
- package/.agents/tests/fm-backend-herdr-respawn-idem-e2e.test.sh +182 -0
- package/.agents/tests/fm-backend-herdr-smoke.test.sh +355 -0
- package/.agents/tests/fm-backend-herdr-workspace-per-home-e2e.test.sh +251 -0
- package/.agents/tests/fm-backend-herdr.test.sh +4606 -0
- package/.agents/tests/fm-backend-orca.test.sh +1357 -0
- package/.agents/tests/fm-backend-tmux-smoke.test.sh +173 -0
- package/.agents/tests/fm-backend-zellij-smoke.test.sh +205 -0
- package/.agents/tests/fm-backend-zellij.test.sh +1360 -0
- package/.agents/tests/fm-backend.test.sh +1142 -0
- package/.agents/tests/fm-backlog-atomicity.test.sh +2302 -0
- package/.agents/tests/fm-backlog-handoff.test.sh +1360 -0
- package/.agents/tests/fm-bearings-board-render.test.sh +135 -0
- package/.agents/tests/fm-bearings-board.test.sh +414 -0
- package/.agents/tests/fm-bearings-snapshot.test.sh +1990 -0
- package/.agents/tests/fm-bootstrap-network-parallel.test.sh +316 -0
- package/.agents/tests/fm-bootstrap.test.sh +1178 -0
- package/.agents/tests/fm-branch-supervision.test.sh +552 -0
- package/.agents/tests/fm-brief.test.sh +785 -0
- package/.agents/tests/fm-busy-adapter-wiring.test.sh +324 -0
- package/.agents/tests/fm-busy-state.test.sh +465 -0
- package/.agents/tests/fm-calm-pi-extension.test.sh +3979 -0
- package/.agents/tests/fm-captain-hold-lifecycle.test.sh +1187 -0
- package/.agents/tests/fm-cd-pretool-check.test.sh +400 -0
- package/.agents/tests/fm-check-unregister.test.sh +198 -0
- package/.agents/tests/fm-classify-corr-token.test.sh +543 -0
- package/.agents/tests/fm-classify-decision-key.test.sh +340 -0
- package/.agents/tests/fm-claude-stop-autoarm-live-e2e.test.sh +164 -0
- package/.agents/tests/fm-claude-stop-autoarm.test.sh +1190 -0
- package/.agents/tests/fm-cmux-claude-composer-live-e2e.test.sh +110 -0
- package/.agents/tests/fm-codex-continuity-live-e2e.test.sh +55 -0
- package/.agents/tests/fm-composer-ghost.test.sh +716 -0
- package/.agents/tests/fm-composer-lib.test.sh +666 -0
- package/.agents/tests/fm-composer-matrix-live-e2e.test.sh +220 -0
- package/.agents/tests/fm-control-herdr-smoke.test.sh +149 -0
- package/.agents/tests/fm-control-relaunch.test.sh +1530 -0
- package/.agents/tests/fm-control.test.sh +910 -0
- package/.agents/tests/fm-crew-state.test.sh +1610 -0
- package/.agents/tests/fm-cursor-harness.test.sh +404 -0
- package/.agents/tests/fm-cursor-primary-live-e2e.test.sh +217 -0
- package/.agents/tests/fm-cursor-primary.test.sh +708 -0
- package/.agents/tests/fm-daemon.test.sh +2740 -0
- package/.agents/tests/fm-documentation-audiences.test.sh +141 -0
- package/.agents/tests/fm-ensure-agents-md.test.sh +371 -0
- package/.agents/tests/fm-extension-binding.test.sh +2187 -0
- package/.agents/tests/fm-fleet-snapshot-view.test.sh +816 -0
- package/.agents/tests/fm-fleet-sync.test.sh +721 -0
- package/.agents/tests/fm-gate-refuse.test.sh +356 -0
- package/.agents/tests/fm-gitignore-config.test.sh +89 -0
- package/.agents/tests/fm-gotmp.test.sh +230 -0
- package/.agents/tests/fm-grok-continuity-live-e2e.test.sh +112 -0
- package/.agents/tests/fm-grok-harness.test.sh +117 -0
- package/.agents/tests/fm-grok-stop-live-e2e.test.sh +219 -0
- package/.agents/tests/fm-guard-stale-banner.test.sh +709 -0
- package/.agents/tests/fm-harness-adapter-instructions-live-e2e.test.sh +134 -0
- package/.agents/tests/fm-harness-adapter-references.test.sh +30 -0
- package/.agents/tests/fm-harness-liveness-drift-live-e2e.test.sh +151 -0
- package/.agents/tests/fm-herdr-lab.test.sh +243 -0
- package/.agents/tests/fm-herdr-session-cleanup-e2e.test.sh +146 -0
- package/.agents/tests/fm-herdr-session-cleanup.test.sh +329 -0
- package/.agents/tests/fm-herdr-submit-confirm-live-e2e.test.sh +125 -0
- package/.agents/tests/fm-herdr-version-floor-live-e2e.test.sh +144 -0
- package/.agents/tests/fm-home-summary-refresh.test.sh +971 -0
- package/.agents/tests/fm-inactive-reconcile.test.sh +485 -0
- package/.agents/tests/fm-kimi-harness.test.sh +687 -0
- package/.agents/tests/fm-lint-workflows.test.sh +532 -0
- package/.agents/tests/fm-lint.test.sh +1023 -0
- package/.agents/tests/fm-muse-harness.test.sh +932 -0
- package/.agents/tests/fm-muse-signals-live-e2e.test.sh +205 -0
- package/.agents/tests/fm-no-mistakes-required.test.sh +72 -0
- package/.agents/tests/fm-on.test.sh +507 -0
- package/.agents/tests/fm-opencode-primary-live-e2e.test.sh +357 -0
- package/.agents/tests/fm-operational-input.test.sh +160 -0
- package/.agents/tests/fm-peek-remote.test.sh +110 -0
- package/.agents/tests/fm-pending-reply.test.sh +1288 -0
- package/.agents/tests/fm-pi-branch-extension.test.sh +3182 -0
- package/.agents/tests/fm-pi-branch-live-e2e.test.sh +527 -0
- package/.agents/tests/fm-pi-primary-live-e2e.test.sh +345 -0
- package/.agents/tests/fm-pi-primary-types.test.sh +68 -0
- package/.agents/tests/fm-pi-watch-extension.test.sh +2843 -0
- package/.agents/tests/fm-pr-check-security.test.sh +2140 -0
- package/.agents/tests/fm-pr-merge.test.sh +2135 -0
- package/.agents/tests/fm-procevent-quota.test.sh +225 -0
- package/.agents/tests/fm-procevent-when.test.sh +406 -0
- package/.agents/tests/fm-procevent.test.sh +1745 -0
- package/.agents/tests/fm-project-origin.test.sh +110 -0
- package/.agents/tests/fm-public-followup.test.sh +2272 -0
- package/.agents/tests/fm-quota-array-dispatch-live-e2e.test.sh +526 -0
- package/.agents/tests/fm-quota-choose.test.sh +626 -0
- package/.agents/tests/fm-remote-backlog-handoff.test.sh +453 -0
- package/.agents/tests/fm-remote-doctor.test.sh +625 -0
- package/.agents/tests/fm-remote-entrypoint.test.sh +59 -0
- package/.agents/tests/fm-remote-job-orphan-reap.test.sh +205 -0
- package/.agents/tests/fm-remote-job.test.sh +768 -0
- package/.agents/tests/fm-remote-reply.test.sh +520 -0
- package/.agents/tests/fm-remote-secondmate-lifecycle-e2e.test.sh +1256 -0
- package/.agents/tests/fm-remote-secondmate-parent-binding.test.sh +326 -0
- package/.agents/tests/fm-remote-secondmate-trace-context.test.sh +310 -0
- package/.agents/tests/fm-remote-transport-lanes.test.sh +431 -0
- package/.agents/tests/fm-review-diff.test.sh +176 -0
- package/.agents/tests/fm-secondmate-harness.test.sh +2600 -0
- package/.agents/tests/fm-secondmate-lifecycle-e2e.test.sh +259 -0
- package/.agents/tests/fm-secondmate-liveness.test.sh +559 -0
- package/.agents/tests/fm-secondmate-reconcile.test.sh +732 -0
- package/.agents/tests/fm-secondmate-safety.test.sh +2972 -0
- package/.agents/tests/fm-secondmate-sync.test.sh +913 -0
- package/.agents/tests/fm-send-inbox-doorbell-live-e2e.test.sh +206 -0
- package/.agents/tests/fm-send-inbox.test.sh +352 -0
- package/.agents/tests/fm-send-popup-settle.test.sh +167 -0
- package/.agents/tests/fm-send-remote-delivery.test.sh +796 -0
- package/.agents/tests/fm-send-resolve-key.test.sh +551 -0
- package/.agents/tests/fm-send-secondmate-marker-herdr-e2e.test.sh +187 -0
- package/.agents/tests/fm-send-secondmate-marker.test.sh +278 -0
- package/.agents/tests/fm-send-settle.test.sh +147 -0
- package/.agents/tests/fm-send-strict.test.sh +241 -0
- package/.agents/tests/fm-session-lock-ancestry.test.sh +365 -0
- package/.agents/tests/fm-session-start.test.sh +2515 -0
- package/.agents/tests/fm-sessionstart-hook-live-e2e.test.sh +631 -0
- package/.agents/tests/fm-sessionstart-instruction-refresh-live-e2e.test.sh +230 -0
- package/.agents/tests/fm-sessionstart-nudge.test.sh +1039 -0
- package/.agents/tests/fm-shared-captain-inheritance.test.sh +404 -0
- package/.agents/tests/fm-spawn-batch.test.sh +148 -0
- package/.agents/tests/fm-spawn-dispatch-profile.test.sh +827 -0
- package/.agents/tests/fm-spawn-pool-base-freshen.test.sh +440 -0
- package/.agents/tests/fm-spawn-worktree-settle.test.sh +147 -0
- package/.agents/tests/fm-startup-memory-budget.test.sh +333 -0
- package/.agents/tests/fm-startup-network.test.sh +712 -0
- package/.agents/tests/fm-stow-cascade.test.sh +370 -0
- package/.agents/tests/fm-subagent-pretool-check.test.sh +291 -0
- package/.agents/tests/fm-supervision-events.test.sh +156 -0
- package/.agents/tests/fm-supervision-instructions.test.sh +189 -0
- package/.agents/tests/fm-tangle-guard.test.sh +277 -0
- package/.agents/tests/fm-task-delivery.test.sh +420 -0
- package/.agents/tests/fm-task-inbox.test.sh +513 -0
- package/.agents/tests/fm-teardown-endpoint-safety.test.sh +374 -0
- package/.agents/tests/fm-teardown.test.sh +2665 -0
- package/.agents/tests/fm-test-fixture-cleanup.test.sh +172 -0
- package/.agents/tests/fm-test-fixtures.test.sh +132 -0
- package/.agents/tests/fm-test-isolation-proof.test.sh +278 -0
- package/.agents/tests/fm-test-run.test.sh +1196 -0
- package/.agents/tests/fm-tmux-agent-liveness.test.sh +354 -0
- package/.agents/tests/fm-tmux-submit-busy.test.sh +340 -0
- package/.agents/tests/fm-tool-update-check.test.sh +1044 -0
- package/.agents/tests/fm-trace-context-lib.test.sh +253 -0
- package/.agents/tests/fm-trace-context-spawn.test.sh +581 -0
- package/.agents/tests/fm-transition-lib.test.sh +54 -0
- package/.agents/tests/fm-turnend-guard.test.sh +1822 -0
- package/.agents/tests/fm-update.test.sh +304 -0
- package/.agents/tests/fm-vendor-auth-probe.test.sh +395 -0
- package/.agents/tests/fm-voice-relay.test.sh +4741 -0
- package/.agents/tests/fm-wake-daemon-lifecycle-e2e.test.sh +171 -0
- package/.agents/tests/fm-wake-drain-open-decisions-cursor.test.sh +356 -0
- package/.agents/tests/fm-wake-drain-open-decisions.test.sh +226 -0
- package/.agents/tests/fm-wake-drain-unread-status.test.sh +379 -0
- package/.agents/tests/fm-wake-queue.test.sh +1224 -0
- package/.agents/tests/fm-watch-arm.test.sh +821 -0
- package/.agents/tests/fm-watch-checkpoint.test.sh +87 -0
- package/.agents/tests/fm-watch-recovery-loop.test.sh +223 -0
- package/.agents/tests/fm-watch-triage.test.sh +3889 -0
- package/.agents/tests/fm-watcher-lock.test.sh +1133 -0
- package/.agents/tests/fm-x-mode.test.sh +3042 -0
- package/.agents/tests/gleipnir-guard-pretool-check.test.sh +51 -0
- package/.agents/tests/gleipnir-machine-lock.test.sh +130 -0
- package/.agents/tests/herdr-test-safety.sh +42 -0
- package/.agents/tests/lib.sh +315 -0
- package/.agents/tests/remote-herdr-fixture.sh +125 -0
- package/.agents/tests/secondmate-helpers.sh +193 -0
- package/.agents/tests/smoke.test.sh +93 -0
- package/.agents/tests/wake-helpers.sh +338 -0
- package/.agents/tests/zellij-test-safety.sh +60 -0
- package/.agents/tools/README.md +10 -0
- package/.agents/tools/bin/tasks-cli +267 -0
- package/.agents/tools/tasks-cli.ts +216 -0
- package/AGENTS.md +498 -0
- package/CHANGELOG.md +1913 -0
- package/LICENSE +1 -1
- package/NOTICE +63 -0
- package/README.md +114 -60
- package/RULES/01-domains.md +51 -0
- package/RULES/02-agents.md +78 -0
- package/RULES/03-houses.md +61 -0
- package/RULES/04-hoard.md +97 -0
- package/RULES/05-platforms.md +67 -0
- package/RULES/06-append-only.md +108 -0
- package/RULES/07-config.md +101 -0
- package/RULES/08-delivery-gate.md +75 -0
- package/RULES/09-electron.md +58 -0
- package/RULES/README.md +22 -0
- package/bin/README.md +107 -0
- package/bin/a2a-mcp.sh +133 -0
- package/bin/a2a-serve.py +103 -0
- package/bin/a2a-serve.sh +8 -0
- package/bin/a2a-talk.sh +50 -0
- package/bin/a2abridge-ensure.sh +108 -0
- package/bin/agent-run.sh +43 -0
- package/bin/agents-config.sh +256 -0
- package/bin/apodex-smoke-test.sh +105 -0
- package/bin/bifrost-bridge.sh +131 -0
- package/bin/bifrost-ingress.sh +77 -0
- package/bin/bootstrap-macos.sh +112 -0
- package/bin/bootstrap-windows.ps1 +112 -0
- package/bin/branch-guard.sh +64 -0
- package/bin/brokk +73 -0
- package/bin/brokk-classify-lib.sh +1770 -0
- package/bin/brokk-lease-lib.sh +222 -0
- package/bin/brokk-lease.sh +193 -0
- package/bin/brokk-lint.sh +65 -0
- package/bin/brokk-send.sh +51 -0
- package/bin/brokk-update.sh +9 -0
- package/bin/brokk-wake-grant.sh +127 -0
- package/bin/brokk-wake-lib.sh +1849 -0
- package/bin/changelog-assemble.sh +154 -0
- package/bin/changelog-guard.sh +197 -0
- package/bin/crash-sense.sh +173 -0
- package/bin/design-check.sh +80 -0
- package/bin/design-icon.sh +153 -0
- package/bin/desktop-place.sh +224 -0
- package/bin/docs-guard.sh +39 -0
- package/bin/editor-place.sh +225 -0
- package/bin/eindri-acclaim.sh +47 -0
- package/bin/eindri-control.sh +28 -0
- package/bin/eindri-role.sh +83 -0
- package/bin/eindri-seat.sh +83 -0
- package/bin/eindri-seen.sh +54 -0
- package/bin/eindri-send.sh +15 -0
- package/bin/eindri-start.sh +98 -0
- package/bin/eindri-watch.sh +57 -0
- package/bin/einherjar-spawn.sh +576 -0
- package/bin/eir-doctor.sh +158 -0
- package/bin/erindi-brief.sh +271 -0
- package/bin/feature-inventory.sh +73 -0
- package/bin/fleet-apply.sh +81 -0
- package/bin/github-deploy.sh +94 -0
- package/bin/gjallarhorn-expose.sh +136 -0
- package/bin/gjallarhorn-notify.sh +71 -0
- package/bin/gjallarhorn-purge.sh +67 -0
- package/bin/gjallarhorn-tunnel.sh +85 -0
- package/bin/gleipnir-lock-lib.sh +284 -0
- package/bin/groa-update.sh +130 -0
- package/bin/hall-snapshot.sh +111 -0
- package/bin/hamr-harness.sh +246 -0
- package/bin/heimdall-ssh-keys.sh +374 -0
- package/bin/herdr-agents.py +44 -0
- package/bin/herdr-ensure.sh +104 -0
- package/bin/herdr-run.sh +452 -0
- package/bin/hermes-ensure.sh +88 -0
- package/bin/hlidskjalf-agents.sh +172 -0
- package/bin/hlidskjalf-usage.sh +196 -0
- package/bin/hoard-guard.sh +135 -0
- package/bin/hoard-lib.sh +105 -0
- package/bin/hodd.sh +102 -0
- package/bin/host-sense.sh +199 -0
- package/bin/huginn-research-worker.sh +121 -0
- package/bin/local-model-lock.sh +70 -0
- package/bin/mimir-bridge.py +259 -0
- package/bin/mimir-bridge.sh +100 -0
- package/bin/mimir-ingest.sh +131 -0
- package/bin/mimir-reflect.sh +27 -0
- package/bin/mimir.sh +113 -0
- package/bin/mjollnir-webhook.sh +72 -0
- package/bin/mjollnir.sh +104 -0
- package/bin/model-hardware.sh +96 -0
- package/bin/model-resolve.sh +160 -0
- package/bin/models-detect.sh +178 -0
- package/bin/nornir-cron-start.sh +162 -0
- package/bin/nornir-job-daily-briefing.sh +191 -0
- package/bin/nornir-job-git-sync.sh +152 -0
- package/bin/nornir-job-hall-snapshot.sh +28 -0
- package/bin/nornir-job-memory-housekeeping.sh +114 -0
- package/bin/nornir-job-nsr-compliance.sh +54 -0
- package/bin/nornir-job-observer.sh +166 -0
- package/bin/nornir-job-skillopt-sleep.sh +76 -0
- package/bin/npm-publish.sh +136 -0
- package/bin/omarchy-hook-install.sh +60 -0
- package/bin/omarchy-install.sh +161 -0
- package/bin/omarchy-plugins.sh +187 -0
- package/bin/omarchy-sense.sh +162 -0
- package/bin/perm-guard.sh +30 -0
- package/bin/pi-agent.sh +68 -0
- package/bin/pi-ensure.sh +77 -0
- package/bin/pi-local.sh +37 -0
- package/bin/pi-model-agnostic.sh +71 -0
- package/bin/pi-seat.sh +63 -0
- package/bin/prereq-ensure.sh +166 -0
- package/bin/private-guard.sh +58 -0
- package/bin/project-git.sh +69 -0
- package/bin/public-guard.sh +71 -0
- package/bin/ratatoskr.sh +49 -0
- package/bin/realm-lib.sh +32 -0
- package/bin/repo-scrub.sh +62 -0
- package/bin/rodd-operational-input.sh +250 -0
- package/bin/runes-append.sh +198 -0
- package/bin/saga-session-start.sh +172 -0
- package/bin/saga-sessionstart-run.sh +79 -0
- package/bin/saga-wake-drain.sh +41 -0
- package/bin/secret-guard.sh +63 -0
- package/bin/sessrumnir-ensure.sh +100 -0
- package/bin/sessrumnir-sync.sh +237 -0
- package/bin/sessrumnir.sh +104 -0
- package/bin/skillopt-setup.sh +76 -0
- package/bin/skuld-branch-outcome.sh +203 -0
- package/bin/skuld-branch-prompt.sh +101 -0
- package/bin/smidja-bootstrap.sh +94 -0
- package/bin/smidja-observe.sh +86 -0
- package/bin/syn-arm-pretool-check.sh +57 -0
- package/bin/syn-asset-pretool-check.sh +89 -0
- package/bin/syn-cd-pretool-check.sh +28 -0
- package/bin/syn-guard-pretool-check.sh +83 -0
- package/bin/syn-spawn-pretool-check.sh +58 -0
- package/bin/syn-turnend-guard.sh +36 -0
- package/bin/syn-watch-arm.sh +99 -0
- package/bin/tailscale-sync.sh +203 -0
- package/bin/telegram-bot.sh +82 -0
- package/bin/toolchain.sh +74 -0
- package/bin/ui-truth-check.sh +75 -0
- package/bin/utgard.sh +111 -0
- package/bin/valhalla.sh +115 -0
- package/bin/valknut-load.sh +298 -0
- package/bin/vor-crew-state.sh +124 -0
- package/bin/wedge-notify.sh +60 -0
- package/bin/workspace-provision.sh +80 -0
- package/bin/workspace-rag.sh +163 -0
- package/bin/wyrd-db.sh +47 -0
- package/bin/yggdrasil.sh +152 -0
- package/bin/ymir-edit.sh +145 -0
- package/bin/ymir-install.sh +806 -0
- package/bin/ymir-invite.sh +93 -0
- package/bin/ymir-isolation.sh +88 -0
- package/bin/ymir-migrate.sh +61 -0
- package/bin/ymir-plan.sh +356 -0
- package/bin/ymir-platform.sh +348 -0
- package/bin/ymir-say.sh +110 -0
- package/bin/ymir-setup-auth.sh +119 -0
- package/bin/ymir-validate.sh +193 -0
- package/bin/ymir.js +74 -16
- package/docs/Architecture.md +339 -0
- package/docs/design.md +351 -0
- package/docs/installations/README.md +63 -0
- package/docs/installations/ymir-home.md +93 -0
- package/docs/integration.md +105 -0
- package/docs/lore.md +1060 -0
- package/docs/research/agent-harnesses.md +290 -0
- package/docs/runbooks/README.md +19 -0
- package/docs/runbooks/a2a.md +91 -0
- package/docs/runbooks/agent-permissions.md +99 -0
- package/docs/runbooks/agents.md +57 -0
- package/docs/runbooks/models.md +69 -0
- package/docs/runbooks/realm-onboarding.md +60 -0
- package/docs/runbooks/secrets-and-hoard.md +60 -0
- package/docs/runbooks/updates-and-migrations.md +110 -0
- package/docs/runbooks/worktrees-isolation.md +72 -0
- package/docs/session-start.md +105 -0
- package/docs/skillopt-integration.md +321 -0
- package/docs/sync-system.md +66 -0
- package/docs/workspaces.md +104 -0
- package/docs/ymir-rut.md +260 -0
- package/package.json +54 -14
- package/packaging/build.sh +74 -0
- package/packaging/macos/Ymir Installer.command +43 -0
- package/packaging/windows/ymir-setup.nsi +74 -0
- package/scripts/README.md +22 -0
- package/scripts/electron.sh +269 -0
- package/scripts/lower.sh +34 -0
- package/scripts/raise.sh +42 -0
- package/scripts/start.sh +217 -0
- package/scripts/stop.sh +113 -0
- package/install.sh +0 -35
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Rule 05 — Platform installations
|
|
2
|
+
|
|
3
|
+
Ymir is **Omarchy-first**: the Omarchy layer is the first-class desktop
|
|
4
|
+
integration. Different operating systems and desktops may have their own
|
|
5
|
+
installation layer — macOS and Windows bring their own — while the **core stays
|
|
6
|
+
portable** and identical everywhere.
|
|
7
|
+
|
|
8
|
+
## The law
|
|
9
|
+
|
|
10
|
+
- **One core, many installations.** The core runtime — session digest, lock,
|
|
11
|
+
watch, cron, skills, the installer's user-space prerequisites, machine-config
|
|
12
|
+
rendering — runs on Linux, macOS and Windows (WSL2; MSYS best-effort).
|
|
13
|
+
Anything platform-specific lives in an *installation layer* beside the core,
|
|
14
|
+
never as a branch inside it.
|
|
15
|
+
- **A layer is gated, never assumed.** It detects its own host and reports a
|
|
16
|
+
clean skip elsewhere (`/usr/share/omarchy`, `uname`, `ymir_os`). A layer that
|
|
17
|
+
assumes it is present is a bug on every other machine.
|
|
18
|
+
- **Core changes propagate to every layer.** When a core feature changes, **every
|
|
19
|
+
platform installation layer must be updated in the same change**. A layer that
|
|
20
|
+
still installs the old shape is drift — and drift here means a machine that
|
|
21
|
+
boots expecting a runtime it no longer has.
|
|
22
|
+
- **A layer owns its integration, not a copy of the core.** No layer forks a
|
|
23
|
+
core script. It calls the core and adds only what its platform needs; two
|
|
24
|
+
copies of one script is how the platforms silently diverge.
|
|
25
|
+
- **The desktop is a platform concern.** Window placement, launcher entries,
|
|
26
|
+
service managers (systemd / launchd / Windows services) and GPU tooling belong
|
|
27
|
+
to the layer that knows the platform.
|
|
28
|
+
- **Verification is per-layer.** "It works" is a claim about *one* layer. Name
|
|
29
|
+
the layer that was tested; never let a core change be called verified because
|
|
30
|
+
one platform's install passed.
|
|
31
|
+
|
|
32
|
+
## The layers
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
layers[4]{layer,host,owns}:
|
|
36
|
+
"Omarchy (first-class)","Omarchy (Arch + Hyprland)","host sensing, numbered-desktop placement, launcher entries, shell plugins, post-update hook"
|
|
37
|
+
"macOS","macOS","launchd services, .command/.app launchers, Apple GPU reporting"
|
|
38
|
+
"Windows","WSL2 (MSYS best-effort)","WSL service wiring, .cmd/.lnk launchers"
|
|
39
|
+
"Core (portable)","every platform","the runtime, the capability shim, generated config, user-space prerequisites"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Where this shows up
|
|
43
|
+
|
|
44
|
+
| Place | What carries the rule |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `bin/ymir-platform.sh` | the capability shim: the one place a platform difference is known |
|
|
47
|
+
| `bin/ymir-install.sh` | runs the core; Omarchy steps are gated on the host |
|
|
48
|
+
| the Omarchy layer (`omarchy-sense`, `omarchy-plugins`, `omarchy-hook-install`, `desktop-place`) | Omarchy only, each reporting a clean skip elsewhere |
|
|
49
|
+
| `galdr/assets/installation.md` | the two-layer model, and the rule for new desktop features |
|
|
50
|
+
| `galdr/assets/build-method.md` | the maintenance duty: a core change updates every layer |
|
|
51
|
+
|
|
52
|
+
## Maintenance duty
|
|
53
|
+
|
|
54
|
+
A core change is not complete until every layer has been checked against it. The
|
|
55
|
+
check is cheap and must be explicit:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# which layers does this change touch?
|
|
59
|
+
git grep -l "<the changed core interface>" -- bin scripts .agents/skills
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If a layer needs a matching edit, make it in the same change, or record why it
|
|
63
|
+
does not. A rule that contradicts this rule must change the rule first
|
|
64
|
+
(append-only; never silently rewritten).
|
|
65
|
+
|
|
66
|
+
**Related:** `RULES/04-hoard.md` (what is private), `AGENTS.md` (the contract),
|
|
67
|
+
`.agents/skills/galdr-ymirsystem/assets/installation.md` (the install procedure).
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Rule 06 — Append-only
|
|
2
|
+
|
|
3
|
+
Some records are the system's memory. They are **appended to**, never rewritten,
|
|
4
|
+
never truncated, never reordered — and **never lost in a move**.
|
|
5
|
+
|
|
6
|
+
## What is append-only
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
append_only[6]{artifact,why}:
|
|
10
|
+
"$YMIR_HOME/memory/runes_audit.md","the Runes ledger — each entry folds the previous checksum, so a rewritten line breaks every later line"
|
|
11
|
+
"$YMIR_HOME/docs/append-only-log.md","the decision log: what was decided, when, and why"
|
|
12
|
+
"CHANGELOG.md","chronological entries; Brokk appends and never rewrites"
|
|
13
|
+
"RULES/*.md","house law: a rule that contradicts another is changed first, never silently edited"
|
|
14
|
+
"$YMIR_HOME/**","the private record — the operator's hoard, committed to the private git repo, never gitignored"
|
|
15
|
+
"*.jsonl / branch outcomes / session logs","event streams; a re-run is a new file, not a shorter one"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## The law
|
|
19
|
+
|
|
20
|
+
- **Append, never rewrite.** A correction is a **new** entry that cites the old
|
|
21
|
+
one. The old text stays; that is what makes the record trustworthy.
|
|
22
|
+
- **Never truncate.** Rotation is a new file with a new name, never a shortened
|
|
23
|
+
one. "It is long" is not a reason to delete a line.
|
|
24
|
+
- **Never lose one in a move.** A migration, re-clone, swap or backup **must carry
|
|
25
|
+
every append-only artifact**. They are the part of the system that cannot be
|
|
26
|
+
regenerated from code.
|
|
27
|
+
- **Never rewrite shared history to tidy it.** A force-push or history rewrite
|
|
28
|
+
must be weighed against this rule before it happens, not after.
|
|
29
|
+
- **A contradiction changes the rule first.** The rules themselves obey this
|
|
30
|
+
rule: append the change, keep the history.
|
|
31
|
+
- **Verify by name at the boundary.** Before and after any move, check the
|
|
32
|
+
append-only set explicitly — a move that drops one is a **violation**, not an
|
|
33
|
+
accident.
|
|
34
|
+
|
|
35
|
+
## The duty at a move
|
|
36
|
+
|
|
37
|
+
This rule exists because a home swap dropped `docs/append-only-log.md`,
|
|
38
|
+
`docs/masterplan.md`, `docs/plans/` and the private business set: the backup
|
|
39
|
+
carried `state`, `.env.local`, `data`, the realm and `workspace` — but not
|
|
40
|
+
`docs/` or `assets/`. The code arrived; the memory did not.
|
|
41
|
+
|
|
42
|
+
So the check is explicit, and it is part of the move:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# the append-only set must exist on both sides of a move
|
|
46
|
+
for f in CHANGELOG.md docs/append-only-log.md; do
|
|
47
|
+
[ -e "$f" ] || echo "MISSING append-only artifact: $f"
|
|
48
|
+
done
|
|
49
|
+
# and the private set must be in YMIR_HOME, not merely in the old home
|
|
50
|
+
ls "$YMIR_HOME/docs" "$YMIR_HOME/identity" "$YMIR_HOME/data" 2>/dev/null
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
A backup is only as good as its file list. If a directory is not named in the
|
|
54
|
+
backup, it is not carried — and this rule says the append-only and private sets
|
|
55
|
+
are always named.
|
|
56
|
+
|
|
57
|
+
**Related:** `RULES/04-hoard.md` (where private records live), `AGENTS.md`,
|
|
58
|
+
`.agents/skills/galdr-ymirsystem/assets/installation.md` (the move procedure).
|
|
59
|
+
|
|
60
|
+
## Amendment — the changelog writes through fragments (2026-09-17)
|
|
61
|
+
|
|
62
|
+
Appended, not rewritten; the clause above stands.
|
|
63
|
+
|
|
64
|
+
**The problem this amendment answers.** `CHANGELOG.md` is one file, and every
|
|
65
|
+
branch appends at the same position — the top. Git sees two branches inserting
|
|
66
|
+
different lines at the same spot and calls it a conflict, so **every merge
|
|
67
|
+
re-conflicts every open branch**. With N branches that is O(N²) conflicts, all of
|
|
68
|
+
them meaningless: both entries belong, and neither is wrong. Sixteen open PRs
|
|
69
|
+
were each resolved by hand for this reason alone.
|
|
70
|
+
|
|
71
|
+
**The amendment.** A change tells its story through a **fragment**:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
CHANGELOG.d/<YYYY-MM-DD>-<slug>.md the entry, beginning with its `## YYYY-MM-DD — title` heading
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- **A fragment is a new file with a unique name.** Two branches never touch the
|
|
78
|
+
same one, so the collision cannot occur. This is the whole point.
|
|
79
|
+
- **`bin/changelog-assemble.sh` folds fragments into `CHANGELOG.md`** — newest
|
|
80
|
+
first, above everything already recorded. Folding is an **append**: the ledger's
|
|
81
|
+
existing entries are copied verbatim, never reordered, never rewritten.
|
|
82
|
+
- **The pre-push hook runs the assembler first**, so the ledger is never behind
|
|
83
|
+
what the fragments already tell. A push that would leave unfolded fragments
|
|
84
|
+
behind is refused with the instruction to commit the fold and push again.
|
|
85
|
+
- **The guard accepts either form.** A push satisfies the duty by appending to
|
|
86
|
+
`CHANGELOG.md` **or** by adding a fragment. Appending directly still works and
|
|
87
|
+
is still valid; the fragment is simply the form that cannot conflict.
|
|
88
|
+
|
|
89
|
+
**Why this obeys the clause above, not contradicts it.** Append, never rewrite —
|
|
90
|
+
a fragment is a *new file*, and the ledger only ever grows. Never truncate —
|
|
91
|
+
fragments are folded in, never dropped. Never lose one in a move — **`CHANGELOG.d/`
|
|
92
|
+
joins the append-only set**, so a move must carry it exactly as it carries
|
|
93
|
+
`CHANGELOG.md`. A correction is a new entry citing the old — a fragment may cite;
|
|
94
|
+
nothing is edited.
|
|
95
|
+
|
|
96
|
+
**The append-only set is now:**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
append_only[7]{artifact,why}:
|
|
100
|
+
"$YMIR_HOME/memory/runes_audit.md","the Runes ledger — checksum-chained"
|
|
101
|
+
"$YMIR_HOME/docs/append-only-log.md","the decision log"
|
|
102
|
+
"CHANGELOG.md","the assembled chronological ledger; folded from fragments, never hand-rewritten"
|
|
103
|
+
"CHANGELOG.d/","pending entries — one file per change; folded in, never dropped"
|
|
104
|
+
"RULES/*.md","house law"
|
|
105
|
+
"$YMIR_HOME/**","the private record"
|
|
106
|
+
"*.jsonl / branch outcomes / session logs","event streams"
|
|
107
|
+
```
|
|
108
|
+
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Rule 07 — Configuration is never hardcoded
|
|
2
|
+
|
|
3
|
+
Every port, host, endpoint, path, credential, and tunable is **configuration**, not
|
|
4
|
+
a literal baked into shipped runtime. A hardcoded value is a bug that only appears
|
|
5
|
+
on someone else's machine — or someone else's server.
|
|
6
|
+
|
|
7
|
+
## The law
|
|
8
|
+
|
|
9
|
+
- **One default, one place.** A value has exactly one documented default, owned by
|
|
10
|
+
the portability layer (`bin/ymir-platform.sh`) or a config file (e.g.
|
|
11
|
+
`config/agents.yaml`). Everywhere else reads it; nothing else restates it.
|
|
12
|
+
- **Env first, then config, then the documented default.** Resolve as
|
|
13
|
+
`${VAR:-default}` (or the app's equivalent) — never a bare literal.
|
|
14
|
+
- **No literal ports.** Ports come from env (`HLIDSKJALF_PORT`,
|
|
15
|
+
`HLIDSKJALF_API_PORT`, `SMIDJA_VIZ_API_PORT`, `PORT`, …). A published port, a
|
|
16
|
+
proxy target, and a health probe must all read the *same* source.
|
|
17
|
+
- **No literal hosts or URLs.** `127.0.0.1`, `localhost`, tunnel hostnames, registry
|
|
18
|
+
and mesh endpoints resolve from env/config.
|
|
19
|
+
- **No literal paths to secrets.** Secrets are referenced by path (`YMIR_HOARD`,
|
|
20
|
+
`.env.local`, `.env.realm`) and resolved at run time; never inlined.
|
|
21
|
+
- **No literal credentials. Ever.**
|
|
22
|
+
- **Bind and publish are separate and explicit.** An app binds a host
|
|
23
|
+
(`HLIDSKJALF_HOST`); a deployment publishes a host-IP/port. Neither assumes the
|
|
24
|
+
other's value.
|
|
25
|
+
- **A deployment overrides; it never patches the core.** Environments run from
|
|
26
|
+
env/config (`deploy/env.example`, Quadlet/Compose env), so the same core runs
|
|
27
|
+
anywhere — a laptop, a bare box, a container, or a shared server.
|
|
28
|
+
|
|
29
|
+
## Scope
|
|
30
|
+
|
|
31
|
+
Every shipped surface: `bin/`, `scripts/`, `apps/`, `.agents/skills/**` tools,
|
|
32
|
+
deploy manifests, and generated config.
|
|
33
|
+
|
|
34
|
+
## Enforcement
|
|
35
|
+
|
|
36
|
+
- Review, plus `bash .agents/skills/galdr-ymirsystem/scripts/compliance-check.sh`.
|
|
37
|
+
- The portability layer is the **one** place that knows an environment difference
|
|
38
|
+
(Rule 05). A hardcoded value is a Rule 05 violation as well as a Rule 07 one.
|
|
39
|
+
|
|
40
|
+
## Why
|
|
41
|
+
|
|
42
|
+
Hardcoding is how a substrate written on one machine breaks on another, or
|
|
43
|
+
collides with a neighbour's port on a shared server — the exact failure a
|
|
44
|
+
host-agnostic core exists to prevent. This rule is the companion of Rule 05: Rule
|
|
45
|
+
05 keeps *behaviour* portable; Rule 07 keeps *configuration* portable.
|
|
46
|
+
|
|
47
|
+
## Amendment — models, providers, and paths are the user's, in the hoard (2026-09-17)
|
|
48
|
+
|
|
49
|
+
Appended, not rewritten; the clauses above stand.
|
|
50
|
+
|
|
51
|
+
### A. Models and providers live in the hoard, per user, read from YAML
|
|
52
|
+
|
|
53
|
+
**Every user's models and providers differ.** One operator runs local llama.cpp
|
|
54
|
+
on a 16 GB card; another runs hosted models; a third runs both. There is therefore
|
|
55
|
+
**no such thing as a global model or provider** — a shipped default that names a
|
|
56
|
+
model is a claim about someone else's machine.
|
|
57
|
+
|
|
58
|
+
- **The one source.** A user's models and providers live in **`$YMIR_HOME/hodd/`**
|
|
59
|
+
— the user's own workspace, their private hoard — and are read from a **YAML
|
|
60
|
+
file there** (`hodd/config/agents.yaml`). Nothing else owns them.
|
|
61
|
+
- **No global.** A model id or provider name must not appear in shipped runtime
|
|
62
|
+
code, in a tracked config, or in any repo file as a *value*. The repo ships a
|
|
63
|
+
**template** (`config/agents.yaml.example`) with placeholders; the live file is
|
|
64
|
+
the user's, and it is private (Rule 04).
|
|
65
|
+
- **Resolve, never restate.** Code reads a model or provider through the resolver
|
|
66
|
+
(`bin/model-resolve.sh`, `bin/agents-config.sh`) or from env. It never embeds
|
|
67
|
+
the id.
|
|
68
|
+
- **A comment may name an example; code may not.** A usage line in a header
|
|
69
|
+
(`# bin/pi-seat.sh -m <model>`) is documentation. A literal assigned to a
|
|
70
|
+
variable, written into a config, or passed as a default is a violation.
|
|
71
|
+
|
|
72
|
+
### B. No hardcoded absolute file paths
|
|
73
|
+
|
|
74
|
+
**A path that names a user, or a machine's layout, is not portable.**
|
|
75
|
+
|
|
76
|
+
- **User-agnostic.** No `/home/<user>/…`, no `/Users/<user>/…`, no `C:\Users\…`,
|
|
77
|
+
no baked-in username anywhere in shipped code, config, or docs.
|
|
78
|
+
- **Relative or resolved.** A path is relative to a resolved root
|
|
79
|
+
(`$YMIR_HOME`, `$YMIR_HOARD`, `$ROOT`, `$SCRIPT_DIR`), or comes from env/config
|
|
80
|
+
with one documented default. Never a literal absolute path.
|
|
81
|
+
- **The home is resolved, not assumed.** `$YMIR_HOME` resolves through
|
|
82
|
+
`bin/hoard-lib.sh` (`hoard_root`) — never a hardcoded `~/Documents/Ymir`, never
|
|
83
|
+
another user's home.
|
|
84
|
+
- **A test may use a temp dir; it may not use a real home.** `mktemp -d` and
|
|
85
|
+
`$TMPDIR` are correct. A fixture that names a real user's home is a violation
|
|
86
|
+
that will fail on every other machine.
|
|
87
|
+
|
|
88
|
+
### Enforcement
|
|
89
|
+
|
|
90
|
+
`compliance-check.sh` gains the **`config`** gate, which fails on:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
config_gate[3]{class,what_it_catches}:
|
|
94
|
+
"model","a model id or provider name used as a VALUE in shipped code or a tracked config"
|
|
95
|
+
"path","an absolute path naming a user (/home/<user>, /Users/<user>, C:\\Users\\<user>)"
|
|
96
|
+
"hoard","a model/provider config outside $YMIR_HOME/hodd/"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Comments, templates (`*.example`), `CHANGELOG*`, and `assets/reference/`
|
|
100
|
+
(provenance) are exempt by intent — they document, they do not configure.
|
|
101
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Rule 08 — Delivery Gate & Worktree Engine
|
|
2
|
+
|
|
3
|
+
## 08.1 Every Change Leaves by Pull Request
|
|
4
|
+
|
|
5
|
+
**No direct pushes to `main` or any protected branch.** Every change — code,
|
|
6
|
+
config, docs, scripts — must:
|
|
7
|
+
|
|
8
|
+
1. Be done in a Yggdrasil worktree on a feature branch
|
|
9
|
+
2. Pass all local gates (lint, typecheck, tests)
|
|
10
|
+
3. Be pushed as a branch
|
|
11
|
+
4. Opened as a Pull Request via `gh pr create`
|
|
12
|
+
5. Reviewed in Glitnir (human review)
|
|
13
|
+
6. Approved by the Allfather
|
|
14
|
+
7. Merged via the PR interface — **never locally**
|
|
15
|
+
|
|
16
|
+
A local merge on a verbal "word" is a decision, not a delivery. It leaves
|
|
17
|
+
Glitnir with nothing to review. The gate is only fed by a PR.
|
|
18
|
+
|
|
19
|
+
**Exception:** None. If work is already on local `main`, ship it as a PR (a
|
|
20
|
+
branch at that commit) before doing anything else.
|
|
21
|
+
|
|
22
|
+
## 08.2 Yggdrasil Worktrees Use treehouse
|
|
23
|
+
|
|
24
|
+
**All worktree operations go through `treehouse`** (github.com/kunchenguid/treehouse).
|
|
25
|
+
Never use raw `git worktree` commands directly.
|
|
26
|
+
|
|
27
|
+
| Operation | Command |
|
|
28
|
+
|-----------|---------|
|
|
29
|
+
| Create worktree | `bin/yggdrasil.sh create <branch>` |
|
|
30
|
+
| List worktrees | `bin/yggdrasil.sh list` |
|
|
31
|
+
| Remove worktree | `bin/yggdrasil.sh remove <branch>` |
|
|
32
|
+
| Sync worktree | `bin/yggdrasil.sh sync <branch>` |
|
|
33
|
+
|
|
34
|
+
The `bin/yggdrasil.sh` script is the Norse shell over the treehouse engine.
|
|
35
|
+
It handles:
|
|
36
|
+
- Branch creation from correct base
|
|
37
|
+
- Worktree path management under `.yggdrasil/<agent-id>/`
|
|
38
|
+
- Remote tracking setup
|
|
39
|
+
- Cleanup on completion
|
|
40
|
+
|
|
41
|
+
## 08.3 Utgard Sandboxes Use sandcastle
|
|
42
|
+
|
|
43
|
+
**All untrusted code, dynamic skills, and sub-agent tasks run inside Utgard**
|
|
44
|
+
via `sandcastle` (github.com/mattpocock/sandcastle, @ai-hero/sandcastle).
|
|
45
|
+
Never run untrusted code on the host.
|
|
46
|
+
|
|
47
|
+
| Operation | Command |
|
|
48
|
+
|-----------|---------|
|
|
49
|
+
| Spawn sandbox | `bin/utgard.sh spawn <profile>` |
|
|
50
|
+
| Run in sandbox | `bin/utgard.sh run <profile> <cmd>` |
|
|
51
|
+
| Destroy sandbox | `bin/utgard.sh destroy <id>` |
|
|
52
|
+
|
|
53
|
+
Utgard enforces: CPU/RAM/timeout caps, no host root, no network by default.
|
|
54
|
+
A failed Utgard execution never touches main.
|
|
55
|
+
|
|
56
|
+
## 08.4 Enforcement
|
|
57
|
+
|
|
58
|
+
- **Pre-push hook** (installed by `bin/ymir-install.sh`) rejects direct pushes
|
|
59
|
+
to protected branches
|
|
60
|
+
- **CI gate** (`.no-mistakes.yaml` + `no-mistakes` skill) validates PRs before
|
|
61
|
+
merge
|
|
62
|
+
- **Mjollnir pipeline** (`bin/mjollnir.sh`) automates issue → worktree → PR
|
|
63
|
+
|
|
64
|
+
## 08.5 References
|
|
65
|
+
|
|
66
|
+
- `bin/yggdrasil.sh` — treehouse wrapper
|
|
67
|
+
- `bin/utgard.sh` — sandcastle wrapper
|
|
68
|
+
- `bin/mjollnir.sh` — issue→PR pipeline
|
|
69
|
+
- `.no-mistakes.yaml` — clean-PR gate config
|
|
70
|
+
- `RULES/02-agents.md` — agents are canonical, harness dirs are symlinks
|
|
71
|
+
- `RULES/05-platforms.md` — core portable, per-OS layers updated together
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
*Append-only. A correction is a new entry citing the old one.*
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Rule 09 — Electron is a Local Seat
|
|
2
|
+
|
|
3
|
+
A desktop window is the machine talking to itself. Every rule below follows from
|
|
4
|
+
that one sentence.
|
|
5
|
+
|
|
6
|
+
## 09.1 Local connections only
|
|
7
|
+
|
|
8
|
+
**An Electron shell loads loopback and nothing else.** A URL that is not
|
|
9
|
+
`127.0.0.1`, `localhost` or `::1` is refused, with a warning, and replaced by the
|
|
10
|
+
local default. If a shell is handed a public hostname — a tunnel, a `*.zerwiz.org`
|
|
11
|
+
name — it must **not** honour it.
|
|
12
|
+
|
|
13
|
+
Why the law, not a preference: a desktop app that dials out is a desktop app whose
|
|
14
|
+
failures belong to somebody else's edge. A bridge that dressed a cloud endpoint as
|
|
15
|
+
`127.0.0.1` cost a night of "the agents never start"; a shell that reaches for a
|
|
16
|
+
public hall when its own machine is quiet is the same mistake wearing different
|
|
17
|
+
clothes.
|
|
18
|
+
|
|
19
|
+
**Cloudflare has nothing to do with Electron.** Tunnels exist for the *web* door,
|
|
20
|
+
so a person elsewhere can reach the apps. The desktop is already where the apps
|
|
21
|
+
live.
|
|
22
|
+
|
|
23
|
+
## 09.2 No login in the desktop seat
|
|
24
|
+
|
|
25
|
+
The web door has exactly one login; the desktop seat does not have one at all. The
|
|
26
|
+
shell is a local, trusted seat — its preload marks its requests, and the gate
|
|
27
|
+
honours that marker **only from loopback**. A login prompt inside an Electron
|
|
28
|
+
window means the surface has been mistaken for the web.
|
|
29
|
+
|
|
30
|
+
## 09.3 A service that is down says so
|
|
31
|
+
|
|
32
|
+
When a local service is not answering, the shell reports it — it does not fall
|
|
33
|
+
back to a remote copy, a cached one, or a public hostname. A wrong answer from
|
|
34
|
+
the wrong server is worse than no answer.
|
|
35
|
+
|
|
36
|
+
## 09.4 The shell carries the house mark
|
|
37
|
+
|
|
38
|
+
Every app ships its own **rune** icon (see `midgard/design-system/runes.md`), and
|
|
39
|
+
installation writes both the icon into the user's icon theme and the `.desktop`
|
|
40
|
+
entry into their applications directory — with this machine's root rendered in, so
|
|
41
|
+
the entry works and the operator can pin it. An app nobody can pin is an app half
|
|
42
|
+
installed.
|
|
43
|
+
|
|
44
|
+
## 09.5 One lifecycle for the web and the windows
|
|
45
|
+
|
|
46
|
+
`scripts/raise.sh` and `scripts/lower.sh` own both. Lowering takes the **windows
|
|
47
|
+
down first**, so no shell is left watching a port that has just vanished.
|
|
48
|
+
|
|
49
|
+
## 09.6 References
|
|
50
|
+
|
|
51
|
+
- `apps/hlidskjalf/electron/`, `apps/odrerir/electron/`, `apps/sessrumnir/src/main/`
|
|
52
|
+
- `scripts/electron.sh` — the shell lifecycle; `scripts/raise.sh` / `scripts/lower.sh`
|
|
53
|
+
- `bin/design-icon.sh` — the rune and the entry, installed
|
|
54
|
+
- Rule 05 (platforms), Rule 07 (config resolves from env, never a literal)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
*Append-only. A correction is a new entry citing the old one.*
|
package/RULES/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# RULES — the house law
|
|
2
|
+
|
|
3
|
+
Numbered, binding rules for how Ymir is organised. A rule is law: code, plans,
|
|
4
|
+
UI, and agents obey it, and a change that contradicts a rule must first change
|
|
5
|
+
the rule (append-only; never silently rewritten).
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
rules_index[9]{file,subject}:
|
|
9
|
+
"01-domains.md","domains (Greinar) · houses · Eindri"
|
|
10
|
+
"02-agents.md","agents: home, kinds, profile contract, no mock"
|
|
11
|
+
"03-houses.md","houses = companies; ownership, records, boundaries"
|
|
12
|
+
"04-hoard.md","Hodd: the one private place — secrets, docs, tenants, identity"
|
|
13
|
+
"05-platforms.md","one portable core + per-OS installation layers; core changes propagate"
|
|
14
|
+
"06-append-only.md","some records are memory: append, never rewrite, never lose on a move"
|
|
15
|
+
"07-config.md","configuration is never hardcoded: ports/hosts/paths/credentials resolve from env/config"
|
|
16
|
+
"08-delivery-gate.md","PR-only delivery; treehouse worktrees; sandcastle sandboxes"
|
|
17
|
+
"README.md","this index"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Keep each rule short and unambiguous; reference it from code where it bites.
|
|
21
|
+
|
|
22
|
+
| 09 | `09-electron.md` | Electron is a local seat: local connections only, no login, the rune icon and entry installed, one lifecycle with the web. |
|
package/bin/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# `bin/` — what every file does
|
|
2
|
+
|
|
3
|
+
Auto-generated from each script's header. One line per tool. Ported scripts are
|
|
4
|
+
credited to the upstream `firstmate` distro (port record: `.agents/skills/galdr-ymirsystem/assets/porting-upstream-to-norse.md`); the rest are Ymir's own.
|
|
5
|
+
|
|
6
|
+
bin[101]{file,does}:
|
|
7
|
+
"a2a-mcp.sh","a2a-mcp.sh — install/verify the two A2A MCP servers into the harnesses so"
|
|
8
|
+
"a2a-serve.py","a2a-serve.py — a real A2A 1.0 server (a2a-sdk) whose agent is a seated Eindri:"
|
|
9
|
+
"a2a-serve.sh","a2a-serve.sh — run the a2a-sdk A2A 1.0 server for a seated Eindri."
|
|
10
|
+
"a2a-talk.sh","a2a-talk.sh — list A2A agents and talk to one (bidirectional reply)."
|
|
11
|
+
"agent-run.sh","agent-run.sh — run one agent's errand through the harness the Allfather chose."
|
|
12
|
+
"agents-config.sh","agents-config.sh — one YAML for the Allfather's agent/harness/model combination."
|
|
13
|
+
"bifrost-bridge.sh","bifrost-bridge.sh — raise/lower the model bridge (Bifrost: the bridge between"
|
|
14
|
+
"bifrost-ingress.sh","bifrost-ingress.sh — raise/lower the ingress stack (Bifrost · Heimdall · Gjallarhorn)."
|
|
15
|
+
"brokk","brokk — the primary agent's CLI (Brokk, the bellows-smith)."
|
|
16
|
+
"brokk-classify-lib.sh","tests, declared-external-wait vocabulary, and the working/paused absorb"
|
|
17
|
+
"brokk-lease-lib.sh","brokk-lease-lib.sh - the per-task supervision lease contract (one owner)."
|
|
18
|
+
"brokk-lease.sh","brokk-lease.sh - claim, release, inspect, and sweep per-task supervision leases."
|
|
19
|
+
"brokk-lint.sh","brokk-lint.sh — the Brokk lint gate. Single owner of lint for CI and"
|
|
20
|
+
"brokk-send.sh","brokk-send.sh — send a one-line steer to a running Brokk/Eindri-home."
|
|
21
|
+
"brokk-update.sh","brokk-update.sh — update Brokk and every registered Eindri-home to the latest."
|
|
22
|
+
"brokk-wake-grant.sh","shellcheck source=bin/brokk-wake-lib.sh"
|
|
23
|
+
"brokk-wake-lib.sh","Shared durable wake queue and portable lock helpers."
|
|
24
|
+
"crash-sense.sh","A crash nobody sees is a crash nobody fixes. This watches systemd-coredump for"
|
|
25
|
+
"desktop-place.sh","desktop-place.sh — put the Ymir apps on their own Hyprland desktops."
|
|
26
|
+
"docs-guard.sh","docs-guard.sh — docs/ is the PUBLIC, user-facing tree. Block operator-private"
|
|
27
|
+
"editor-place.sh","editor-place.sh — the editor opens on its OWN desktop, never on yours."
|
|
28
|
+
"eindri-control.sh","eindri-control.sh — the CONTROL plane: allowlisted lifecycle verbs for a"
|
|
29
|
+
"eindri-role.sh","eindri-role.sh — the right smith for the right metal."
|
|
30
|
+
"eindri-send.sh","eindri-send.sh — the DATA plane: send conversational text to a seated Eindri."
|
|
31
|
+
"eindri-start.sh","eindri-start.sh — start an Eindri as the Allfather asks. One command."
|
|
32
|
+
"einherjar-spawn.sh","einherjar-spawn.sh - gather an Eindri worker (Einherjar = the chosen who are"
|
|
33
|
+
"erindi-brief.sh","erindi-brief.sh - scaffold an Eindri worker brief at data/<task-id>/brief.md."
|
|
34
|
+
"fleet-apply.sh","fleet-apply.sh — apply fleet-wide preferences to every registered Eindri-home."
|
|
35
|
+
"github-deploy.sh","github-deploy.sh — zero-trust deploys (W0035). Sync secrets from the local env"
|
|
36
|
+
"gjallarhorn-notify.sh","gjallarhorn-notify.sh — the horn (W0036). Unified push: Telegram + a web/WS"
|
|
37
|
+
"gjallarhorn-purge.sh","gjallarhorn-purge.sh — purge the Cloudflare edge cache for a hostname."
|
|
38
|
+
"gjallarhorn-tunnel.sh","gjallarhorn-tunnel.sh — raise/lower the `ymir` Cloudflare tunnel (Gjallarhorn)."
|
|
39
|
+
"gleipnir-lock-lib.sh","gleipnir-lock-lib.sh - per-home session lock for the Brokk runtime."
|
|
40
|
+
"hamr-harness.sh","hamr-harness.sh - detect the agent harness (Hamr) this process tree runs on."
|
|
41
|
+
"heimdall-ssh-keys.sh","heimdall-ssh-keys.sh — Heimdall's SSH-keys surface."
|
|
42
|
+
"herdr-agents.py","(no header description)"
|
|
43
|
+
"herdr-ensure.sh","herdr-ensure.sh — Þjazi: guarantee the terminal backend Ymir needs."
|
|
44
|
+
"herdr-run.sh","herdr-run.sh — raise an Eindri in herdr, by the grain that fits the errand."
|
|
45
|
+
"hermes-ensure.sh","hermes-ensure.sh — ensure the Hermes agent runtime is present."
|
|
46
|
+
"hodd.sh","hodd.sh — the Allfather's private hoard: path, init, ls, load, tenant."
|
|
47
|
+
"local-model-lock.sh","local-model-lock.sh — serialize LOCAL model inference on one machine."
|
|
48
|
+
"mimir-bridge.py","(no header description)"
|
|
49
|
+
"mimir-bridge.sh","mimir-bridge.sh — raise/lower the well bridge (Mimirsbrunn on :4602)."
|
|
50
|
+
"mimir-ingest.sh","mimir-ingest.sh — ingest the repo's data material into the well (Mimirsbrunn)."
|
|
51
|
+
"mimir.sh","mimir.sh — the well (Mimirsbrunn). Drink before you act, water it after."
|
|
52
|
+
"mjollnir-webhook.sh","mjollnir-webhook.sh — HMAC-verified GitHub webhook → Mjollnir (W0018)."
|
|
53
|
+
"mjollnir.sh","mjollnir.sh — the hammer (W0018). An issue becomes a PR: read the issue, cut a"
|
|
54
|
+
"model-resolve.sh","model-resolve.sh — resolve a human model request to a concrete harness+model."
|
|
55
|
+
"nornir-cron-start.sh","nornir-cron-start.sh - ensure Brokk's scheduled jobs are running (idempotent)."
|
|
56
|
+
"nornir-job-daily-briefing.sh","nornir-job-daily-briefing.sh - the 07:00 Sága daily seeing."
|
|
57
|
+
"nornir-job-git-sync.sh","nornir-job-git-sync.sh - Yggdrasil, the world-tree kept in order."
|
|
58
|
+
"nornir-job-memory-housekeeping.sh","nornir-job-memory-housekeeping.sh - Muninn, the raven of memory."
|
|
59
|
+
"nornir-job-observer.sh","nornir-job-observer.sh - Huginn, the raven of observation."
|
|
60
|
+
"omarchy-hook-install.sh","omarchy-hook-install.sh — let Ymir notice when Omarchy updates."
|
|
61
|
+
"omarchy-install.sh","omarchy-install.sh — the Omarchy installation layer (Rule 05)."
|
|
62
|
+
"omarchy-plugins.sh","omarchy-plugins.sh — the Omarchy plugins Ymir suggests, and installs on consent."
|
|
63
|
+
"omarchy-sense.sh","omarchy-sense.sh — learn the Allfather's Omarchy machine."
|
|
64
|
+
"perm-guard.sh","perm-guard.sh — flag agent profiles whose permissions are self-defeating."
|
|
65
|
+
"pi-agent.sh","pi-agent.sh — run a Ymir agent on a LOCAL model with ITS OWN persona/mission"
|
|
66
|
+
"pi-local.sh","pi-local.sh — run a Pi agent on a LOCAL model, reusable."
|
|
67
|
+
"pi-seat.sh","pi-seat.sh — seat a Pi agent in a VISIBLE herdr pane, optionally on a local"
|
|
68
|
+
"prereq-ensure.sh","prereq-ensure.sh — self-healing prerequisite engine for Ymir."
|
|
69
|
+
"private-guard.sh","private-guard.sh — enforce the Hoard boundary (Rule 04). Nothing under a"
|
|
70
|
+
"project-git.sh","project-git.sh — resolve a project's GitHub block from the master registry"
|
|
71
|
+
"public-guard.sh","public-guard.sh — every PUBLIC, user-facing file must be free of operator"
|
|
72
|
+
"ratatoskr.sh","ratatoskr.sh — Ymir's front door to the A2A engine (`a2abridge`)."
|
|
73
|
+
"repo-scrub.sh","repo-scrub.sh — purge private paths from ALL git history before going public."
|
|
74
|
+
"rodd-operational-input.sh","rodd-operational-input.sh - canonical Rödd operational-input protocol."
|
|
75
|
+
"runes-append.sh","runes-append.sh - append-only Runes audit ledger."
|
|
76
|
+
"saga-session-start.sh","saga-session-start.sh - the one-command Brokk session start."
|
|
77
|
+
"saga-sessionstart-run.sh","saga-sessionstart-run.sh - session-open entry point for run-tier harnesses."
|
|
78
|
+
"saga-wake-drain.sh","saga-wake-drain.sh - present durable Brokk wakes."
|
|
79
|
+
"secret-guard.sh","secret-guard.sh — refuse to commit obvious secrets or private env files."
|
|
80
|
+
"skuld-branch-outcome.sh","skuld-branch-outcome.sh - the durable outcome store for the Pi supervision"
|
|
81
|
+
"skuld-branch-prompt.sh","skuld-branch-prompt.sh - emit the supervision branch's system prompt"
|
|
82
|
+
"smidja-bootstrap.sh","smidja-bootstrap.sh — make the Smíðja visualizer ready on a fresh install."
|
|
83
|
+
"smidja-observe.sh","smidja-observe.sh — the smithy's trace, read-only (W0075). Reads the REPO's own"
|
|
84
|
+
"syn-arm-pretool-check.sh","syn-arm-pretool-check.sh - PreToolUse seatbelt for watcher-arm bash commands."
|
|
85
|
+
"syn-asset-pretool-check.sh","syn-asset-pretool-check.sh — PreToolUse seatbelt for governed paths."
|
|
86
|
+
"syn-cd-pretool-check.sh","syn-cd-pretool-check.sh - PreToolUse seatbelt for directory-changing commands."
|
|
87
|
+
"syn-guard-pretool-check.sh","syn-guard-pretool-check.sh — PreToolUse seatbelt for the runtime's load-bearing invariants."
|
|
88
|
+
"syn-turnend-guard.sh","syn-turnend-guard.sh - refuse to let a Brokk turn end blind."
|
|
89
|
+
"syn-watch-arm.sh","syn-watch-arm.sh - arm one Brokk supervision watcher cycle."
|
|
90
|
+
"tailscale-sync.sh","tailscale-sync.sh — sync the Allfather's pi data across his OWN machines over"
|
|
91
|
+
"telegram-bot.sh","telegram-bot.sh — the horn answers (W0036). Long-poll Telegram for the owner's"
|
|
92
|
+
"toolchain.sh","toolchain.sh — the provider wrappers (W0033). A typed front door to the tools"
|
|
93
|
+
"utgard.sh","utgard.sh — the sealed execution barrier (Utgard, the realm outside the wall)."
|
|
94
|
+
"valhalla.sh","valhalla.sh — the process hall (Valhalla). List, inspect, revive, and read logs"
|
|
95
|
+
"valknut-load.sh","valknut-load.sh — Valknut, the knot that binds the repo distro into each tool's"
|
|
96
|
+
"vor-crew-state.sh","vor-crew-state.sh - deterministic read of an Eindri worker's CURRENT state."
|
|
97
|
+
"wedge-notify.sh","wedge-notify.sh — the Ymir wedge-alarm notifier."
|
|
98
|
+
"workspace-provision.sh","workspace-provision.sh — carve one workspace for the operator. Single tenant:"
|
|
99
|
+
"workspace-rag.sh","workspace-rag.sh — memory over the realm workspaces (W0038)."
|
|
100
|
+
"wyrd-db.sh","wyrd-db.sh — the database layer (W0040). Applies the platform schema and reports"
|
|
101
|
+
"yggdrasil.sh","yggdrasil.sh — the worktree manager (Yggdrasil, the world-tree)."
|
|
102
|
+
"ymir-edit.sh","ymir-edit.sh — open a file in the Allfather's editor, on its own desktop."
|
|
103
|
+
"ymir-install.sh","ymir-install.sh — THE FIRST SETUP. Stand the full Ymir up for the operator:"
|
|
104
|
+
"ymir-migrate.sh","ymir-migrate.sh — versioned STRUCTURE migrations for existing Ymir homes."
|
|
105
|
+
"ymir-platform.sh","ymir-platform.sh — the portability layer."
|
|
106
|
+
"ymir-say.sh","ymir-say.sh — let Ymir speak on the Allfather's desktop."
|
|
107
|
+
"ymir-validate.sh","ymir-validate.sh — verify the installation actually works."
|