Agent Tool Coverage Matrix
Current coverage matrix for native agent tools, live tools, background-safe tools, and live UI mutation/highlighting across Clapilot features and modules.
Rows in this matrix are derived from the tool inventory in Agent Tool Contracts; the code-side sources of truth are services/clapilot-agent/src/tool-definitions.mjs (native catalog), src/lib/live-voice.ts (live catalog), and src/lib/agent-runtime/tool-proxy.ts (execution). Update this page together with the contracts page whenever tool coverage changes.
This page tracks which Clapilot features already have:
- native
ClapilotAICoreread tools - native
ClapilotAICorewrite tools - background-safe read tools
- background-safe write tools
- live/realtime read tools
- live/realtime write tools
- precise live UI mutation/highlighting
Use this page as the implementation backlog for agent-first parity. If a visible feature exists in Clapilot and users can reasonably ask the agent to work with it, the goal is:
- native runtime read/write tools
- background-safe read/write tools
- live read/write tools
- visible live UI mutation/highlighting
Legend
yes: shipped and usablepartial: some coverage exists, but not enough for full agent-first parityno: missing
Current matrix
| Feature / module | Native read | Native write | Background read | Background write | Live read | Live write | Precise live UI highlight | Notes / main gap |
|---|---|---|---|---|---|---|---|---|
| Excel Editor | yes | yes | yes | yes | yes | yes | yes | Best-covered surface today; structured UI actions exist for cell/sheet updates |
| Word Editor | yes | yes | yes | yes | yes | yes | yes | Best-covered document editor after Excel |
| Notizen | yes | yes | yes | yes | yes | yes | yes | Native/live CRUD exists and now emits note/page-specific UI actions with in-place highlight feedback |
| Dokumente | yes | yes | yes | partial | yes | yes | no | Folder + document workflow tools now exist; background writes still lack richer document-processing actions and UI still lacks item/folder-specific highlight events |
| Kalender | yes | yes | partial | partial | yes | yes | yes | Native/live CRUD exists and now emits calendar.event.updated; background-safe use still depends on a resolved authenticated user context |
| Aufgaben | yes | yes | partial | partial | yes | yes | yes | Native/live parity exists for boards/tasks and now emits aufgaben.task.updated; background-safe use still depends on a resolved authenticated user context |
| Geplante Aufgaben | yes | yes | yes | yes | yes | yes | no | Native/live parity covers list/get/create/enable/delete; UI still lacks precise schedule/item highlight actions |
| E-Mails | yes | yes | partial | partial | yes | yes | partial | Mailbox reads plus draft CRUD/send exist; mailbox actions and draft mutations emit emails.message.updated / emails.draft.updated for in-place row updates, but background parity is still conditional on a resolved user/mailbox context and thread-level highlight actions are missing |
| Mandanten | yes | yes | partial | partial | yes | yes | yes | Native/live CRUD exists and emits mandanten.client.updated for in-place list/detail refresh with highlight; background-safe use still depends on a resolved authenticated user context |
| Buchhaltung | yes | yes | yes | yes | yes | yes | no | Native/live parity now covers category reads, entry reads, period reports, and entry create/update, but the module still relies on reload-level updates instead of precise row-level mutation/highlight actions |
| Website Canvas | yes | yes | yes | partial | yes | yes | no | Native/live parity covers session setup, repo sync, code changes, commit/push, and session reads; write flows remain intentionally interactive and UI still relies on reload-level updates |
| Social Media | yes | yes | partial | partial | yes | yes | no | Native/live social_media_* tools cover accounts, post CRUD, media attach, scheduling, and publishing across LinkedIn, X, Mastodon, Bluesky, and YouTube (replaces the legacy LinkedIn module); background-safe use depends on a resolved authenticated user context and the module UI still relies on refreshTopic=module reload-level updates |
| Physische Post (E-POST) | yes | yes | partial | partial | yes | yes | no | postal_mail_* covers list/get/send/refresh over the shared admin-managed E-POSTBUSINESS account; V1 is outbound-only PDF, status sync runs via the bundled Postal Mail Status Sync system automation, and the UI relies on refreshTopic=documents reloads |
| Wiki | yes | yes | yes | yes | yes | yes | yes | wiki_* search/get/upsert/archive emit wiki.page.updated for in-place module updates; /api/wiki/pages also accepts agent system tokens for background flows |
| Cases | yes | yes | partial | partial | yes | yes | partial | cases_* CRUD/link/communication/key-date tools emit cases.case.updated, which refreshes the open module (module-level rather than row-level highlight); the bundled module is optional and background use needs a resolved user context |
| Canvas (HTML) | yes | yes | yes | partial | no | no | yes | Native canvas_* file/folder/template/style/share tools emit canvas.file.updated for in-place editor/preview updates; Canvas is intentionally not in the live/realtime catalog and background writes need a resolved user context |
| Call & Fax Agent | yes | yes | partial | partial | yes | yes | no | call_agent_* plus faxes_* cover status, outbound calls, customer lookup, and the shared-line fax workflow; UI updates come from module status/history refetch rather than structured mutation events |
| Microsoft 365 App Connections | no | no | no | no | no | no | no | User-facing OAuth/calendar/files/contacts integration now exists under Settings -> App Verbindungen, but dedicated agent tool contracts are intentionally not shipped yet; chat only receives connection-status context |
| X App Connections | no | no | no | no | no | no | no | User-facing OAuth integration now exists under Settings -> App Verbindungen, but dedicated agent tool contracts are intentionally not shipped yet; chat and native context reads only receive connection-status context |
| File Explorer | no | no | no | no | no | no | no | No real agent-first file tools yet despite the module existing in the product |
| Google Meet | yes | yes | partial | partial | yes | yes | partial | Native/live google_meet can start, inspect, speak in, run server-side voice-to-voice, transcribe via Realtime transcripts/audio blocks/captions, create summary documents, and leave managed Chromium Meet participant sessions; join automatically requests captions and starts the Realtime voice bridge when remote Meet audio is available. Diarization remains best-effort |
| Agent Orchestrator module | yes | yes | partial | partial | partial | partial | no | 12 agent_orchestrator_* native tools exist (start/continue/send-turn/inspect/fork/follow-up/stop jobs and interactive sessions, list repos/jobs/sessions); the module has a page Action Rule and is reachable via navigate_user_to_page (module) only while Developer mode exposes it. Live/background parity and precise UI highlighting are still partial |
| Channels (Telegram/Slack/WhatsApp) | partial | partial | yes | partial | n/a | n/a | no | Messaging works, Telegram attachments now work, but channel-facing UI mutation is mostly transport status rather than rich in-app highlighting; Slack/WhatsApp attachment parity is still missing |
| Memory system | yes | yes | yes | yes | n/a | n/a | n/a | Native memory tools are in good shape; next step is shared cross-session memory coverage |
| Shell / package install | yes | yes | yes | yes | partial | no | n/a | Native operational tools exist; live tool catalog now exposes direct shell execution but still has no dedicated UI mutation feedback |
Page-awareness wiring (registry-backed)
Tool reachability (the matrix above) is separate from page awareness: whether the agent is told which page the user is on, which tools apply there, and how to take the user there. Those runtime-side layers are now driven by a single source of truth, services/clapilot-agent/src/page-capabilities.mjs:
- Action Rules (L4) — the "you are inside X, use these tools" system-prompt section for the current page (
buildPageActionRuleSections). - Global capability hints — one-line "if the user asks X, use Y" hints appended to the Tooling section so a tool-rich page is discoverable from anywhere (
PAGE_GLOBAL_HINTS). - Advertised navigation targets —
NAVIGATE_TARGET_ENUM, consumed by both agent-service tool schemas and mirrored client-side byCLAPILOT_NAVIGATION_TARGET_ENUM.
Invariant enforced by services/clapilot-agent/src/page-capabilities.test.mjs: every page that owns tool families must declare both an Action Rule and a navigation target. This is what stops a page from being wired into one layer but forgotten in the others. A general "Clapilot UI Parity" prompt section also tells the agent that anything doable in the UI is available as a tool/skill, and to fall back to navigate_user_to_page when no specific tool is found.
Surfaces that previously had tools but no Action Rule and are now wired through the registry: Live Stream Studio, Geplante Aufgaben, Notizen, Dashboard widgets/mini-apps, E-Mails, Kalender, Aufgaben, Dokumente, Mandanten, Physische Post, Call Agent, Cases, Appointment booking, and Agent Orchestrator. The client floating-chat composer (src/lib/chat-floating-context.ts) also falls back to the localized sidebar label for these pages instead of the generic default.
The biggest gaps
1. Features with native parity but weak UX parity
These features already have native and live tools, but still feel unfinished because the user cannot clearly see what changed:
- Geplante Aufgaben
- E-Mails (thread-level; message/draft row updates already exist)
- Website Canvas
- Social Media
The biggest remaining gap here is not basic tool reachability anymore, but precise UI mutation/highlighting instead of opaque reloads.
2. Features that still lack full agent-first parity
These areas now have at least some agent tooling, but are still missing one or more of the required layers:
- Dokumente
- read + workflow writes exist
- richer business actions such as classification/tag pipelines can still be expanded
- precise UI mutation/highlighting still missing
- E-Mails
- mailbox reads, mailbox actions, plus draft CRUD/send exist and emit message/draft-level UI actions
- reply/thread-specific tools and thread-level UI actions are still missing
- Channels
- outbound send exists
- attachment ingest exists for Telegram
- Slack/WhatsApp attachment parity and richer in-app UI/highlighting are still missing
- File Explorer
- module exists
- no native/live agent-first tool layer yet
- Agent Orchestrator
- 12
agent_orchestrator_*native tools exist for jobs and interactive sessions - live/background parity and precise UI highlighting are still partial
- 12
3. Features without precise UI mutation/highlighting
Today, these surfaces have true structured live mutation actions:
- Excel Editor
- Word Editor
- Notizen
- Kalender
- Aufgaben (
aufgaben.task.updated) - Mandanten (
mandanten.client.updated) - E-Mails (
emails.message.updated,emails.draft.updated— message/draft level only) - Canvas (
canvas.file.updated) - Wiki (
wiki.page.updated) - Cases (
cases.case.updated— module-level refresh)
Everything else still mostly relies on:
triggerReloadrefreshTopic
That is functionally acceptable for some CRUD flows, but it is not the intended user experience for an agent-first workspace. The user should see exactly what changed.
Required live UI mutation contracts
The following action families are still missing and should be added instead of relying on reloads:
scheduled_tasks.item.updateddocuments.item.updateddocuments.list.updatedemails.thread.updatedwebsite.session.updatedwebsite.preview.updatedfile_explorer.selection.updatedagent_orchestrator.run.updated
For some surfaces, list-level actions may also be needed:
aufgaben.board.updatedcalendar.range.updateddocuments.folder.updated
Background-safe tool gap
For recurring jobs, channels, system runs, and future cross-session memory workflows, we need tools that are safe to call without an active UI tab.
The current background-safe native tool coverage is strong for:
- memory
- shell/package install
- Excel/Word when
doc_idis explicit - Notizen when
note_id/page_idis explicit
The current background-safe native tool coverage is missing or incomplete for:
- richer Dokument-Workflow writes
- Kalender/Aufgaben/Mandanten/E-Mails when no authenticated user context can be resolved
- Website Canvas write flows (
apply/commit/pushstay intentionally interactive) - File Explorer
- Agent Orchestrator
Priority backlog
P0: Session-safe context rehydration for native tools
Harden long-lived sessions so tool-capable modules do not silently degrade into "no user context" states after older errors or stale session state.
Focus areas:
- re-resolve
user_id/chat_session_id/ current page context at run start - repair older native sessions that predate current context fixes
- keep tool-capable sessions from getting stuck in negative "no context" assumptions
P1: Live UI mutation parity outside Excel/Word
Add precise UI actions for:
- Geplante Aufgaben
- Dokumente
- E-Mails (thread level)
- Website Canvas
Reason:
- users need to see exactly what changed
- reload-based UX is too opaque for live agent work
P1: Background-safe parity for business objects
Improve non-UI/background-safe native tooling for:
- Kalender
- Aufgaben
- E-Mails reply/thread flows
- Mandanten operational updates
- Dokument workflow writes
Reason:
- channels, jobs, automations, and shared-memory-driven runs should not depend on an open app tab
P2: Website / explorer / orchestrator parity
Add proper native/live tool surfaces for:
- File Explorer
- Agent Orchestrator
Reason:
- these are valuable, but less core than documents/tasks/calendar/mail
Recommended implementation order
- Session self-healing / context rehydration for long-lived native sessions
- UI mutation contracts for Geplante Aufgaben, Dokumente, and E-Mail threads
- UI mutation contracts for Website Canvas
- Browser/File Explorer/Agent Orchestrator parity
Native parity target
For every major user-facing feature, the target end state is:
- native read tools
- native write tools
- live tools
- background-safe tools
- live UI mutation/highlighting
If a module only has one or two of these, it is not yet done from an agent-first perspective.
