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) Run a named HARNESS AGENTS sub-agent in an isolated child loop; edits merge back. Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name: {"error", "available": [names]}. EXPENSIVE full LLM turn; delegable tasks only.
await agent(name, prompt)
Run a named HARNESS AGENTS sub-agent in an isolated child loop; edits merge back. Returns {"agent", "task_id", "status", "answer", "changed_files"}. Unknown name: {"error", "available": [names]}. EXPENSIVE full LLM turn; delegable tasks only.(skill name)await skill(name)
Activate a harness SKILL from python_execution — the same verb as the native tool. First load on the live provider tape returns the full SKILL.md as {"name", "description", "body", "cwd", "resources"}; a repeat returns {"name", "status", "scope", "note"}; an unknown name returns {"error", "available": [names]}.
await skill(name)
Activate a harness SKILL from `python_execution` — the same verb as the native tool. First load on the live provider tape returns the full SKILL.md as {"name", "description", "body", "cwd", "resources"}; a repeat returns {"name", "status", "scope", "note"}; an unknown name returns {"error", "available": [names]}.(skill-tool env input)Native tool_use handler: raw input map in, RAW result map out (renderers and
the provider tape read that map directly — no envelope here).
Native `tool_use` handler: raw input map in, RAW result map out (renderers and the provider tape read that map directly — no envelope here).
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 |