harness compatibility layer — a BUILT-IN foundation module (ships in the
main jar, always present, gated by toggles) that exposes the AGENTS and
SKILLS vis' own project
dir and other AI coding HARNESSES (Claude Code, pi, opencode, the agents
standard, …) leave on disk to the vis model. The sibling of the shell
layer's POSIX compat. Vis reads its OWN project-local skills from
.vis/skills (highest precedence).
Two bare verbs (bound like cat/rg via :ext.engine/builtin? true):
SKILLS are PROGRESSIVE: the prompt lists every skill name — description
(cheap — always present), and
skill(name) loads the FULL SKILL.md + its bundled resource PATHS on
demand so the model spends tokens only on the one it uses.
AGENTS are an ALIAS to sub_loop: agent(name, prompt) runs the named
agent as a CHILD loop whose system prompt IS that agent's markdown body,
on its declared model.
Both bare verbs are unconditionally available — skills/agents/commands have no user toggle; the layer is always active.
`harness` compatibility layer — a BUILT-IN foundation module (ships in the main jar, always present, gated by toggles) that exposes the AGENTS and SKILLS vis' own project dir and other AI coding HARNESSES (Claude Code, pi, opencode, the agents standard, …) leave on disk to the vis model. The sibling of the shell layer's POSIX compat. Vis reads its OWN project-local skills from `.vis/skills` (highest precedence). Two bare verbs (bound like cat/rg via `:ext.engine/builtin? true`): - SKILLS are PROGRESSIVE: the prompt lists every skill `name — description` (cheap — always present), and `skill(name)` loads the FULL `SKILL.md` + its bundled resource PATHS on demand so the model spends tokens only on the one it uses. - AGENTS are an ALIAS to `sub_loop`: `agent(name, prompt)` runs the named agent as a CHILD loop whose system prompt IS that agent's markdown body, on its declared model. Both bare verbs are unconditionally available — skills/agents/commands have no user toggle; the layer is always active.
(agent name prompt)await agent(name, prompt)
Delegate prompt to a harness sub-agent as a child loop (names listed in the HARNESS AGENTS prompt block). Child runs isolated; edits merge back.
Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name → {"error", "available": [names]}.
EXPENSIVE (a full child LLM turn) — delegable sub-tasks only.
await agent(name, prompt)
Delegate `prompt` to a harness sub-agent as a child loop (names listed in the HARNESS AGENTS prompt block). Child runs isolated; edits merge back.
Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name → {"error", "available": [names]}.
EXPENSIVE (a full child LLM turn) — delegable sub-tasks only.(skill-tool env input)Load a harness SKILL on demand — its full SKILL.md. Names are in the HARNESS SKILLS block. Activation is idempotent while the exact body remains on the live provider tape; repeated calls return a compact receipt. A changed or absent body is activated once.
Load a harness SKILL on demand — its full SKILL.md. Names are in the HARNESS SKILLS block. Activation is idempotent while the exact body remains on the live provider tape; repeated calls return a compact receipt. A changed or absent body is activated once.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |