{"id":91646,"plugin_id":"plugin_asdk_app_6ace4043fadc8191ab21615fc799cd72","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-11T18:09:54.698Z","digest":"0f30aea83b2eb09b48d433f87717cbe6c51943950c49a2d390164d9462e3bd25","against":null,"payload":{"description":"Use when a question touches the company's data as Maplith maps it - which business objects exist and where they live, how records connect across systems, what is wrong in the data, or what needs doing. Maplith returns a map of the data, not the records. This skill reads the map and changes nothing.","included_files":[],"name":"maplith","skill_md_contents":"---\nname: maplith\ndescription: Use when a question touches the company's data as Maplith maps it - which business objects exist and where they live, how records connect across systems, what is wrong in the data, or what needs doing. Maplith returns a map of the data, not the records. This skill reads the map and changes nothing.\n---\n\n# Maplith: read the company's data map\n\nMaplith holds a map of a company's data: the business objects and their\nfields, the system and file each one lives in, how they join across systems\nand how far each join can be trusted, the processes and metrics, findings\n(places where systems disagree) and signals (work that needs doing). It holds\nthe map, not the rows. This connection reads the map and changes nothing.\n\n## How to work\n\n1. **Orient first.** Call `get_map_overview` once at the start. It gives the\n   domains, the object names as the map spells them, the counts, how fresh\n   the map is and how far to trust it. Use those names in later calls rather\n   than guessing. If the workspace has no map yet, tell the user to build the\n   first one at app.maplith.com.\n2. **Find, then open.** When you do not know a name, call `search` with a\n   word or phrase, then `fetch` with the id of the most relevant result. For\n   an object you can name, `get_object` gives its fields, relations and\n   caveats. `get_process` and `get_metric` list the processes and metrics, or\n   read one by name. `list_sources` says which systems and files the map was\n   built from, and `list_automations` lists the automations registered\n   against the map's objects.\n3. **Questions across systems: `route`.** Pass two object names. Report the\n   hops in order: the systems crossed, the join columns of each hop, its\n   strength and its measured coverage. Name the weakest hop and say why (low\n   coverage, not measured, or guessed). Call an untested hop untested.\n4. **What is wrong: `list_findings`.** Pass status open for the open ones.\n   Give each finding's evidence and Maplith's recommendation in your own\n   words.\n5. **What needs doing: `list_signals`, then `get_task_context`.** Ask for the\n   open signals (order by urgency when the user wants the most urgent), pick\n   one and pass its id as signal_id to `get_task_context`. Report what the\n   signal is about, the objects and routes involved, the related findings,\n   any playbook the company has for it, and what the task context says not\n   to trust. `get_value_summary` counts the signals raised and acted on over\n   a period.\n6. **Questions about Maplith itself, or ones that span much of the map:\n   `ask`.** It answers with citations. It is metered, so use the direct\n   tools above for one known thing.\n\n## Rules for the answer\n\n- **The map, not the rows.** Maplith returns metadata: names, types, joins,\n  findings and the values of metrics a company chose to track. Do not invent\n  records, record counts or field values that no tool returned. When the\n  user wants records, say where they live: the system and file, the key to\n  look them up by, and how far to trust each hop on the way. The records are\n  read in the company's own systems, with the company's own access.\n- **Personal data.** Fields that hold personal data are marked as such. Say\n  that a field holds personal data and where it lives. Do not ask the user\n  for personal values, and do not repeat one that appears in evidence. When\n  the user asks for personal values, such as customers' email addresses or\n  phone numbers to export, call no tool: explain that Maplith returns\n  metadata, not records, and cannot export contact details.\n  Maplith tries to mask personal identifiers in descriptions and evidence, as\n  a best effort.\n- **Say what is uncertain.** Read the caveats on joins, metrics and findings\n  before citing them. A weak, unmeasured or guessed join is an estimate, and\n  the answer says which.\n- **Read only.** These tools do not change the map, a finding or anything in\n  the company's systems. When the user asks for a change, such as pausing a\n  campaign, closing a finding or fixing a record, call no tool and do not\n  claim to have done it. Explain that this connection is read-only, and say\n  who makes the change and where: a person with access to the system makes\n  it there, and a workspace member changes a finding's status in Maplith.\n- **Credentials.** Do not ask for or reveal keys, passwords or tokens; no\n  tool returns one.\n- **Errors.** When a tool answers with an error, follow the next step it\n  names, for example look up the names with `get_map_overview` or `search`,\n  then call again.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}