@zerwiz/ymir 0.1.3 → 0.1.5
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/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 +290 -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 +50 -0
- package/.agents/config/agents.yaml.example +72 -0
- package/.agents/config/crew-dispatch.json +22 -0
- package/.agents/config/cron.yaml +9 -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/config/tailscale-sync.yaml +27 -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/kaia.engram +0 -0
- package/.agents/memory/kaia.engram-shm +0 -0
- package/.agents/memory/kaia.engram-wal +0 -0
- package/.agents/memory/runes_audit.md +5 -0
- package/.agents/memory/well/episodes.jsonl +367 -0
- package/.agents/memory/well/workspace.jsonl +27 -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 +111 -0
- package/.agents/migrations/0004-hoard-and-realms.sh +104 -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 +158 -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 +673 -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 +496 -0
- package/.agents/skills/galdr-ymirsystem/assets/installation.md +571 -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 +161 -0
- package/.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md +377 -0
- package/.agents/skills/galdr-ymirsystem/assets/norse-naming.md +325 -0
- package/.agents/skills/galdr-ymirsystem/assets/odrerir-hall.md +129 -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 +96 -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 +175 -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 +360 -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 +70 -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 +52 -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 +34 -0
- package/.agents/skills/ymir-host/assets/desktop.md +36 -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 +454 -0
- package/CHANGELOG.md +881 -0
- package/LICENSE +1 -1
- package/NOTICE +63 -0
- package/README.md +113 -39
- 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 +65 -0
- package/RULES/05-platforms.md +67 -0
- package/RULES/06-append-only.md +58 -0
- package/RULES/07-config.md +45 -0
- package/RULES/08-delivery-gate.md +75 -0
- package/RULES/README.md +20 -0
- package/bin/README.md +107 -0
- package/bin/a2a-mcp.sh +98 -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 +233 -0
- package/bin/apodex-smoke-test.sh +92 -0
- package/bin/bifrost-bridge.sh +112 -0
- package/bin/bifrost-ingress.sh +77 -0
- package/bin/bootstrap-macos.sh +107 -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 +38 -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-guard.sh +165 -0
- package/bin/crash-sense.sh +160 -0
- package/bin/desktop-place.sh +224 -0
- package/bin/docs-guard.sh +39 -0
- package/bin/editor-place.sh +207 -0
- package/bin/eindri-acclaim.sh +34 -0
- package/bin/eindri-control.sh +28 -0
- package/bin/eindri-role.sh +83 -0
- package/bin/eindri-seen.sh +41 -0
- package/bin/eindri-send.sh +15 -0
- package/bin/eindri-start.sh +85 -0
- package/bin/eindri-watch.sh +57 -0
- package/bin/einherjar-spawn.sh +576 -0
- package/bin/eir-doctor.sh +112 -0
- package/bin/erindi-brief.sh +271 -0
- package/bin/fleet-apply.sh +68 -0
- package/bin/github-deploy.sh +81 -0
- package/bin/gjallarhorn-expose.sh +102 -0
- package/bin/gjallarhorn-notify.sh +58 -0
- package/bin/gjallarhorn-purge.sh +54 -0
- package/bin/gjallarhorn-tunnel.sh +72 -0
- package/bin/gleipnir-lock-lib.sh +284 -0
- package/bin/groa-update.sh +122 -0
- package/bin/hall-snapshot.sh +92 -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 +431 -0
- package/bin/hermes-ensure.sh +88 -0
- package/bin/hoard-lib.sh +25 -0
- package/bin/hodd.sh +78 -0
- package/bin/host-sense.sh +199 -0
- package/bin/huginn-research-worker.sh +108 -0
- package/bin/local-model-lock.sh +51 -0
- package/bin/mimir-bridge.py +226 -0
- package/bin/mimir-bridge.sh +87 -0
- package/bin/mimir-ingest.sh +131 -0
- package/bin/mimir.sh +113 -0
- package/bin/mjollnir-webhook.sh +59 -0
- package/bin/mjollnir.sh +85 -0
- package/bin/model-hardware.sh +82 -0
- package/bin/model-resolve.sh +147 -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-memory-housekeeping.sh +114 -0
- package/bin/nornir-job-observer.sh +166 -0
- package/bin/nornir-job-skillopt-sleep.sh +76 -0
- package/bin/omarchy-hook-install.sh +60 -0
- package/bin/omarchy-install.sh +148 -0
- package/bin/omarchy-plugins.sh +174 -0
- package/bin/omarchy-sense.sh +149 -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-seat.sh +63 -0
- package/bin/prereq-ensure.sh +166 -0
- package/bin/private-guard.sh +38 -0
- package/bin/project-git.sh +55 -0
- package/bin/public-guard.sh +70 -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 +91 -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 +90 -0
- package/bin/smidja-observe.sh +86 -0
- package/bin/syn-arm-pretool-check.sh +57 -0
- package/bin/syn-asset-pretool-check.sh +76 -0
- package/bin/syn-cd-pretool-check.sh +28 -0
- package/bin/syn-guard-pretool-check.sh +83 -0
- package/bin/syn-turnend-guard.sh +36 -0
- package/bin/syn-watch-arm.sh +99 -0
- package/bin/tailscale-sync.sh +190 -0
- package/bin/telegram-bot.sh +69 -0
- package/bin/toolchain.sh +74 -0
- package/bin/utgard.sh +111 -0
- package/bin/valhalla.sh +115 -0
- package/bin/valknut-load.sh +260 -0
- package/bin/vor-crew-state.sh +124 -0
- package/bin/wedge-notify.sh +47 -0
- package/bin/workspace-provision.sh +80 -0
- package/bin/workspace-rag.sh +150 -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 +641 -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-platform.sh +348 -0
- package/bin/ymir-say.sh +97 -0
- package/bin/ymir-setup-auth.sh +108 -0
- package/bin/ymir-validate.sh +173 -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 +1056 -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 +44 -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 +210 -0
- package/scripts/start.sh +167 -0
- package/scripts/stop.sh +113 -0
- package/install.sh +0 -35
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
# SkillOpt in Ymir — training agent skills through trajectory-driven optimization
|
|
2
|
+
|
|
3
|
+
> **Purpose:** integrate SkillOpt (https://github.com/zerwiz/SkillOpt)
|
|
4
|
+
> into Ymir so the system's agent skills, Smíðja prompts, and Eindri
|
|
5
|
+
> dispatch templates improve over time through validation-gated editing
|
|
6
|
+
> rather than manual iteration.
|
|
7
|
+
>
|
|
8
|
+
> SkillOpt treats a skill document as the trainable state of a frozen
|
|
9
|
+
> agent: a separate optimizer model turns scored rollouts into bounded
|
|
10
|
+
> add/delete/replace edits; a candidate edit is accepted only when it
|
|
11
|
+
> strictly improves a held-out validation score. The deployed artifact is
|
|
12
|
+
> a compact `best_skill.md` that runs against the unchanged target model.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## What SkillOpt brings to Ymir
|
|
17
|
+
|
|
18
|
+
| Capability | Ymir today | With SkillOpt |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Skill refinement | Manual edit of `.agents/skills/*/SKILL.md` | Trajectory-driven edits validated against a held-out gate |
|
|
21
|
+
| Prompt tuning | `add-or-edit-ai-models` (interactive, manual) | Automated rollout → reflect → select → update loop |
|
|
22
|
+
| Recurring-task optimization | Dispatched identically each time | Replayed, scored, and improved each epoch |
|
|
23
|
+
| Cross-model transfer | Not tracked | `best_skill.md` transfers across model scales & harnesses |
|
|
24
|
+
| Nightly self-evolution | None | SkillOpt-Sleep reviews sessions, consolidates validated skills |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Integration points
|
|
29
|
+
|
|
30
|
+
### 1. Skill document optimization — the primary path
|
|
31
|
+
|
|
32
|
+
Every Ymir skill (`.agents/skills/<name>/SKILL.md`) is a natural-language
|
|
33
|
+
skill document — exactly what SkillOpt optimizes. The loop:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install skillopt
|
|
37
|
+
|
|
38
|
+
# 1. Register a skill document for training
|
|
39
|
+
skillopt register .agents/skills/galdr-ymirsystem/SKILL.md --name galdr --model opencode-go/deepseek-v4-flash
|
|
40
|
+
|
|
41
|
+
# 2. Run training epochs against a benchmark or real-task trajectory
|
|
42
|
+
skillopt train --skill galdr --epochs 5 --val-size 5
|
|
43
|
+
|
|
44
|
+
# 3. Deploy the optimized artifact
|
|
45
|
+
skillopt deploy --skill galdr --out .agents/skills/galdr-ymirsystem/best_skill.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The optimizer edits the skill document (add/delete/replace passages), scores
|
|
49
|
+
each edit by running the target model against a task set, and keeps only
|
|
50
|
+
edits that strictly improve validation scores. No model weights change —
|
|
51
|
+
the deployment artifact is pure text.
|
|
52
|
+
|
|
53
|
+
**Which skills to optimize first** (ordered by expected ROI):
|
|
54
|
+
|
|
55
|
+
1. **Smidja factory skills** — `smidja-instructions`, `smidja-start`,
|
|
56
|
+
`create-new-agent`, `create-new-teams` (high task volume, well-defined
|
|
57
|
+
success criteria).
|
|
58
|
+
2. **Eindri dispatch templates** — the prompts given to dispatched workers.
|
|
59
|
+
3. **Galdr skills** — `galdr`, `tyr-check` (compliance tasks with pass/fail
|
|
60
|
+
gates = natural validation signal).
|
|
61
|
+
|
|
62
|
+
### 2. Smíðja prompt optimization — direct mapping
|
|
63
|
+
|
|
64
|
+
Smíðja's `system.md` and `user.md` files (per agent role in the roster)
|
|
65
|
+
are the same text-space artifacts SkillOpt is designed to optimize. The
|
|
66
|
+
`add-or-edit-ai-models` skill today does interactive, manual tuning.
|
|
67
|
+
SkillOpt replaces that with an automated loop:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Train Smíðja's builder prompt against real sdlc/scout trajectories
|
|
71
|
+
skillopt train \
|
|
72
|
+
--prompt smidja/smidja_data/prompt_engineering/builder/system.md \
|
|
73
|
+
--trajectory-dir smidja/smidja_data/sessions/ \
|
|
74
|
+
--task-type sdlc \
|
|
75
|
+
--val-gate "phase_status == 'passed' and accepted == true" \
|
|
76
|
+
--epochs 10
|
|
77
|
+
|
|
78
|
+
# Deploy the optimized prompt back
|
|
79
|
+
skillopt deploy --prompt smidja/smidja_data/prompt_engineering/builder/system.md \
|
|
80
|
+
--out smidja/smidja_data/prompt_engineering/best_system.md
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Trajectory source:** Smíðja's SQLite trace (`smidja/smidja_data/smidja.db`)
|
|
84
|
+
provides `sessions`, `phases`, and `events` tables — each completed run is a
|
|
85
|
+
scored trajectory the optimizer can replay.
|
|
86
|
+
|
|
87
|
+
### 3. Eindri dispatch instruction optimization
|
|
88
|
+
|
|
89
|
+
When Ymir dispatches an Eindri worker (via `bin/einherjar-spawn.sh`), it
|
|
90
|
+
passes task instructions and context. These templates can be optimized:
|
|
91
|
+
|
|
92
|
+
- Harvest past dispatch trajectories from the observer log and Smidja trace.
|
|
93
|
+
- Train an optimizer on the instruction template.
|
|
94
|
+
- Validate: did the dispatched worker complete the task? (acceptance signal
|
|
95
|
+
from Smíðja gates).
|
|
96
|
+
- Deploy improved instruction templates to the dispatch config.
|
|
97
|
+
|
|
98
|
+
### 4. SkillOpt-Sleep — nightly self-evolution (secondary path)
|
|
99
|
+
|
|
100
|
+
SkillOpt v0.2.0 ships **SkillOpt-Sleep** (`skillopt-sleep` CLI): a nightly
|
|
101
|
+
offline engine that harvests sessions, mines recurring patterns, replays
|
|
102
|
+
them, and consolidates validated skills behind a held-out gate.
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pip install skillopt-sleep
|
|
106
|
+
|
|
107
|
+
# Run overnight — reads session history, produces best_skill.md updates
|
|
108
|
+
skillopt-sleep --session-dir ~/.yggdrasil/sessions/ --output best_skills/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Integration with Ymir:** schedule via Nornir (cron) at 00:30 (after the
|
|
112
|
+
daily briefing has been written and sessions logged):
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
# config/cron.yaml (add alongside existing jobs)
|
|
116
|
+
- time: "00:30"
|
|
117
|
+
job: bin/nornir-job-skillopt-sleep.sh
|
|
118
|
+
description: "SkillOpt overnight self-evolution — harvest sessions, mine skills"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The script:
|
|
122
|
+
1. Reads the day's Smíðja trace from `smidja/smidja_data/smidja.db`.
|
|
123
|
+
2. Runs `skillopt-sleep` against registered skills/prompts.
|
|
124
|
+
3. Writes accepted `best_skill.md` artifacts to a staging dir.
|
|
125
|
+
4. Diffs against current skill documents; reports changes to Runes (audit).
|
|
126
|
+
5. **Does not auto-apply** — Allfather reviews before merge (human-in-the-loop law).
|
|
127
|
+
|
|
128
|
+
### 5. Harness integration — adapter needed for OpenCode
|
|
129
|
+
|
|
130
|
+
SkillOpt v0.2.0 ships integration shells for **Claude Code**, **Codex**,
|
|
131
|
+
**Copilot**, and **Devin**. Ymir's primary harness is **OpenCode** — this
|
|
132
|
+
is the gap to fill.
|
|
133
|
+
|
|
134
|
+
The integration is a small plugin that:
|
|
135
|
+
1. At session start, loads the trained `best_skill.md` into the session
|
|
136
|
+
context (paralleling how `.opencode/plugins/saga-sessionstart.js`
|
|
137
|
+
injects the Sága digest).
|
|
138
|
+
2. At turn end, sends the turn trajectory to SkillOpt-Sleep's harvest
|
|
139
|
+
buffer (if enabled).
|
|
140
|
+
|
|
141
|
+
```js
|
|
142
|
+
// .opencode/plugins/skillopt-loader.js (sketch)
|
|
143
|
+
export const SkilloptLoader = async ({ client, directory }) => {
|
|
144
|
+
return {
|
|
145
|
+
session: async ({ session }) => {
|
|
146
|
+
const bestSkill = await readFile(`${directory}/.agents/skills/best_skill.md`);
|
|
147
|
+
if (bestSkill) {
|
|
148
|
+
client.session.promptAsync({
|
|
149
|
+
path: { id: session.id },
|
|
150
|
+
body: { parts: [{ type: "text", text: bestSkill }] },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
See `.agents/skills/galdr-ymirsystem/assets/harness-integration/opencode.md` for
|
|
159
|
+
the plugin contract and hook surface.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Data flow
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
167
|
+
│ Ymir Session │
|
|
168
|
+
│ Allfather dispatches task → Brokk → Eindri worker │
|
|
169
|
+
│ Smíðja traces every phase into SQLite │
|
|
170
|
+
└──────────────────┬───────────────────────────────────────────┘
|
|
171
|
+
│ trajectory (scored rollout)
|
|
172
|
+
▼
|
|
173
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
174
|
+
│ Gunnlöð Training Loop │
|
|
175
|
+
│ │
|
|
176
|
+
│ Rollout → Score → Reflect (optimizer edits skill doc) │
|
|
177
|
+
│ → Aggregate → Select (accept if val improves) → Update │
|
|
178
|
+
│ → Evaluate (held-out gate) │
|
|
179
|
+
│ │
|
|
180
|
+
│ Output: best_skill.md (300–2000 tokens) │
|
|
181
|
+
└──────────────────┬───────────────────────────────────────────┘
|
|
182
|
+
│ best_skill.md
|
|
183
|
+
▼
|
|
184
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
185
|
+
│ Deployment │
|
|
186
|
+
│ │
|
|
187
|
+
│ ┌─ Smíðja prompt (system.md / user.md) → auto-injected │
|
|
188
|
+
│ ├─ Skill .agents/skills/*/best_skill.md → loaded by hook │
|
|
189
|
+
│ ├─ Eindri dispatch template → improved instructions │
|
|
190
|
+
│ └─ OpenCode plugin loads best_skill.md at session start │
|
|
191
|
+
└──────────────────────────────────────────────────────────────┘
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Directory layout
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
ymir/
|
|
200
|
+
├── .agents/skills/
|
|
201
|
+
│ └── <name>/SKILL.md ← source skill documents (input)
|
|
202
|
+
│ └── <name>/best_skill.md ← trained artifacts (staged, not applied)
|
|
203
|
+
├── .agents/skills/gunnlod/ ← Gunnlöð skill (if adopted as internal skill)
|
|
204
|
+
├── smidja/smidja_data/
|
|
205
|
+
│ ├── smidja.db ← trajectory database (training data, read-only)
|
|
206
|
+
│ └── prompt_engineering/ ← system.md/user.md (trainable prompts)
|
|
207
|
+
│ └── <role>/ ← per-role prompt files
|
|
208
|
+
│ └── best_system.md ← trained prompt (staged)
|
|
209
|
+
├── .opencode/plugins/
|
|
210
|
+
│ └── skillopt-loader.js ← OpenCode Gunnlöð integration (planned)
|
|
211
|
+
├── bin/
|
|
212
|
+
│ ├── skillopt-setup.sh ← one-time SkillOpt installation
|
|
213
|
+
│ └── nornir-job-skillopt-sleep.sh ← nightly cron wrapper (00:30)
|
|
214
|
+
├── .venv/ ← SkillOpt installation (pip install skillopt)
|
|
215
|
+
└── docs/
|
|
216
|
+
└── skillopt-integration.md ← this document
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Installation
|
|
222
|
+
|
|
223
|
+
Prerequisites: Python 3.13+, uv (or pip with venv).
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# 1. Create venv
|
|
227
|
+
uv venv .venv
|
|
228
|
+
|
|
229
|
+
# 2. Install
|
|
230
|
+
uv pip install --python .venv/bin/python skillopt skillopt-sleep
|
|
231
|
+
|
|
232
|
+
# 3. Verify
|
|
233
|
+
.venv/bin/skillopt-sleep --help
|
|
234
|
+
.venv/bin/skillopt-train --help
|
|
235
|
+
.venv/bin/skillopt-eval --help
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
One-time setup (also available as `bin/skillopt-setup.sh --dry-run` to preview):
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
bin/skillopt-setup.sh
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Register Ymir's highest-ROI skills for the first training cycle:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
.venv/bin/skillopt register .agents/skills/smidja-instructions/SKILL.md --name smidja-instructions
|
|
248
|
+
.venv/bin/skillopt register .agents/skills/smidja-start/SKILL.md --name smidja-start
|
|
249
|
+
.venv/bin/skillopt register .agents/skills/galdr-ymirsystem/SKILL.md --name galdr
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
First training run (requires API keys in `config/agents.yaml` or `.env.local`):
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
.venv/bin/skillopt-train \
|
|
256
|
+
--config configs/galdr.yaml \
|
|
257
|
+
--backend openai_chat \
|
|
258
|
+
--target_model opencode-go/deepseek-v4-flash \
|
|
259
|
+
--optimizer_model opencode-go/deepseek-v4-flash \
|
|
260
|
+
--num_epochs 5 \
|
|
261
|
+
--out_root .agents/skills/galdr-ymirsystem/
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Nightly cron: `00:30 bin/nornir-job-skillopt-sleep.sh`.
|
|
265
|
+
|
|
266
|
+
Deployed `best_skill.md` artifacts live in staging — the Allfather reviews before adopt. Never auto-apply.
|
|
267
|
+
|
|
268
|
+
## Naming — Gunnlöð
|
|
269
|
+
|
|
270
|
+
Gunnlöð guards the mead of poetry in Norse myth — knowledge
|
|
271
|
+
distilled through cycles and gated before access. The mead was
|
|
272
|
+
created from the wisest being's blood, fermented over three nights
|
|
273
|
+
(training epochs), and held behind her gate (validation). The result
|
|
274
|
+
was the most potent form of wisdom, potent despite small quantity
|
|
275
|
+
(300–2,000 tokens of best_skill.md).
|
|
276
|
+
|
|
277
|
+
That is SkillOpt's function in Ymir: raw session trajectories are
|
|
278
|
+
the raw material, training epochs are the fermentation, the held-out
|
|
279
|
+
validation gate is Gunnlöð's gate, and the `best_skill.md` artifact
|
|
280
|
+
is the mead — potent, compact, distilled wisdom.
|
|
281
|
+
|
|
282
|
+
Gunnlöð sits beside Gungnir in the platform map:
|
|
283
|
+
|
|
284
|
+
| Subsystem | Norse | Role |
|
|
285
|
+
|---|---|---|
|
|
286
|
+
| Skill synthesis | **Gungnir** | creates new skills from scratch |
|
|
287
|
+
| Skill optimization | **Gunnlöð** | refines existing skills from trajectories |
|
|
288
|
+
|
|
289
|
+
Gunnlöð is also listed in `.agents/skills/galdr-ymirsystem/assets/registry.md`
|
|
290
|
+
(under external tools — it is adopted OSS, installed via pip) and in
|
|
291
|
+
`README.md` (System Map, Skills, gratitude). MIT attribution lives in
|
|
292
|
+
`NOTICE`.
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Relationship to existing capabilities
|
|
297
|
+
|
|
298
|
+
| Existing | How Gunnlöð (SkillOpt) relates |
|
|
299
|
+
|---|---|
|
|
300
|
+
| `add-or-edit-ai-models` (smidja-factory skill) | Gunnlöð automates the *prompt tuning* dial of that skill — same target, but trajectory-driven instead of interview-driven. Both coexist: use `add-or-edit-ai-models` for one-off model/prompt changes, Gunnlöð for continuous optimization from real trajectories. |
|
|
301
|
+
| Gungnir (skill synthesis) | Gungnir *creates* new skills from scratch. Gunnlöð *improves* existing ones. Different phases of the same lifecycle. |
|
|
302
|
+
| Smíðja trace (SQLite) | Gunnlöð consumes Smíðja's trace as training trajectories. Read-only access — never writes to the trace DB. |
|
|
303
|
+
| Sýn (watch/supervision) | Gunnlöð-Sleep runs under Nornir (00:30), after Sýn has guarded the turn end for the day. No overlap. |
|
|
304
|
+
| Mímir / Mimirsbrunn | Memory well stores episodes and embeddings. Gunnlöð stores trained `best_skill.md` artifacts. Complementary — neither replaces the other. |
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Open questions for the Allfather
|
|
309
|
+
|
|
310
|
+
1. **Which skills get the first training cycle?** Smidja factory skills
|
|
311
|
+
have the highest task volume and clearest validation gates. Start there.
|
|
312
|
+
2. **Should Gunnlöð-Sleep be opt-in or default?** It writes only to
|
|
313
|
+
staging dirs (never auto-applies), so the cost is low. But it does read
|
|
314
|
+
all session data — privacy posture needs to be declared.
|
|
315
|
+
3. **OpenCode integration priority:** SkillOpt ships Claude Code / Codex
|
|
316
|
+
adapters but not OpenCode. Is the `.opencode/plugins/skillopt-loader.js`
|
|
317
|
+
adapter a priority, or hold until more harnesses are in use?
|
|
318
|
+
4. **Model for the optimizer:** SkillOpt needs a separate optimizer model
|
|
319
|
+
(different from the target model). Local or cloud? This is a config
|
|
320
|
+
decision in `config/agents.yaml` (e.g., a strong reasoning model for
|
|
321
|
+
editing, while workers run cheaper models).
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Tailscale-based Sync System for Ymir
|
|
2
|
+
|
|
3
|
+
## Goals
|
|
4
|
+
|
|
5
|
+
- Keep the operator's own machines in sync with minimal friction.
|
|
6
|
+
- Allow user-installable sync behavior so operators can choose whether to trust Tailscale.
|
|
7
|
+
- Preserve isolation between machines by default; only share state when explicitly authorized.
|
|
8
|
+
- Ensure the system is durable enough to survive restarts, network changes, and machine churn.
|
|
9
|
+
|
|
10
|
+
## Architecture
|
|
11
|
+
|
|
12
|
+
The system runs on a single operator machine and uses Tailscale as the transport layer. It does not require a central server or relay unless the operator chooses to expose one.
|
|
13
|
+
|
|
14
|
+
The architecture has three layers:
|
|
15
|
+
|
|
16
|
+
1. **Operator Machine Layer** — Each machine runs a local sync agent (`pi-agent`) that communicates with other machines via Tailscale.
|
|
17
|
+
2. **State Layer** — Data is stored in local Pi databases and agent state files. Changes are written to a durable local store before syncing.
|
|
18
|
+
3. **Sync Layer** — Changes are broadcast to peers using Tailscale's encrypted mesh. Peers pull updates from the source machine if needed.
|
|
19
|
+
|
|
20
|
+
The operator controls which machines are trusted peers and whether state should be shared. By default, no machine shares state with another unless explicitly added.
|
|
21
|
+
|
|
22
|
+
## Components
|
|
23
|
+
|
|
24
|
+
- `pi-agent` — The local agent that runs on each machine. It manages local state, detects changes, and syncs with trusted peers.
|
|
25
|
+
- `state/local.db` — The local Pi database that stores agent state, prompts, and runtime metadata.
|
|
26
|
+
- `state/agent.json` — The agent configuration file that defines trusted peers, sync intervals, and behavior policies.
|
|
27
|
+
- `state/sync.log` — A durable log of sync events for auditing and recovery.
|
|
28
|
+
|
|
29
|
+
The agent uses Tailscale's native Go client under the hood, wrapped in a Pi-compatible interface so it can work with any Pi extension.
|
|
30
|
+
|
|
31
|
+
## Data Synced
|
|
32
|
+
|
|
33
|
+
Only agent state and Pi database changes are synced. No code files, prompts, or prompts are shared unless explicitly requested.
|
|
34
|
+
|
|
35
|
+
- `state/local.db`
|
|
36
|
+
- `state/agent.json`
|
|
37
|
+
- `state/sync.log`
|
|
38
|
+
|
|
39
|
+
Changes are written to the local store first, then synced to trusted peers. This ensures durability even if the sync fails.
|
|
40
|
+
|
|
41
|
+
## Security
|
|
42
|
+
|
|
43
|
+
- Tailscale encrypts all traffic between machines.
|
|
44
|
+
- The operator controls which machines are trusted peers.
|
|
45
|
+
- By default, no machine shares state with another unless explicitly added.
|
|
46
|
+
- The system does not require a central server or relay unless the operator chooses to expose one.
|
|
47
|
+
|
|
48
|
+
The operator can revoke access from any machine at any time by removing it from the trusted peers list.
|
|
49
|
+
|
|
50
|
+
## Install Steps
|
|
51
|
+
|
|
52
|
+
1. Install the `pi-agent` binary on each machine.
|
|
53
|
+
2. Run `pi-agent init` to create the local state directories.
|
|
54
|
+
3. Edit `state/agent.json` to add trusted peers.
|
|
55
|
+
4. Start the agent with `pi-agent start`.
|
|
56
|
+
5. Verify connectivity with `pi-agent status`.
|
|
57
|
+
|
|
58
|
+
The agent will sync changes automatically at regular intervals. Operators can adjust the sync interval in `state/agent.json` if needed.
|
|
59
|
+
|
|
60
|
+
## Risks
|
|
61
|
+
|
|
62
|
+
- If a machine is compromised, it can share state with other machines.
|
|
63
|
+
- If the operator does not control the trusted peers list, the system may not preserve isolation.
|
|
64
|
+
- If the operator does not understand the behavior policies, the system may not meet their needs.
|
|
65
|
+
|
|
66
|
+
The system is designed to be secure by default, but operators should review the trusted peers list and behavior policies before using it in production.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Workspaces — where things live
|
|
2
|
+
|
|
3
|
+
> **Status:** PROPOSED. This page is the map; the code is authoritative. It exists
|
|
4
|
+
> because three workspace roots grew at once (the repo's `workspace/`, the realm
|
|
5
|
+
> tree under `svartalfaheim/`, and `$YMIR_HOME/workspaces/`), and a fourth
|
|
6
|
+
> question — where a *project* lives — had no single answer. Two rules decide it:
|
|
7
|
+
> private data is never inside the checkout (Rule 04), and a domain is not a
|
|
8
|
+
> house (Rule 01/03).
|
|
9
|
+
|
|
10
|
+
## The one idea
|
|
11
|
+
|
|
12
|
+
**Two private trees, one of each kind of thing.**
|
|
13
|
+
|
|
14
|
+
- **Hodd** — what is true about *the operator*: secrets, identity, doctrine, memory.
|
|
15
|
+
It belongs to no realm, because it governs all of them.
|
|
16
|
+
- **Svartalfaheim** — the realms, one per working world (tenant). A realm holds
|
|
17
|
+
its workspaces: a **private** one for the operator's own work, and a **company**
|
|
18
|
+
one per company. Work is organised **per project**, and inside a project
|
|
19
|
+
**per topic** — that is the only two-level split anyone actually needs.
|
|
20
|
+
|
|
21
|
+
Everything below `$YMIR_HOME` is private and committed; nothing below `$YMIR_HOME`
|
|
22
|
+
is inside the checkout; the repo ships `examples/` and nothing else.
|
|
23
|
+
|
|
24
|
+
## The tree
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
$YMIR_HOME/ ← the private root (Rule 04) — ONE place
|
|
28
|
+
│
|
|
29
|
+
├── hodd/ ← the operator's own; about you, not about work
|
|
30
|
+
│ ├── secrets/ platform.env · tenants/<tenant>/.env referenced by path, never inlined
|
|
31
|
+
│ ├── identity/ workspaces.yaml · projects.yaml the registries of truth
|
|
32
|
+
│ ├── docs/ masterplan · append-only-log · plans/ · reports/
|
|
33
|
+
│ ├── data/ operator.md · learnings.md · fleet.md · kindred.md
|
|
34
|
+
│ └── memory/ daily/ · well/ (+ kaia.engram*)
|
|
35
|
+
│
|
|
36
|
+
└── svartalfaheim/ ← the realms: one per working world
|
|
37
|
+
├── examples/ ← the ONLY thing the repo ships (a full realm, as a template)
|
|
38
|
+
│ └── acme/
|
|
39
|
+
│ ├── .env.realm.example
|
|
40
|
+
│ └── workspace/{personal,company/acme}/…
|
|
41
|
+
│
|
|
42
|
+
└── work/ ← a live realm (this operator's)
|
|
43
|
+
├── .env.realm realm secrets, referenced by path
|
|
44
|
+
├── workspace/
|
|
45
|
+
│ ├── personal/ PRIVATE workspace — the operator's own work
|
|
46
|
+
│ │ ├── inbox/ unsorted: captures, loose files, "deal with later"
|
|
47
|
+
│ │ ├── me/ personal topics: health · admin · finance
|
|
48
|
+
│ │ └── <topic>/ one dir per topic, earned not assumed
|
|
49
|
+
│ └── company/ COMPANY workspaces — one per company
|
|
50
|
+
│ └── <company>/ e.g. wayof/
|
|
51
|
+
│ ├── strategy/ business material: plans, pricing, positioning
|
|
52
|
+
│ ├── marketing/ campaigns, copy, research
|
|
53
|
+
│ └── projects/
|
|
54
|
+
│ └── <project>/ the working tree for ONE project
|
|
55
|
+
│ ├── brief.md what this is and why
|
|
56
|
+
│ ├── notes/ topic-level material
|
|
57
|
+
│ ├── reports/ agent output: verdicts, audits, reviews
|
|
58
|
+
│ └── links.md where the CODE lives (checkout path + repo)
|
|
59
|
+
├── memory/ the realm's own memory
|
|
60
|
+
│ ├── daily/YYYY-MM-DD.md
|
|
61
|
+
│ └── well/ realm-scoped engram store
|
|
62
|
+
└── runs/ agent runs, traces, envelopes (ephemeral, never backed up)
|
|
63
|
+
|
|
64
|
+
└── <other-realm>/ another tenant — same shape, fully isolated
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Where code lives.** A project's *checkout* is not its *material*. Code stays
|
|
68
|
+
where the project registry says (`repo:` in `hodd/identity/projects.yaml`) — the
|
|
69
|
+
monorepo's own `apps/*`, or a clone under `$YMIR_HOME/projects/<project>/`. The
|
|
70
|
+
workspace holds what a human reads: the brief, the notes, the reports, and a
|
|
71
|
+
`links.md`. One place for "why", one place for "how".
|
|
72
|
+
|
|
73
|
+
## Old → new
|
|
74
|
+
|
|
75
|
+
| Today | Becomes | Why |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `<repo>/workspace/{personal,memory,companies}/` | `$YMIR_HOME/svartalfaheim/<realm>/workspace/…` | private data was sitting **inside the checkout** |
|
|
78
|
+
| `<repo>/svartalfaheim/work/…` (a live realm) | `$YMIR_HOME/svartalfaheim/work/…` | the repo ships **examples only** |
|
|
79
|
+
| `<repo>/svartalfaheim/examples/examples/…` | `$YMIR_HOME`-independent: repo's `svartalfaheim/examples/<realm>/` | the scaffold was doubly nested by mistake |
|
|
80
|
+
| `$YMIR_HOME/workspaces/{work,personal}/` | `$YMIR_HOME/svartalfaheim/<realm>/workspace/{personal,company/…}` | one root, realm-aware naming |
|
|
81
|
+
| `<repo>/hodd/` (was holding a live plan) | scaffolds only: `README.md` · `.gitignore` · `*.example` | Rule 04: repo keeps the guard, not the hoard |
|
|
82
|
+
|
|
83
|
+
## What this buys
|
|
84
|
+
|
|
85
|
+
- **One question, one answer.** "Where is it?" → `$YMIR_HOME`, then *operator or
|
|
86
|
+
realm*, then *private or company*, then *project*, then *topic*. Five steps,
|
|
87
|
+
never a guess.
|
|
88
|
+
- **Realm boundaries become physical.** A realm is a directory; nothing leaks by
|
|
89
|
+
accident, and deleting a realm deletes exactly that tenant's world.
|
|
90
|
+
- **The repo is publishable by construction.** It has no private path to leak,
|
|
91
|
+
because no private path is inside it.
|
|
92
|
+
- **Backup has a name.** The append-only set (Runes ledger, CHANGELOG, rules) and
|
|
93
|
+
the private set live in one tree, so Rule 06's move-check is a listing.
|
|
94
|
+
|
|
95
|
+
## Decisions I need from you
|
|
96
|
+
|
|
97
|
+
1. **`hodd` beside `svartalfaheim`, or `hodd/` holding everything?** Proposed:
|
|
98
|
+
siblings under `$YMIR_HOME` (as drawn), because one is *about the operator* and
|
|
99
|
+
the other is *about tenants*.
|
|
100
|
+
2. **Material-only workspaces, or checkouts inside them?** Proposed: material in
|
|
101
|
+
the workspace, code where `projects.yaml` says. The alternative is one
|
|
102
|
+
directory per project holding both — simpler to explain, messier to sync.
|
|
103
|
+
3. **`inbox/` worthy?** A place for the unsorted is what keeps `personal/`
|
|
104
|
+
from becoming one. Drop it if you never have unsorted.
|