@zerwiz/ymir 0.1.14 → 0.1.15
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/agents/brokk.md +10 -9
- package/.agents/agents/forseti-reviewer.md +2 -2
- package/.agents/agents/mimir-planner.md +2 -2
- package/.agents/assets/agents/registry.md +22 -0
- package/.agents/config/agents.yaml +53 -0
- package/.agents/config/{cron.yaml → cron.yaml.example} +5 -3
- package/.agents/config/tailscale-sync.yaml +9 -0
- package/.agents/config/wedge-alarm +3 -0
- package/.agents/migrations/0003-private-data-separation.sh +4 -4
- package/.agents/skills/galdr-ymirsystem/assets/harness-integration/README.md +6 -1
- package/.agents/skills/galdr-ymirsystem/assets/installation.md +5 -4
- package/.agents/skills/galdr-ymirsystem/assets/memory-well.md +5 -5
- package/.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md +59 -4
- package/.agents/skills/galdr-ymirsystem/assets/registry.md +74 -338
- package/.agents/skills/galdr-ymirsystem/assets/runtime-compliance.md +1 -1
- package/.agents/skills/galdr-ymirsystem/assets/smidja.md +5 -3
- package/.agents/skills/galdr-ymirsystem/scripts/compliance-check.sh +1 -1
- package/.agents/skills/ratatoskr-a2a/SKILL.md +1 -1
- package/.agents/skills/tyr-check/SKILL.md +5 -5
- package/.agents/skills/ymir-host/SKILL.md +1 -1
- package/.agents/state/.wake-queue +0 -0
- package/.agents/state/.wake-queue.seq +1 -0
- package/.agents/state/.watcher-down +1 -0
- package/.agents/state/procevent-inbox/when-hall-button.1.adapter +1 -0
- package/.agents/state/procevent-inbox/when-hall-button.1.handled +0 -0
- package/.agents/state/procevent-inbox/when-hall-button.1.result +8 -0
- package/.agents/state/procevent-inbox/when-hall-button.2.adapter +1 -0
- package/.agents/state/procevent-inbox/when-hall-button.2.handled +0 -0
- package/.agents/state/procevent-inbox/when-hall-button.2.result +5 -0
- package/.agents/state/procevent-inbox/when-odrerir.1.adapter +1 -0
- package/.agents/state/procevent-inbox/when-odrerir.1.handled +0 -0
- package/.agents/state/procevent-inbox/when-odrerir.1.result +8 -0
- package/.agents/state/procevent-inbox/when-odrerir.2.adapter +1 -0
- package/.agents/state/procevent-inbox/when-odrerir.2.handled +0 -0
- package/.agents/state/procevent-inbox/when-odrerir.2.result +5 -0
- package/.agents/state/procevent-inbox/when-odrerir.3.adapter +1 -0
- package/.agents/state/procevent-inbox/when-odrerir.3.handled +0 -0
- package/.agents/state/procevent-inbox/when-odrerir.3.result +5 -0
- package/.agents/state/procevent-inbox/when-odrerir.4.adapter +1 -0
- package/.agents/state/procevent-inbox/when-odrerir.4.handled +0 -0
- package/.agents/state/procevent-inbox/when-odrerir.4.result +8 -0
- package/.agents/state/procevent-inbox/when-odrerir.5.adapter +1 -0
- package/.agents/state/procevent-inbox/when-odrerir.5.handled +0 -0
- package/.agents/state/procevent-inbox/when-odrerir.5.result +8 -0
- package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.adapter +1 -0
- package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.handled +0 -0
- package/.agents/state/procevent-inbox/when-sessrumnir-cloth.1.result +8 -0
- package/AGENTS.md +17 -10
- package/CHANGELOG.md +123 -0
- package/bin/a2a-mcp.sh +9 -2
- package/bin/app-lib.sh +8 -1
- package/bin/docs-guard.sh +1 -1
- package/bin/erindi-brief.sh +1 -1
- package/bin/hamr-harness.sh +1 -1
- package/bin/hoard-lib.sh +10 -0
- package/bin/mimir-bridge.py +8 -1
- package/bin/mimir-bridge.sh +7 -1
- package/bin/mimir-reflect.sh +8 -1
- package/bin/nornir-cron-start.sh +21 -1
- package/bin/nornir-job-bragi-scrape.sh +116 -0
- package/bin/nornir-job-daily-briefing.sh +7 -7
- package/bin/nornir-job-forgejo-git.sh +87 -0
- package/bin/nornir-job-observer.sh +5 -4
- package/bin/rodd-operational-input.sh +1 -1
- package/bin/saga-session-start.sh +4 -3
- package/bin/sessrumnir.sh +11 -0
- package/bin/syn-arm-pretool-check.sh +1 -1
- package/bin/syn-cd-pretool-check.sh +1 -1
- package/bin/syn-watch-arm.sh +1 -1
- package/bin/vor-crew-state.sh +1 -1
- package/bin/ymir-install.sh +47 -2
- package/bin/ymir-marketing-stack.sh +323 -0
- package/docs/runbooks/models.md +1 -1
- package/docs/workspaces.md +4 -0
- package/package.json +8 -2
- package/scripts/electron.sh +2 -2
- package/.agents/bus/messages.json +0 -1
- package/.agents/config/agents.machine.example.yaml +0 -16
|
@@ -1,379 +1,115 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Registry — skills, assets, tools, commands (loaded from AGENTS.md)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Load this when the task is about skill synthesis, the tool inventory, OpenCode
|
|
5
|
-
commands, or compliance assets.
|
|
3
|
+
AGENTS.md loads this when a task needs the live inventories.
|
|
6
4
|
|
|
7
|
-
##
|
|
5
|
+
## Skills registry (`.agents/skills/`)
|
|
8
6
|
|
|
9
7
|
```
|
|
10
|
-
skills[
|
|
11
|
-
"galdr","Galdr","
|
|
12
|
-
"tyr-check","Tyr","
|
|
13
|
-
"
|
|
14
|
-
"smidja-factory","Smíðja","The smithy — agent factory: roster, phases, envelopes, visualizer",".agents/skills/smidja-factory/SKILL.md","live"
|
|
15
|
-
"no-mistakes","—","The clean-PR gate — vendored engine skill: validate, push, PR, CI",".agents/skills/no-mistakes/SKILL.md","live"
|
|
16
|
-
"hvild-afk","Hvíld","Away-mode supervision — routine wakes, batched escalations",".agents/skills/hvild-afk/SKILL.md","live"
|
|
17
|
-
"saga-bearings","Sága","Bearings (/bearings) + recap and unresolved decisions (/ahoy)",".agents/skills/saga-bearings/SKILL.md","live"
|
|
18
|
-
"muninn-stow","Muninn","Session-knowledge curation, routing, persistence",".agents/skills/muninn-stow/SKILL.md","live"
|
|
19
|
-
"jord-projects","Jörð","Project registry + delivery posture",".agents/skills/jord-projects/SKILL.md","live"
|
|
20
|
-
"urdh-hold","Urðr","Allfather-hold lifecycle: decisions held for the Allfather, reconciled",".agents/skills/urdh-hold/SKILL.md","live"
|
|
21
|
-
"frigg-consent","Frigg","Consent / ask-user authority gate",".agents/skills/frigg-consent/SKILL.md","live"
|
|
22
|
-
"vor-diagnostics","Vör","Bootstrap + diagnostic reasoning",".agents/skills/vor-diagnostics/SKILL.md","live"
|
|
23
|
-
"nornir-schedule","Nornir","Fate & schedule: process→event sources + quota-aware dispatch",".agents/skills/nornir-schedule/SKILL.md","live"
|
|
24
|
-
"nsr-compliance","—","NorthStar scaffold/audit + the .compliance/ harness",".agents/skills/nsr-compliance/SKILL.md","live"
|
|
25
|
-
"lifecycle","—","Start/stop/status/smoke-test wiring contract",".agents/skills/lifecycle/SKILL.md","live"
|
|
26
|
-
"gjallarhorn-relay","Gjallarhorn","Public relay replies (X/Discord)",".agents/skills/gjallarhorn-relay/SKILL.md","live"
|
|
27
|
-
"eindri-homes","Eindri","Isolated worker homes (provisioning)",".agents/skills/eindri-homes/SKILL.md","live"
|
|
28
|
-
"syn-recovery","Sýn","Stuck-worker recovery playbook",".agents/skills/syn-recovery/SKILL.md","live"
|
|
29
|
-
"ymir-host","Ymir","Self-update · Omarchy-native operation · the Þjazi backend",".agents/skills/ymir-host/SKILL.md","live"
|
|
30
|
-
"groa-update","Gróa","The updater shaman — self-update Brokk + every Eindri-home",".agents/skills/groa-update/SKILL.md","live"
|
|
31
|
-
"herdr-panes","Þjazi","Terminal panes — seat/control panes, tabs, workspaces, agents",".agents/skills/herdr-panes/SKILL.md","live"
|
|
32
|
-
"ratatoskr-a2a","Ratatoskr","A2A/MCP mesh — a2abridge + wayofteams; registration",".agents/skills/ratatoskr-a2a/SKILL.md","live"
|
|
33
|
-
"hamr-adapters","Hamr","Per-harness adapter reference",".agents/skills/hamr-adapters/SKILL.md","live"
|
|
34
|
-
"pr-ops","—","PR lifecycle — create, update, status, request merge",".agents/skills/pr-ops/SKILL.md","live"
|
|
35
|
-
"hnoss-design","Hnoss","Design artifacts via OpenDesign (prototypes, decks, dashboards, video)",".agents/skills/hnoss-design/SKILL.md","live"
|
|
36
|
-
"bragi-marketing","Bragi","Marketing — research/crawl (Firecrawl), agentic browser (browser-use)",".agents/skills/bragi-marketing/SKILL.md","live"
|
|
8
|
+
skills[3]{name,norse,purpose,path,status}:
|
|
9
|
+
"galdr","Galdr","agent-CLI ergonomics + master builder/maintainer",".agents/skills/galdr-ymirsystem/SKILL.md","live"
|
|
10
|
+
"tyr-check","Tyr","the judge — 10 principles + runtime gates",".agents/skills/tyr-check/SKILL.md","live"
|
|
11
|
+
"brokk-craft","Brokk","the forger — generates Galdr-compliant skills in TOON","(planned) .agents/skills/brokk-craft/SKILL.md","planned"
|
|
37
12
|
```
|
|
38
13
|
|
|
39
|
-
**
|
|
40
|
-
|
|
41
|
-
`
|
|
14
|
+
The **canonical, complete** skill index is `.agents/skills/README.md` — read it for
|
|
15
|
+
the live set. The two removed legacy skills (`galdr-compliance`, `galdr-crafter`)
|
|
16
|
+
are superseded by `tyr-check` and the planned `brokk-craft`; their files are gone.
|
|
42
17
|
|
|
43
|
-
|
|
18
|
+
Loading: auto-load from `.agents/skills/` via `opencode.json` →
|
|
19
|
+
`skills.paths: [".agents/skills"]`. Use `skill galdr`, `skill tyr-check`.
|
|
44
20
|
|
|
45
|
-
|
|
21
|
+
## Galdr assets (`.agents/skills/galdr-ymirsystem/assets/`)
|
|
46
22
|
|
|
47
23
|
```
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"Forseti","Forseti","Reviewer — QA, acceptance, compliance",".agents/agents/forseti-reviewer.md"
|
|
56
|
-
"Snotra","Snotra","Documenter — docs, changelogs, runbooks",".agents/agents/snotra-documenter.md"
|
|
57
|
-
"Hnoss","Hnoss","Designer — UI/UX, prototypes, decks, visual assets",".agents/agents/hnoss-designer.md"
|
|
58
|
-
"Galdr","Galdr","Builder — agent-CLI ergonomics, the runtime's master builder",".agents/agents/galdr.md"
|
|
59
|
-
"Týr","Týr","Judge — the 10 principles + the runtime gates",".agents/agents/tyr-check.md"
|
|
60
|
-
"Sága","Sága","Seeress — bearings + recap",".agents/agents/saga-bearings.md"
|
|
61
|
-
"Muninn","Muninn","Rememberer — memory curation",".agents/agents/muninn-stow.md"
|
|
62
|
-
"Urðr","Urðr","Fate — the hold lifecycle",".agents/agents/urdh-hold.md"
|
|
63
|
-
"Frigg","Frigg","Knowing — the consent gate",".agents/agents/frigg-consent.md"
|
|
64
|
-
"Vör","Vör","Aware — diagnostics",".agents/agents/vor-diagnostics.md"
|
|
65
|
-
"Sýn","Sýn","Seeing — stuck-worker recovery",".agents/agents/syn-recovery.md"
|
|
66
|
-
"Jörð","Jörð","Grounded — the project registry",".agents/agents/jord-projects.md"
|
|
67
|
-
"Gróa","Gróa","Renewer — self-update",".agents/agents/groa-update.md"
|
|
68
|
-
"Völundr","Völundr","Master smith — Smíðja's orchestrator seat",".agents/agents/volundr-smith.md"
|
|
24
|
+
galdr_assets[6]{path,load_when}:
|
|
25
|
+
"assets/README.md","the full asset routing index"
|
|
26
|
+
"assets/principles.md","the 10 CLI design principles (full doctrine)"
|
|
27
|
+
"assets/norse-naming.md","naming law + full component map"
|
|
28
|
+
"assets/brokk-distro-runtime.md","the runtime spec (home, digest, lock, cron)"
|
|
29
|
+
"assets/harness-integration/","per-harness adapters (opencode, pi, claude, cursor, codex)"
|
|
30
|
+
"assets/runtime-compliance.md","runtime acceptance gates + runnable checklist"
|
|
69
31
|
```
|
|
70
32
|
|
|
71
|
-
|
|
72
|
-
|
|
33
|
+
Galdr scripts: `scripts/toon-check.py` (TOON validation) and
|
|
34
|
+
`scripts/compliance-check.sh` (all gates). Run the latter before claiming done.
|
|
73
35
|
|
|
74
|
-
##
|
|
36
|
+
## Assets inventory
|
|
75
37
|
|
|
76
|
-
These profiles were superseded by the Einherjar fleet above. They remain for
|
|
77
|
-
historical reference only.
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
eindri[3]{role,norse,domain,capabilities,tools,workspaces}:
|
|
81
|
-
"developer","Sindri (smith)","code synthesis, refactoring, tests, CLI tools, packaging","code_synthesis, refactoring, test_writing, cli_tools, package_management","yggdrasil, herder, hermes_runner, vector_db, supabase","development/, .agents/tools/, .agents/skills/"
|
|
82
|
-
"marketer","Bragi (skald)","content, SEO, social copy, campaigns","content_creation, seo_optimization, social_copy, campaign_planning, market_research","vector_db, supabase, hermes_runner, herder, yggdrasil","marketing/, .agents/assets/templates/, .agents/skills/"
|
|
83
|
-
"researcher","Huginn (sage)","RAG, web search, analysis, knowledge discovery","rag_search, web_search, analysis, summarization, entity_extraction","vector_db, hermes_runner, herder, yggdrasil, supabase","development/, .agents/memory/, .agents/assets/templates/"
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
All three declare the Utgard security posture: `runs_in_utgard: true`,
|
|
87
|
-
`utgard_network: none`, `utgard_resource_caps: true`, `yggdrasil_worktree: true`,
|
|
88
|
-
`sandboxed: true`.
|
|
89
|
-
|
|
90
|
-
## Build tool categories (`.agents/skills/galdr-ymirsystem/assets/build-tool-categories.md`)
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
build_tools[4]{category,role}:
|
|
94
|
-
"Python smidja tools","deterministic Python orchestrators in `templates/smidja/`"
|
|
95
|
-
"smidja","validated OSS smidja (agents + typed JSON envelopes + SQLite trace + Vue visualizer)"
|
|
96
|
-
"Agent-distro orchestration","validated upstream distro pattern (see porting asset)"
|
|
97
|
-
"Galdr skill assets","internal reference data under `assets/`"
|
|
98
38
|
```
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"Session integration","hook, installed, skill_loaded, ambient_context, context_richness, last_session_start"
|
|
110
|
-
"Compliance gate results","toon_output_test, principle_compliance, norse_name_validity, frame_integration, mimirsbrunn_observation, eindri_compatibility, utgard_sandbox"
|
|
39
|
+
assets[9]{asset,path,purpose}:
|
|
40
|
+
"Eindri profiles",".agents/subagents/*.md","Sindri/Bragi/Huginn role profiles"
|
|
41
|
+
"Build tool categories",".agents/skills/galdr-ymirsystem/assets/build-tool-categories.md","tool categories for synthesis"
|
|
42
|
+
"TOON schemas",".agents/skills/galdr-ymirsystem/schemas/toon-schemas.md","schema types for validation"
|
|
43
|
+
"Compliance requirements",".agents/skills/galdr-ymirsystem/assets/runtime-compliance.md","runtime + Utgard gates"
|
|
44
|
+
"PI boot profile",".agents/skills/galdr-ymirsystem/assets/pi-boot/pi-profile.yml","PI harness profile"
|
|
45
|
+
"PI herdr profile",".agents/skills/galdr-ymirsystem/assets/pi-boot/herdr-profile.toml","pane layout / Þjazi"
|
|
46
|
+
"PI dispatch schema",".agents/skills/galdr-ymirsystem/assets/pi-boot/einherjar-spawn.schema.json","dispatch payload"
|
|
47
|
+
"Templates",".agents/assets/templates/*","PRD, env, system-prompt boilerplate"
|
|
48
|
+
"Tool manifest schema",".agents/assets/schemas/tool_manifest.json","tool manifest"
|
|
111
49
|
```
|
|
112
50
|
|
|
113
|
-
##
|
|
51
|
+
## Tools inventory (`.agents/tools/`)
|
|
114
52
|
|
|
115
53
|
```
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
"val-","hall / health","valhalla"
|
|
119
|
-
"skyr-","giant / file scope","skrymir"
|
|
120
|
-
"bifr-","bridge / gateway","bifrost"
|
|
121
|
-
"heimd-","gate / guard","heimdall"
|
|
122
|
-
"gjallar-","horn / signal","gjallarhorn"
|
|
123
|
-
"mimir-","memory / wisdom","mimir-recall, mimirsbrunn"
|
|
124
|
-
"yggd-","tree / worktree","yggdrasil, yggd-branch"
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Naming form:** `<aett>-<verb|noun|adjective>`, e.g. `mimir-recall`, `yggd-branch`.
|
|
128
|
-
The aett table lives in `SKILL.md:288-301` and `assets/norse-naming.md`; keep both
|
|
129
|
-
in sync when an aett gains its first real skill.
|
|
130
|
-
|
|
131
|
-
**Aett prefix rules:**
|
|
132
|
-
- `galdr-` is reserved for Galdr-family skills (incantation/chant standards)
|
|
133
|
-
- `val-` is for hall/health subsystems
|
|
134
|
-
- `skyr-` is for giant/file-scope tools
|
|
135
|
-
- `bifr-` is for bridge/gateway components
|
|
136
|
-
- `heimd-` is for gate/guard components
|
|
137
|
-
- `gjallar-` is for horn/signal components
|
|
138
|
-
- `mimir-` is for memory/wisdom components
|
|
139
|
-
- `yggd-` is for tree/worktree components
|
|
140
|
-
|
|
141
|
-
## Internal tools inventory
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
tools[9]{tool,path,purpose,status}:
|
|
145
|
-
"tasks-cli",".agents/tools/bin/tasks-cli","AXI task manager (list/view/create/close), TOON output","live"
|
|
54
|
+
tools[8]{tool,path,purpose,status}:
|
|
55
|
+
"tasks-cli",".agents/tools/bin/tasks-cli","AXI task manager (list/view/create/close), TOON","live"
|
|
146
56
|
"tasks-cli.ts",".agents/tools/tasks-cli.ts","TypeScript source","live"
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"firebase.ts",".agents/tools/firebase.ts","Backend provisioning","planned"
|
|
57
|
+
"yggdrasil.ts",".agents/tools/yggdrasil.ts","worktree CLI harness","planned"
|
|
58
|
+
"hermes_runner.ts",".agents/tools/hermes_runner.ts","realm agent CLI orchestrator","planned"
|
|
59
|
+
"herder.ts",".agents/tools/herder.ts","terminal multiplexer / pane state tracker","planned"
|
|
60
|
+
"vector_db.ts",".agents/tools/vector_db.ts","vector indexing / RAG search","planned"
|
|
61
|
+
"firebase.ts",".agents/tools/firebase.ts","backend provisioning","planned"
|
|
153
62
|
"supabase.ts",".agents/tools/supabase.ts","DB / edge function setup","planned"
|
|
154
63
|
```
|
|
155
64
|
|
|
156
65
|
Usage: `python3 .agents/tools/bin/tasks-cli <command>`. All tools emit TOON.
|
|
157
66
|
|
|
158
|
-
### Runtime components added 2026-09-13 (seat-hall · machine lock · guard families)
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
added[10]{component,path,purpose}:
|
|
162
|
-
"Sessrúmnir GUI","apps/sessrumnir/","vendored pi-desktop fork rebranded: the seat-hall; width-responsive Home/models/modals, narrative agent surfaces (Brokk/Eindri)"
|
|
163
|
-
"seat-hall launchers","bin/sessrumnir.sh, bin/sessrumnir-ensure.sh","raise/ensure the Sessrúmnir desktop app (deps+build on first run)"
|
|
164
|
-
"machine lock","bin/gleipnir-lock-lib.sh","ONE primary session lock per machine; Eindri-homes keep a per-home lock; state/.lock-path pointer"
|
|
165
|
-
"invariant seatbelt","bin/syn-guard-pretool-check.sh","PreToolUse denial for destructive shapes against the lock, markers, Runes, the guard machinery, secrets, registries"
|
|
166
|
-
"neutral realm resolver","bin/realm-lib.sh","active realm: data/realm.md → first non-example tenant → default (never a company slug)"
|
|
167
|
-
"A2A bridge ensure","bin/a2abridge-ensure.sh","install/verify the a2abridge engine + directory daemon (Ratatoskr mesh)"
|
|
168
|
-
"desktop entry","apps/sessrumnir/resources/ymir-sessrumnir.desktop.in","Omarchy launcher entry rendered by bin/desktop-place.sh"
|
|
169
|
-
"Gróa (updater shaman)","bin/groa-update.sh","fast-forward Brokk + Eindri-homes, mend forward; the groa-update skill's door (alias bin/brokk-update.sh)"
|
|
170
|
-
"Eir (doctor)","bin/eir-doctor.sh","diagnose every surface, then mend the broken (composes the *-ensure.sh surfaces)"
|
|
171
|
-
"install auth","bin/ymir-setup-auth.sh","set the operator credential at install (password or GitHub) into .env.local"
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
The reference tenant moved to `svartalfaheim/examples/wayof/`; a fresh install
|
|
175
|
-
ships no company of its own (see `installation.md` §Neutral tenant defaults).
|
|
176
|
-
|
|
177
|
-
## External tools (adopted, not rebuilt)
|
|
178
|
-
|
|
179
|
-
Ymir adopts validated OSS projects first — never rebuilds a subsystem that already
|
|
180
|
-
exists on this machine. These are the adopted tools, each wearing a Norse name:
|
|
181
|
-
|
|
182
|
-
| OSS Project | Norse Name | Purpose | Path |
|
|
183
|
-
|---|---|---|---|
|
|
184
|
-
| adopted upstream smithy (provenance: `command-factory`) | **Smíðja** | Deterministic agent pipeline + trace | `.agents/skills/smidja-factory/` |
|
|
185
|
-
| `a2aproject/a2a` | **Ratatoskr** | Agent-to-agent collaboration | `.agents/bus/protocol.ts` |
|
|
186
|
-
| Redis | **Ratatoskr queue** | Pub/sub message queue | platform service |
|
|
187
|
-
| Traefik / Caddy | **Bifrost** | Reverse proxy / routing | platform service |
|
|
188
|
-
| OAuth2-proxy | **Heimdall** | Authentication guardian | platform service |
|
|
189
|
-
| cloudflared | **Gjallarhorn** | Cloudflare tunnel | platform service |
|
|
190
|
-
| MinIO / FileBrowser | **Skrymir** | File browser | platform service |
|
|
191
|
-
| PM2 / Docker | **Valhalla** | Process supervisor | platform service |
|
|
192
|
-
| MCP servers | **Hermóðr** | Tool composition | `.agents/skills/galdr-ymirsystem/assets/pi-boot/herdr-profile.toml` |
|
|
193
|
-
| — (Ymir-owned) | **Gungnir** | Dynamic skill creation | `.agents/skills/` |
|
|
194
|
-
| zerwiz/SkillOpt | **Gunnlöð** | Skill optimization (trajectory-driven skill refinement) | `.venv/bin/skillopt-*` |
|
|
195
|
-
| OpenDesign CLI | **Od** | Design engine (HTML/PDF/PPTX/video) | `od` CLI |
|
|
196
|
-
| Þjazi backend | **Þjazi** | Terminal pane presentation | `config/herdr-presentation-spaces` |
|
|
197
|
-
| llama.cpp router | **llama-swap** | Local model serving | `http://127.0.0.1:8080` |
|
|
198
|
-
|
|
199
67
|
## OpenCode commands
|
|
200
68
|
|
|
201
|
-
Available as `/command-name` in OpenCode:
|
|
202
|
-
|
|
203
69
|
```
|
|
204
70
|
commands[8]{command,purpose}:
|
|
205
|
-
"create-plan","
|
|
206
|
-
"fixes-bump","
|
|
207
|
-
"fixes-create","
|
|
208
|
-
"implement-plan","
|
|
209
|
-
"rules","
|
|
210
|
-
"standup","
|
|
211
|
-
"ticket-create","
|
|
212
|
-
"validate-plan","
|
|
71
|
+
"/create-plan","create detailed implementation plans iteratively"
|
|
72
|
+
"/fixes-bump","bump version across project files"
|
|
73
|
+
"/fixes-create","create fix note entry"
|
|
74
|
+
"/implement-plan","implement approved plan phase-by-phase"
|
|
75
|
+
"/rules","display/manage coding rules"
|
|
76
|
+
"/standup","generate daily standup entries"
|
|
77
|
+
"/ticket-create","interactive ticket creation"
|
|
78
|
+
"/validate-plan","validate plan before implementation"
|
|
213
79
|
```
|
|
214
80
|
|
|
215
|
-
##
|
|
216
|
-
|
|
217
|
-
- **Primary — session hook**: installs/repairs after user intent is clear, provides a
|
|
218
|
-
compact dashboard as context at session start, loads every session, works only in
|
|
219
|
-
agents that support hooks.
|
|
220
|
-
- **Secondary — installable skill**: loads on demand when the agent recognizes a
|
|
221
|
-
matching task, no per-session token cost, works in any agent that supports the
|
|
222
|
-
skill format.
|
|
223
|
-
- Recommended order: hook first (ambient context + live state), skill second (lower
|
|
224
|
-
overhead, broader support). They are complementary; install either or both.
|
|
225
|
-
|
|
226
|
-
## Utgard sandbox compliance checklist
|
|
227
|
-
|
|
228
|
-
Every Galdr-generated CLI tool must declare:
|
|
81
|
+
## Brokk commands — the Eindri wake bridge (control)
|
|
229
82
|
|
|
230
83
|
```
|
|
231
|
-
[
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
84
|
+
commands[4]{command,purpose}:
|
|
85
|
+
"bin/eindri-watch.sh","the bridge's door: arm/retire/list/reconcile a when-source per smith (Norns' loom)"
|
|
86
|
+
"bin/eindri-seen.sh","bridge condition: has the smith reported? (report file, or herdr left working)"
|
|
87
|
+
"bin/eindri-acclaim.sh","bridge action: file the report, mark done, append the wake queue + desktop note"
|
|
88
|
+
"bin/hall-snapshot.sh","the planning feed: real system state -> public-safe livehall.json for the Óðrerir Hall"
|
|
236
89
|
```
|
|
237
90
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
## Memory (the Well — Mimirsbrunn / engram)
|
|
241
|
-
|
|
242
|
-
| Component | Path | Purpose |
|
|
243
|
-
|---|---|---|
|
|
244
|
-
| Store | `.agents/memory/kaia.engram` | single shared engram memory |
|
|
245
|
-
| Append log | `.agents/memory/well/episodes.jsonl` | raw episodes; re-seed source |
|
|
246
|
-
| HTTP bridge | `bin/mimir-bridge.py` / `.sh` | `:4602` recall/observe/recent/episode/timeline |
|
|
247
|
-
| CLI | `bin/mimir.sh` | health / recall / observe / timeline |
|
|
248
|
-
| Ingest | `bin/mimir-ingest.sh` | drink a directory into the well |
|
|
249
|
-
| MCP | `engram-mcp` | stdio tools: remember/recall/why/forget/stats |
|
|
250
|
-
| Gate API | `apps/hlidskjalf/server/index.ts` | `/api/well`, `/api/well/episode`, `/api/mimir/health` |
|
|
251
|
-
| UI | `gates/Well.tsx`, `components/RecallPanel.tsx` | live metrics + click-to-read |
|
|
252
|
-
|
|
253
|
-
Full spec: [`memory-well.md`](memory-well.md). Law: **no mock data in the well**.
|
|
91
|
+
## The marketing stack doors (provisionable — one stack, any computer)
|
|
254
92
|
|
|
255
|
-
|
|
93
|
+
`bin/ymir-marketing-stack.sh up|status|down|doors` stands Mautic + Postiz +
|
|
94
|
+
Activepieces (+ optionally Forgejo) on ANY computer — same OSS engines the
|
|
95
|
+
server runs, env-driven, ports virtualized, secrets in the home, never inline.
|
|
96
|
+
The Allfather's server stack (zerwizserver) and the public doors agents reach:
|
|
256
97
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
98
|
+
```
|
|
99
|
+
marketing_doors[6]{service,door,reach_note}:
|
|
100
|
+
"Mautic (email automation)","mautic.zerwiz.org -> server 127.0.0.1:8001","list building + campaigns; agent-carved via the local provisioned stack when the public door is closed"
|
|
101
|
+
"Postiz (social publishing)","postiz.zerwiz.org -> server 127.0.0.1:4007","schedule X/LinkedIn/insta; queue per site"
|
|
102
|
+
"Activepieces (workflow)","activepieces.zerwiz.org -> server 127.0.0.1:8080","event->post flows; meetup booked -> thread scheduled"
|
|
103
|
+
"Forgejo (git · issues · PRs)","forgejo.zerwiz.org -> server 127.0.0.1:3030","the local git forge: issues->PR loop lives here"
|
|
104
|
+
"SearXNG (search)","searxng on the server","private search for research (Bragi)"
|
|
105
|
+
"Grafana","grafana on the server :3003","fleet + stack observability"
|
|
106
|
+
```
|
|
266
107
|
|
|
267
|
-
|
|
108
|
+
An agent (Bragi for marketing, Sindri for git) provisions the stack locally for
|
|
109
|
+
any user with `bin/ymir-marketing-stack.sh`; the server stack is the Allfather's
|
|
110
|
+
live one. Public-door exposure on the server is tunnel-driven (cloudflared) —
|
|
111
|
+
mend the door layer on the server, not in the tree.
|
|
268
112
|
|
|
269
113
|
## Maintaining this
|
|
270
114
|
|
|
271
|
-
- **Owner:** Brokk. **
|
|
272
|
-
- **Mirror:** `.agents/skills/tyr-check/assets/registry.md`.
|
|
273
|
-
- Update a registry row whenever a skill, tool, command, or profile changes.
|
|
274
|
-
|
|
275
|
-
## Organisation law — `RULES/` (domains · houses · Eindri)
|
|
276
|
-
|
|
277
|
-
The house law lives in `RULES/`; Galdr must know it (Rule 01/02/03):
|
|
278
|
-
|
|
279
|
-
- **A house is a company** — and only that. **WayOf** is the house.
|
|
280
|
-
- **A domain is a field of knowledge — a *Grein* (pl. *Greinar*).** The eight:
|
|
281
|
-
|
|
282
|
-
| Domain (Grein) | id | Covers |
|
|
283
|
-
|---|---|---|
|
|
284
|
-
| Ymir Labs | `ymirlabs` | the system itself — agents knowledgeable about Ymir |
|
|
285
|
-
| Brokk Forge | `brokkforge` | engineering & build tooling |
|
|
286
|
-
| Runestone Labs | `runestone` | records & compliance |
|
|
287
|
-
| Muninn Labs | `muninn` | memory & knowledge |
|
|
288
|
-
| Dvalin | `dvalin` | crafted tools |
|
|
289
|
-
| Utgard Studios | `utgard` | creative |
|
|
290
|
-
| Askr | `askr` | human-centered products |
|
|
291
|
-
| Mannheim | `mannheim` | holding — allocated when a claim lands |
|
|
292
|
-
|
|
293
|
-
- **Eindri are the specialists** (marketer, builder, researcher, planner,
|
|
294
|
-
reviewer, documenter, scout, …); each names its **domain** and its **craft**.
|
|
295
|
-
- **Agents live only in `.agents/agents/*.md`.** `.opencode/agents` and
|
|
296
|
-
`.pi/agents` are **symlinks** to the canonical profiles — never edit them;
|
|
297
|
-
edit `.agents/agents/<profile>.md` and run `bin/valknut-load.sh --all`.
|
|
298
|
-
- **No mock agents.** Ids, names, domains, models, status are real and sourced;
|
|
299
|
-
the demo roster is the one labelled mock and appears only in demo mode.
|
|
300
|
-
|
|
301
|
-
**In the code:** the eight are `DOMAINS` (type `DomainId`/`DomainDef`) in
|
|
302
|
-
`src/data/realms.ts`; an agent carries `domain` (not `house`); the Forge picker
|
|
303
|
-
is labelled **Domain**. `svartalfaheim/<company>/companies/` holds the house
|
|
304
|
-
card(s); the eight domain cards live under `.../domains/`. The workspace-folder
|
|
305
|
-
union is `TopicId`.
|
|
306
|
-
|
|
307
|
-
## The personal agent/model combination — `config/agents.yaml`
|
|
308
|
-
|
|
309
|
-
The Allfather chooses **which smith runs on which model** in one YAML; no other
|
|
310
|
-
file hardcodes a model for him.
|
|
311
|
-
|
|
312
|
-
- **Source of truth:** `config/agents.yaml` — `default_model` (the fallback),
|
|
313
|
-
`providers` (local, keyless servers), and `agents` (name → `provider/model`).
|
|
314
|
-
- **Applier:** `bin/agents-config.sh show` prints the live combination (TOON);
|
|
315
|
-
`apply` writes `model:` into the canonical `.agents/agents/*.md` (matched by
|
|
316
|
-
their `name:`) **and** into project `opencode.json` (`provider` + `agent.*`).
|
|
317
|
-
It is idempotent and safe to re-run.
|
|
318
|
-
- **Local servers.** A local llama.cpp **router needs the exact served id** —
|
|
319
|
-
including the quant suffix, e.g. `frontend-design-expert-8b@q4_k_m`; the bare
|
|
320
|
-
alias returns `model not found`. Declared under `providers:` so `apply` places
|
|
321
|
-
it in project `opencode.json`.
|
|
322
|
-
- **Current choice:** Hnoss the designer runs
|
|
323
|
-
`llama.cpp/frontend-design-expert-8b@q4_k_m` on `127.0.0.1:8080` (no cloud
|
|
324
|
-
key); the rest inherit `opencode-go/deepseek-v4.1-flash`.
|
|
325
|
-
- **Subagent caveat:** a `mode: subagent` profile (Hnoss) cannot be run with
|
|
326
|
-
`opencode run --agent`; the lowercased model is taken from its profile when a
|
|
327
|
-
primary dispatches it. A thin **primary** alias is the way to prove it end to
|
|
328
|
-
end.
|
|
329
|
-
- **Template & privacy:** `config/agents.yaml.example` is tracked; installation
|
|
330
|
-
(step `host`) or `bin/agents-config.sh init` copies it to the private,
|
|
331
|
-
gitignored `config/agents.yaml` — push that to a private repo. Override its
|
|
332
|
-
path with `YMIR_AGENTS_YAML`.
|
|
333
|
-
- **Harness rule:** the harness is chosen by where the model lives — a local
|
|
334
|
-
provider runs through **`pi`**, a hosted model through **`opencode`** — unless
|
|
335
|
-
an agent names `harness:`. The same server is renamed per harness
|
|
336
|
-
(`llama.cpp` → `llama-cpp` for pi).
|
|
337
|
-
- **Updating this registry:** when a new provider or model is added to
|
|
338
|
-
`config/agents.yaml`, add its id here and (if it is a new server) to the
|
|
339
|
-
external-tools inventory.
|
|
340
|
-
|
|
341
|
-
## Hodd — the private hoard (Rule 04)
|
|
342
|
-
|
|
343
|
-
`hodd/` is the ONE private place: `secrets/ · docs/ · tenants/ · identity/`.
|
|
344
|
-
`hodd/.gitignore` tracks only itself, the README, and `*.example`; every other
|
|
345
|
-
file beneath is untracked on every clone. Secrets are **referenced by path**
|
|
346
|
-
(`YMIR_HOARD`; `bin/hodd.sh path|init|ls|load|emit|tenant`), never inlined. The
|
|
347
|
-
outer ward is `bin/secret-guard.sh` (pre-commit + CI). Law: `RULES/04-hoard.md`.
|
|
348
|
-
|
|
349
|
-
## Consolidated skills — galdr-style routers (2026-09-12)
|
|
350
|
-
|
|
351
|
-
Split pairs were merged into one `SKILL.md` router + `assets/` (a change edits an
|
|
352
|
-
asset, not a new skill). Same-figure split pairs only — merging distinct figures
|
|
353
|
-
is held pending the naming law.
|
|
354
|
-
|
|
355
|
-
consolidated[5]{skill,absorbed,assets}:
|
|
356
|
-
"ymir","ymir-update + ymir-omarchy + ymir-thjazi","update · omarchy · thjazi"
|
|
357
|
-
"urdh","urdh-decisions + urdh-hold","hold · decisions"
|
|
358
|
-
"saga","saga-bearings + saga-recap","bearings · recap · board-template.html"
|
|
359
|
-
"nornir","nornir-events + nornir-quota","events · quota"
|
|
360
|
-
"nsr","NSR + NSRcompliance","nsr/ · nsrcompliance/"
|
|
361
|
-
|
|
362
|
-
**Ruling (2026-09-12):** `frigg-consent` + `hvild-afk` and `syn-recovery` +
|
|
363
|
-
`vor-diagnostics` stay **separate** — each names a distinct figure, and the
|
|
364
|
-
naming law keeps one figure per skill. Only same-figure split pairs consolidate.
|
|
365
|
-
|
|
366
|
-
## Operator runbooks — `docs/runbooks/` (indexed by the `ymir` skill)
|
|
367
|
-
|
|
368
|
-
Task-oriented, operator-facing guides. The `ymir` skill carries the index at
|
|
369
|
-
`assets/runbooks.md`; when a capability gains an operator procedure, add a
|
|
370
|
-
runbook here and a row there.
|
|
371
|
-
|
|
372
|
-
```
|
|
373
|
-
runbooks[5]{file,subject}:
|
|
374
|
-
"models.md","models per agent (local llama.cpp / hosted); per-machine overlays"
|
|
375
|
-
"agents.md","Eindri profiles: home, add, run, dispatch"
|
|
376
|
-
"tailscale-sync.md","sync pi data across your machines over Tailscale"
|
|
377
|
-
"updates-and-migrations.md","update the runtime; heal old homes"
|
|
378
|
-
"secrets-and-hoard.md","Hodd: secrets, secret-guard, rotation + scrub"
|
|
379
|
-
```
|
|
115
|
+
- **Owner:** Brokk. **Loaded by:** `AGENTS.md`. **Mirror:** `.agents/skills/galdr-ymirsystem/assets/registry.md`.
|
|
@@ -47,7 +47,7 @@ governed[6]{path,load_first}:
|
|
|
47
47
|
"bin/ymir-install.sh",".agents/skills/galdr-ymirsystem/assets/installation.md"
|
|
48
48
|
"apps/hlidskjalf/**",".agents/skills/galdr-ymirsystem/assets/hlidskjalf-ui.md"
|
|
49
49
|
"bin/mimir*",".agents/skills/galdr-ymirsystem/assets/memory-well.md"
|
|
50
|
-
"bin/nornir-* | config/cron.yaml",".agents/skills/galdr-ymirsystem/assets/nornir-jobs.md"
|
|
50
|
+
"bin/nornir-* | config/cron.yaml*",".agents/skills/galdr-ymirsystem/assets/nornir-jobs.md"
|
|
51
51
|
"bin/valknut-load.sh | .pi/** | .opencode/**",".agents/skills/galdr-ymirsystem/assets/harness-integration/README.md"
|
|
52
52
|
"bin/smidja* | .agents/skills/smidja-factory/**",".agents/skills/galdr-ymirsystem/assets/smidja.md"
|
|
53
53
|
```
|
|
@@ -9,8 +9,10 @@ running a chain, reading its trace, or wiring it into Hlidskjalf.
|
|
|
9
9
|
**Smíðja's eye**.
|
|
10
10
|
- **Registry:** `.agents/assets/agents/naming.md`, `docs/lore.md` §XI/§XIII.
|
|
11
11
|
- **Skill (adopted upstream):** `.agents/skills/smidja-factory/` (internals + cookbooks +
|
|
12
|
-
references +
|
|
13
|
-
`smidja-instructions`, `volundr`).
|
|
12
|
+
references + sibling skills `smidja-launcher`, `smidja-start`,
|
|
13
|
+
`smidja-instructions`, `volundr`). The **visualizer's home is the smidja repo**
|
|
14
|
+
(`apps/smidja-factory/apps/visualizer` in a clone; the skill tree carries no
|
|
15
|
+
copy — dropped 2026-09-17).
|
|
14
16
|
|
|
15
17
|
**Two layouts, one smithy — do not confuse them.** A *target* repo the smithy is
|
|
16
18
|
installed into gets the stamped `smidja/` tree (what `install.py` writes). **In
|
|
@@ -102,7 +104,7 @@ installed on this machine) — do not reintroduce `sqlite3`.
|
|
|
102
104
|
|
|
103
105
|
- **Open at `http://127.0.0.1:8437/`.** One Bun server serves both the read-only
|
|
104
106
|
API (`bun:sqlite` over the trace db) **and** the built Vue UI from
|
|
105
|
-
`apps/visualizer/dist`. A Vite dev server on `:8438` is opt-in
|
|
107
|
+
`apps/smidja-factory/apps/visualizer/dist`. A Vite dev server on `:8438` is opt-in
|
|
106
108
|
(`SMIDJA_VIZ_DEV=1`) and is not needed for use.
|
|
107
109
|
- **The carved cloth (2026-09-13).** The default theme is **fensalir** — the
|
|
108
110
|
landing page's stone/bone/bronze/blood and its three faces (Cormorant display,
|
|
@@ -333,7 +333,7 @@ asset_for() {
|
|
|
333
333
|
*apps/hlidskjalf/*) printf '%s' "$GALDR/assets/hlidskjalf-ui.md" ;;
|
|
334
334
|
*bin/mimir*) printf '%s' "$GALDR/assets/memory-well.md" ;;
|
|
335
335
|
*bin/gleipnir-lock-lib.sh|*bin/saga-session-start.sh|*state/.lock) printf '%s' "$GALDR/assets/brokk-distro-runtime.md" ;;
|
|
336
|
-
*bin/nornir-*|*config/cron.yaml) printf '%s' "$GALDR/assets/nornir-jobs.md" ;;
|
|
336
|
+
*bin/nornir-*|*config/cron.yaml*) printf '%s' "$GALDR/assets/nornir-jobs.md" ;;
|
|
337
337
|
*bin/valknut-load.sh|*/.pi/*|*/.opencode/*) printf '%s' "$GALDR/assets/harness-integration/README.md" ;;
|
|
338
338
|
*bin/smidja*|*.agents/skills/smidja-factory/*) printf '%s' "$GALDR/assets/smidja.md" ;;
|
|
339
339
|
*) printf '' ;;
|
|
@@ -47,7 +47,7 @@ IP** (never 127.0.0.1), state in `.a2a/<agent>`, the directory as a **service**,
|
|
|
47
47
|
heartbeat + deregister, and `cert` (ed25519) before federation. Cards are
|
|
48
48
|
UNSIGNED until then. Realm boundaries hold.
|
|
49
49
|
|
|
50
|
-
Plan + registration spec:
|
|
50
|
+
Plan + registration spec: `$YMIR_HOME/memory/plans/mesh/25-ratatoskr-a2a.md` and `$YMIR_HOME/hodd/docs/a2a-runs.md`.
|
|
51
51
|
|
|
52
52
|
## Joining the mesh and talking (skill-driven, no code)
|
|
53
53
|
|
|
@@ -17,7 +17,7 @@ Tyr also judges the **runtime** and its **Galdr assets** for drift. Galdr is the
|
|
|
17
17
|
|
|
18
18
|
## Before You Start
|
|
19
19
|
|
|
20
|
-
Understand Ymir's architecture: AGENTS.md governs all agent behavior. docs/Architecture.md is the master blueprint. docs/append-only-log.md records all decisions. TOON output should be used for all compliance reports.
|
|
20
|
+
Understand Ymir's architecture: AGENTS.md governs all agent behavior. docs/Architecture.md is the master blueprint. $YMIR_HOME/hodd/docs/append-only-log.md records all decisions. TOON output should be used for all compliance reports.
|
|
21
21
|
|
|
22
22
|
Run the gates as one command when you can:
|
|
23
23
|
|
|
@@ -94,7 +94,7 @@ Ymir provides ambient context through:
|
|
|
94
94
|
Ymir's content-first approach:
|
|
95
95
|
- README.md shows live system map, not usage manual
|
|
96
96
|
- AGENTS.md is the root governance, not a "getting started" doc
|
|
97
|
-
- Plan docs in
|
|
97
|
+
- Plan docs in `$YMIR_HOME/memory/plans/` are the source of truth
|
|
98
98
|
- Daily logs in workspace/memory/daily/ are the active context
|
|
99
99
|
|
|
100
100
|
**Assess:** Does your tool/show live data first, or help text first?
|
|
@@ -103,8 +103,8 @@ Ymir's content-first approach:
|
|
|
103
103
|
### 9. Contextual disclosure
|
|
104
104
|
Ymir's contextual disclosure patterns:
|
|
105
105
|
- After open item → suggest closing (e.g., "Run `tasks close <id>`")
|
|
106
|
-
- After empty list → suggest creating (e.g., "No plans found. ADD:
|
|
107
|
-
- After list → suggest viewing (e.g., "View plan:
|
|
106
|
+
- After empty list → suggest creating (e.g., "No plans found. ADD: memory/plans/<domain>/<name>.md")
|
|
107
|
+
- After list → suggest viewing (e.g., "View plan: memory/plans/mesh/25-ratatoskr-a2a.md")
|
|
108
108
|
- Suggestions use placeholders: <id>, <title>, not concrete values
|
|
109
109
|
- Guide discovery, not prescribed workflows
|
|
110
110
|
|
|
@@ -198,7 +198,7 @@ Compliance assessment per principle and per runtime gate, with "Assess" / "Impro
|
|
|
198
198
|
|
|
199
199
|
## Files referenced
|
|
200
200
|
|
|
201
|
-
- Governance: `AGENTS.md`, `docs/Architecture.md`,
|
|
201
|
+
- Governance: `AGENTS.md`, `docs/Architecture.md`, `$YMIR_HOME/hodd/docs/append-only-log.md`, `$YMIR_HOME/memory/plans/*.md`
|
|
202
202
|
- Skills: `.agents/skills/*/SKILL.md`
|
|
203
203
|
- Scripts: `.agents/skills/galdr-ymirsystem/scripts/compliance-check.sh`, `.agents/skills/galdr-ymirsystem/scripts/toon-check.py`
|
|
204
204
|
- Galdr assets (also mirrored at `tyr-check/assets/`):
|
|
@@ -30,6 +30,6 @@ assets[6]{path,load_when}:
|
|
|
30
30
|
A change that adds a host capability adds a row here, not a new skill.
|
|
31
31
|
|
|
32
32
|
Rule 06 (append-only) governs the memory: the Runes ledger, the
|
|
33
|
-
changelog,
|
|
33
|
+
changelog, `$YMIR_HOME/hodd/docs/append-only-log.md` and the rules are appended to, never
|
|
34
34
|
rewritten — and a move must carry every one of them plus the hoard.
|
|
35
35
|
Law: `RULES/06-append-only.md`.
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
11
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pending:downtime:2358634.1789341699.Q5Ycld
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
when
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
when
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
when
|
|
File without changes
|