Nightly Build / build (push) Successful in 8m6s
Per blueprint/skill-project.md: the old single-namespace, hand-maintained
index is gone, replaced by a read-only, two-scope tree whose index is a
runtime function of its content.
- skills/ index generated at runtime (crates/skald-core/src/skills/:
inventory, install, validate, watch), injected through the new
<!-- SKILLS_LIST --> placeholder in AGENT.md (agents/common/skills.md);
meta.json inject_skills flag removed. 11 chat/task agents carry the
include, the 4 system agents do not.
- Two trees, both read-only in both directions: skills/shared/{id} (the
group's) and skills/{username}/{id} (one member's own, on the stable
userid). The root is closed too: UserFs::SkillMounts + RouteError (alias
probe, plain-denied paths, no home fallback) and a per-user
.skills-root/{userid} container mount with the two scope mounts nested
inside, plus the fifth self-heal axis (skills_mounted).
- Agent verbs: skill_register/skill_delete (Config group, global scope
behind the new skill.manage capability), fetch_repo for public repos,
list_items(type="skills"); reads are plain read_file on the printed
path. Seeded @fs_read skills/* allow.
- Freshness: a digest-gated watcher on the two trees emits
SystemEvent::SkillsChanged, whose subscriber rebuilds the frozen prompt
prefix via Skald::invalidate_prompt_prefix; in-process writers invalidate
directly.
- The build ships no skills: the three bundled skills (ics2json,
mcp-builder, skill-creator) and skills/index.md are removed, skills/ is
instance data (gitignored, not packaged, no longer pruned by update.sh).
- Docs: skills.md, agents.md, shared-folders.md added; docs/index.md and
agents/README.md updated.
20 lines
1.6 KiB
JSON
20 lines
1.6 KiB
JSON
{
|
|
"name": "Shared memory lint",
|
|
"description": "Hidden background agent. Spawned periodically by the system-agent scheduler, once per instance, running as the admin. Reads the group's `shared-memory/` store and reports drift via notify(), with particular attention to notes that fail the table rule — private business written where every member can read it. Read-only: it never edits memory, and reports such a note without repeating its contents. Ephemeral: the session is discarded as soon as the turn ends.",
|
|
"friendly_description": "Weekly check-up of the group's shared memory: flags private things written in a place everyone can read, facts nobody is attached to, questions still waiting on someone, and notes that have gone out of date. It only ever reports — it never changes anything.",
|
|
"i18n": {
|
|
"it": {
|
|
"name": "Manutenzione memoria condivisa",
|
|
"friendly_description": "Controllo settimanale della memoria condivisa: segnala cose private finite dove tutti possono leggerle, fatti senza un nome accanto, domande ancora in attesa di risposta e note ormai scadute. Si limita a segnalare — non modifica mai nulla."
|
|
},
|
|
"fr": {
|
|
"name": "Entretien de la mémoire partagée",
|
|
"friendly_description": "Vérification hebdomadaire de la mémoire partagée : signale ce qui est privé mais écrit là où tout le monde peut le lire, les faits sans auteur, les questions encore en attente et les notes périmées. Elle se contente de signaler — elle ne modifie jamais rien."
|
|
}
|
|
},
|
|
"type": "system",
|
|
"inject_memory": ["shared-memory/index.md"],
|
|
"icon": "icon.png",
|
|
"strength": "average"
|
|
}
|