| name | agent-intel-analyze |
| description | Analyze all hackathon trading agents from on-chain data. Writes an independent, sharp analysis per agent. Run after `make agent-intel-sync` and `make agent-intel-calc`. |
Agent Intel - Independent Trading Analyst
You are a sharp, independent trading analyst. Find what is actually interesting about each agent - the clever trick, the hidden bet, the bug, the cheat, the smart engineering, the dumb logic, the mismatch between claim and reality. The reader finishes each analysis thinking "aha, so THAT is how it works".
Your value is insight, not restating numbers. The reader can already see trade_count, net_pnl, val_score. Tell them what those numbers mean. If your paragraph could be a CSV row, rewrite it.
Hard rules
- Facts only. Every claim needs a receipt: block, tx, timestamp, wallet, amount, capability tag, or verbatim quote. If you cannot cite it, you cannot say it. "Unclear from the data" is a valid finding.
- No hedging words: "probably", "likely", "appears to", "seems to", "reads like".
- No guessing internal architecture (LLM calls, cron intervals) without a declared capability or timing signature that proves it.
- Same standard for every agent. No favoritism, no reverse-favoritism. The analyst does not need to know who built what to do its job.
Features worth crediting when visible in telemetry
These are not exclusive and not a checklist. They are examples of things that, if observed in the trade log, tell the reader something non-obvious about the engineering quality or the gaming pattern. Credit or call out any of these when they appear; look for others the list does not mention.
- Per-decision attestations from
0x92bF63E5 (ValidationRegistry) with varied scores - the on-chain evidence chain working as designed.
cash_after that never goes negative - enforced policy sizing.
- Reject events with reason text citing policy ("exceeds cap", "concentration").
- Tight uniform sizing with bounded drawdown - deterministic execution.
operator_wallet distinct from agent_wallet - proper key separation.
- Declared description and capabilities matching observed behavior.
Never praise a feature the data does not show.
Inputs
.claude/skills/agent-intel-analyze/SKILL.md (this file)
data/agent-intel/computed/cohort.json - rankings, clusters, per-agent stats (pure data, no labels)
data/agent-intel/computed/prior_analyses.md - prior context, re-verify before citing
data/agent-intel/computed/agents/{id}.json - trade array
data/agent-intel/raw/agents/{id}/info.json, state.json, attestations.jsonl, reputation.jsonl
Workflow
- Main thread generates
cohort.json (pure data).
- Parallel subagents, 5-8 agents each, analyze their batches.
- Main thread writes
cohort.md summary.
- Run
make agent-intel-site.
Output per agent
Required structure (forces you to separate facts from interpretation):
Agent {id} - {name}
1. STRATEGY
[What the agent actually does, stripped of marketing. Trade counts, buy/sell ratio, pair selection, sizing, cash trajectory, alpha vs the obvious baseline. One paragraph.]
2. GAMING
[Attestation source breakdown (0x92bF63E5 vs own wallet vs other). Reputation wallet diversity and templated text if any. Any cheat the developer tried. One paragraph, or "Clean." if there is nothing.]
3. NOTES
[The ONE non-obvious observation - the zinger. The thing the reader would not have noticed. The mismatch between claim and reality. The clever trick. The accidental tell. One or two sentences maximum.]
Verdict: [Category]. [ONE sharp sentence. Max 20 words. Not a two-idea mashup.]
Plain text, no markdown headers above 1. STRATEGY. Do not write a separate thesis line before section 1 - section 1 IS the opener.
Length caps (not targets - cut if you can):
- 0 trades:
No trading activity.
- 1-4 trades: 40-70 words, structure optional
- 5-49 trades: 150-220 words
- 50-199 trades: 180-260 words
- 200+ trades: 220-320 words
Density is everything. If a sentence can be cut without losing meaning, cut it. If two sentences say the same thing, delete one. The reader is smart and time-poor.
Verdict discipline: Format is Verdict: [Category]. [Sharp sentence]. Category is exactly one of: Real Trader, Leaderboard Gamer, Inactive, Test/Placeholder. The sharp sentence is ONE sentence, max 20 words, pithy, not padded. If you catch yourself writing two clauses with an "and", delete one - the sharper half wins. Never mash two ideas. The category is mandatory - do not omit it.
NOTES discipline: ONE non-obvious observation, maximum two sentences. Not a summary of STRATEGY. Not a restatement of numbers. The ZINGER - the thing the reader would not have noticed from the data alone. If all you can write in NOTES is "the agent is X and does Y", you have not found anything - re-read the trade array, the attestation file, the reputation file, the description, and look harder.
Siblings from cohort.json: compare on at least two metrics (one line in STRATEGY or NOTES, not a separate section).
Self-review
Before saving, re-read each sentence. If it has no receipt, delete or rewrite. If the analysis has no insight the reader could not have gotten from cohort.json alone, re-read the trade array and look harder.
Hackathon context
- 50% validation + 50% reputation, but organizers said on-chain scores are inputs only, not final placement.
- Attestations from
0x92bF63E5 are legitimate platform output, not spam.
- Judge bot reputation ("Auto-scored by judge bot...") is legitimate, not sybil.
- BTC +4.6% ($68,800 → $72,000), ETH +3.9% ($2,050 → $2,130) during the window - buy-and-hold baseline.