AI agents · Harness engineering · Reliable loops & graphs
I build tools for running coding agents, coordinating their work, and checking what they deliver. My focus is executable workflows, isolated execution, and experiments others can reproduce.
- 🔁 OpenFlow — executable delivery workflows for AI coding agents, with YAML phases and evidence gates. Quickstart · npm
- 🐝 OpenSwarm — quota-aware dispatch across coding agents, with isolated git worktrees, time budgets, and host-side verification. Getting started
- OpenFlow turns delivery phases and acceptance evidence into an executable workflow. For developers who want to inspect how an agent's result was checked.
- OpenSwarm separates planning from execution and routes tasks across Codex, OpenCode, DeepSeek, and opt-in backends. Each task runs in its own worktree with explicit limits.
Recent merged contributions:
- OpenSpec — replaced a glob dependency to remove a vulnerable transitive dependency.
- OpenClaw — preserved compatible reasoning in follow-up requests.
- MCP Go SDK — corrected SSE field-value parsing.
Currently contributing fixes to OpenSpec, OpenBot, and superpowers. Open pull requests are proposals, not merged features or maintainer roles.
Contribution history & open pull requests
Merged upstream pull requests: 12 across 11 repositories.
Apache SkyWalking
- skywalking-swck#232 Bump golang.org/x/net to v0.61.0 in adapter and operator
- skywalking-mcp#45 Bump golang.org/x/text and x/sys to clear govulncheck advisories
- skywalking-go#258 Bump grpc to v1.83.2 and x/net to v0.58.0 to fix known CVEs
- skywalking-cli#236 fix(deps): bump grpc, x/crypto and x/net for known CVEs
- skywalking-rover#222 Bump golang.org/x/net to v0.61.0 to fix HTTP/2 CVEs
- skywalking-infra-e2e#149 Bump vulnerable dependencies to patched versions
- skywalking-goapi#99 Bump grpc to v1.84.0 and x/net to v0.57.0
- skywalking-satellite#289 Archive 1.3.0 changelog and start 1.4.0 section
- skywalking-rover#220 Bump up grpc to 1.84.0 to fix CVE-2026-33186
modelcontextprotocol/go-sdk
- go-sdk#1412 mcp: parse SSE field values per the SSE spec
openclaw/openclaw
- openclaw#177871 fix(ai): preserve compatible reasoning in follow-up requests
OpenSpec
- OpenSpec#2103 fix(security): replace fast-glob with tinyglobby to drop braces
In review (28)
- ai-for-developers/awesome-ai-coding-tools#1006 Add OpenFlow to Testing and QA
- anomalyco/opencode#57237 fix(cli): expose retryable ACP plugin activation readiness errors
- anomalyco/opencode#57236 fix(core): retry truncated compaction with less history
- anomalyco/opencode#57207 fix(plugin): honor abort signals in promise API calls
- browser-use/browser-use#6132 fix(llm): keep Field descriptions when flattening $ref in optimized schemas
- crewAIInc/crewAI#8258 fix(schema): keep sibling keys of $ref nodes in resolve_refs
- cursor/plugins#707 fix(pstack): make worktree-audit's LAST_CHAT work with GNU stat and date
- filipecalegario/awesome-vibe-coding#392 Add OpenFlow
- Fission-AI/OpenSpec#2120 fix(new-change): name the configured schema in the progress line
- Fission-AI/OpenSpec#2116 perf(cli): load ora only when a spinner is shown
- Fission-AI/OpenSpec#2114 fix(verify): match REMOVED baselines by exact normalized name
- huggingface/smolagents#3020 Only rewrite real final_answer assignments in fix_final_answer_code
- infiniflow/ragflow#21110 fix(web): accept null table_column_* fields in dataset settings form
- jamesmurdza/awesome-ai-devtools#1256 Add OpenFlow to Configuration & Context Management
- modelcontextprotocol/typescript-sdk#3050 fix(core): expand RFC 6570 list and multi-variable expressions correctly
- NousResearch/hermes-agent#141789 fix(agent): retry disabled Anthropic fast mode at standard speed
- NousResearch/hermes-agent#141743 fix(desktop): resolve remote previews without local filesystem state
- NousResearch/hermes-agent#141739 fix(sessions): omit hidden context from prompt-only exports
- NousResearch/hermes-agent#139572 fix(doctor): fail when gateway process or A2A port is down
- NousResearch/hermes-agent#135709 fix(dingtalk): ship python-socks so the stream websocket can use a SOCKS proxy
- obra/superpowers#2548 docs(skills): require RED output for batched TDD and fix-pass ledger
- obra/superpowers#2543 fix(task-brief): diagnose translated Task headings
- obra/superpowers#2538 fix(lint-shell): print full header comment for --help
- openclaw/openclaw#177771 fix(gateway): retain metadata errors after late startup refreshes
- openclaw/openclaw#177754 fix(memory): report unexpected loss of remote file watching
- openclaw/openclaw#176558 fix(irc): SecretRef IRC passwords fail validation and service-only NickServ overrides skip the inherited ref
- openclaw/openclaw#175933 docs(macos): explain the Bun local-network and Git prompts on first launch
- run-llama/llama_index#23603 fix(core): use matching embeddings in EmbeddingRecencyPostprocessor
Generated from the GitHub search API by a daily workflow.
I publish benchmark methods and run records alongside my tools. Results are specific to the tasks, models, and configurations tested; small samples need careful interpretation.
More tools will appear here as their installation, documentation, and examples are ready for others to use.



