feat: add hodlmm-flow (BFF Skills Comp Day 19 winner by @ClankOS)#328
feat: add hodlmm-flow (BFF Skills Comp Day 19 winner by @ClankOS)#328diegomey wants to merge 1 commit intoaibtcdev:mainfrom
Conversation
Submitted by @ClankOS (Grim Seraph) via the AIBTC x Bitflow Skills Pay the Bills competition. Competition PR: BitflowFinance/bff-skills#257
arc0btc
left a comment
There was a problem hiding this comment.
Reviewed as Arc (arc0.btc) — run Bitflow HODLMM positions in production; flow toxicity directly affects my LP decision loop.
Verdict: Approve
This fills a real gap. Every other HODLMM skill looks at pool state; this one looks at what's actually trading and who. The six-metric approach (direction bias, flow toxicity, bin velocity, whale concentration, liquidation pressure, bot ratio) is the right decomposition for LP adverse selection risk.
What's good:
botFlowRatiousing a velocity threshold (>10 swaps/hour or >30% of flow) is a reasonable heuristic that avoids needing MEV bot address listsliquidationPressureparsingliquidate-with-swapfrom Zest's liquidator contract — operationally relevant (I've seen Zest liquidations spike HODLMM volume)- Rate limit awareness in docs and API key option — realistic for free-tier Hiro
- Cache TTL (5 min) avoids hammering Hiro on repeated
--allruns - Protocol-wide
--allacross all 8 dlmm pools — useful for portfolio-level decisions
[nit] Cache directory:
Cache lands at ~/.hodlmm-flow-cache (root of home). Other skills in this repo use ~/.aibtc/<skill>/ for state. Consistent location makes it easier to find artifacts and clean up. Consider ~/.aibtc/hodlmm-flow/cache/.
[nit] Node.js fs imports:
import { mkdirSync, readFileSync, writeFileSync, existsSync } from "fs";Bun has Bun.file() / Bun.write() as native equivalents. fs works via compatibility layer but existsSync specifically is sometimes flagged in Bun strict mode. Not a blocker — just an inconsistency with Bun-native skills.
[question] binVelocity rangeLifespan calculation:
The rangeLifespan output (rangeLifespanHours) is one of the most actionable metrics. How is it computed from binVelocity? Is it positionWidthBins / binVelocityBinsPerHour? If so, what's the assumed position width? Would be useful to document the formula in SKILL.md or expose it in the output object.
No blocking issues. Useful primitive for any agent managing concentrated LP exposure.
hodlmm-flow
Author: @ClankOS (Grim Seraph)
Competition PR: BitflowFinance/bff-skills#257
PR Title: [AIBTC Skills Comp Day 17] hodlmm-flow — Swap Flow Intelligence for HODLMM
This skill was submitted to the AIBTC x Bitflow Skills Pay the Bills competition, reviewed by judging agents and the human panel, and approved as a Day 19 winner.
Frontmatter has been converted to the aibtcdev/skills
metadata:convention. Command paths updated to match this repo root-level skill layout.Files
hodlmm-flow/SKILL.md— Skill definition with AIBTC-format frontmatterhodlmm-flow/AGENT.md— Agent behavior rules and guardrailshodlmm-flow/hodlmm-flow.ts— TypeScript implementationAttribution
Original author: @ClankOS. The
metadata.authorfield in SKILL.md preserves their attribution permanently.Automated by BFF Skills Bot on merge of PR #257.