Commit Graph
6 Commits
Author SHA1 Message Date
Omar SobhandClaude Opus 4.7 85a97dffca slice 3.5d: agent_template_link + brain seed helper + skills merge
ci / gates (push) Successful in 4s
ci / frontend (push) Successful in 38s
ci / rust (push) Failing after 3m1s
ci / e2e (push) Skipped
ci / publish (push) Skipped
Ships the lineage layer that ties agents back to their team template
and wires the MCP skills server to actually merge template default
skills with per-agent overrides.

Migration 0050 adds `agent_template_link` (agent_id PK, template_id,
template_version, role_slot, seeded_at, created_at + indexes for
template/role lookups). Populated at agent-materialization time by
Slice 4's mission-launch orchestrator; read here by the skills MCP
server and by future level-up (Slice 8.5).

New Rust surface:
  - cm_db::repo::agent_template_link  (upsert / get / mark_seeded /
    agents_for_template — the last is what level-up's "prompt upgrade
    on template N+1" query needs)
  - cm_api::brain_seed::ingest(claw_id, seed_md, identity_prompt)
    opens cm_brain::ClawBrain on spawn_blocking, sets system_prompt
    on first touch, writes seed as agent_md, commits. Idempotent —
    skips when agent_md already populated.
  - cm_api::mcp_skills::mcp_skills tools/call now resolves the caller
    agent's template + role via agent_template_link and merges
    template default skills with per-agent overrides (was overrides-
    only in Slice 3.5b).
  - cm_api::team_template_loader now binds template_role_skills after
    upserting each template — looks up each declared skill by name,
    attaches with pin_in_context=true for foundation skills and the
    first two role skills. Missing skills log + skip.
  - Boot ordering: skills load BEFORE team templates so the binding
    lookup resolves.

Follow-up (Slice 4): mission-launch orchestrator calls brain_seed::ingest
+ agent_template_link::upsert when minting a team from a template.
Until that lands, the link is populated only by manual writes; the
MCP merge is silent-no-op for agents without a link (falls through
to overrides-only), which matches the pre-3.5d behavior.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-07-19 14:16:16 -07:00
Omar Sobh cddbcb91b3 fmt: sync mcp_skills.rs to authoritative rustfmt output
ci / gates (push) Successful in 4s
ci / publish (push) Successful in 3m46s
ci / frontend (push) Successful in 39s
ci / rust (push) Successful in 3m34s
ci / e2e (push) Skipped
2026-07-19 13:27:06 -07:00
Omar Sobh e43a551e97 fmt: split multi-name imports to sidestep formatter version drift
ci / gates (push) Successful in 4s
ci / rust (push) Failing after 9s
ci / frontend (push) Successful in 26s
ci / e2e (push) Skipped
ci / publish (push) Skipped
2026-07-19 13:25:23 -07:00
Omar Sobh d4ddf6bfc7 fix: avoid let-chain to satisfy edition 2021 fmt check
ci / gates (push) Successful in 6s
ci / rust (push) Failing after 7s
ci / frontend (push) Successful in 25s
ci / e2e (push) Skipped
ci / publish (push) Skipped
2026-07-19 13:23:52 -07:00
Omar Sobh 96fdd397f9 fmt: cargo fmt applies preferred form
ci / gates (push) Successful in 4s
ci / rust (push) Failing after 9s
ci / frontend (push) Successful in 28s
ci / e2e (push) Skipped
ci / publish (push) Skipped
2026-07-19 13:22:22 -07:00
Omar SobhandClaude Opus 4.7 3524579c9a slice 3.5b: clawmates_skills MCP server
ci / gates (push) Successful in 6s
ci / rust (push) Failing after 11s
ci / frontend (push) Successful in 25s
ci / e2e (push) Skipped
ci / publish (push) Skipped
Exposes the skills catalog as MCP resources so agents can discover
+ read skill markdown on demand — the delivery half of the "skills
teach how to think, MCP gives ability to act" model.

New endpoint: POST /mcp/skills (parallel to the existing /mcp door).
Protocols supported:
  - initialize            — handshake, advertises resources + tools
  - resources/list        — one entry per skill visible to the caller's
                            workspace. URI scheme:
                              skill:global/<name>
                              skill:workspace/<ws>/<name>
                            description carries the skill's description
                            + when_to_use so the LLM can decide when
                            to reach for it.
  - resources/read {uri}  — returns body as text/markdown. Enforces
                            workspace scope on workspace-authored
                            skills.
  - tools/list            — one entry: skills__pinned_bundle
  - tools/call             — skills__pinned_bundle concatenates every
                            skill pinned for the calling agent (via
                            X-ZeroClaw-Agent header) with H1 headers.
                            Cheaper than N resources/read at turn start.

Adds the `clawmates_skills` bundle to the runtime template config
alongside `clawmates_door`, and teaches the MCP bearer rewriter
(prewrite_daemon_config_with_risk) to inject the workspace-owner
service session bearer on both `clawmates` and `clawmates_skills`
servers.

Follow-ups:
  - Slice 3.5c: seed ~40-60 builtin skills across the 6 stacks
  - Slice 3.5d: agent_template_link lineage — until it lands, the
    pinned_bundle tool can only surface per-agent overrides, not
    template defaults (documented inline)

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-07-19 13:20:56 -07:00