skills as wayfinding, not gates; ship /api/users/{handle}
skill-prompt audit (the user pointed out phi was internalizing skills
as bounding her capability surface, which is the wrong frame):
- pdsx-fundamentals SKILL.md: add "important framing" paragraph
explicitly stating that domain skills don't add capabilities —
pdsx already does. skills are lighthouses for using the general
tool well; the capability surface is wider than the skill surface,
not narrower.
- cosmik-records SKILL.md: rewrite description + opening to lead with
"this skill doesn't add a capability — pdsx already lets you write
any cosmik record. what's here is the wayfinding." load isn't a
gate; it's a reference card.
- publish-blog SKILL.md: cross-reference reframed from "load the
cosmik-records skill" to "write a network.cosmik.card via pdsx (the
cosmik-records skill has the per-record-type schema details)" —
pdsx is the verb, the skill is the schema reference.
- docs/memory.md: source line + writes-paragraph tightened to match.
infra (per spec files in repo root):
- /api/users/{handle} added per USER-VIEW.md. direct read of phi's
tpuf state for a handle: counts per kind, first/last seen,
synthesized summary text + timestamp, recent observations with
source_uris for provenance, resolved DID best-effort. no embedding,
no LLM, no fabrication. 60s in-process TTL cache per handle.
- USER-VIEW.md + SKILLS-API.md tracked for the engineer working on
the cockpit.
UI-side changes (separate hand): web/src/lib/abilities.ts removed
since /api/abilities is live; capabilities/+page.svelte switched to
fetch from the endpoint; mind-lens map rework in progress
(MindMap.svelte added, Atlas.svelte removed). loq.toml bumps for
the new svelte components.
104 tests + 2 evals pass.