Skip to main content
ClaudeWave
Skill3.3k repo starsupdated 11d ago

tres-data-collection-commit

>

Install in Claude Code
Copy
git clone --depth 1 https://github.com/anthropics/claude-plugins-community /tmp/tres-data-collection-commit && cp -r /tmp/tres-data-collection-commit/tres-finance-plugin/skills/tres-data-collection-commit ~/.claude/skills/tres-data-collection-commit
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Tres Finance — Data Collection (Commit)

## Overview

Commit is the step that pulls on-chain data into Tres Finance for the wallets
already onboarded to the org. It runs the platform's data-collection pipeline for
each wallet and either:

- **Full data collection** — collects the full transaction history *and* current
  balances. Used for a complete onboarding or historical backfill.
- **Balances only** — collects only the current asset balances (no transactions).
  Much faster; useful when the user just wants an up-to-date snapshot or is
  preparing for a quick balance validation.

This skill is the **second step** of the customer onboarding flow:

1. **Upload wallets** (`tres-wallets-upload`) — register the wallets in Tres.
2. **Collect data (this skill)** — run the commit so Tres actually fetches the
   on-chain state.
3. **Validate balances** (`tres-asset-balance-validation`) — cross-check the
   collected balances against DeBank.

## When to Use

Trigger this skill whenever the user wants to:

- Run a commit / trigger a commit / kick off data collection
- Collect on-chain data into Tres
- Pull balances or transactions for their wallets
- Sync wallets that were just added
- Refresh Tres data after adding new wallets

**Example phrases that must trigger this skill:**

- *"Run the commit"* / *"Trigger the commit"*
- *"Collect the data for my wallets"*
- *"Pull balances for everything"*
- *"I just added wallets — now collect the data"*
- *"Sync my wallets"*
- *"Start the data collection"*

---

## Prerequisites

| Requirement | Details |
|---|---|
| TRES Finance MCP connected | The TRES MCP tools (`get_viewer`, `execute`, `build_query`, `introspect`) must be available |
| Authenticated org | `get_viewer` must succeed and return an `orgName` |
| At least one wallet onboarded | If there are no wallets, commit has nothing to collect — point the user to `tres-wallets-upload` first |

---

## Process Overview

Follow these steps in order. Do **not** skip the user-selection steps — the
whole point of this skill is to capture the user's collection intent before
firing the mutation.

### Step 1 — Confirm authentication

Call `get_viewer` to verify the user is authenticated to Tres and note the
`orgName`. Mention it in the confirmation summary later so the user knows which
org the commit will run against.

If `get_viewer` fails: tell the user the TRES MCP is not connected and ask them
to connect it before continuing.

### Step 2 — Ask: full data or balances only?

This is the core choice of the skill. Ask the user **exactly** this (using the
`AskUserQuestion` tool if available, otherwise plain text):

> **What do you want to collect?**
>
> 1. **Full data collection** — collects all transactions and current balances.
>    Slower, but produces a complete ledger. Use this for first-time onboarding
>    or historical backfill.
> 2. **Balances only** — collects only current balances, no transactions. Fast.
>    Use this when you just want an up-to-date balance snapshot (for example,
>    before running balance validation).

Map the answer to the GraphQL parameter `balancesOnly`:

| User choice | `balancesOnly` |
|---|---|
| Full data collection | `false` |
| Balances only | `true` |

If the user is unsure, recommend **Full data collection** as the default for
first-time onboarding (because skipping transactions means the ledger will be
empty even after commit succeeds).

### Step 3 — Ask: all wallets, or specific wallets?

Ask the user whether the commit should run on every wallet or a subset:

> **Which wallets should I collect data for?**
>
> 1. **All wallets** — run the commit across every wallet in the org.
> 2. **Specific wallets** — only collect data for wallets I pick.

If the user chooses **All wallets**: set `internalAccountIds = null` (omit the
field in the mutation variables, or pass `null`).

If the user chooses **Specific wallets**:

1. Fetch the list of wallets from Tres so the user can pick from real options:
   ```graphql
   query ListWalletsForCommit {
     internalAccount {
       totalCount
       results {
         id
         name
         identifier
         parentPlatform
       }
     }
   }
   ```
2. Present the wallets as a numbered plain-text list (name + short address +
   platform). If there are more than ~25 wallets, show the first 25 and tell
   the user they can reply with wallet names, addresses, or IDs to narrow down.
3. Let the user respond conversationally ("the three Ethereum ones", "Treasury
   Hot and Cold Storage", "IDs 123, 456, 789", etc.). Resolve their response to
   a list of internal account `id` values. Never call the mutation with an
   unresolved name — always resolve to IDs first.
4. If you cannot confidently resolve a wallet the user named, ask them to
   clarify instead of guessing.

### Step 4 — Confirm before firing the mutation

Show a short plain-text summary of exactly what is about to happen and ask for
explicit confirmation. Example:

```
About to trigger a Commit in Tres Finance:

  Org:       Acme Labs
  Mode:      Full data collection (transactions + balances)
  Wallets:   All wallets in the org

Shall I run it now?
```

Or, for a scoped run:

```
About to trigger a Commit in Tres Finance:

  Org:       Acme Labs
  Mode:      Balances only
  Wallets:   3 selected
             - Treasury Hot (0x1887...3Cdd, ETHEREUM)
             - Cold Storage (bc1q...xyz, BITCOIN)
             - Ops Main (0x89Ba...92a8, POLYGON)

Shall I run it now?
```

Wait for an affirmative reply (`yes`, `confirm`, `go ahead`). Anything else:
treat as "not yet" and ask what to change.

### Step 5 — Trigger the commit

Run the `triggerCommit` mutation via the TRES MCP `execute` tool:

```graphql
mutation TriggerCommit(
  $balancesOnly: Boolean
  $internalAccountIds: [ID]
) {
  triggerCommit(
    balancesOnly: $balancesOnly
    internalAccountIds: $internalAccountIds
  ) {
    status
    message
    commitId
  }
}
```

Variable mapping:

| Variable | Value |
|---|---
eli5Skill

Explain a topic like I'm a 5 year old. Use when the user types /eli5 <topic> or asks for a dead-simple picture explainer of how something works.

quickdesignSkill

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 / promo / explainer, image edit (object swap, angle change, state change), product photoshoot, or video upscale via QuickDesign.

testdino-auditSkill

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.

testdino-healthSkill

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.

testdino-manual-runsSkill

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/failed/blocked/skipped/retest/untested). Accepts counter-style IDs like RUN-12 and TC-156.

testdino-manual-testsSkill

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.

testdino-releasesSkill

Use when the user wants to browse, inspect, create, or update releases/milestones in a TestDino project. Covers list_releases, get_release, create_release, and update_release. Accepts counter-style IDs like MS-12.

testdino-runsSkill

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.