{"id":"684c9d8e-22a0-4bb4-a3e5-018966598450","shortId":"rsz6Pv","kind":"skill","title":"monte-carlo-asset-health","tagline":"Check the health of a data table/asset using Monte Carlo. Activates on \"how is table X\", \"check health of X\", \"is X healthy\", \"status of X\", \"check on X table\", or any health/status question about a data asset.","description":"# Monte Carlo Asset Health Skill\n\nThis skill checks the health of a data asset using Monte Carlo's observability\nplatform. It produces a structured health report covering freshness, alerts,\nmonitoring coverage, importance, and upstream dependency health.\n\n## REQUIRED: Read reference files before executing\n\n**You MUST read both reference files using the Read tool before making any MCP\ntool calls.** These files are the source of truth for tool calls, parameters,\nand response interpretation. This file only defines when to activate and how to\nformat the output.\n\n1. `references/workflows.md` (relative to this file) — exact tool calls, phases, and execution order\n2. `references/parameters.md` (relative to this file) — parameter conventions and field details\n\n**Do NOT make any MCP tool calls until you have read both files.**\n\n## When to activate this skill\n\nActivate when the user:\n\n- Asks about health: \"how is table X doing?\", \"check health of X\", \"is X healthy?\"\n- Asks about status: \"what's the status of X?\", \"status of orders table\"\n- Asks to check on a table: \"check on X table\", \"check on X\"\n- Asks about reliability, freshness, or quality of a specific asset\n- References a table in context of incident triage or change planning\n\n## When NOT to activate this skill\n\n- **Profiling or exploring table data** (row counts, column stats, distributions) → use `explore-table`\n- **Creating or suggesting monitors** → use `monitoring-advisor`\n- **Active incident triage** (investigating root cause of a firing alert) → use prevent skill Workflow 3\n\n## Health report format\n\n**CRITICAL: Only report data returned by the tools defined in `references/workflows.md`.\nDo NOT call additional tools, do NOT infer or fabricate metrics. Each row below\nspecifies exactly which tool provides its value.**\n\n**All sections (Active Alerts, Monitors, Upstream Issues, Recommendations) must\nalways appear with their heading.** Never omit a section — if there is no data,\nshow the empty-state text defined below.\n\n**Never use emoji shortcodes** (like `:warning:` or `:arrow_up:`). Use Unicode\nemoji characters directly (like ⚠️) or plain text. Shortcodes render as raw text\nin the terminal.\n\n**Always display URLs as bare URLs**, never as markdown links (e.g., `[text](url)`).\n\n**`{MC_WEBAPP_URL}` appears throughout this template.** Every occurrence must be\nreplaced with the actual value returned by calling `get_mc_webapp_url()`. Never\nhardcode or guess this URL — it varies by environment.\n\nPresent results in this structure:\n\n```\n## Health Check: <table_name>\n\n**Tags:** `tag1:value1`, `tag2:value2` (or \"None\" if no tags)\n**Link:** {MC_WEBAPP_URL}/assets/{mcon}\n**Warehouse:** snowflake-prod (Snowflake)\n**Status: 🟢 Healthy / 🟡 Degraded / 🔴 Unhealthy** | **Importance:** 0.85 (key asset ⭐️)\n**Avg Reads/Day:** ~538 | **Avg Writes/Day:** ~12\n\n| Metric        | Value                          | Signal |\n|---------------|--------------------------------|--------|\n| Last Activity | Apr 6, 2025                    | 🟢 Recent    |\n| Alerts        | 2 active                       | 🔴 Has alerts |\n| Monitoring    | 3 active monitors              | 🟢 Monitored  |\n| Upstream      | 1/3 sources unhealthy          | 🔴 Issues     |\n\n### Active Alerts\n\n| Date  | Type           | Priority | Status           | Link                                                    |\n|-------|----------------|----------|------------------|---------------------------------------------------------|\n| Apr 8 | Metric anomaly | P3       | Not acknowledged | {MC_WEBAPP_URL}/alerts/{alert_uuid} |\n| Apr 7 | Freshness      | P2       | Acknowledged     | {MC_WEBAPP_URL}/alerts/{alert_uuid} |\n\nIf there are more than 5 active alerts, display only 5. Do NOT put the overflow\nmessage inside the table as a row. Instead, put it as plain text on the line\nimmediately after the table:\n\nThere are N more alerts not shown for brevity\n\nIf there are zero active alerts, show:\nNo active alerts in the last 7 days.\n\n### Monitors\n\n| Type        | Name                                    | Incidents (7d) | Status              |\n|-------------|-----------------------------------------|----------------|---------------------|\n| TABLE       | Orders freshness and schema             | 3              | Running hourly      |\n| METRIC      | Revenue row count                       | 0              | Never executed      |\n| BULK_METRIC | Warehouse volume check                  | 21             | ⚠️ 1 table has errors |\n\nIf there are zero monitors, show:\nNo monitors configured for this table.\n\n### Upstream Issues\n- raw_orders — FRESHNESS alert: not updated in 8h\n- raw_payments — healthy\n- dim_customers — healthy\n\n> Want me to check further upstream for **raw_orders**?\n\nIf there are no upstream dependencies, show:\nNo upstream dependencies found.\n\n### Diagnosis\n\n1-2 sentences summarizing what is causing the table to be unhealthy, or\nconfirming it is healthy. This should naturally lead into the recommendations.\n\nExample (unhealthy):\nUpstream table raw_orders has not been updated in 8 hours, which is likely\ncausing staleness in this table. There are also 2 unacknowledged alerts.\n\nExample (healthy):\nTable is healthy — no active alerts, monitored, and all upstream sources\nare in good shape.\n\n### Recommendations\n- Investigate upstream raw_orders freshness — likely root cause of this table's staleness\n- Acknowledge or investigate the 2 active alerts\n\nIf there are no recommendations, show:\nNo recommendations — table looks healthy.\n\n```\n\n### Metric definitions — exact data sources\n\nEach metric row MUST use only the specified data source. Do not add, infer, or\nembellish values beyond what the tool returns.\n\n| Metric | Data source | What to show | Signal |\n|--------|------------|-------------|--------|\n| **Last Activity** | `get_table` → `last_activity` | Date of last activity (e.g., \"Apr 6, 2025\") | 🟢 Recent (within 7 days) / 🟡 Stale (older than 7 days) |\n| **Alerts** | `get_alerts` → count | \"N active\" or \"No active alerts\" | 🔴 Has alerts / 🟢 No alerts |\n| **Monitoring** | `get_monitors` → count where `is_paused` is false | \"N active monitors\" or \"0 active monitors (M paused)\". Include relevant details from monitor fields (incident counts, error counts, types). | 🟢 Monitored (≥1 active) / 🔴 Unmonitored (0 active) |\n| **Upstream** | `get_asset_lineage` (upstream) + Phase 3 checks | \"N/M sources unhealthy\" or \"All N sources healthy\" | 🔴 Issues (any unhealthy) / 🟢 Healthy (all healthy) |\n\n**Importance** is shown next to the Status line (not in the metrics table). Source:\n`get_table` → `importance_score` + `is_important`. Show \"X.XX (key asset ⭐️)\" if\nkey asset or importance > 0.8, otherwise just \"X.XX\".\n\n**Avg Reads/Day** and **Avg Writes/Day** are shown below the Status line. Source:\n`get_table` → `table_stats.avg_reads_per_active_day` and `table_stats.avg_writes_per_active_day`.\n\n**Do NOT include downstream data.** This skill only queries upstream lineage.\n\n### Status determination\n\n- **🔴 Unhealthy:** Any active alerts on the asset (from `get_alerts` with statuses `[\"NOT_ACKNOWLEDGED\", \"ACKNOWLEDGED\", \"WORK_IN_PROGRESS\"]` — see `parameters.md`)\n- **🟡 Degraded:** No active alerts, but 0 active monitors on a high-importance\n  asset (importance > 0.8 or key asset)\n- **🟢 Healthy:** No active alerts and has at least 1 active monitor\n\n### Tags\n\nDisplay tags from the `search` tool's `properties` field. Show as inline badges:\n`key:value`. If no tags exist, show \"None\". Always include the Tags line.\n\n### Warehouse\n\nDisplay the warehouse name and type from the `search` result. Always include this line.\n\n### Recommendations\n\nOnly include recommendations derivable from collected data:\n- Upstream health issues that may be root causes\n- Active alerts that need acknowledgment or investigation\n- Do NOT recommend specific monitor types — that is outside this skill's scope","tags":["asset","health","agent","toolkit","monte-carlo-data","agent-observability","agent-skills","ai-agents","claude-code","codex-skills","cursor","data-observability"],"capabilities":["skill","source-monte-carlo-data","skill-asset-health","topic-agent-observability","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-codex-skills","topic-cursor","topic-data-observability","topic-data-quality","topic-mcp","topic-monte-carlo","topic-opencode","topic-skill-md"],"categories":["mc-agent-toolkit"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/monte-carlo-data/mc-agent-toolkit/asset-health","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add monte-carlo-data/mc-agent-toolkit","source_repo":"https://github.com/monte-carlo-data/mc-agent-toolkit","install_from":"skills.sh"}},"qualityScore":"0.489","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 78 github stars · SKILL.md body (7,881 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:55:21.331Z","embedding":null,"createdAt":"2026-04-18T22:12:48.797Z","updatedAt":"2026-05-02T12:55:21.331Z","lastSeenAt":"2026-05-02T12:55:21.331Z","tsv":"'-2':656 '/alerts':501,512 '/assets':439 '0':593,839,859,979 '0.8':912,989 '0.85':451 '1':129,602,655,856,1001 '1/3':480 '12':459 '2':142,470,703,741 '2025':467,802 '21':601 '3':279,475,586,867 '5':520,525 '538':456 '6':466,801 '7':505,573,805,810 '7d':579 '8':492,690 '8h':627 'acknowledg':497,508,737,967,968,1066 'activ':16,122,168,171,240,265,317,464,471,476,484,521,564,568,712,742,790,794,798,817,820,836,840,857,860,933,939,956,976,980,995,1002,1062 'actual':399 'add':772 'addit':297 'advisor':264 'alert':72,274,318,469,473,485,502,513,522,555,565,569,623,705,713,743,812,814,821,823,825,957,963,977,996,1063 'also':702 'alway':324,372,1026,1042 'anomali':494 'appear':325,388 'apr':465,491,504,800 'arrow':353 'ask':175,190,203,216 'asset':4,43,46,57,225,453,863,906,909,960,987,992 'avg':454,457,916,919 'badg':1017 'bare':376 'beyond':777 'breviti':559 'bulk':596 'call':101,111,137,159,296,403 'carlo':3,15,45,60 'caus':270,661,695,731,1061 'chang':235 'charact':358 'check':6,22,32,51,183,205,209,213,424,600,637,868 'collect':1052 'column':250 'configur':614 'confirm':668 'context':230 'convent':149 'count':249,592,815,829,851,853 'cover':70 'coverag':74 'creat':257 'critic':283 'custom':632 'data':11,42,56,247,286,337,758,768,783,945,1053 'date':486,795 'day':574,806,811,934,940 'defin':119,291,344 'definit':756 'degrad':448,974 'depend':78,648,652 'deriv':1050 'detail':152,846 'determin':953 'diagnosi':654 'dim':631 'direct':359 'display':373,523,1005,1032 'distribut':252 'downstream':944 'e.g':382,799 'embellish':775 'emoji':348,357 'empti':341 'empty-st':340 'environ':417 'error':605,852 'everi':392 'exact':135,309,757 'exampl':679,706 'execut':85,140,595 'exist':1023 'explor':245,255 'explore-t':254 'fabric':303 'fals':834 'field':151,849,1013 'file':83,91,103,117,134,147,165 'fire':273 'format':126,282 'found':653 'fresh':71,219,506,583,622,728 'get':404,791,813,827,862,897,928,962 'good':721 'guess':411 'hardcod':409 'head':328 'health':5,8,23,47,53,68,79,177,184,280,423,1055 'health/status':38 'healthi':28,189,447,630,633,671,707,710,754,876,880,882,993 'high':985 'high-import':984 'hour':588,691 'immedi':547 'import':75,450,883,899,902,911,986,988 'incid':232,266,578,850 'includ':844,943,1027,1043,1048 'infer':301,773 'inlin':1016 'insid':532 'instead':538 'interpret':115 'investig':268,724,739,1068 'issu':321,483,619,877,1056 'key':452,905,908,991,1018 'last':463,572,789,793,797 'lead':675 'least':1000 'like':350,360,694,729 'line':546,890,926,1030,1045 'lineag':864,951 'link':381,435,490 'look':753 'm':842 'make':97,155 'markdown':380 'may':1058 'mc':385,405,436,498,509 'mcon':440 'mcp':99,157 'messag':531 'metric':304,460,493,589,597,755,761,782,894 'monitor':73,260,263,319,474,477,478,575,610,613,714,826,828,837,841,848,855,981,1003,1073 'monitoring-advisor':262 'mont':2,14,44,59 'monte-carlo-asset-health':1 'must':87,323,394,763 'n':553,816,835,874 'n/m':869 'name':577,1035 'natur':674 'need':1065 'never':329,346,378,408,594 'next':886 'none':431,1025 'observ':62 'occurr':393 'older':808 'omit':330 'order':141,201,582,621,642,684,727 'otherwis':913 'output':128 'outsid':1077 'overflow':530 'p2':507 'p3':495 'paramet':112,148 'parameters.md':973 'paus':832,843 'payment':629 'per':932,938 'phase':138,866 'plain':362,542 'plan':236 'platform':63 'present':418 'prevent':276 'prioriti':488 'prod':444 'produc':65 'profil':243 'progress':971 'properti':1012 'provid':312 'put':528,539 'qualiti':221 'queri':949 'question':39 'raw':367,620,628,641,683,726 'read':81,88,94,163,931 'reads/day':455,917 'recent':468,803 'recommend':322,678,723,748,751,1046,1049,1071 'refer':82,90,226 'references/parameters.md':143 'references/workflows.md':130,293 'relat':131,144 'relev':845 'reliabl':218 'render':365 'replac':396 'report':69,281,285 'requir':80 'respons':114 'result':419,1041 'return':287,401,781 'revenu':590 'root':269,730,1060 'row':248,306,537,591,762 'run':587 'schema':585 'scope':1081 'score':900 'search':1009,1040 'section':316,332 'see':972 'sentenc':657 'shape':722 'shortcod':349,364 'show':338,566,611,649,749,787,903,1014,1024 'shown':557,885,922 'signal':462,788 'skill':48,50,170,242,277,947,1079 'skill-asset-health' 'snowflak':443,445 'snowflake-prod':442 'sourc':106,481,718,759,769,784,870,875,896,927 'source-monte-carlo-data' 'specif':224,1072 'specifi':308,767 'stale':696,736,807 'stat':251 'state':342 'status':29,192,196,199,446,489,580,889,925,952,965 'structur':67,422 'suggest':259 'summar':658 'tabl':20,35,180,202,208,212,228,246,256,534,550,581,603,617,663,682,699,708,734,752,792,895,898,929 'table/asset':12 'table_stats.avg':930,936 'tag':425,434,1004,1006,1022,1029 'tag1':426 'tag2':428 'templat':391 'termin':371 'text':343,363,368,383,543 'throughout':389 'tool':95,100,110,136,158,290,298,311,780,1010 'topic-agent-observability' 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-codex-skills' 'topic-cursor' 'topic-data-observability' 'topic-data-quality' 'topic-mcp' 'topic-monte-carlo' 'topic-opencode' 'topic-skill-md' 'triag':233,267 'truth':108 'type':487,576,854,1037,1074 'unacknowledg':704 'unhealthi':449,482,666,680,871,879,954 'unicod':356 'unmonitor':858 'updat':625,688 'upstream':77,320,479,618,639,647,651,681,717,725,861,865,950,1054 'url':374,377,384,387,407,413,438,500,511 'use':13,58,92,253,261,275,347,355,764 'user':174 'uuid':503,514 'valu':314,400,461,776,1019 'value1':427 'value2':429 'vari':415 'volum':599 'want':634 'warehous':441,598,1031,1034 'warn':351 'webapp':386,406,437,499,510 'within':804 'work':969 'workflow':278 'write':937 'writes/day':458,920 'x':21,25,27,31,34,181,186,188,198,211,215 'x.xx':904,915 'zero':563,609","prices":[{"id":"f0178c06-ce08-4596-bbea-8014d2eedb80","listingId":"684c9d8e-22a0-4bb4-a3e5-018966598450","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"monte-carlo-data","category":"mc-agent-toolkit","install_from":"skills.sh"},"createdAt":"2026-04-18T22:12:48.797Z"}],"sources":[{"listingId":"684c9d8e-22a0-4bb4-a3e5-018966598450","source":"github","sourceId":"monte-carlo-data/mc-agent-toolkit/asset-health","sourceUrl":"https://github.com/monte-carlo-data/mc-agent-toolkit/tree/main/skills/asset-health","isPrimary":false,"firstSeenAt":"2026-04-18T22:12:48.797Z","lastSeenAt":"2026-05-02T12:55:21.331Z"}],"details":{"listingId":"684c9d8e-22a0-4bb4-a3e5-018966598450","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"monte-carlo-data","slug":"asset-health","github":{"repo":"monte-carlo-data/mc-agent-toolkit","stars":78,"topics":["agent-observability","agent-skills","ai-agents","claude-code","codex-skills","cursor","data-observability","data-quality","mcp","monte-carlo","opencode","skill-md","skillsmp","vscode"],"license":"apache-2.0","html_url":"https://github.com/monte-carlo-data/mc-agent-toolkit","pushed_at":"2026-04-30T23:25:43Z","description":"Official Monte Carlo toolkit for AI coding agents. Skills and plugins that bring data and agent observability — monitoring, triaging, troubleshooting, health checks  — into Claude Code, Cursor, and more.","skill_md_sha":"cfb9aee4b18ee2546c753b59af92ce528e2e2f67","skill_md_path":"skills/asset-health/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/monte-carlo-data/mc-agent-toolkit/tree/main/skills/asset-health"},"layout":"multi","source":"github","category":"mc-agent-toolkit","frontmatter":{"name":"monte-carlo-asset-health","description":"Check the health of a data table/asset using Monte Carlo. Activates on \"how is table X\", \"check health of X\", \"is X healthy\", \"status of X\", \"check on X table\", or any health/status question about a data asset."},"skills_sh_url":"https://skills.sh/monte-carlo-data/mc-agent-toolkit/asset-health"},"updatedAt":"2026-05-02T12:55:21.331Z"}}