@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,385 @@
|
|
|
1
|
+
# Galdr Principles — the 10 design principles (full doctrine)
|
|
2
|
+
|
|
3
|
+
The complete rulebook for agent-facing CLIs. Load this when the task is about CLI
|
|
4
|
+
ergonomics, TOON output, schemas, errors, help, or session integration. Galdr's
|
|
5
|
+
`SKILL.md` is the router; this is the doctrine it routes to.
|
|
6
|
+
|
|
7
|
+
## Manifest
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
principles[10]{id,name,gist}:
|
|
11
|
+
1,"TOON output","stdout TOON, ~40% under JSON; JSON internally"
|
|
12
|
+
2,"Minimal schemas","3-4 fields per list row, not 10"
|
|
13
|
+
3,"Content truncation","preview + total size + --full hint"
|
|
14
|
+
4,"Pre-computed aggregates","counts and derived state inline"
|
|
15
|
+
5,"Definitive empty states","state the zero with success context"
|
|
16
|
+
6,"Structured errors & exit codes","stdout errors, no prompts, fail loud"
|
|
17
|
+
7,"Ambient context via session integrations","hooks inject a compact dashboard"
|
|
18
|
+
8,"Content first","no-args shows live state, not help"
|
|
19
|
+
9,"Contextual disclosure","suggest the next command, parameterized"
|
|
20
|
+
10,"Consistent help","identify the tool; --help per subcommand; fast --version"
|
|
21
|
+
channels[3]{stream,carries,agent_reads}:
|
|
22
|
+
"stdout","data, errors, suggestions","yes"
|
|
23
|
+
"stderr","debug, progress, diagnostics","no"
|
|
24
|
+
"exit","0 success/no-op, 1 error, 2 usage","yes"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Read the TOON specification and `AGENTS.md` before building any Galdr output.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. Token-efficient output with TOON
|
|
32
|
+
|
|
33
|
+
Use TOON (Token-Oriented Object Notation) as the output format on stdout. TOON
|
|
34
|
+
provides ~40% token savings over equivalent JSON while remaining readable by
|
|
35
|
+
agents. Convert to TOON at the output boundary — keep internal logic on JSON.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
tasks[2]{id,title,status,assignee}:
|
|
39
|
+
"1",Fix auth bug,open,alice
|
|
40
|
+
"2",Add pagination,closed,bob
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 2. Minimal default schemas
|
|
44
|
+
|
|
45
|
+
Every field in stdout costs tokens — multiplied by row count in collections.
|
|
46
|
+
Default to the smallest schema that lets the agent decide what to do next:
|
|
47
|
+
typically an identifier, a title, and a status.
|
|
48
|
+
|
|
49
|
+
- Default list schemas: 3-4 fields, not 10.
|
|
50
|
+
- Default limits: high enough to cover common cases in one call (if most repos
|
|
51
|
+
have <100 labels, default to 100, not 30).
|
|
52
|
+
- Long-form content (bodies, descriptions) belongs in detail views, not lists.
|
|
53
|
+
- Offer a `--fields` flag to let agents request additional fields explicitly.
|
|
54
|
+
|
|
55
|
+
## 3. Content truncation
|
|
56
|
+
|
|
57
|
+
Detail views often contain large text fields. Omitting them forces agents to
|
|
58
|
+
hunt; including them wastes tokens. Truncate by default and tell the agent how to
|
|
59
|
+
get the full version.
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
number: 42
|
|
63
|
+
title: Fix auth bug
|
|
64
|
+
state: open
|
|
65
|
+
body: First 500 chars of the issue body...
|
|
66
|
+
... (truncated, 8432 chars total)
|
|
67
|
+
|
|
68
|
+
help[1]: Run `tasks view 42 --full` to see complete body
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- Never omit large fields entirely — include a truncated preview.
|
|
72
|
+
- Show the total size so the agent knows how much it's missing.
|
|
73
|
+
- Suggest the escape hatch (`--full`) only when content is actually truncated.
|
|
74
|
+
- Choose a truncation limit that covers most use cases (500-1500 chars).
|
|
75
|
+
|
|
76
|
+
## 4. Pre-computed aggregates
|
|
77
|
+
|
|
78
|
+
The most expensive token cost is often not a longer response — it's a follow-up
|
|
79
|
+
call. If your backend has data that agents commonly need as a next step, compute
|
|
80
|
+
it and include it.
|
|
81
|
+
|
|
82
|
+
Aggregate counts: include the total count in list output, not just the page size.
|
|
83
|
+
Agents need "how many are there?" and will paginate if the answer isn't
|
|
84
|
+
definitive.
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
count: 30 of 847 total
|
|
88
|
+
tasks[30]{number,title,state}:
|
|
89
|
+
1,Fix auth bug,open
|
|
90
|
+
...
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Derived status fields
|
|
94
|
+
|
|
95
|
+
When the next step almost always involves checking related state, include a
|
|
96
|
+
lightweight summary inline.
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
task:
|
|
100
|
+
number: 42
|
|
101
|
+
title: Deploy pipeline fix
|
|
102
|
+
state: open
|
|
103
|
+
checks: 3/3 passed
|
|
104
|
+
comments: 7
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Only include derived fields your backend can provide cheaply — a summary
|
|
108
|
+
("3/3 passed"), not the full data.
|
|
109
|
+
|
|
110
|
+
## 5. Definitive empty states
|
|
111
|
+
|
|
112
|
+
When the answer is "nothing", say so explicitly. Ambiguous empty output causes
|
|
113
|
+
agents to re-run with different flags to verify.
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
$ tasks list --state closed
|
|
117
|
+
tasks: 0 closed tasks found in this repository
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
State the zero with context. Make it clear the command succeeded — the absence of
|
|
121
|
+
results is the answer.
|
|
122
|
+
|
|
123
|
+
## 6. Structured errors & exit codes
|
|
124
|
+
|
|
125
|
+
### Idempotent mutations
|
|
126
|
+
|
|
127
|
+
Don't error when the desired state already exists. If the agent closes something
|
|
128
|
+
already closed, acknowledge and move on with exit code 0. Reserve non-zero exit
|
|
129
|
+
codes for situations where the agent's intent genuinely cannot be satisfied.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
$ tasks close 42
|
|
133
|
+
task: #42 already closed (no-op) # exit 0
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Structured errors on stdout
|
|
137
|
+
|
|
138
|
+
Errors go to stdout in the same structured format as normal output, so the agent
|
|
139
|
+
can read and act on them. Include what went wrong and an actionable suggestion.
|
|
140
|
+
Never let raw dependency output (API errors, stack traces) leak through.
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
error: --title is required
|
|
144
|
+
help: tasks create --title "..." [--body "..."]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
- Validate required flags before calling any dependency.
|
|
148
|
+
- Translate errors — extract actionable meaning, discard noise.
|
|
149
|
+
- Never leak dependency names — suggestions reference your CLI's commands, not
|
|
150
|
+
the underlying tool.
|
|
151
|
+
- No interactive prompts: every operation must be completable with flags alone.
|
|
152
|
+
If a required value is missing, fail immediately with a clear error — don't
|
|
153
|
+
prompt for it. Suppress prompts from wrapped tools.
|
|
154
|
+
|
|
155
|
+
### Fail loud on unrecognized input
|
|
156
|
+
|
|
157
|
+
Reject unknown flags and arguments — never silently ignore them. A dropped flag is
|
|
158
|
+
worse than an error: the agent gets plausible-looking output it believes is scoped
|
|
159
|
+
or filtered, then proceeds confidently on wrong data. This is the same guarantee a
|
|
160
|
+
CLI already owes for an unknown command; extend it to flags.
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
$ tasks list --stat closed
|
|
164
|
+
error: unknown flag --stat for `list`
|
|
165
|
+
help: valid flags for `list`: --state, --assignee, --limit (--help always allowed)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
- Validate before any dependency call, with exit code 2 — the same as a missing
|
|
169
|
+
required flag. Each command declares its own known flags; an unrecognized one is
|
|
170
|
+
rejected by name and the command's valid flags are listed.
|
|
171
|
+
- Renamed or removed flags get a targeted hint, not the generic list — point at
|
|
172
|
+
what replaced them (`--status` was renamed; use `--state` instead) so the agent
|
|
173
|
+
self-corrects in one step.
|
|
174
|
+
- Per-subcommand flag sets. For grouped nouns where one command dispatches to
|
|
175
|
+
subcommands (a list vs a create under the same noun), validate against the
|
|
176
|
+
subcommand's flags — they differ, and only the subcommand layer knows which is
|
|
177
|
+
in play.
|
|
178
|
+
- Make the error self-correcting in one turn. The agent's deterministic next move
|
|
179
|
+
after an unknown-flag error is to run `<command> --help` — so fold that lookup
|
|
180
|
+
into the error: list the valid flags inline, or print the command's concise
|
|
181
|
+
`--help` block directly beneath it. Per §4 the expensive cost is the follow-up
|
|
182
|
+
call, and per §10 per-command help is already concise, so inlining it collapses
|
|
183
|
+
the two-turn correction into one.
|
|
184
|
+
|
|
185
|
+
## Output channels
|
|
186
|
+
|
|
187
|
+
- **stdout**: all structured output the agent consumes — data, errors, suggestions.
|
|
188
|
+
- **stderr**: debug logging, progress indicators, diagnostics (agents don't read this).
|
|
189
|
+
- **Exit codes**: 0 = success (including no-ops), 1 = error, 2 = usage error.
|
|
190
|
+
|
|
191
|
+
Never mix progress messages into stdout. An agent that reads "Fetching data..."
|
|
192
|
+
will try to interpret it as data.
|
|
193
|
+
|
|
194
|
+
## 7. Ambient context via session integrations
|
|
195
|
+
|
|
196
|
+
Register your tool into the agent's session lifecycle so every conversation starts
|
|
197
|
+
with relevant state already visible — before the agent takes any action.
|
|
198
|
+
|
|
199
|
+
### Pattern
|
|
200
|
+
|
|
201
|
+
- Provide an explicit setup command that installs or repairs a session hook or
|
|
202
|
+
plugin after user intent is clear.
|
|
203
|
+
- At session start, the integration runs your tool and provides a compact
|
|
204
|
+
dashboard as context.
|
|
205
|
+
- The agent receives this as initial context and can act immediately.
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
# Agent sees this at session start — no invocation needed:
|
|
209
|
+
specs[2]{id,title,status}:
|
|
210
|
+
1,Fix auth bug,open
|
|
211
|
+
2,Add pagination,in-progress
|
|
212
|
+
|
|
213
|
+
help[2]:
|
|
214
|
+
Run `mytool specs view 1` for details
|
|
215
|
+
Run `mytool specs create --title "..."` to add a spec
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Rules
|
|
219
|
+
|
|
220
|
+
- **Default app targets**: by default, support Claude Code, Codex, and OpenCode.
|
|
221
|
+
Do not hard-code a single agent integration when the tool can reasonably support
|
|
222
|
+
multiple agents.
|
|
223
|
+
- **Explicit opt-in**: register hooks or plugins only from a user-invoked setup
|
|
224
|
+
command, not from ordinary CLI commands.
|
|
225
|
+
- **Portable commands**: hook commands should use a PATH-verified binary name when
|
|
226
|
+
it resolves to the current executable, and fall back to the full absolute path
|
|
227
|
+
otherwise. This keeps global installs portable while ensuring hooks do not
|
|
228
|
+
accidentally run a different binary.
|
|
229
|
+
- **Path repair**: setup commands should check existing hooks and update the
|
|
230
|
+
executable path if it has changed (e.g., after reinstall or relocation).
|
|
231
|
+
- **Idempotent**: repeated installs with the same path are silent no-ops.
|
|
232
|
+
- **Directory-scoped**: show only state relevant to the current working directory.
|
|
233
|
+
- **Token-budget-aware**: this context loads on every session — ruthlessly minimize
|
|
234
|
+
it. Include just enough for the agent to orient and act; deep data belongs in
|
|
235
|
+
explicit invocations.
|
|
236
|
+
- **Lifecycle capture**: use session-end hooks to capture what happened
|
|
237
|
+
(transcripts, files touched, specs referenced) so future session-start context
|
|
238
|
+
gets richer over time.
|
|
239
|
+
|
|
240
|
+
### How to integrate with each app
|
|
241
|
+
|
|
242
|
+
- **Claude Code**: use native hooks in `~/.claude/settings.json` or project
|
|
243
|
+
`.claude/settings.json`. Prefer SessionStart to inject compact context via stdout.
|
|
244
|
+
- **Codex**: use native hooks in `~/.codex/hooks.json` or `<repo>/.codex/hooks.json`,
|
|
245
|
+
and ensure `[features].hooks = true` in `config.toml`. Prefer SessionStart for
|
|
246
|
+
ambient context via stdout.
|
|
247
|
+
- **OpenCode**: use a managed plugin in `~/.config/opencode/plugins/` or
|
|
248
|
+
`<repo>/.opencode/plugins/`. Prefer ambient system-context injection for the home
|
|
249
|
+
view rather than adding a custom tool.
|
|
250
|
+
- **Pi**: use native hooks in `~/.pi/hooks.json` or project `.pi/hooks.json`.
|
|
251
|
+
Prefer SessionStart to inject compact context via stdout. Pi agents are defined
|
|
252
|
+
in `~/.pi/agents/` with kebab-case names.
|
|
253
|
+
|
|
254
|
+
### Also ship an installable skill (secondary recommendation)
|
|
255
|
+
|
|
256
|
+
The session hook is the primary integration, but it only helps agents whose harness
|
|
257
|
+
supports hooks, and it loads on every session. Offer an installable Agent Skill as a
|
|
258
|
+
secondary discovery path. It loads on demand when the agent recognizes a matching
|
|
259
|
+
task, carries no per-session token cost, and works in any agent that supports the
|
|
260
|
+
skill format. Recommend the hook first (ambient context plus live state) and the
|
|
261
|
+
skill second (lower overhead, broader agent support) — they are complementary, and
|
|
262
|
+
a user installs whichever fits, or both.
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
npx skills add <owner>/<repo> --skill <name>
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
- **Single source of truth**: generate `SKILL.md` from the same content your no-args
|
|
269
|
+
home view prints, so the skill never drifts from the CLI's own guidance. Add a
|
|
270
|
+
`--check` build step to CI that fails if the committed skill is stale.
|
|
271
|
+
- **Strip live state**: a skill is static, so omit dynamic data (open sessions,
|
|
272
|
+
current items) that only the hook can show.
|
|
273
|
+
- **Non-interactive commands**: rewrite command examples to a form the agent can run
|
|
274
|
+
without a global install (e.g. `npx -y mytool ...`), since a skill may be
|
|
275
|
+
installed without the binary on PATH.
|
|
276
|
+
- **Trigger-shaped frontmatter**: include `name` and a `description` written as a
|
|
277
|
+
trigger — terse and outcome-focused so the agent loads it on the right intent.
|
|
278
|
+
- **Document both paths**: in your README, present the hook and the skill as two ways
|
|
279
|
+
to achieve the same thing, and make clear the user only needs one.
|
|
280
|
+
|
|
281
|
+
## 8. Content first
|
|
282
|
+
|
|
283
|
+
Running your CLI with no arguments should show the most relevant live content — not
|
|
284
|
+
a usage manual. When an agent sees actual state it can act immediately. When it sees
|
|
285
|
+
help text, it has to make a second call.
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
$ tasks
|
|
289
|
+
tasks[3]{id,title,status}:
|
|
290
|
+
1,Fix auth bug,open
|
|
291
|
+
2,Add pagination,open
|
|
292
|
+
3,Update docs,closed
|
|
293
|
+
|
|
294
|
+
help[2]:
|
|
295
|
+
Run `tasks view <id>` to see full details
|
|
296
|
+
Run `tasks create --title "..."` to add a task
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## 9. Contextual disclosure
|
|
300
|
+
|
|
301
|
+
Include a few next steps that follow logically from the current output. The agent
|
|
302
|
+
discovers your CLI's surface area organically by using it, not by reading a manual
|
|
303
|
+
upfront.
|
|
304
|
+
|
|
305
|
+
### Rules
|
|
306
|
+
|
|
307
|
+
- **Relevant**: after an open item → suggest closing; after an empty list → suggest
|
|
308
|
+
creating; after a list → suggest viewing.
|
|
309
|
+
- **Actionable**: every suggestion is a complete command (or template) carrying
|
|
310
|
+
forward any disambiguating flags from the current invocation (e.g., `--repo`,
|
|
311
|
+
`--source`).
|
|
312
|
+
- **Parameterize dynamic values**: when a suggested command needs a runtime value
|
|
313
|
+
such as an ID, title, branch, URL, or path, use placeholders like `<id>` or
|
|
314
|
+
`"<title>"` instead of guessing a concrete value that may mislead the agent.
|
|
315
|
+
- **Omit when self-contained**: when the output fully answers the query (a detail
|
|
316
|
+
view, a count, a confirmation), suggestions are noise — leave them out. Include
|
|
317
|
+
them on list and mutation responses where the next step isn't obvious.
|
|
318
|
+
- **Guide discovery, not workflows**: suggest a variety of possible next actions,
|
|
319
|
+
don't prescribe a fixed sequence. An agent that already knows what it wants should
|
|
320
|
+
never be nudged into an extra step.
|
|
321
|
+
- **Resolve errors**: on errors, suggest the specific command that fixes the problem,
|
|
322
|
+
not "see `--help`".
|
|
323
|
+
|
|
324
|
+
## 10. Consistent way to get help
|
|
325
|
+
|
|
326
|
+
The top-level home view should also identify the tool itself before the live data:
|
|
327
|
+
|
|
328
|
+
- Include the absolute path of the current executable, with the user's home directory
|
|
329
|
+
collapsed to `~`.
|
|
330
|
+
- Include a one-sentence description of what this Galdr does.
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
$ tasks
|
|
334
|
+
bin: ~/.local/bin/tasks
|
|
335
|
+
description: Manage project tasks in the current workspace
|
|
336
|
+
...
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Every subcommand should support `--help` with a concise, complete reference:
|
|
340
|
+
available flags with defaults, required arguments, and 2-3 usage examples. Keep it
|
|
341
|
+
focused on the requested subcommand — don't dump the entire CLI's manual.
|
|
342
|
+
|
|
343
|
+
### Identify yourself instantly: the `--version` fast path
|
|
344
|
+
|
|
345
|
+
`-v`, `-V`, and `--version` must all print the bare version and exit 0. Agents and
|
|
346
|
+
their harnesses probe `--version` constantly — to confirm a tool is installed, to
|
|
347
|
+
check whether a fix has shipped, to decide whether to suggest update. That makes
|
|
348
|
+
latency an ergonomics property, not just a perf tweak: a probe that takes 80 ms is
|
|
349
|
+
80 ms of every session start, paid before any useful work happens.
|
|
350
|
+
|
|
351
|
+
### The trap is ESM static imports
|
|
352
|
+
|
|
353
|
+
If `bin/<tool>.js` statically imports the module that builds the command graph, every
|
|
354
|
+
dependency in that graph is fully evaluated before the version check runs. One heavy
|
|
355
|
+
import anywhere in the tree — an SDK, a server framework — is then paid on every
|
|
356
|
+
`--version`.
|
|
357
|
+
|
|
358
|
+
Answer the version before the graph loads: keep the version in a leaf module that
|
|
359
|
+
imports only node builtins, and defer the real CLI to a dynamic `import()`.
|
|
360
|
+
|
|
361
|
+
```js
|
|
362
|
+
#!/usr/bin/env node
|
|
363
|
+
import { tryFastPath } from "galdr-sdk-js/fast-path";
|
|
364
|
+
import { VERSION } from "../src/version.js"; // leaf module - node builtins only
|
|
365
|
+
|
|
366
|
+
if (!tryFastPath(process.argv.slice(2), { version: VERSION })) {
|
|
367
|
+
const { main } = await import("../src/cli.js"); // heavy graph loads only here
|
|
368
|
+
await main();
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Two things keep this honest
|
|
373
|
+
|
|
374
|
+
- The version must come from a leaf module. If `VERSION` is defined inside `cli.ts`,
|
|
375
|
+
importing it re-pulls the whole graph and the fast path buys nothing.
|
|
376
|
+
- Guard it with a test that measures the version path against the
|
|
377
|
+
`node -e "console.log(1)"` floor measured in the same process, rather than an
|
|
378
|
+
absolute millisecond budget that goes flaky across machines.
|
|
379
|
+
|
|
380
|
+
## Maintaining this
|
|
381
|
+
|
|
382
|
+
- **Owner:** Brokk. **Router:** `.agents/skills/galdr-ymirsystem/SKILL.md` (lean TOON).
|
|
383
|
+
- **Mirror:** `.agents/skills/tyr-check/assets/principles.md`.
|
|
384
|
+
- When a principle changes, update the manifest block at the top and this body in
|
|
385
|
+
the same edit; Tyr judges the pair for drift.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Reference Adoption — data, skills, state, docs
|
|
2
|
+
|
|
3
|
+
How the inherited upstream material under `assets/` is reused by the Brokk
|
|
4
|
+
runtime. Load this when touching `assets/data/`, `assets/reference/*`, or the
|
|
5
|
+
runtime `state/` conventions. Source material is provenance; only the adopted,
|
|
6
|
+
Norse-named runtime is loaded.
|
|
7
|
+
|
|
8
|
+
## Data → the well (Mimirsbrunn)
|
|
9
|
+
|
|
10
|
+
`assets/data/**/*.md` is real planning/knowledge material. `bin/mimir-ingest.sh`
|
|
11
|
+
chunks it by heading into episodes (content hash, source, tags, timestamp) and
|
|
12
|
+
appends them to the local well store; it POSTs each to the engram bridge when
|
|
13
|
+
reachable. Idempotent by hash.
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
data_pipeline[2]{stage,path}:
|
|
17
|
+
"source","assets/data/**/*.md (13 files, ~370 sections)"
|
|
18
|
+
"ingest","`bin/mimir-ingest.sh` → `.agents/memory/well/episodes.jsonl` + bridge `/observe`"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
runes[1]{command,purpose}:
|
|
23
|
+
"bin/mimir-ingest.sh","drink the repo's data into the well (idempotent)"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## State conventions (Brokk)
|
|
27
|
+
|
|
28
|
+
Derived from the upstream `assets/reference/state/` samples, rewritten to the
|
|
29
|
+
Norse runtime. Private, gitignored under `state/`.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
state[9]{path,holds,owner}:
|
|
33
|
+
".lock","session pid (bound to the live harness via BROKK_SESSION_PID)","Gleipnir"
|
|
34
|
+
".session-start-complete","the Sága digest has run this lock","Sága"
|
|
35
|
+
".supervision-armed","supervision was armed at least once","Sýn"
|
|
36
|
+
".watch.heartbeat","watcher liveness epoch","Sýn"
|
|
37
|
+
".wake-queue","durable wake records (ack to drop)","Sága"
|
|
38
|
+
"*.signal","an actionable event for the watcher cycle","Sýn/Gná"
|
|
39
|
+
"*.check","a scheduled check demand","Sýn"
|
|
40
|
+
"*.meta","per-task metadata (backend, worktree, harness, mode)","Einherjar/Vör"
|
|
41
|
+
"*.status","appended wake-event lines (not current-state truth)","Eindri/Vör"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Rule: a `state/*.status` line is a **wake event**, never current-state truth;
|
|
45
|
+
use `bin/vor-crew-state.sh` to reconcile reality.
|
|
46
|
+
|
|
47
|
+
## Reference skills → Norse (adopted)
|
|
48
|
+
|
|
49
|
+
The upstream internal skill library under `assets/reference/skills/` is
|
|
50
|
+
provenance. Each adopted skill took the Norse figure whose role matches its work
|
|
51
|
+
and now lives at `.agents/skills/<name>/SKILL.md`.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
skill_map[20]{upstream,norse,status}:
|
|
55
|
+
"harness-adapters","hamr","adopted"
|
|
56
|
+
"afk","hvild-afk","adopted"
|
|
57
|
+
"bearings","saga","adopted"
|
|
58
|
+
"ahoy","saga","adopted"
|
|
59
|
+
"stow","muninn-stow","adopted"
|
|
60
|
+
"project-management","jord-projects","adopted"
|
|
61
|
+
"decision-hold-lifecycle","urdh","adopted"
|
|
62
|
+
"allfather-hold-lifecycle","urdh","adopted"
|
|
63
|
+
"ask-user-authority","frigg-consent","adopted"
|
|
64
|
+
"bootstrap-diagnostics","vor-diagnostics","adopted"
|
|
65
|
+
"diagnostic-reasoning","vor-diagnostics","folded"
|
|
66
|
+
"process-event-sources","nornir","adopted"
|
|
67
|
+
"quota-array-dispatch","nornir","adopted"
|
|
68
|
+
"fmx-respond","gjallarhorn-relay","adopted"
|
|
69
|
+
"secondmate-provisioning","eindri-homes","adopted"
|
|
70
|
+
"stuck-crewmate-recovery","syn-recovery","adopted"
|
|
71
|
+
"updatefirstmate","ymir","adopted"
|
|
72
|
+
"firstmate-coding-guidelines","(Galdr)","folded"
|
|
73
|
+
"firstmate-orca","(reference)","reference only"
|
|
74
|
+
"firstmate-codexapp","(reference)","reference only"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Sixteen skills adopted under `.agents/skills/`; see the registry in
|
|
78
|
+
`.agents/skills/README.md`.
|
|
79
|
+
|
|
80
|
+
## Reference docs → adoption (W0109)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
doc_map[8]{upstream,adopt_as}:
|
|
84
|
+
"supervision-protocols/*","`.agents/skills/galdr-ymirsystem/assets/harness-integration/` (per-harness tier)"
|
|
85
|
+
"turnend-guard.md","`bin/syn-turnend-guard.sh` + `.pi/extensions/syn-turnend-guard.ts`"
|
|
86
|
+
"trace-context.md","W3C trace propagation (W0094)"
|
|
87
|
+
"subagent-guard.md","Eindri pretool seatbelts (syn-*-pretool-check.sh)"
|
|
88
|
+
"architecture.md","`.agents/skills/galdr-ymirsystem/assets/brokk-distro-runtime.md`"
|
|
89
|
+
"configuration.md","`.agents/config/` keys (W0104)"
|
|
90
|
+
"tmux-backend.md / herdr-backend.md","`bin/` runtime backends (Valhalla)"
|
|
91
|
+
"calm.md","`.pi/extensions/ro.ts` (Ró)"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Maintaining this
|
|
95
|
+
|
|
96
|
+
- **Owner:** Brokk. **Router:** `.agents/skills/galdr-ymirsystem/SKILL.md`.
|
|
97
|
+
- Move a `skill_map` row's `status` to a real `.agents/skills/<name>/SKILL.md`
|
|
98
|
+
when converted (`adopted`), or `folded` when its content lands elsewhere; keep
|
|
99
|
+
`assets/reference/` provenance-only.
|