[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-tres-data-collection-commit":3,"mdc--2cf9pq-key":37,"related-repo-anthropic-tres-data-collection-commit":1683,"related-org-anthropic-tres-data-collection-commit":1787},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"tres-data-collection-commit","trigger on-chain data collection in Tres","Trigger on-chain data collection (a \"Commit\") in Tres Finance for wallets that have already been onboarded. Use this skill whenever the user wants to collect data, pull balances, sync wallets, refresh on-chain data, run a commit, trigger a commit, or \"collect\" anything in Tres. This is the second step of the Tres onboarding flow — it sits between wallet upload (tres-wallets-upload) and balance validation (tres-asset-balance-validation). Always trigger this skill for any request that mentions \"commit\", \"collect\", \"data collection\", \"pull data\", \"fetch on-chain data\", \"sync wallets\", \"refresh balances\", or anytime the user just finished uploading wallets and is ready to bring in their on-chain data.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Data Engineering","data-engineering","tag",{"name":18,"slug":19,"type":16},"Finance","finance",{"name":21,"slug":22,"type":16},"Web3","web3",{"name":24,"slug":25,"type":16},"Ethereum","ethereum",294,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-community","2026-07-02T07:37:45.405733",null,69,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Community plugin marketplace for Claude Cowork and Claude Code. Read-only mirror — submit plugins at clau.de\u002Fplugin-directory-submission.","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-community\u002Ftree\u002FHEAD\u002Ftres-finance-plugin\u002Fskills\u002Ftres-data-collection-commit","---\nname: tres-data-collection-commit\ndescription: >\n  Trigger on-chain data collection (a \"Commit\") in Tres Finance for wallets that\n  have already been onboarded. Use this skill whenever the user wants to collect\n  data, pull balances, sync wallets, refresh on-chain data, run a commit, trigger\n  a commit, or \"collect\" anything in Tres. This is the second step of the Tres\n  onboarding flow — it sits between wallet upload (tres-wallets-upload) and balance\n  validation (tres-asset-balance-validation). Always trigger this skill for any\n  request that mentions \"commit\", \"collect\", \"data collection\", \"pull data\",\n  \"fetch on-chain data\", \"sync wallets\", \"refresh balances\", or anytime the user\n  just finished uploading wallets and is ready to bring in their on-chain data.\ncompatibility: \"Requires TRES Finance MCP connected (https:\u002F\u002Fai.tres.finance\u002Fmcp)\"\n---\n\n# Tres Finance — Data Collection (Commit)\n\n## Overview\n\nCommit is the step that pulls on-chain data into Tres Finance for the wallets\nalready onboarded to the org. It runs the platform's data-collection pipeline for\neach wallet and either:\n\n- **Full data collection** — collects the full transaction history *and* current\n  balances. Used for a complete onboarding or historical backfill.\n- **Balances only** — collects only the current asset balances (no transactions).\n  Much faster; useful when the user just wants an up-to-date snapshot or is\n  preparing for a quick balance validation.\n\nThis skill is the **second step** of the customer onboarding flow:\n\n1. **Upload wallets** (`tres-wallets-upload`) — register the wallets in Tres.\n2. **Collect data (this skill)** — run the commit so Tres actually fetches the\n   on-chain state.\n3. **Validate balances** (`tres-asset-balance-validation`) — cross-check the\n   collected balances against DeBank.\n\n## When to Use\n\nTrigger this skill whenever the user wants to:\n\n- Run a commit \u002F trigger a commit \u002F kick off data collection\n- Collect on-chain data into Tres\n- Pull balances or transactions for their wallets\n- Sync wallets that were just added\n- Refresh Tres data after adding new wallets\n\n**Example phrases that must trigger this skill:**\n\n- *\"Run the commit\"* \u002F *\"Trigger the commit\"*\n- *\"Collect the data for my wallets\"*\n- *\"Pull balances for everything\"*\n- *\"I just added wallets — now collect the data\"*\n- *\"Sync my wallets\"*\n- *\"Start the data collection\"*\n\n---\n\n## Prerequisites\n\n| Requirement | Details |\n|---|---|\n| TRES Finance MCP connected | The TRES MCP tools (`get_viewer`, `execute`, `build_query`, `introspect`) must be available |\n| Authenticated org | `get_viewer` must succeed and return an `orgName` |\n| At least one wallet onboarded | If there are no wallets, commit has nothing to collect — point the user to `tres-wallets-upload` first |\n\n---\n\n## Process Overview\n\nFollow these steps in order. Do **not** skip the user-selection steps — the\nwhole point of this skill is to capture the user's collection intent before\nfiring the mutation.\n\n### Step 1 — Confirm authentication\n\nCall `get_viewer` to verify the user is authenticated to Tres and note the\n`orgName`. Mention it in the confirmation summary later so the user knows which\norg the commit will run against.\n\nIf `get_viewer` fails: tell the user the TRES MCP is not connected and ask them\nto connect it before continuing.\n\n### Step 2 — Ask: full data or balances only?\n\nThis is the core choice of the skill. Ask the user **exactly** this (using the\n`AskUserQuestion` tool if available, otherwise plain text):\n\n> **What do you want to collect?**\n>\n> 1. **Full data collection** — collects all transactions and current balances.\n>    Slower, but produces a complete ledger. Use this for first-time onboarding\n>    or historical backfill.\n> 2. **Balances only** — collects only current balances, no transactions. Fast.\n>    Use this when you just want an up-to-date balance snapshot (for example,\n>    before running balance validation).\n\nMap the answer to the GraphQL parameter `balancesOnly`:\n\n| User choice | `balancesOnly` |\n|---|---|\n| Full data collection | `false` |\n| Balances only | `true` |\n\nIf the user is unsure, recommend **Full data collection** as the default for\nfirst-time onboarding (because skipping transactions means the ledger will be\nempty even after commit succeeds).\n\n### Step 3 — Ask: all wallets, or specific wallets?\n\nAsk the user whether the commit should run on every wallet or a subset:\n\n> **Which wallets should I collect data for?**\n>\n> 1. **All wallets** — run the commit across every wallet in the org.\n> 2. **Specific wallets** — only collect data for wallets I pick.\n\nIf the user chooses **All wallets**: set `internalAccountIds = null` (omit the\nfield in the mutation variables, or pass `null`).\n\nIf the user chooses **Specific wallets**:\n\n1. Fetch the list of wallets from Tres so the user can pick from real options:\n   ```graphql\n   query ListWalletsForCommit {\n     internalAccount {\n       totalCount\n       results {\n         id\n         name\n         identifier\n         parentPlatform\n       }\n     }\n   }\n   ```\n2. Present the wallets as a numbered plain-text list (name + short address +\n   platform). If there are more than ~25 wallets, show the first 25 and tell\n   the user they can reply with wallet names, addresses, or IDs to narrow down.\n3. Let the user respond conversationally (\"the three Ethereum ones\", \"Treasury\n   Hot and Cold Storage\", \"IDs 123, 456, 789\", etc.). Resolve their response to\n   a list of internal account `id` values. Never call the mutation with an\n   unresolved name — always resolve to IDs first.\n4. If you cannot confidently resolve a wallet the user named, ask them to\n   clarify instead of guessing.\n\n### Step 4 — Confirm before firing the mutation\n\nShow a short plain-text summary of exactly what is about to happen and ask for\nexplicit confirmation. Example:\n\n```\nAbout to trigger a Commit in Tres Finance:\n\n  Org:       Acme Labs\n  Mode:      Full data collection (transactions + balances)\n  Wallets:   All wallets in the org\n\nShall I run it now?\n```\n\nOr, for a scoped run:\n\n```\nAbout to trigger a Commit in Tres Finance:\n\n  Org:       Acme Labs\n  Mode:      Balances only\n  Wallets:   3 selected\n             - Treasury Hot (0x1887...3Cdd, ETHEREUM)\n             - Cold Storage (bc1q...xyz, BITCOIN)\n             - Ops Main (0x89Ba...92a8, POLYGON)\n\nShall I run it now?\n```\n\nWait for an affirmative reply (`yes`, `confirm`, `go ahead`). Anything else:\ntreat as \"not yet\" and ask what to change.\n\n### Step 5 — Trigger the commit\n\nRun the `triggerCommit` mutation via the TRES MCP `execute` tool:\n\n```graphql\nmutation TriggerCommit(\n  $balancesOnly: Boolean\n  $internalAccountIds: [ID]\n) {\n  triggerCommit(\n    balancesOnly: $balancesOnly\n    internalAccountIds: $internalAccountIds\n  ) {\n    status\n    message\n    commitId\n  }\n}\n```\n\nVariable mapping:\n\n| Variable | Value |\n|---|---|\n| `balancesOnly` | `true` (balances only) or `false` (full data) from Step 2 |\n| `internalAccountIds` | `null` for all wallets, or an array of wallet IDs from Step 3 |\n\nDo not pass `fromDate`, `toDate`, or `commitId` unless the user specifically\nasked for a date range or a retry of a specific commit — the onboarding flow\nshould just let Tres pick the defaults.\n\n> All variable keys must be **camelCase** (e.g. `balancesOnly`,\n> `internalAccountIds`). The TRES GraphQL API rejects snake_case.\n\n### Step 6 — Report the result\n\nThe mutation returns three fields:\n\n- `status` — a **Boolean**. `true` = the commit was accepted and enqueued;\n  `false` = the trigger itself failed.\n- `message` — a short human-readable string (e.g., `\"Commit triggered\"`).\n  Show it verbatim.\n- `commitId` — a UUID for this run; show it so the user can reference the job\n  later (and so you can pass it to a future status-check tool).\n\nExample response to the user when `status == true`:\n\n```\n✅ Commit triggered successfully.\n\n  Status:    true\n  Message:   Commit triggered\n  Commit ID: c93a6d31-2f98-4eae-859f-80b010048fbd\n\nData collection is now running in the background. You will typically see\nbalances appear within a few minutes; full data collection can take longer\ndepending on history length and the number of wallets.\n```\n\nIf `status == false`, treat it as a failure: show the `message` verbatim and\noffer the user next steps: re-run the commit, check wallet configuration, or\ncontact support if the error is opaque.\n\n### Step 7 — Point to the next onboarding step\n\nAs the final part of the response (after the success\u002Ferror report), remind the\nuser that Commit is step 2 of the onboarding flow and the next step is balance\nvalidation. Word it so it is clearly a suggestion, not an automatic action:\n\n> **Next step in onboarding:** once the commit has finished collecting your\n> current balances, the next thing to do is validate them against DeBank. Just\n> say *\"validate my balances\"* and I'll run the Balance Validation skill for\n> you.\n\nDo **not** auto-trigger the validation skill — the user must opt in, because\nthe commit runs asynchronously and the data may not be ready immediately.\n\n---\n\n## Important Notes\n\n- **Async execution.** `triggerCommit` enqueues the job; it does not block on\n  completion. The returned `commitId` lets the user (or another skill) check\n  status later.\n- **Balances only ≠ no writes.** Even in balances-only mode, Tres updates the\n  per-wallet balance snapshots. It only skips transaction ingestion.\n- **No wallets uploaded yet?** If the user triggers this skill before onboarding\n  any wallets, `internalAccount` will return `totalCount: 0`. Tell the user\n  they need to add wallets first (point to `tres-wallets-upload`) and stop.\n- **Partial failures.** It is possible for the commit to succeed for some\n  wallets and fail for others. The top-level `status` and `message` give the\n  summary; deeper diagnostics live in the TRES UI under Data Collection logs.\n- **Idempotency.** Re-running a commit on the same wallet is safe — Tres\n  deduplicates transactions by on-chain identifier.\n\n---\n\n## Error Handling\n\n| Situation | Response |\n|---|---|\n| `get_viewer` fails | Tell the user the TRES MCP is not connected; stop. |\n| `internalAccount.totalCount == 0` | Tell the user there are no wallets to commit; point to the `tres-wallets-upload` skill; stop. |\n| Mutation returns non-success `status` | Show the raw `status` and `message`; offer to retry or investigate. |\n| User provides wallet names that can't be resolved | Ask for clarification instead of guessing; never send unresolved names to the mutation. |\n| User asks for a date range | Accept `fromDate` \u002F `toDate` as ISO 8601 UTC and pass them through; confirm the range in the summary before firing. |\n| User asks to cancel a running commit | Out of scope for this skill. Mention that `killCommits` exists and offer to hand off to another skill or the TRES UI. |\n\n---\n\n## Examples\n\n**Example 1 — First-time onboarding, all wallets, full data:**\n\n```\nUser: I just uploaded my wallets. Collect the data.\n\nClaude: [runs get_viewer → \"Acme Labs\"]\n        What do you want to collect?\n          1. Full data collection (transactions + balances)\n          2. Balances only\n\nUser: Full.\n\nClaude: Which wallets?\n          1. All wallets\n          2. Specific wallets\n\nUser: All.\n\nClaude: About to trigger a Commit in Tres Finance:\n          Org:     Acme Labs\n          Mode:    Full data collection\n          Wallets: All wallets in the org\n        Shall I run it now?\n\nUser: Yes.\n\nClaude: [runs triggerCommit(balancesOnly: false)]\n        ✅ Commit triggered successfully.\n          Status:    SUCCESS\n          Message:   Commit enqueued for 12 wallets.\n          Commit ID: 9f2e5c4a-...\n        Next step: once collection finishes, run balance validation.\n```\n\n**Future enhancement (not implemented in v1):**\n\nA natural follow-up is to optionally **wait** inside this skill until the\ncommit completes (poll `internalAccount.status` until every targeted wallet is\nback to `READY` and `lastSyncedAt` is newer than the trigger time), then notify\nthe user that they can safely run the balance validation skill. The current\nv1 design intentionally exits after triggering — full-data commits can take a\nlong time, and polling synchronously inside chat is painful at the long end.\nA companion guard inside `tres-asset-balance-validation` (refusing to run, or\nwarning, while a commit is in progress) is the other half of that story.\n\n---\n\n**Example 2 — Quick balance refresh for two wallets:**\n\n```\nUser: Can you just pull balances for my Ethereum treasury wallets?\n\nClaude: [runs get_viewer]\n        What do you want to collect?\n          1. Full data collection\n          2. Balances only  ← fits \"just pull balances\"\n\nUser: Balances only.\n\nClaude: Which wallets?\n          1. All wallets\n          2. Specific wallets\n\nUser: Specific — Treasury Hot and Treasury Cold.\n\nClaude: [queries internalAccount, resolves the two wallets by name]\n        About to trigger a Commit in Tres Finance:\n          Mode:    Balances only\n          Wallets: 2 selected\n                   - Treasury Hot (0x1887...3Cdd, ETHEREUM)\n                   - Treasury Cold (0x89Ba...92a8, ETHEREUM)\n        Shall I run it now?\n\nUser: Go.\n\nClaude: [runs triggerCommit(balancesOnly: true, internalAccountIds: [...])]\n        ✅ Commit triggered. Commit ID: ...\n```\n",{"data":38,"body":40},{"name":4,"description":6,"compatibility":39},"Requires TRES Finance MCP connected (https:\u002F\u002Fai.tres.finance\u002Fmcp)",{"type":41,"children":42},"root",[43,52,59,65,99,111,161,167,172,200,208,266,270,276,391,394,400,412,419,438,450,456,476,509,522,579,590,596,601,635,662,671,814,820,825,835,840,849,876,882,902,1013,1018,1090,1118,1147,1153,1158,1222,1234,1243,1262,1268,1273,1293,1304,1307,1313,1417,1420,1426,1581,1584,1590,1598,1607,1615,1657,1660,1668,1677],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"tres-finance-data-collection-commit",[49],{"type":50,"value":51},"text","Tres Finance — Data Collection (Commit)",{"type":44,"tag":53,"props":54,"children":56},"h2",{"id":55},"overview",[57],{"type":50,"value":58},"Overview",{"type":44,"tag":60,"props":61,"children":62},"p",{},[63],{"type":50,"value":64},"Commit is the step that pulls on-chain data into Tres Finance for the wallets\nalready onboarded to the org. It runs the platform's data-collection pipeline for\neach wallet and either:",{"type":44,"tag":66,"props":67,"children":68},"ul",{},[69,89],{"type":44,"tag":70,"props":71,"children":72},"li",{},[73,79,81,87],{"type":44,"tag":74,"props":75,"children":76},"strong",{},[77],{"type":50,"value":78},"Full data collection",{"type":50,"value":80}," — collects the full transaction history ",{"type":44,"tag":82,"props":83,"children":84},"em",{},[85],{"type":50,"value":86},"and",{"type":50,"value":88}," current\nbalances. Used for a complete onboarding or historical backfill.",{"type":44,"tag":70,"props":90,"children":91},{},[92,97],{"type":44,"tag":74,"props":93,"children":94},{},[95],{"type":50,"value":96},"Balances only",{"type":50,"value":98}," — collects only the current asset balances (no transactions).\nMuch faster; useful when the user just wants an up-to-date snapshot or is\npreparing for a quick balance validation.",{"type":44,"tag":60,"props":100,"children":101},{},[102,104,109],{"type":50,"value":103},"This skill is the ",{"type":44,"tag":74,"props":105,"children":106},{},[107],{"type":50,"value":108},"second step",{"type":50,"value":110}," of the customer onboarding flow:",{"type":44,"tag":112,"props":113,"children":114},"ol",{},[115,134,144],{"type":44,"tag":70,"props":116,"children":117},{},[118,123,125,132],{"type":44,"tag":74,"props":119,"children":120},{},[121],{"type":50,"value":122},"Upload wallets",{"type":50,"value":124}," (",{"type":44,"tag":126,"props":127,"children":129},"code",{"className":128},[],[130],{"type":50,"value":131},"tres-wallets-upload",{"type":50,"value":133},") — register the wallets in Tres.",{"type":44,"tag":70,"props":135,"children":136},{},[137,142],{"type":44,"tag":74,"props":138,"children":139},{},[140],{"type":50,"value":141},"Collect data (this skill)",{"type":50,"value":143}," — run the commit so Tres actually fetches the\non-chain state.",{"type":44,"tag":70,"props":145,"children":146},{},[147,152,153,159],{"type":44,"tag":74,"props":148,"children":149},{},[150],{"type":50,"value":151},"Validate balances",{"type":50,"value":124},{"type":44,"tag":126,"props":154,"children":156},{"className":155},[],[157],{"type":50,"value":158},"tres-asset-balance-validation",{"type":50,"value":160},") — cross-check the\ncollected balances against DeBank.",{"type":44,"tag":53,"props":162,"children":164},{"id":163},"when-to-use",[165],{"type":50,"value":166},"When to Use",{"type":44,"tag":60,"props":168,"children":169},{},[170],{"type":50,"value":171},"Trigger this skill whenever the user wants to:",{"type":44,"tag":66,"props":173,"children":174},{},[175,180,185,190,195],{"type":44,"tag":70,"props":176,"children":177},{},[178],{"type":50,"value":179},"Run a commit \u002F trigger a commit \u002F kick off data collection",{"type":44,"tag":70,"props":181,"children":182},{},[183],{"type":50,"value":184},"Collect on-chain data into Tres",{"type":44,"tag":70,"props":186,"children":187},{},[188],{"type":50,"value":189},"Pull balances or transactions for their wallets",{"type":44,"tag":70,"props":191,"children":192},{},[193],{"type":50,"value":194},"Sync wallets that were just added",{"type":44,"tag":70,"props":196,"children":197},{},[198],{"type":50,"value":199},"Refresh Tres data after adding new wallets",{"type":44,"tag":60,"props":201,"children":202},{},[203],{"type":44,"tag":74,"props":204,"children":205},{},[206],{"type":50,"value":207},"Example phrases that must trigger this skill:",{"type":44,"tag":66,"props":209,"children":210},{},[211,226,234,242,250,258],{"type":44,"tag":70,"props":212,"children":213},{},[214,219,221],{"type":44,"tag":82,"props":215,"children":216},{},[217],{"type":50,"value":218},"\"Run the commit\"",{"type":50,"value":220}," \u002F ",{"type":44,"tag":82,"props":222,"children":223},{},[224],{"type":50,"value":225},"\"Trigger the commit\"",{"type":44,"tag":70,"props":227,"children":228},{},[229],{"type":44,"tag":82,"props":230,"children":231},{},[232],{"type":50,"value":233},"\"Collect the data for my wallets\"",{"type":44,"tag":70,"props":235,"children":236},{},[237],{"type":44,"tag":82,"props":238,"children":239},{},[240],{"type":50,"value":241},"\"Pull balances for everything\"",{"type":44,"tag":70,"props":243,"children":244},{},[245],{"type":44,"tag":82,"props":246,"children":247},{},[248],{"type":50,"value":249},"\"I just added wallets — now collect the data\"",{"type":44,"tag":70,"props":251,"children":252},{},[253],{"type":44,"tag":82,"props":254,"children":255},{},[256],{"type":50,"value":257},"\"Sync my wallets\"",{"type":44,"tag":70,"props":259,"children":260},{},[261],{"type":44,"tag":82,"props":262,"children":263},{},[264],{"type":50,"value":265},"\"Start the data collection\"",{"type":44,"tag":267,"props":268,"children":269},"hr",{},[],{"type":44,"tag":53,"props":271,"children":273},{"id":272},"prerequisites",[274],{"type":50,"value":275},"Prerequisites",{"type":44,"tag":277,"props":278,"children":279},"table",{},[280,299],{"type":44,"tag":281,"props":282,"children":283},"thead",{},[284],{"type":44,"tag":285,"props":286,"children":287},"tr",{},[288,294],{"type":44,"tag":289,"props":290,"children":291},"th",{},[292],{"type":50,"value":293},"Requirement",{"type":44,"tag":289,"props":295,"children":296},{},[297],{"type":50,"value":298},"Details",{"type":44,"tag":300,"props":301,"children":302},"tbody",{},[303,347,371],{"type":44,"tag":285,"props":304,"children":305},{},[306,312],{"type":44,"tag":307,"props":308,"children":309},"td",{},[310],{"type":50,"value":311},"TRES Finance MCP connected",{"type":44,"tag":307,"props":313,"children":314},{},[315,317,323,325,331,332,338,339,345],{"type":50,"value":316},"The TRES MCP tools (",{"type":44,"tag":126,"props":318,"children":320},{"className":319},[],[321],{"type":50,"value":322},"get_viewer",{"type":50,"value":324},", ",{"type":44,"tag":126,"props":326,"children":328},{"className":327},[],[329],{"type":50,"value":330},"execute",{"type":50,"value":324},{"type":44,"tag":126,"props":333,"children":335},{"className":334},[],[336],{"type":50,"value":337},"build_query",{"type":50,"value":324},{"type":44,"tag":126,"props":340,"children":342},{"className":341},[],[343],{"type":50,"value":344},"introspect",{"type":50,"value":346},") must be available",{"type":44,"tag":285,"props":348,"children":349},{},[350,355],{"type":44,"tag":307,"props":351,"children":352},{},[353],{"type":50,"value":354},"Authenticated org",{"type":44,"tag":307,"props":356,"children":357},{},[358,363,365],{"type":44,"tag":126,"props":359,"children":361},{"className":360},[],[362],{"type":50,"value":322},{"type":50,"value":364}," must succeed and return an ",{"type":44,"tag":126,"props":366,"children":368},{"className":367},[],[369],{"type":50,"value":370},"orgName",{"type":44,"tag":285,"props":372,"children":373},{},[374,379],{"type":44,"tag":307,"props":375,"children":376},{},[377],{"type":50,"value":378},"At least one wallet onboarded",{"type":44,"tag":307,"props":380,"children":381},{},[382,384,389],{"type":50,"value":383},"If there are no wallets, commit has nothing to collect — point the user to ",{"type":44,"tag":126,"props":385,"children":387},{"className":386},[],[388],{"type":50,"value":131},{"type":50,"value":390}," first",{"type":44,"tag":267,"props":392,"children":393},{},[],{"type":44,"tag":53,"props":395,"children":397},{"id":396},"process-overview",[398],{"type":50,"value":399},"Process Overview",{"type":44,"tag":60,"props":401,"children":402},{},[403,405,410],{"type":50,"value":404},"Follow these steps in order. Do ",{"type":44,"tag":74,"props":406,"children":407},{},[408],{"type":50,"value":409},"not",{"type":50,"value":411}," skip the user-selection steps — the\nwhole point of this skill is to capture the user's collection intent before\nfiring the mutation.",{"type":44,"tag":413,"props":414,"children":416},"h3",{"id":415},"step-1-confirm-authentication",[417],{"type":50,"value":418},"Step 1 — Confirm authentication",{"type":44,"tag":60,"props":420,"children":421},{},[422,424,429,431,436],{"type":50,"value":423},"Call ",{"type":44,"tag":126,"props":425,"children":427},{"className":426},[],[428],{"type":50,"value":322},{"type":50,"value":430}," to verify the user is authenticated to Tres and note the\n",{"type":44,"tag":126,"props":432,"children":434},{"className":433},[],[435],{"type":50,"value":370},{"type":50,"value":437},". Mention it in the confirmation summary later so the user knows which\norg the commit will run against.",{"type":44,"tag":60,"props":439,"children":440},{},[441,443,448],{"type":50,"value":442},"If ",{"type":44,"tag":126,"props":444,"children":446},{"className":445},[],[447],{"type":50,"value":322},{"type":50,"value":449}," fails: tell the user the TRES MCP is not connected and ask them\nto connect it before continuing.",{"type":44,"tag":413,"props":451,"children":453},{"id":452},"step-2-ask-full-data-or-balances-only",[454],{"type":50,"value":455},"Step 2 — Ask: full data or balances only?",{"type":44,"tag":60,"props":457,"children":458},{},[459,461,466,468,474],{"type":50,"value":460},"This is the core choice of the skill. Ask the user ",{"type":44,"tag":74,"props":462,"children":463},{},[464],{"type":50,"value":465},"exactly",{"type":50,"value":467}," this (using the\n",{"type":44,"tag":126,"props":469,"children":471},{"className":470},[],[472],{"type":50,"value":473},"AskUserQuestion",{"type":50,"value":475}," tool if available, otherwise plain text):",{"type":44,"tag":477,"props":478,"children":479},"blockquote",{},[480,488],{"type":44,"tag":60,"props":481,"children":482},{},[483],{"type":44,"tag":74,"props":484,"children":485},{},[486],{"type":50,"value":487},"What do you want to collect?",{"type":44,"tag":112,"props":489,"children":490},{},[491,500],{"type":44,"tag":70,"props":492,"children":493},{},[494,498],{"type":44,"tag":74,"props":495,"children":496},{},[497],{"type":50,"value":78},{"type":50,"value":499}," — collects all transactions and current balances.\nSlower, but produces a complete ledger. Use this for first-time onboarding\nor historical backfill.",{"type":44,"tag":70,"props":501,"children":502},{},[503,507],{"type":44,"tag":74,"props":504,"children":505},{},[506],{"type":50,"value":96},{"type":50,"value":508}," — collects only current balances, no transactions. Fast.\nUse this when you just want an up-to-date balance snapshot (for example,\nbefore running balance validation).",{"type":44,"tag":60,"props":510,"children":511},{},[512,514,520],{"type":50,"value":513},"Map the answer to the GraphQL parameter ",{"type":44,"tag":126,"props":515,"children":517},{"className":516},[],[518],{"type":50,"value":519},"balancesOnly",{"type":50,"value":521},":",{"type":44,"tag":277,"props":523,"children":524},{},[525,544],{"type":44,"tag":281,"props":526,"children":527},{},[528],{"type":44,"tag":285,"props":529,"children":530},{},[531,536],{"type":44,"tag":289,"props":532,"children":533},{},[534],{"type":50,"value":535},"User choice",{"type":44,"tag":289,"props":537,"children":538},{},[539],{"type":44,"tag":126,"props":540,"children":542},{"className":541},[],[543],{"type":50,"value":519},{"type":44,"tag":300,"props":545,"children":546},{},[547,563],{"type":44,"tag":285,"props":548,"children":549},{},[550,554],{"type":44,"tag":307,"props":551,"children":552},{},[553],{"type":50,"value":78},{"type":44,"tag":307,"props":555,"children":556},{},[557],{"type":44,"tag":126,"props":558,"children":560},{"className":559},[],[561],{"type":50,"value":562},"false",{"type":44,"tag":285,"props":564,"children":565},{},[566,570],{"type":44,"tag":307,"props":567,"children":568},{},[569],{"type":50,"value":96},{"type":44,"tag":307,"props":571,"children":572},{},[573],{"type":44,"tag":126,"props":574,"children":576},{"className":575},[],[577],{"type":50,"value":578},"true",{"type":44,"tag":60,"props":580,"children":581},{},[582,584,588],{"type":50,"value":583},"If the user is unsure, recommend ",{"type":44,"tag":74,"props":585,"children":586},{},[587],{"type":50,"value":78},{"type":50,"value":589}," as the default for\nfirst-time onboarding (because skipping transactions means the ledger will be\nempty even after commit succeeds).",{"type":44,"tag":413,"props":591,"children":593},{"id":592},"step-3-ask-all-wallets-or-specific-wallets",[594],{"type":50,"value":595},"Step 3 — Ask: all wallets, or specific wallets?",{"type":44,"tag":60,"props":597,"children":598},{},[599],{"type":50,"value":600},"Ask the user whether the commit should run on every wallet or a subset:",{"type":44,"tag":477,"props":602,"children":603},{},[604,612],{"type":44,"tag":60,"props":605,"children":606},{},[607],{"type":44,"tag":74,"props":608,"children":609},{},[610],{"type":50,"value":611},"Which wallets should I collect data for?",{"type":44,"tag":112,"props":613,"children":614},{},[615,625],{"type":44,"tag":70,"props":616,"children":617},{},[618,623],{"type":44,"tag":74,"props":619,"children":620},{},[621],{"type":50,"value":622},"All wallets",{"type":50,"value":624}," — run the commit across every wallet in the org.",{"type":44,"tag":70,"props":626,"children":627},{},[628,633],{"type":44,"tag":74,"props":629,"children":630},{},[631],{"type":50,"value":632},"Specific wallets",{"type":50,"value":634}," — only collect data for wallets I pick.",{"type":44,"tag":60,"props":636,"children":637},{},[638,640,644,646,652,654,660],{"type":50,"value":639},"If the user chooses ",{"type":44,"tag":74,"props":641,"children":642},{},[643],{"type":50,"value":622},{"type":50,"value":645},": set ",{"type":44,"tag":126,"props":647,"children":649},{"className":648},[],[650],{"type":50,"value":651},"internalAccountIds = null",{"type":50,"value":653}," (omit the\nfield in the mutation variables, or pass ",{"type":44,"tag":126,"props":655,"children":657},{"className":656},[],[658],{"type":50,"value":659},"null",{"type":50,"value":661},").",{"type":44,"tag":60,"props":663,"children":664},{},[665,666,670],{"type":50,"value":639},{"type":44,"tag":74,"props":667,"children":668},{},[669],{"type":50,"value":632},{"type":50,"value":521},{"type":44,"tag":112,"props":672,"children":673},{},[674,791,796,809],{"type":44,"tag":70,"props":675,"children":676},{},[677,679],{"type":50,"value":678},"Fetch the list of wallets from Tres so the user can pick from real options:\n",{"type":44,"tag":680,"props":681,"children":686},"pre",{"className":682,"code":683,"language":684,"meta":685,"style":685},"language-graphql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","query ListWalletsForCommit {\n  internalAccount {\n    totalCount\n    results {\n      id\n      name\n      identifier\n      parentPlatform\n    }\n  }\n}\n","graphql","",[687],{"type":44,"tag":126,"props":688,"children":689},{"__ignoreMap":685},[690,701,710,719,728,737,746,755,764,773,782],{"type":44,"tag":691,"props":692,"children":695},"span",{"class":693,"line":694},"line",1,[696],{"type":44,"tag":691,"props":697,"children":698},{},[699],{"type":50,"value":700},"query ListWalletsForCommit {\n",{"type":44,"tag":691,"props":702,"children":704},{"class":693,"line":703},2,[705],{"type":44,"tag":691,"props":706,"children":707},{},[708],{"type":50,"value":709},"  internalAccount {\n",{"type":44,"tag":691,"props":711,"children":713},{"class":693,"line":712},3,[714],{"type":44,"tag":691,"props":715,"children":716},{},[717],{"type":50,"value":718},"    totalCount\n",{"type":44,"tag":691,"props":720,"children":722},{"class":693,"line":721},4,[723],{"type":44,"tag":691,"props":724,"children":725},{},[726],{"type":50,"value":727},"    results {\n",{"type":44,"tag":691,"props":729,"children":731},{"class":693,"line":730},5,[732],{"type":44,"tag":691,"props":733,"children":734},{},[735],{"type":50,"value":736},"      id\n",{"type":44,"tag":691,"props":738,"children":740},{"class":693,"line":739},6,[741],{"type":44,"tag":691,"props":742,"children":743},{},[744],{"type":50,"value":745},"      name\n",{"type":44,"tag":691,"props":747,"children":749},{"class":693,"line":748},7,[750],{"type":44,"tag":691,"props":751,"children":752},{},[753],{"type":50,"value":754},"      identifier\n",{"type":44,"tag":691,"props":756,"children":758},{"class":693,"line":757},8,[759],{"type":44,"tag":691,"props":760,"children":761},{},[762],{"type":50,"value":763},"      parentPlatform\n",{"type":44,"tag":691,"props":765,"children":767},{"class":693,"line":766},9,[768],{"type":44,"tag":691,"props":769,"children":770},{},[771],{"type":50,"value":772},"    }\n",{"type":44,"tag":691,"props":774,"children":776},{"class":693,"line":775},10,[777],{"type":44,"tag":691,"props":778,"children":779},{},[780],{"type":50,"value":781},"  }\n",{"type":44,"tag":691,"props":783,"children":785},{"class":693,"line":784},11,[786],{"type":44,"tag":691,"props":787,"children":788},{},[789],{"type":50,"value":790},"}\n",{"type":44,"tag":70,"props":792,"children":793},{},[794],{"type":50,"value":795},"Present the wallets as a numbered plain-text list (name + short address +\nplatform). If there are more than ~25 wallets, show the first 25 and tell\nthe user they can reply with wallet names, addresses, or IDs to narrow down.",{"type":44,"tag":70,"props":797,"children":798},{},[799,801,807],{"type":50,"value":800},"Let the user respond conversationally (\"the three Ethereum ones\", \"Treasury\nHot and Cold Storage\", \"IDs 123, 456, 789\", etc.). Resolve their response to\na list of internal account ",{"type":44,"tag":126,"props":802,"children":804},{"className":803},[],[805],{"type":50,"value":806},"id",{"type":50,"value":808}," values. Never call the mutation with an\nunresolved name — always resolve to IDs first.",{"type":44,"tag":70,"props":810,"children":811},{},[812],{"type":50,"value":813},"If you cannot confidently resolve a wallet the user named, ask them to\nclarify instead of guessing.",{"type":44,"tag":413,"props":815,"children":817},{"id":816},"step-4-confirm-before-firing-the-mutation",[818],{"type":50,"value":819},"Step 4 — Confirm before firing the mutation",{"type":44,"tag":60,"props":821,"children":822},{},[823],{"type":50,"value":824},"Show a short plain-text summary of exactly what is about to happen and ask for\nexplicit confirmation. Example:",{"type":44,"tag":680,"props":826,"children":830},{"className":827,"code":829,"language":50},[828],"language-text","About to trigger a Commit in Tres Finance:\n\n  Org:       Acme Labs\n  Mode:      Full data collection (transactions + balances)\n  Wallets:   All wallets in the org\n\nShall I run it now?\n",[831],{"type":44,"tag":126,"props":832,"children":833},{"__ignoreMap":685},[834],{"type":50,"value":829},{"type":44,"tag":60,"props":836,"children":837},{},[838],{"type":50,"value":839},"Or, for a scoped run:",{"type":44,"tag":680,"props":841,"children":844},{"className":842,"code":843,"language":50},[828],"About to trigger a Commit in Tres Finance:\n\n  Org:       Acme Labs\n  Mode:      Balances only\n  Wallets:   3 selected\n             - Treasury Hot (0x1887...3Cdd, ETHEREUM)\n             - Cold Storage (bc1q...xyz, BITCOIN)\n             - Ops Main (0x89Ba...92a8, POLYGON)\n\nShall I run it now?\n",[845],{"type":44,"tag":126,"props":846,"children":847},{"__ignoreMap":685},[848],{"type":50,"value":843},{"type":44,"tag":60,"props":850,"children":851},{},[852,854,860,861,867,868,874],{"type":50,"value":853},"Wait for an affirmative reply (",{"type":44,"tag":126,"props":855,"children":857},{"className":856},[],[858],{"type":50,"value":859},"yes",{"type":50,"value":324},{"type":44,"tag":126,"props":862,"children":864},{"className":863},[],[865],{"type":50,"value":866},"confirm",{"type":50,"value":324},{"type":44,"tag":126,"props":869,"children":871},{"className":870},[],[872],{"type":50,"value":873},"go ahead",{"type":50,"value":875},"). Anything else:\ntreat as \"not yet\" and ask what to change.",{"type":44,"tag":413,"props":877,"children":879},{"id":878},"step-5-trigger-the-commit",[880],{"type":50,"value":881},"Step 5 — Trigger the commit",{"type":44,"tag":60,"props":883,"children":884},{},[885,887,893,895,900],{"type":50,"value":886},"Run the ",{"type":44,"tag":126,"props":888,"children":890},{"className":889},[],[891],{"type":50,"value":892},"triggerCommit",{"type":50,"value":894}," mutation via the TRES MCP ",{"type":44,"tag":126,"props":896,"children":898},{"className":897},[],[899],{"type":50,"value":330},{"type":50,"value":901}," tool:",{"type":44,"tag":680,"props":903,"children":905},{"className":682,"code":904,"language":684,"meta":685,"style":685},"mutation TriggerCommit(\n  $balancesOnly: Boolean\n  $internalAccountIds: [ID]\n) {\n  triggerCommit(\n    balancesOnly: $balancesOnly\n    internalAccountIds: $internalAccountIds\n  ) {\n    status\n    message\n    commitId\n  }\n}\n",[906],{"type":44,"tag":126,"props":907,"children":908},{"__ignoreMap":685},[909,917,925,933,941,949,957,965,973,981,989,997,1005],{"type":44,"tag":691,"props":910,"children":911},{"class":693,"line":694},[912],{"type":44,"tag":691,"props":913,"children":914},{},[915],{"type":50,"value":916},"mutation TriggerCommit(\n",{"type":44,"tag":691,"props":918,"children":919},{"class":693,"line":703},[920],{"type":44,"tag":691,"props":921,"children":922},{},[923],{"type":50,"value":924},"  $balancesOnly: Boolean\n",{"type":44,"tag":691,"props":926,"children":927},{"class":693,"line":712},[928],{"type":44,"tag":691,"props":929,"children":930},{},[931],{"type":50,"value":932},"  $internalAccountIds: [ID]\n",{"type":44,"tag":691,"props":934,"children":935},{"class":693,"line":721},[936],{"type":44,"tag":691,"props":937,"children":938},{},[939],{"type":50,"value":940},") {\n",{"type":44,"tag":691,"props":942,"children":943},{"class":693,"line":730},[944],{"type":44,"tag":691,"props":945,"children":946},{},[947],{"type":50,"value":948},"  triggerCommit(\n",{"type":44,"tag":691,"props":950,"children":951},{"class":693,"line":739},[952],{"type":44,"tag":691,"props":953,"children":954},{},[955],{"type":50,"value":956},"    balancesOnly: $balancesOnly\n",{"type":44,"tag":691,"props":958,"children":959},{"class":693,"line":748},[960],{"type":44,"tag":691,"props":961,"children":962},{},[963],{"type":50,"value":964},"    internalAccountIds: $internalAccountIds\n",{"type":44,"tag":691,"props":966,"children":967},{"class":693,"line":757},[968],{"type":44,"tag":691,"props":969,"children":970},{},[971],{"type":50,"value":972},"  ) {\n",{"type":44,"tag":691,"props":974,"children":975},{"class":693,"line":766},[976],{"type":44,"tag":691,"props":977,"children":978},{},[979],{"type":50,"value":980},"    status\n",{"type":44,"tag":691,"props":982,"children":983},{"class":693,"line":775},[984],{"type":44,"tag":691,"props":985,"children":986},{},[987],{"type":50,"value":988},"    message\n",{"type":44,"tag":691,"props":990,"children":991},{"class":693,"line":784},[992],{"type":44,"tag":691,"props":993,"children":994},{},[995],{"type":50,"value":996},"    commitId\n",{"type":44,"tag":691,"props":998,"children":1000},{"class":693,"line":999},12,[1001],{"type":44,"tag":691,"props":1002,"children":1003},{},[1004],{"type":50,"value":781},{"type":44,"tag":691,"props":1006,"children":1008},{"class":693,"line":1007},13,[1009],{"type":44,"tag":691,"props":1010,"children":1011},{},[1012],{"type":50,"value":790},{"type":44,"tag":60,"props":1014,"children":1015},{},[1016],{"type":50,"value":1017},"Variable mapping:",{"type":44,"tag":277,"props":1019,"children":1020},{},[1021,1037],{"type":44,"tag":281,"props":1022,"children":1023},{},[1024],{"type":44,"tag":285,"props":1025,"children":1026},{},[1027,1032],{"type":44,"tag":289,"props":1028,"children":1029},{},[1030],{"type":50,"value":1031},"Variable",{"type":44,"tag":289,"props":1033,"children":1034},{},[1035],{"type":50,"value":1036},"Value",{"type":44,"tag":300,"props":1038,"children":1039},{},[1040,1068],{"type":44,"tag":285,"props":1041,"children":1042},{},[1043,1051],{"type":44,"tag":307,"props":1044,"children":1045},{},[1046],{"type":44,"tag":126,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":50,"value":519},{"type":44,"tag":307,"props":1052,"children":1053},{},[1054,1059,1061,1066],{"type":44,"tag":126,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":50,"value":578},{"type":50,"value":1060}," (balances only) or ",{"type":44,"tag":126,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":50,"value":562},{"type":50,"value":1067}," (full data) from Step 2",{"type":44,"tag":285,"props":1069,"children":1070},{},[1071,1080],{"type":44,"tag":307,"props":1072,"children":1073},{},[1074],{"type":44,"tag":126,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":50,"value":1079},"internalAccountIds",{"type":44,"tag":307,"props":1081,"children":1082},{},[1083,1088],{"type":44,"tag":126,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":50,"value":659},{"type":50,"value":1089}," for all wallets, or an array of wallet IDs from Step 3",{"type":44,"tag":60,"props":1091,"children":1092},{},[1093,1095,1101,1102,1108,1110,1116],{"type":50,"value":1094},"Do not pass ",{"type":44,"tag":126,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":50,"value":1100},"fromDate",{"type":50,"value":324},{"type":44,"tag":126,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":50,"value":1107},"toDate",{"type":50,"value":1109},", or ",{"type":44,"tag":126,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":50,"value":1115},"commitId",{"type":50,"value":1117}," unless the user specifically\nasked for a date range or a retry of a specific commit — the onboarding flow\nshould just let Tres pick the defaults.",{"type":44,"tag":477,"props":1119,"children":1120},{},[1121],{"type":44,"tag":60,"props":1122,"children":1123},{},[1124,1126,1131,1133,1138,1140,1145],{"type":50,"value":1125},"All variable keys must be ",{"type":44,"tag":74,"props":1127,"children":1128},{},[1129],{"type":50,"value":1130},"camelCase",{"type":50,"value":1132}," (e.g. ",{"type":44,"tag":126,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":50,"value":519},{"type":50,"value":1139},",\n",{"type":44,"tag":126,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":50,"value":1079},{"type":50,"value":1146},"). The TRES GraphQL API rejects snake_case.",{"type":44,"tag":413,"props":1148,"children":1150},{"id":1149},"step-6-report-the-result",[1151],{"type":50,"value":1152},"Step 6 — Report the result",{"type":44,"tag":60,"props":1154,"children":1155},{},[1156],{"type":50,"value":1157},"The mutation returns three fields:",{"type":44,"tag":66,"props":1159,"children":1160},{},[1161,1193,1212],{"type":44,"tag":70,"props":1162,"children":1163},{},[1164,1170,1172,1177,1179,1184,1186,1191],{"type":44,"tag":126,"props":1165,"children":1167},{"className":1166},[],[1168],{"type":50,"value":1169},"status",{"type":50,"value":1171}," — a ",{"type":44,"tag":74,"props":1173,"children":1174},{},[1175],{"type":50,"value":1176},"Boolean",{"type":50,"value":1178},". ",{"type":44,"tag":126,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":50,"value":578},{"type":50,"value":1185}," = the commit was accepted and enqueued;\n",{"type":44,"tag":126,"props":1187,"children":1189},{"className":1188},[],[1190],{"type":50,"value":562},{"type":50,"value":1192}," = the trigger itself failed.",{"type":44,"tag":70,"props":1194,"children":1195},{},[1196,1202,1204,1210],{"type":44,"tag":126,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":50,"value":1201},"message",{"type":50,"value":1203}," — a short human-readable string (e.g., ",{"type":44,"tag":126,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":50,"value":1209},"\"Commit triggered\"",{"type":50,"value":1211},").\nShow it verbatim.",{"type":44,"tag":70,"props":1213,"children":1214},{},[1215,1220],{"type":44,"tag":126,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":50,"value":1115},{"type":50,"value":1221}," — a UUID for this run; show it so the user can reference the job\nlater (and so you can pass it to a future status-check tool).",{"type":44,"tag":60,"props":1223,"children":1224},{},[1225,1227,1233],{"type":50,"value":1226},"Example response to the user when ",{"type":44,"tag":126,"props":1228,"children":1230},{"className":1229},[],[1231],{"type":50,"value":1232},"status == true",{"type":50,"value":521},{"type":44,"tag":680,"props":1235,"children":1238},{"className":1236,"code":1237,"language":50},[828],"✅ Commit triggered successfully.\n\n  Status:    true\n  Message:   Commit triggered\n  Commit ID: c93a6d31-2f98-4eae-859f-80b010048fbd\n\nData collection is now running in the background. You will typically see\nbalances appear within a few minutes; full data collection can take longer\ndepending on history length and the number of wallets.\n",[1239],{"type":44,"tag":126,"props":1240,"children":1241},{"__ignoreMap":685},[1242],{"type":50,"value":1237},{"type":44,"tag":60,"props":1244,"children":1245},{},[1246,1247,1253,1255,1260],{"type":50,"value":442},{"type":44,"tag":126,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":50,"value":1252},"status == false",{"type":50,"value":1254},", treat it as a failure: show the ",{"type":44,"tag":126,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":50,"value":1201},{"type":50,"value":1261}," verbatim and\noffer the user next steps: re-run the commit, check wallet configuration, or\ncontact support if the error is opaque.",{"type":44,"tag":413,"props":1263,"children":1265},{"id":1264},"step-7-point-to-the-next-onboarding-step",[1266],{"type":50,"value":1267},"Step 7 — Point to the next onboarding step",{"type":44,"tag":60,"props":1269,"children":1270},{},[1271],{"type":50,"value":1272},"As the final part of the response (after the success\u002Ferror report), remind the\nuser that Commit is step 2 of the onboarding flow and the next step is balance\nvalidation. Word it so it is clearly a suggestion, not an automatic action:",{"type":44,"tag":477,"props":1274,"children":1275},{},[1276],{"type":44,"tag":60,"props":1277,"children":1278},{},[1279,1284,1286,1291],{"type":44,"tag":74,"props":1280,"children":1281},{},[1282],{"type":50,"value":1283},"Next step in onboarding:",{"type":50,"value":1285}," once the commit has finished collecting your\ncurrent balances, the next thing to do is validate them against DeBank. Just\nsay ",{"type":44,"tag":82,"props":1287,"children":1288},{},[1289],{"type":50,"value":1290},"\"validate my balances\"",{"type":50,"value":1292}," and I'll run the Balance Validation skill for\nyou.",{"type":44,"tag":60,"props":1294,"children":1295},{},[1296,1298,1302],{"type":50,"value":1297},"Do ",{"type":44,"tag":74,"props":1299,"children":1300},{},[1301],{"type":50,"value":409},{"type":50,"value":1303}," auto-trigger the validation skill — the user must opt in, because\nthe commit runs asynchronously and the data may not be ready immediately.",{"type":44,"tag":267,"props":1305,"children":1306},{},[],{"type":44,"tag":53,"props":1308,"children":1310},{"id":1309},"important-notes",[1311],{"type":50,"value":1312},"Important Notes",{"type":44,"tag":66,"props":1314,"children":1315},{},[1316,1340,1350,1383,1407],{"type":44,"tag":70,"props":1317,"children":1318},{},[1319,1324,1326,1331,1333,1338],{"type":44,"tag":74,"props":1320,"children":1321},{},[1322],{"type":50,"value":1323},"Async execution.",{"type":50,"value":1325}," ",{"type":44,"tag":126,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":50,"value":892},{"type":50,"value":1332}," enqueues the job; it does not block on\ncompletion. The returned ",{"type":44,"tag":126,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":50,"value":1115},{"type":50,"value":1339}," lets the user (or another skill) check\nstatus later.",{"type":44,"tag":70,"props":1341,"children":1342},{},[1343,1348],{"type":44,"tag":74,"props":1344,"children":1345},{},[1346],{"type":50,"value":1347},"Balances only ≠ no writes.",{"type":50,"value":1349}," Even in balances-only mode, Tres updates the\nper-wallet balance snapshots. It only skips transaction ingestion.",{"type":44,"tag":70,"props":1351,"children":1352},{},[1353,1358,1360,1366,1368,1374,1376,1381],{"type":44,"tag":74,"props":1354,"children":1355},{},[1356],{"type":50,"value":1357},"No wallets uploaded yet?",{"type":50,"value":1359}," If the user triggers this skill before onboarding\nany wallets, ",{"type":44,"tag":126,"props":1361,"children":1363},{"className":1362},[],[1364],{"type":50,"value":1365},"internalAccount",{"type":50,"value":1367}," will return ",{"type":44,"tag":126,"props":1369,"children":1371},{"className":1370},[],[1372],{"type":50,"value":1373},"totalCount: 0",{"type":50,"value":1375},". Tell the user\nthey need to add wallets first (point to ",{"type":44,"tag":126,"props":1377,"children":1379},{"className":1378},[],[1380],{"type":50,"value":131},{"type":50,"value":1382},") and stop.",{"type":44,"tag":70,"props":1384,"children":1385},{},[1386,1391,1393,1398,1400,1405],{"type":44,"tag":74,"props":1387,"children":1388},{},[1389],{"type":50,"value":1390},"Partial failures.",{"type":50,"value":1392}," It is possible for the commit to succeed for some\nwallets and fail for others. The top-level ",{"type":44,"tag":126,"props":1394,"children":1396},{"className":1395},[],[1397],{"type":50,"value":1169},{"type":50,"value":1399}," and ",{"type":44,"tag":126,"props":1401,"children":1403},{"className":1402},[],[1404],{"type":50,"value":1201},{"type":50,"value":1406}," give the\nsummary; deeper diagnostics live in the TRES UI under Data Collection logs.",{"type":44,"tag":70,"props":1408,"children":1409},{},[1410,1415],{"type":44,"tag":74,"props":1411,"children":1412},{},[1413],{"type":50,"value":1414},"Idempotency.",{"type":50,"value":1416}," Re-running a commit on the same wallet is safe — Tres\ndeduplicates transactions by on-chain identifier.",{"type":44,"tag":267,"props":1418,"children":1419},{},[],{"type":44,"tag":53,"props":1421,"children":1423},{"id":1422},"error-handling",[1424],{"type":50,"value":1425},"Error Handling",{"type":44,"tag":277,"props":1427,"children":1428},{},[1429,1445],{"type":44,"tag":281,"props":1430,"children":1431},{},[1432],{"type":44,"tag":285,"props":1433,"children":1434},{},[1435,1440],{"type":44,"tag":289,"props":1436,"children":1437},{},[1438],{"type":50,"value":1439},"Situation",{"type":44,"tag":289,"props":1441,"children":1442},{},[1443],{"type":50,"value":1444},"Response",{"type":44,"tag":300,"props":1446,"children":1447},{},[1448,1466,1490,1521,1534,1560],{"type":44,"tag":285,"props":1449,"children":1450},{},[1451,1461],{"type":44,"tag":307,"props":1452,"children":1453},{},[1454,1459],{"type":44,"tag":126,"props":1455,"children":1457},{"className":1456},[],[1458],{"type":50,"value":322},{"type":50,"value":1460}," fails",{"type":44,"tag":307,"props":1462,"children":1463},{},[1464],{"type":50,"value":1465},"Tell the user the TRES MCP is not connected; stop.",{"type":44,"tag":285,"props":1467,"children":1468},{},[1469,1478],{"type":44,"tag":307,"props":1470,"children":1471},{},[1472],{"type":44,"tag":126,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":50,"value":1477},"internalAccount.totalCount == 0",{"type":44,"tag":307,"props":1479,"children":1480},{},[1481,1483,1488],{"type":50,"value":1482},"Tell the user there are no wallets to commit; point to the ",{"type":44,"tag":126,"props":1484,"children":1486},{"className":1485},[],[1487],{"type":50,"value":131},{"type":50,"value":1489}," skill; stop.",{"type":44,"tag":285,"props":1491,"children":1492},{},[1493,1503],{"type":44,"tag":307,"props":1494,"children":1495},{},[1496,1498],{"type":50,"value":1497},"Mutation returns non-success ",{"type":44,"tag":126,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":50,"value":1169},{"type":44,"tag":307,"props":1504,"children":1505},{},[1506,1508,1513,1514,1519],{"type":50,"value":1507},"Show the raw ",{"type":44,"tag":126,"props":1509,"children":1511},{"className":1510},[],[1512],{"type":50,"value":1169},{"type":50,"value":1399},{"type":44,"tag":126,"props":1515,"children":1517},{"className":1516},[],[1518],{"type":50,"value":1201},{"type":50,"value":1520},"; offer to retry or investigate.",{"type":44,"tag":285,"props":1522,"children":1523},{},[1524,1529],{"type":44,"tag":307,"props":1525,"children":1526},{},[1527],{"type":50,"value":1528},"User provides wallet names that can't be resolved",{"type":44,"tag":307,"props":1530,"children":1531},{},[1532],{"type":50,"value":1533},"Ask for clarification instead of guessing; never send unresolved names to the mutation.",{"type":44,"tag":285,"props":1535,"children":1536},{},[1537,1542],{"type":44,"tag":307,"props":1538,"children":1539},{},[1540],{"type":50,"value":1541},"User asks for a date range",{"type":44,"tag":307,"props":1543,"children":1544},{},[1545,1547,1552,1553,1558],{"type":50,"value":1546},"Accept ",{"type":44,"tag":126,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":50,"value":1100},{"type":50,"value":220},{"type":44,"tag":126,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":50,"value":1107},{"type":50,"value":1559}," as ISO 8601 UTC and pass them through; confirm the range in the summary before firing.",{"type":44,"tag":285,"props":1561,"children":1562},{},[1563,1568],{"type":44,"tag":307,"props":1564,"children":1565},{},[1566],{"type":50,"value":1567},"User asks to cancel a running commit",{"type":44,"tag":307,"props":1569,"children":1570},{},[1571,1573,1579],{"type":50,"value":1572},"Out of scope for this skill. Mention that ",{"type":44,"tag":126,"props":1574,"children":1576},{"className":1575},[],[1577],{"type":50,"value":1578},"killCommits",{"type":50,"value":1580}," exists and offer to hand off to another skill or the TRES UI.",{"type":44,"tag":267,"props":1582,"children":1583},{},[],{"type":44,"tag":53,"props":1585,"children":1587},{"id":1586},"examples",[1588],{"type":50,"value":1589},"Examples",{"type":44,"tag":60,"props":1591,"children":1592},{},[1593],{"type":44,"tag":74,"props":1594,"children":1595},{},[1596],{"type":50,"value":1597},"Example 1 — First-time onboarding, all wallets, full data:",{"type":44,"tag":680,"props":1599,"children":1602},{"className":1600,"code":1601,"language":50},[828],"User: I just uploaded my wallets. Collect the data.\n\nClaude: [runs get_viewer → \"Acme Labs\"]\n        What do you want to collect?\n          1. Full data collection (transactions + balances)\n          2. Balances only\n\nUser: Full.\n\nClaude: Which wallets?\n          1. All wallets\n          2. Specific wallets\n\nUser: All.\n\nClaude: About to trigger a Commit in Tres Finance:\n          Org:     Acme Labs\n          Mode:    Full data collection\n          Wallets: All wallets in the org\n        Shall I run it now?\n\nUser: Yes.\n\nClaude: [runs triggerCommit(balancesOnly: false)]\n        ✅ Commit triggered successfully.\n          Status:    SUCCESS\n          Message:   Commit enqueued for 12 wallets.\n          Commit ID: 9f2e5c4a-...\n        Next step: once collection finishes, run balance validation.\n",[1603],{"type":44,"tag":126,"props":1604,"children":1605},{"__ignoreMap":685},[1606],{"type":50,"value":1601},{"type":44,"tag":60,"props":1608,"children":1609},{},[1610],{"type":44,"tag":74,"props":1611,"children":1612},{},[1613],{"type":50,"value":1614},"Future enhancement (not implemented in v1):",{"type":44,"tag":60,"props":1616,"children":1617},{},[1618,1620,1625,1627,1633,1635,1641,1642,1648,1650,1655],{"type":50,"value":1619},"A natural follow-up is to optionally ",{"type":44,"tag":74,"props":1621,"children":1622},{},[1623],{"type":50,"value":1624},"wait",{"type":50,"value":1626}," inside this skill until the\ncommit completes (poll ",{"type":44,"tag":126,"props":1628,"children":1630},{"className":1629},[],[1631],{"type":50,"value":1632},"internalAccount.status",{"type":50,"value":1634}," until every targeted wallet is\nback to ",{"type":44,"tag":126,"props":1636,"children":1638},{"className":1637},[],[1639],{"type":50,"value":1640},"READY",{"type":50,"value":1399},{"type":44,"tag":126,"props":1643,"children":1645},{"className":1644},[],[1646],{"type":50,"value":1647},"lastSyncedAt",{"type":50,"value":1649}," is newer than the trigger time), then notify\nthe user that they can safely run the balance validation skill. The current\nv1 design intentionally exits after triggering — full-data commits can take a\nlong time, and polling synchronously inside chat is painful at the long end.\nA companion guard inside ",{"type":44,"tag":126,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":50,"value":158},{"type":50,"value":1656}," (refusing to run, or\nwarning, while a commit is in progress) is the other half of that story.",{"type":44,"tag":267,"props":1658,"children":1659},{},[],{"type":44,"tag":60,"props":1661,"children":1662},{},[1663],{"type":44,"tag":74,"props":1664,"children":1665},{},[1666],{"type":50,"value":1667},"Example 2 — Quick balance refresh for two wallets:",{"type":44,"tag":680,"props":1669,"children":1672},{"className":1670,"code":1671,"language":50},[828],"User: Can you just pull balances for my Ethereum treasury wallets?\n\nClaude: [runs get_viewer]\n        What do you want to collect?\n          1. Full data collection\n          2. Balances only  ← fits \"just pull balances\"\n\nUser: Balances only.\n\nClaude: Which wallets?\n          1. All wallets\n          2. Specific wallets\n\nUser: Specific — Treasury Hot and Treasury Cold.\n\nClaude: [queries internalAccount, resolves the two wallets by name]\n        About to trigger a Commit in Tres Finance:\n          Mode:    Balances only\n          Wallets: 2 selected\n                   - Treasury Hot (0x1887...3Cdd, ETHEREUM)\n                   - Treasury Cold (0x89Ba...92a8, ETHEREUM)\n        Shall I run it now?\n\nUser: Go.\n\nClaude: [runs triggerCommit(balancesOnly: true, internalAccountIds: [...])]\n        ✅ Commit triggered. Commit ID: ...\n",[1673],{"type":44,"tag":126,"props":1674,"children":1675},{"__ignoreMap":685},[1676],{"type":50,"value":1671},{"type":44,"tag":1678,"props":1679,"children":1680},"style",{},[1681],{"type":50,"value":1682},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1684,"total":1786},[1685,1704,1723,1737,1749,1761,1773],{"slug":1686,"name":1686,"fn":1687,"description":1688,"org":1689,"tags":1690,"stars":26,"repoUrl":27,"updatedAt":1703},"quickdesign","generate AI media assets","Use the `quickdesign` CLI to generate AI media — UGC promo videos, image edits, product creatives, video upscales — through Seedance, Kling, Sora2, Nano Banana, and GPT Image. Invoke this skill whenever the user asks for a talking-avatar video, multi-segment ad \u002F promo \u002F explainer, image edit (object swap, angle change, state change), product photoshoot, or video upscale via QuickDesign.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1691,1694,1697,1700],{"name":1692,"slug":1693,"type":16},"Creative","creative",{"name":1695,"slug":1696,"type":16},"Image Generation","image-generation",{"name":1698,"slug":1699,"type":16},"Marketing","marketing",{"name":1701,"slug":1702,"type":16},"Video","video","2026-07-01T08:09:32.316182",{"slug":1705,"name":1705,"fn":1706,"description":1707,"org":1708,"tags":1709,"stars":26,"repoUrl":27,"updatedAt":1722},"testdino-audit","audit Playwright test code","Use only when the user explicitly asks for a TestDino audit of Playwright automated test code. Routes through the audit tools the TestDino MCP server exposes (get_audit_report + submit_audit_report, or the legacy test_audit). For generic code review or non-Playwright targets, do a normal review instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1710,1713,1716,1719],{"name":1711,"slug":1712,"type":16},"Audit","audit",{"name":1714,"slug":1715,"type":16},"Code Analysis","code-analysis",{"name":1717,"slug":1718,"type":16},"Playwright","playwright",{"name":1720,"slug":1721,"type":16},"Testing","testing","2026-07-02T07:37:17.341081",{"slug":1724,"name":1724,"fn":1725,"description":1726,"org":1727,"tags":1728,"stars":26,"repoUrl":27,"updatedAt":1736},"testdino-health","manage TestDino connection status","Use when the user wants to check TestDino connection status, validate their PAT, discover available organizations and projects, or find the right projectId. Always call this first when the project context is ambiguous before any other TestDino tool.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1729,1732,1735],{"name":1730,"slug":1731,"type":16},"Monitoring","monitoring",{"name":1733,"slug":1734,"type":16},"QA","qa",{"name":1720,"slug":1721,"type":16},"2026-07-02T07:37:18.566504",{"slug":1738,"name":1738,"fn":1739,"description":1740,"org":1741,"tags":1742,"stars":26,"repoUrl":27,"updatedAt":1748},"testdino-manual-runs","manage manual QA execution runs in TestDino","Use when the user wants to manage a manual execution run or update case-level results inside a run — listing runs, creating runs for a release, inspecting a run, assigning cases, or marking case results (passed\u002Ffailed\u002Fblocked\u002Fskipped\u002Fretest\u002Funtested). Accepts counter-style IDs like RUN-12 and TC-156.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1743,1746,1747],{"name":1744,"slug":1745,"type":16},"Operations","operations",{"name":1733,"slug":1734,"type":16},{"name":1720,"slug":1721,"type":16},"2026-07-02T07:37:23.446065",{"slug":1750,"name":1750,"fn":1751,"description":1752,"org":1753,"tags":1754,"stars":26,"repoUrl":27,"updatedAt":1760},"testdino-manual-tests","manage manual QA test cases in TestDino","Use when the user wants to create, update, or browse manual QA test cases and suites in TestDino — not execution runs. Covers list_manual_test_suites, list_manual_test_cases, get_manual_test_case, create_manual_test_case, update_manual_test_case, create_manual_test_suite.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1755,1758,1759],{"name":1756,"slug":1757,"type":16},"Documentation","documentation",{"name":1733,"slug":1734,"type":16},{"name":1720,"slug":1721,"type":16},"2026-07-02T07:37:22.247052",{"slug":1762,"name":1762,"fn":1763,"description":1764,"org":1765,"tags":1766,"stars":26,"repoUrl":27,"updatedAt":1772},"testdino-releases","manage TestDino releases and milestones","Use when the user wants to browse, inspect, create, or update releases\u002Fmilestones in a TestDino project. Covers list_releases, get_release, create_release, and update_release. Accepts counter-style IDs like MS-12.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1767,1770,1771],{"name":1768,"slug":1769,"type":16},"Project Management","project-management",{"name":1733,"slug":1734,"type":16},{"name":1720,"slug":1721,"type":16},"2026-07-02T07:37:19.793846",{"slug":1774,"name":1774,"fn":1775,"description":1776,"org":1777,"tags":1778,"stars":26,"repoUrl":27,"updatedAt":1785},"testdino-runs","inspect automated test runs","Use when the user wants to inspect automated test runs, list failed or flaky tests, debug a failing testcase with historical context, or filter runs by branch, commit, author, environment, browser, status, or tags. Includes list_testruns, get_run_details, list_testcase, get_testcase_details, and debug_testcase.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1779,1782,1783,1784],{"name":1780,"slug":1781,"type":16},"Debugging","debugging",{"name":1717,"slug":1718,"type":16},{"name":1733,"slug":1734,"type":16},{"name":1720,"slug":1721,"type":16},"2026-07-02T07:37:16.07175",30,{"items":1788,"total":1971},[1789,1808,1822,1834,1853,1864,1885,1905,1919,1934,1942,1955],{"slug":1790,"name":1790,"fn":1791,"description":1792,"org":1793,"tags":1794,"stars":1805,"repoUrl":1806,"updatedAt":1807},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1795,1796,1799,1802],{"name":1692,"slug":1693,"type":16},{"name":1797,"slug":1798,"type":16},"Design","design",{"name":1800,"slug":1801,"type":16},"Generative Art","generative-art",{"name":1803,"slug":1804,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":1809,"name":1809,"fn":1810,"description":1811,"org":1812,"tags":1813,"stars":1805,"repoUrl":1806,"updatedAt":1821},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1814,1817,1818],{"name":1815,"slug":1816,"type":16},"Branding","branding",{"name":1797,"slug":1798,"type":16},{"name":1819,"slug":1820,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":1823,"name":1823,"fn":1824,"description":1825,"org":1826,"tags":1827,"stars":1805,"repoUrl":1806,"updatedAt":1833},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1828,1829,1830],{"name":1692,"slug":1693,"type":16},{"name":1797,"slug":1798,"type":16},{"name":1831,"slug":1832,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":1835,"name":1835,"fn":1836,"description":1837,"org":1838,"tags":1839,"stars":1805,"repoUrl":1806,"updatedAt":1852},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1840,1843,1844,1847,1849],{"name":1841,"slug":1842,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":1845,"slug":1846,"type":16},"Anthropic SDK","anthropic-sdk",{"name":1848,"slug":1835,"type":16},"Claude API",{"name":1850,"slug":1851,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":1854,"name":1854,"fn":1855,"description":1856,"org":1857,"tags":1858,"stars":1805,"repoUrl":1806,"updatedAt":1863},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1859,1860],{"name":1756,"slug":1757,"type":16},{"name":1861,"slug":1862,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":1865,"name":1865,"fn":1866,"description":1867,"org":1868,"tags":1869,"stars":1805,"repoUrl":1806,"updatedAt":1884},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1870,1873,1875,1878,1881],{"name":1871,"slug":1872,"type":16},"Documents","documents",{"name":1874,"slug":1865,"type":16},"DOCX",{"name":1876,"slug":1877,"type":16},"Office","office",{"name":1879,"slug":1880,"type":16},"Templates","templates",{"name":1882,"slug":1883,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":1886,"name":1886,"fn":1887,"description":1888,"org":1889,"tags":1890,"stars":1805,"repoUrl":1806,"updatedAt":1904},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1891,1892,1895,1898,1901],{"name":1797,"slug":1798,"type":16},{"name":1893,"slug":1894,"type":16},"Frontend","frontend",{"name":1896,"slug":1897,"type":16},"React","react",{"name":1899,"slug":1900,"type":16},"Tailwind CSS","tailwind-css",{"name":1902,"slug":1903,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":1906,"name":1906,"fn":1907,"description":1908,"org":1909,"tags":1910,"stars":1805,"repoUrl":1806,"updatedAt":1918},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1911,1914,1915],{"name":1912,"slug":1913,"type":16},"Communications","communications",{"name":1879,"slug":1880,"type":16},{"name":1916,"slug":1917,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":1920,"name":1920,"fn":1921,"description":1922,"org":1923,"tags":1924,"stars":1805,"repoUrl":1806,"updatedAt":1933},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1925,1926,1929,1930],{"name":1841,"slug":1842,"type":16},{"name":1927,"slug":1928,"type":16},"API Development","api-development",{"name":1850,"slug":1851,"type":16},{"name":1931,"slug":1932,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":1832,"name":1832,"fn":1935,"description":1936,"org":1937,"tags":1938,"stars":1805,"repoUrl":1806,"updatedAt":1941},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1939,1940],{"name":1871,"slug":1872,"type":16},{"name":1831,"slug":1832,"type":16},"2026-04-06T17:56:02.483316",{"slug":1943,"name":1943,"fn":1944,"description":1945,"org":1946,"tags":1947,"stars":1805,"repoUrl":1806,"updatedAt":1954},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1948,1951],{"name":1949,"slug":1950,"type":16},"PowerPoint","powerpoint",{"name":1952,"slug":1953,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":1956,"name":1956,"fn":1957,"description":1958,"org":1959,"tags":1960,"stars":1805,"repoUrl":1806,"updatedAt":1970},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1961,1962,1963,1966,1969],{"name":1841,"slug":1842,"type":16},{"name":1756,"slug":1757,"type":16},{"name":1964,"slug":1965,"type":16},"Evals","evals",{"name":1967,"slug":1968,"type":16},"Performance","performance",{"name":1861,"slug":1862,"type":16},"2026-04-19T06:45:40.804",490]