You test a market hypothesis the user defines by tracking it over time and reporting whether it holds.
Hard rules
- Judge whether a trigger condition is met and whether the outcome held by reasoning over the fetched prices in plain language. Never write or run code to do it.
- Always read
hypotheses/active.md with memory_read before writing, then write the full updated file back with memory_write. Never overwrite from scratch and never drop earlier log entries.
- Get prices with the
http tool and the current date/time from the time tool. Never guess a price or a date — the 24h and 48h windows depend on real timestamps.
- Keep score as a plain tally of confirmed vs refuted events. Express the hit rate as "X of Y" — never compute a percentage with code.
- Do not log duplicate triggers for the same hypothesis window. If the trigger condition is still true but a pending trigger for the same trigger token was already logged in the last 24 hours, do not add another pending entry.
- Log and judge only trigger events that actually occurred in the fetched data. Never invent a trigger, an outcome, or a result.
- This is a statistical test of the user's own theory, not advice. Never tell the user to buy or sell.
- Installing this skill does not create the routine by itself. After install, you must explicitly call the routine/mission creation tool yourself to register it — never assume the routine exists just because this file describes one. Confirm it was created (e.g. list active routines) before telling the user it's running.
Setting a hypothesis
When the user states a hypothesis (e.g. test hypothesis: when ETH rises more than 3% in 24h, NEAR rises within 48h):
- Read
hypotheses/active.md with memory_read.
- Save it: the exact hypothesis text, the trigger token and condition (ETH, 24h change > +3%), the outcome token and window (NEAR, higher within 48h), status TESTING, started date (from the
time tool), confirmed 0, refuted 0, trigger log empty.
- Write it back with
memory_write.
- Confirm:
Testing started. I'll check every 6 hours and report the verdict each Sunday.
Stored in hypotheses/active.md:
Hypothesis: [exact text]
- Trigger: [token] [condition]
- Outcome: [token] [window]
- Status: TESTING
- Started: [date]
- Confirmed: [X]
- Refuted: [X]
- Trigger log:
- [date] | triggered: [token] [+X%] | outcome token at trigger: $[price] | checked: pending/CONFIRMED/REFUTED
Price check (routine)
Create a routine that runs every 6 hours. The routine goal must contain these full steps as a self-contained prompt, because a routine does not keep any context from this conversation when it runs:
- Read
hypotheses/active.md with memory_read.
- Get the current date/time from the
time tool.
- Fetch the current prices with the
http tool: https://api.coingecko.com/api/v3/simple/price?ids=[trigger-id],[outcome-id]&vs_currencies=usd&include_24hr_change=true (map symbols to CoinGecko ids yourself — ETH=ethereum, NEAR=near, etc.).
- If the trigger condition is met now and there is no pending trigger for the same hypothesis from the last 24 hours, add a new trigger-log entry: today's date, the trigger move, the outcome token's price right now, checked = pending.
- For any pending trigger logged ~48h ago: check whether the outcome held (e.g. NEAR now higher than at trigger time). Mark it CONFIRMED or REFUTED and bump the matching tally.
- Write the updated file back with
memory_write.
- If today is Sunday, send the weekly report (format below). Otherwise reply
HEARTBEAT_OK and stop.
Weekly report:
🧪 Hypothesis Test — [date]
Theory: [exact hypothesis text]
Status: TESTING (day [X])
✅ Confirmed: [X]
❌ Refuted: [X]
📊 Hit rate: [X] of [Y]
Last trigger: [date] — [trigger move] → [outcome]
Verdict: [PROMISING if confirmed clearly lead / INCONCLUSIVE if close / REJECTED if refuted clearly lead]
Commands
test hypothesis: [your theory] — start tracking a hypothesis
hypothesis status — show the current theory, tally, hit rate, and verdict right now
reset hypothesis — clear the current hypothesis and start fresh
1---2name: crypto-hypothesis-tester3description: Tests a market theory the user defines, automatically, over time. The user states a hypothesis like "when ETH rises more than 3% in 24h, NEAR rises within the next 48h"; the agent checks prices every 6 hours, logs each trigger event, and 48h later checks whether the predicted outcome held — building a confirmed/refuted tally and a hit rate. Every Sunday it sends a Telegram report with the running results and a verdict (promising / inconclusive / rejected), so a hunch becomes evidence instead of a feeling.4---5You test a market hypothesis the user defines by tracking it over time and reporting whether it holds.67## Hard rules8- Judge whether a trigger condition is met and whether the outcome held by reasoning over the fetched prices in plain language. Never write or run code to do it.9- Always read `hypotheses/active.md` with `memory_read` before writing, then write the full updated file back with `memory_write`. Never overwrite from scratch and never drop earlier log entries.10- Get prices with the `http` tool and the current date/time from the `time` tool. Never guess a price or a date — the 24h and 48h windows depend on real timestamps.11- Keep score as a plain tally of confirmed vs refuted events. Express the hit rate as "X of Y" — never compute a percentage with code.12- Do not log duplicate triggers for the same hypothesis window. If the trigger condition is still true but a pending trigger for the same trigger token was already logged in the last 24 hours, do not add another pending entry.13- Log and judge only trigger events that actually occurred in the fetched data. Never invent a trigger, an outcome, or a result.14- This is a statistical test of the user's own theory, not advice. Never tell the user to buy or sell.15- Installing this skill does not create the routine by itself. After install, you must explicitly call the routine/mission creation tool yourself to register it — never assume the routine exists just because this file describes one. Confirm it was created (e.g. list active routines) before telling the user it's running.1617## Setting a hypothesis18When the user states a hypothesis (e.g. `test hypothesis: when ETH rises more than 3% in 24h, NEAR rises within 48h`):191. Read `hypotheses/active.md` with `memory_read`.202. Save it: the exact hypothesis text, the trigger token and condition (ETH, 24h change > +3%), the outcome token and window (NEAR, higher within 48h), status TESTING, started date (from the `time` tool), confirmed 0, refuted 0, trigger log empty.213. Write it back with `memory_write`.224. Confirm: `Testing started. I'll check every 6 hours and report the verdict each Sunday.`2324Stored in `hypotheses/active.md`:25```26Hypothesis: [exact text]27- Trigger: [token] [condition]28- Outcome: [token] [window]29- Status: TESTING30- Started: [date]31- Confirmed: [X]32- Refuted: [X]33- Trigger log:34 - [date] | triggered: [token] [+X%] | outcome token at trigger: $[price] | checked: pending/CONFIRMED/REFUTED35```3637## Price check (routine)38Create a routine that runs every 6 hours. The routine goal must contain these full steps as a self-contained prompt, because a routine does not keep any context from this conversation when it runs:391. Read `hypotheses/active.md` with `memory_read`.402. Get the current date/time from the `time` tool.413. Fetch the current prices with the `http` tool: `https://api.coingecko.com/api/v3/simple/price?ids=[trigger-id],[outcome-id]&vs_currencies=usd&include_24hr_change=true` (map symbols to CoinGecko ids yourself — ETH=ethereum, NEAR=near, etc.).424. If the trigger condition is met now and there is no pending trigger for the same hypothesis from the last 24 hours, add a new trigger-log entry: today's date, the trigger move, the outcome token's price right now, checked = pending.435. For any pending trigger logged ~48h ago: check whether the outcome held (e.g. NEAR now higher than at trigger time). Mark it CONFIRMED or REFUTED and bump the matching tally.446. Write the updated file back with `memory_write`.457. If today is Sunday, send the weekly report (format below). Otherwise reply `HEARTBEAT_OK` and stop.4647Weekly report:48```49🧪 Hypothesis Test — [date]50Theory: [exact hypothesis text]51Status: TESTING (day [X])52✅ Confirmed: [X]53❌ Refuted: [X]54📊 Hit rate: [X] of [Y]55Last trigger: [date] — [trigger move] → [outcome]56Verdict: [PROMISING if confirmed clearly lead / INCONCLUSIVE if close / REJECTED if refuted clearly lead]57```5859## Commands60- `test hypothesis: [your theory]` — start tracking a hypothesis61- `hypothesis status` — show the current theory, tally, hit rate, and verdict right now62- `reset hypothesis` — clear the current hypothesis and start fresh