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 ClapilotAICore read tools
  • native ClapilotAICore write 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:

  1. native runtime read/write tools
  2. background-safe read/write tools
  3. live read/write tools
  4. visible live UI mutation/highlighting

Legend

  • yes: shipped and usable
  • partial: some coverage exists, but not enough for full agent-first parity
  • no: missing

Current matrix

Feature / moduleNative readNative writeBackground readBackground writeLive readLive writePrecise live UI highlightNotes / main gap
Excel EditoryesyesyesyesyesyesyesBest-covered surface today; structured UI actions exist for cell/sheet updates
Word EditoryesyesyesyesyesyesyesBest-covered document editor after Excel
NotizenyesyesyesyesyesyesyesNative/live CRUD exists and now emits note/page-specific UI actions with in-place highlight feedback
DokumenteyesyesyespartialyesyesnoFolder + document workflow tools now exist; background writes still lack richer document-processing actions and UI still lacks item/folder-specific highlight events
KalenderyesyespartialpartialyesyesyesNative/live CRUD exists and now emits calendar.event.updated; background-safe use still depends on a resolved authenticated user context
AufgabenyesyespartialpartialyesyesyesNative/live parity exists for boards/tasks and now emits aufgaben.task.updated; background-safe use still depends on a resolved authenticated user context
Geplante AufgabenyesyesyesyesyesyesnoNative/live parity covers list/get/create/enable/delete; UI still lacks precise schedule/item highlight actions
E-MailsyesyespartialpartialyesyespartialMailbox 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
MandantenyesyespartialpartialyesyesyesNative/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
BuchhaltungyesyesyesyesyesyesnoNative/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 CanvasyesyesyespartialyesyesnoNative/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 MediayesyespartialpartialyesyesnoNative/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)yesyespartialpartialyesyesnopostal_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
Wikiyesyesyesyesyesyesyeswiki_* search/get/upsert/archive emit wiki.page.updated for in-place module updates; /api/wiki/pages also accepts agent system tokens for background flows
Casesyesyespartialpartialyesyespartialcases_* 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)yesyesyespartialnonoyesNative 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 Agentyesyespartialpartialyesyesnocall_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 ConnectionsnononononononoUser-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 ConnectionsnononononononoUser-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 ExplorernononononononoNo real agent-first file tools yet despite the module existing in the product
Google MeetyesyespartialpartialyesyespartialNative/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 moduleyesyespartialpartialpartialpartialno12 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)partialpartialyespartialn/an/anoMessaging 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 systemyesyesyesyesn/an/an/aNative memory tools are in good shape; next step is shared cross-session memory coverage
Shell / package installyesyesyesyespartialnon/aNative 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 targetsNAVIGATE_TARGET_ENUM, consumed by both agent-service tool schemas and mirrored client-side by CLAPILOT_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

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:

  • triggerReload
  • refreshTopic

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.updated
  • documents.item.updated
  • documents.list.updated
  • emails.thread.updated
  • website.session.updated
  • website.preview.updated
  • file_explorer.selection.updated
  • agent_orchestrator.run.updated

For some surfaces, list-level actions may also be needed:

  • aufgaben.board.updated
  • calendar.range.updated
  • documents.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_id is explicit
  • Notizen when note_id / page_id is 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/push stay 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

  1. Session self-healing / context rehydration for long-lived native sessions
  2. UI mutation contracts for Geplante Aufgaben, Dokumente, and E-Mail threads
  3. UI mutation contracts for Website Canvas
  4. 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.

Related docs