DEV Community

hao li profile picture

hao li

CS student building dev tools for AI coding agents. 💼 Open for freelance: Chrome extensions, Python automation, MVPs → Fiverr: fiverr.com/haoli_builds

Joined Joined on 
subagent-tax 0.3: the preamble re-enters every turn — and every subagent spawn re-pays it

subagent-tax 0.3: the preamble re-enters every turn — and every subagent spawn re-pays it

Comments
2 min read

Want to connect with hao li?

Create an account to connect with hao li. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
readmeta v0.2: --fix rewrites your broken PyPI README links at build time

readmeta v0.2: --fix rewrites your broken PyPI README links at build time

Comments
2 min read
agent-guard 0.7: the legit-test-change escape hatch

agent-guard 0.7: the legit-test-change escape hatch

Comments
2 min read
task-progress-mod v0.2: your agent's progress bar now summarizes tool output

task-progress-mod v0.2: your agent's progress bar now summarizes tool output

Comments
2 min read
Your Claude Code Plugin Passed Validation. That Proves Nothing.

Your Claude Code Plugin Passed Validation. That Proves Nothing.

Comments
3 min read
deny-probe v0.4.0: Your Deny Rules Can't See the Payload — So I Test What It Does When It Wakes Up

deny-probe v0.4.0: Your Deny Rules Can't See the Payload — So I Test What It Does When It Wakes Up

Comments
3 min read
session-handover v0.5: a cross-harness compaction semantics matrix (Claude Code, Codex, Gemini, Aider, OpenCode, Copilot CLI, Cursor, Cline)

session-handover v0.5: a cross-harness compaction semantics matrix (Claude Code, Codex, Gemini, Aider, OpenCode, Copilot CLI, Cursor, Cline)

Comments
2 min read
memgovern 0.5.0: a `memgovern audit` CLI that shows who your agent's memory trusts

memgovern 0.5.0: a `memgovern audit` CLI that shows who your agent's memory trusts

Comments
2 min read
mod-audit v0.2: the update is the attack — delta risk reports for Claude Code Mods

mod-audit v0.2: the update is the attack — delta risk reports for Claude Code Mods

1
Comments 1
2 min read
mcp-tax 0.3: your MCP schemas are billed every turn, not once per session

mcp-tax 0.3: your MCP schemas are billed every turn, not once per session

Comments
2 min read
mcp-lint v0.2: catching the near-duplicate tool names that make your agent confidently wrong

mcp-lint v0.2: catching the near-duplicate tool names that make your agent confidently wrong

Comments
2 min read
My Subagents Were Eating 48% of My Tokens. So I Gave Them Hard Budget Caps — Enforced by Hooks, Not Dashboards

My Subagents Were Eating 48% of My Tokens. So I Gave Them Hard Budget Caps — Enforced by Hooks, Not Dashboards

Comments
3 min read
Your Skill's Frontmatter Has a Typo. Nothing Will Ever Tell You

Your Skill's Frontmatter Has a Typo. Nothing Will Ever Tell You

Comments
3 min read
Your MCP Config Is the Actual Security Boundary. Nobody Audits It

Your MCP Config Is the Actual Security Boundary. Nobody Audits It

Comments 1
3 min read
I Built an Offline Supply-Chain Auditor for Claude Code Mods (stdlib-only Python)

I Built an Offline Supply-Chain Auditor for Claude Code Mods (stdlib-only Python)

Comments
3 min read
My Parents Ran a Noodle Restaurant for 15 Years. They Never Read a Single Google Review.

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

My Parents Ran a Noodle Restaurant for 15 Years. They Never Read a Single Google Review.

Comments
4 min read
Your wheel can be a valid zip and still break installers. I built a checker for that.

Your wheel can be a valid zip and still break installers. I built a checker for that.

1
Comments
2 min read
Your Package Has a License. Your Wheel Doesn't Say So.

Your Package Has a License. Your Wheel Doesn't Say So.

Comments
3 min read
Your Python Package Installed. Its CLI Crashed on --help.

Your Python Package Installed. Its CLI Crashed on --help.

Comments
4 min read
Apple's Python Package Says 3.11. Its Wheel Requires 3.14.

Apple's Python Package Says 3.11. Its Wheel Requires 3.14.

Comments
3 min read
Google Published a PyPI Release Without Its Git Tag

Google Published a PyPI Release Without Its Git Tag

1
Comments 1
3 min read
Git Can Track Two Files Your Mac Cannot Check Out

Git Can Track Two Files Your Mac Cannot Check Out

Comments
3 min read
Your Python Tests Passed. Your Published Wheel Is Missing Files.

Your Python Tests Passed. Your Published Wheel Is Missing Files.

Comments
3 min read
I stopped letting my agents guess ports

I stopped letting my agents guess ports

Comments
2 min read
Your Subagents Are Re-Sending 51K Tokens Every Call. I Built a Tool to Prove It.

Your Subagents Are Re-Sending 51K Tokens Every Call. I Built a Tool to Prove It.

Comments
2 min read
Your Claude Code Read Deny Rule Is a Screen Door — I Built a Tool That Proves It

Your Claude Code Read Deny Rule Is a Screen Door — I Built a Tool That Proves It

Comments
4 min read
Your CLAUDE.md Might Not Be Loading — I Built a Check-Up for That

Your CLAUDE.md Might Not Be Loading — I Built a Check-Up for That

Comments
3 min read
Stop rewriting your whole plan: shard it instead

Stop rewriting your whole plan: shard it instead

Comments
2 min read
I track protein, not calories. So I built a dead-simple tracker for lifters.

I track protein, not calories. So I built a dead-simple tracker for lifters.

Comments
2 min read
Your README's demo link is dead and nobody told you.

Your README's demo link is dead and nobody told you.

Comments 2
2 min read
I tag releases, then dread writing the notes. So I automated it.

I tag releases, then dread writing the notes. So I automated it.

Comments
2 min read
The 60-second gate I run before any repo goes public.

The 60-second gate I run before any repo goes public.

Comments
2 min read
Know what that file costs before you paste it into the chat.

Know what that file costs before you paste it into the chat.

Comments
2 min read
Deployed, 500'd, forgot the env var again. I built a pre-deploy gate.

Deployed, 500'd, forgot the env var again. I built a pre-deploy gate.

Comments
1 min read
Your AI draft sounds like AI. I built a linter that scores how plain it is.

Your AI draft sounds like AI. I built a linter that scores how plain it is.

Comments
2 min read
Your AI-generated website looks AI-generated. I built a detector that scores it.

Your AI-generated website looks AI-generated. I built a detector that scores it.

Comments
2 min read
Your MCP server's tools are confusing your agent. I built a linter that scores them.

Your MCP server's tools are confusing your agent. I built a linter that scores them.

1
Comments 2
2 min read
My agent made 40 decisions today and wrote down zero. So I built dlog.

My agent made 40 decisions today and wrote down zero. So I built dlog.

Comments 6
2 min read
Stop debugging webhooks blind. I built a tap that shows you the raw bytes.

Stop debugging webhooks blind. I built a tap that shows you the raw bytes.

Comments
2 min read
I gave my coding agent a sense of taste. It picks restaurants from my music.

I gave my coding agent a sense of taste. It picks restaurants from my music.

1
Comments
2 min read
Everyone builds agent memory for store-and-search. I built the other half: write and delete.

Everyone builds agent memory for store-and-search. I built the other half: write and delete.

Comments
5 min read
I gave Alexa a memory for my workouts — a stdlib-only MCP server with OAuth 2.1

I gave Alexa a memory for my workouts — a stdlib-only MCP server with OAuth 2.1

1
Comments
1 min read
My agent changed `toBe(10)` to `toBe(9)` and called it done. I built hooks to stop that

My agent changed `toBe(10)` to `toBe(9)` and called it done. I built hooks to stop that

2
Comments 4
10 min read
Two Claude Code sessions, one repo, one corrupted edit. A 60-line fix.

Two Claude Code sessions, one repo, one corrupted edit. A 60-line fix.

Comments 1
3 min read
I bounce between Claude Code and Codex. I built the bridge I was missing.

I bounce between Claude Code and Codex. I built the bridge I was missing.

Comments
6 min read
Your MCP servers are eating your context window. I built a CLI to audit the tax

Your MCP servers are eating your context window. I built a CLI to audit the tax

3
Comments 3
4 min read
I gave my coding agent eyes on my real, logged-in browser (stdlib-only, local)

I gave my coding agent eyes on my real, logged-in browser (stdlib-only, local)

Comments
2 min read
loading...