agentleFS
aaronjmarsaaronjmars/miroshark-aeon/skills/picks-tracker/SKILL.md

picks-tracker

Skill20 starsChanged 23 days agoMITView on GitHub

Retrospective on past token and prediction market picks - what hit, what flopped, what the score is

  • Reads credentials

3 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read memory/MEMORY.md for context.

    line 17
  2. Very specific:

    If zero picks are found in the window, log PICKS_TRACKER_SKIP: no picks in last 30 days — enable token-pick / monitor-polymarket and stop …

    line 45
  3. Distinctive:

    Fallback: If curl fails, use WebFetch for the same URL (drop the API key header).

    line 61
  4. Distinctive:

    If the same token was picked multiple times, calculate performance from each individual pick date.

    line 92
  5. Very specific:

    If WebFetch is needed: https://gamma-api.polymarket.com/markets?closed=true&limit=10&q=KEYWORDS_FROM_QUESTION

    line 107
  6. Distinctive:

    If resolved: was the position correct?

    line 110
  7. Distinctive:

    Keep it honest. No cherry-picking dates.

    line 125
  8. Distinctive:

    Keep the message under 3000 chars.

    line 150
  9. Very specific:

    Write a brief scorecard to output/articles/picks-scorecard-${today}.md:

    line 154

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Today is ${today}. Your task is to audit the last 30 days of token picks and score them against current prices.

Read memory/MEMORY.md for context.

Network note

curl works — there is no network sandbox. For every curl call, if it fails or returns empty/error, use WebFetch for the same URL as a fallback for a flaky public GET.

Steps

1. Extract token picks from logs

Scan the last 30 days of memory/logs/ for token picks. For each log file, grep for lines matching **Token:**. Extract:

  • Symbol (e.g., XMR, HYPE, TAO)
  • Date (from the filename, e.g., 2026-04-19)
  • Pick price (the number after $ on the same line, ignoring ~ approximations)

Also extract prediction market picks from lines matching **Market:**:

  • The question text (in quotes)
  • The position taken (YES or NO)
  • The price/odds at pick time

Expected log format (written by token-pick and monitor-polymarket):

- **Token:** XMR — $350.52 (+1.17% 24h, +2.55% 7d)
- **Market:** "US x Iran permanent peace deal by April 30?" — NO $0.615 (YES 38.5%)

Focus on the last 30 days of logs. If a token was picked multiple times, record each instance separately.

If zero picks are found in the window, log PICKS_TRACKER_SKIP: no picks in last 30 days — enable token-pick / monitor-polymarket and stop (no notification).

2. Fetch current token prices

For each unique token symbol, fetch the current price from CoinGecko.

First, try the search endpoint to get the coin ID. The optional demo key rides ./secretcurl's {COINGECKO_API_KEY} placeholder (never a bare $SECRET on the line); the header is only sent when a key is set. Key check: read the "Keys set for this run" line in your run notes, never a shell test (those are refused and cost a turn). When COINGECKO_API_KEY is on that line keep the -H "x-cg-demo-api-key: {COINGECKO_API_KEY}" shown below; when it is not, drop that -H (keyless public works at a lower rate limit).

./secretcurl -s -H "x-cg-demo-api-key: {COINGECKO_API_KEY}" "https://api.coingecko.com/api/v3/search?query=SYMBOL"

Then fetch the price:

./secretcurl -s -H "x-cg-demo-api-key: {COINGECKO_API_KEY}" "https://api.coingecko.com/api/v3/simple/price?ids=COIN_ID&vs_currencies=usd&include_24hr_change=true"

Fallback: If curl fails, use WebFetch for the same URL (drop the API key header).

Common ID mappings (use directly, skip search step):

  • HYPE → hyperliquid
  • XMR → monero
  • TAO → bittensor
  • ENJ → enjincoin
  • DASH → dash
  • ORDI → ordinals
  • MORPHO → morpho
  • RENDER → render-token
  • JUP → jupiter-exchange-solana
  • KAS → kaspa
  • ENA → ethena
  • ALGO → algorand
  • APT → aptos
  • FET → fetch-ai
  • ZEC → zcash
  • ETHFI → ether-fi

For tokens not in the list, use the search endpoint. If a symbol is ambiguous or the token isn't found, mark as N/A (not found).

3. Calculate performance

For each pick:

performance % = ((current_price - pick_price) / pick_price) * 100

Round to 1 decimal place. Use a ~ prefix if the pick price was approximate.

If the same token was picked multiple times, calculate performance from each individual pick date.

Classify each pick:

  • 🟢 Win — +10% or better
  • 🟡 Hold — between -10% and +10%
  • 🔴 Loss — -10% or worse

4. Check prediction market pick resolution

For each prediction market pick, search the Polymarket API to check if the market resolved:

# Search by question text
curl -s "https://gamma-api.polymarket.com/markets?closed=true&limit=10&q=KEYWORDS_FROM_QUESTION"

If WebFetch is needed: https://gamma-api.polymarket.com/markets?closed=true&limit=10&q=KEYWORDS_FROM_QUESTION

For each market pick:

  • If resolved: was the position correct? Mark ✅ (correct) or ❌ (wrong) or ⏳ (still open)
  • Note the resolution price/outcome if available

Markets with no Polymarket equivalent (internal or experimental markets) — mark as ⏳ or skip.

5. Score summary

Tally the token picks:

  • Total picks in window
  • Wins / Holds / Losses count
  • Average return across all picks (equally weighted)
  • Best pick (highest % gain)
  • Worst pick (biggest % loss)
  • Hit rate: (wins / total_picks) * 100

Keep it honest. No cherry-picking dates.

6. Format and send notification

Send via ./notify (inline multi-line literal — do NOT pipe or use $(cat)):

*picks scorecard — [START_DATE] → [TODAY]*

*token picks ([N] total)*
[SYMBOL] [DATE] — picked $[PICK] → now $[CURRENT] ([PERF]%) [EMOJI]
...sorted best to worst...

*score: [WINS]W [HOLDS]H [LOSSES]L | avg [AVG]% | hit rate [HIT_RATE]%*
*best: [SYMBOL] +[BEST]% | worst: [SYMBOL] [WORST]%*

*market picks*
[QUESTION_SNIPPET] — [POSITION] [STATUS_EMOJI]
...

no financial advice. just tracking the record.

read it: https://github.com/aeonfun/aeon/blob/main/output/articles/picks-scorecard-${today}.md

Keep the message under 3000 chars. If too long, truncate to the most recent 10 picks.

7. Save scorecard

Write a brief scorecard to output/articles/picks-scorecard-${today}.md:

# Picks Scorecard — [DATE]

## Token Performance
| Symbol | Picked | Pick Price | Current | Change | Result |
|--------|--------|-----------|---------|--------|--------|
...

## Summary
- Window: last 30 days
- Total picks: N
- Wins / Holds / Losses: X / Y / Z
- Average return: X%
- Hit rate: X%

## Market Picks
| Question | Position | Status |
...

8. Log to memory

Append to memory/logs/${today}.md:

### picks-tracker
- **Window:** last 30 days (N picks)
- **Score:** [WINS]W [HOLDS]H [LOSSES]L | avg [AVG]% | hit rate [HIT_RATE]%
- **Best:** [SYMBOL] +[BEST]%
- **Worst:** [SYMBOL] [WORST]%
- **Notification sent:** yes
- PICKS_TRACKER_OK

Environment Variables

  • COINGECKO_API_KEY — optional, increases rate limits. Skill works without it via free tier + WebFetch fallback.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.