The Atlas AnyLegal OSS — documentation bound to its code
20 documents

How agent behaviour is assembled: skills & tools

The system prompt is deliberately thin on procedure — it defers to skills and a tool registry. Trace how a SKILL.md becomes a loaded procedure and how the tool pool is built and scoped.

5 · Skills & tools

Skills are Anthropic-format SKILL.md files. The loader (skill_loader.py) globs */SKILL.md, parses YAML frontmatter (name, description, requires, …) and returns the body when the Skill tool is invoked. The README's compatibility claim is accurate and bounded: only the SKILL.md markdown+frontmatter is loaded — plugin.json, commands/, agents/, hooks/, and MCP config are deliberately not read (no references exist in the loader).

The eight built-in skills:

Skill Purpose
research Web research with inline citations
draft Draft a new document via docx-js (run_code node)
review Review a document against playbook positions
docx-editing Tracked-change redlines, fills, accept/reject
docx-xml Structural OOXML edits via run_code + lxml
compare Diff two versions / produce a Word redline
qa Six-dimension quality-assurance review
setup First-run workspace initialization

Tools. The unified registry (workspace_tools.py) exposes 31 tools to the model by default (33 with planner mode), aggregated from per-domain handler modules in tools/. When SKILL_TOOL_SCOPING=true, invoking a skill narrows the tool pool to that skill's requires.tools plus an always-on set (skill_tool.py).

Group Tools
Documents list_documents, read_document, create_document, edit_document, clone_document, create_folder, delete_document, delete_folder, instantiate_template
DOCX redline revert_edit, get_revision_stats, accept_all_changes, reject_all_changes, accept_changes, reject_changes, produce_redline, add_comment
Research web_search, web_fetch, compare
Knowledge/wiki search_workspace, read_wiki_page, list_wiki_pages, append_wiki_note, update_wiki_page, set_wiki_metadata, delete_wiki_page, suggest_instruction
Code run_code
Control Skill, todo_write, (enter_plan_mode, exit_plan_mode — gated)

The system prompt (prompts/system_prompt.md) defines behavior (context layers, memory rules, mandatory citations, legal-only scope); per-turn it is augmented by a deterministic memory layer (memory_layer.py) that injects managed/global instructions, the workspace journal, scoped playbooks, and the active document's wiki page.