Skills move to skills/<name>/SKILL.md and the repo gains both manifests, so it is now a marketplace hosting exactly one plugin whose root is the repo root (source: "."). Claude Code installs it from git; no symlinks involved. Why: install.sh wired the library into every consuming repo as an ABSOLUTE symlink to $CHECKOUT_DIR. The checkout moved three times, most recently when local-dev@1966d5a dropped the embedded .skills/ copy, and nothing migrated the links — 243 dangling links across 12 repos, hidden from git by the **/.claude/skills/ ignore rule. Worse, ~/dev spans two path roots (/Users/mathias on the iCloud-shared Macs, /home/mathias on koala), so an absolute link stored there is broken on one side by construction. Re-running the installer cannot fix that; only removing the mechanism can. install.sh keeps the harnesses with no plugin system and drops from 42 links per harness to one directory link, via the convergent ~/.agents/skills convention that Pi and OpenCode both read: ~/.agents/skills -> $CHECKOUT_DIR/skills ~/.config/crush/skills -> ~/.agents/skills ~/.config/opencode/skills -> ~/.agents/skills wire_claude_repo is deleted outright rather than gated behind a flag — on a mixed-root fleet it cannot be made correct. Antigravity and Vibe targets go too; both unused. CHECKOUT_DIR keeps its host-local default deliberately: pointing it into ~/dev would put a git working tree inside iCloud with two concurrent writers. Taskfile drops five near-identical wiring loops (they had already drifted) and delegates to install.sh. `task check` gains frontmatter validation, a stray-root-entry gate, and manifest/tag version parity — the loose secret-hygiene.md sat unloadable for months because nothing checked layout. Verified: claude plugin validate . passes clean; a probe skill loaded as skills:zzprobe through --plugin-dir; task check green at 42 skills. Refs: #23 Bump-Type: minor Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BeAp5LTscnz2W7Ubt4eJ6m
2.7 KiB
name, description
| name | description |
|---|---|
| telos-load | Load TELOS — the intention substrate (problems, goals, strategies, status) — into a session at start so every decision traces to a goal. Use when starting any koala session, before architectural decisions, or as the CAD pipeline entry point ("load TELOS", "what are we optimizing toward?"). |
telos-load
Load TELOS — the intention substrate — into a session so every decision can be traced back to a goal, and every goal to a problem.
Use when: starting any session on koala (Claude Code, Crush, Antigravity), or whenever a session needs to know what we are optimizing toward. If you find yourself making architectural decisions without knowing the active goals, load TELOS first.
Do not skip: a session without TELOS context is flying blind. It may produce technically correct output that is strategically wrong.
What TELOS is
TELOS is a wing in brain (wiki/telos/decisions/) containing 9 files: PROBLEMS, MISSION, GOALS, CHALLENGES, PROJECTS, STRATEGIES, BELIEFS, WRONG, STATUS. Together they answer: what are we working against, what are we trying to build, and how do we approach the work?
Full aggregate: wiki/telos/decisions/principal-telos.md
Loading TELOS by harness
Claude Code (per-project CLAUDE.md)
Add to the project CLAUDE.md or ~/.claude/CLAUDE.md:
Intention context (TELOS)
At session start, call brain_context with wing=telos and limit=8. Fallback if brain MCP unavailable: wiki/telos/decisions/principal-telos.md in the brain repo.
The global ~/.claude/CLAUDE.md was wired on koala on 2026-06-16.
Crush
Location on koala: ~/.config/crush/CRUSH.md (auto-loaded via global_context_paths). Add:
Intention context (TELOS)
At session start: query brain MCP with wing=telos, limit=8. If brain MCP unavailable: read wiki/telos/decisions/principal-telos.md
Antigravity
Add @brain_context wing=telos directive at top of system instructions.
Fallback — no brain MCP
cat ~/dev/AI/brain/wiki/telos/decisions/principal-telos.md
Or @-import in CLAUDE.md: @~/dev/AI/brain/wiki/telos/decisions/principal-telos.md
Verification
brain_query wing=telos limit=3 → Expected: PROBLEMS, MISSION, GOALS returned
brain_answer "what am I currently optimizing toward?" → Expected: non-empty, telos-sourced → If empty: use brain_query wing=telos (known fallback, brain#11 fixed)
When TELOS is stale
Update STATUS.md via: brain_write wing=telos hall=decisions filename=STATUS
Relationship to CAD
TELOS is the intention layer in the CAD pipeline. Every Gitea issue created in a CAD session should trace to a TELOS GOAL. Every GOAL traces to a PROBLEM.
Traceability chain: PROBLEM → GOAL → SPEC → TICKET → IMPL → TEST