The temporal and moxn skills from #999 are in no lane's local_skill_roots, so nothing loads them #1006

Closed
opened 2026-08-19 01:28:23 +00:00 by coilyco-ops · 0 comments
Member

#999 added two skill roots that no agent loads:

  • .agents/skills/temporal/SKILL.md
  • .agents/skills/moxn/SKILL.md

Skills reach an agent only through local_skill_roots. LoadSkillpack(cfg.Definition.LocalSkillRoots) in internal/community/agent.go walks the enumerated roots and nothing else, so a directory under .agents/skills/ that no definition names is inert.

Current roots, none of which include the two new ones:

  • agents/deep/definition.yaml - coilyco-general, coilyco-org
  • agents/echo/definition.yaml - coilyco-org, sirens-echo-community, sirens-echo-knowledge
  • deploy's sirens-dowel-definition.yml - coilyco-general, coilyco-org, sirens-dowel

So the Temporal skill is not loaded by the Temporal lane, on the day it matters.

Why this is easy to miss

The skills are well-formed and land in the conventional place, so nothing about the diff looks wrong. The only signal is absence, and nothing checks for it. That makes it exactly the failure mode that survives review.

It also overlaps in subject with .agents/skills/sirens-dowel/references/temporal.md, which is loaded, and which already carries the fetch-first rule. Worth deciding whether the new file supersedes that reference, sits beside it, or should be the thing the reference points at, rather than leaving two descriptions of the same product with only one reachable.

Suggested guard

A test asserting every directory under .agents/skills/ appears in at least one definition's local_skill_roots, with an explicit opt-out list for roots that are deliberately unloaded. That is cheap and catches the whole class.

  • #973 - the mirror image: a root named by a definition but missing from the image. This is a root present in the repo and named by no definition. Same seam, opposite direction, and a guard for one would not catch the other.
  • #1004 - skill contract and entrypoints, same area.
#999 added two skill roots that no agent loads: - `.agents/skills/temporal/SKILL.md` - `.agents/skills/moxn/SKILL.md` Skills reach an agent only through `local_skill_roots`. `LoadSkillpack(cfg.Definition.LocalSkillRoots)` in `internal/community/agent.go` walks the enumerated roots and nothing else, so a directory under `.agents/skills/` that no definition names is inert. Current roots, none of which include the two new ones: * `agents/deep/definition.yaml` - `coilyco-general`, `coilyco-org` * `agents/echo/definition.yaml` - `coilyco-org`, `sirens-echo-community`, `sirens-echo-knowledge` * deploy's `sirens-dowel-definition.yml` - `coilyco-general`, `coilyco-org`, `sirens-dowel` So the Temporal skill is not loaded by the Temporal lane, on the day it matters. ## Why this is easy to miss The skills are well-formed and land in the conventional place, so nothing about the diff looks wrong. The only signal is absence, and nothing checks for it. That makes it exactly the failure mode that survives review. It also overlaps in subject with `.agents/skills/sirens-dowel/references/temporal.md`, which **is** loaded, and which already carries the fetch-first rule. Worth deciding whether the new file supersedes that reference, sits beside it, or should be the thing the reference points at, rather than leaving two descriptions of the same product with only one reachable. ## Suggested guard A test asserting every directory under `.agents/skills/` appears in at least one definition's `local_skill_roots`, with an explicit opt-out list for roots that are deliberately unloaded. That is cheap and catches the whole class. ## Related - #973 - the mirror image: a root **named** by a definition but missing from the image. This is a root **present** in the repo and named by no definition. Same seam, opposite direction, and a guard for one would not catch the other. - #1004 - skill contract and entrypoints, same area.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo#1006
No description provided.