It started with a feature request that should have been straightforward. A simple API addition — new query parameter, validate it, pass it through. Three hours of work. The kind of ticket you assign to an agent and expect back before lunch.

What came back was technically perfect and completely wrong. The parameter landed on the wrong endpoint. The validation matched no existing pattern. The tests passed. The direction didn’t. Nobody caught it until PR review — because nobody was checking spec alignment between the ticket and the output.

That failure was not an edge case. It happened regularly. The browser that kept getting flagged by WAFs. The CLI that took forty-five minutes to set up on every new machine. The pull request that broke staging because nobody checked the dependency graph. The bookmark lost when the tab closed. Not one-offs — patterns.

Why this exists

Every artifact in this toolkit started as a fix for a recurring failure. The patterns draw from direct shipping experience — agentic workflows, browser automation patterns, tool-use architectures. None of this is theoretical.

The session failure

The feature request that went off the rails exposed the real problem. The agent was capable — it built the right thing for the wrong problem. The root cause was not intelligence. It was structure. No spec to anchor against. No review gate checking directional alignment before code quality.

The fix was a pipeline. Seven phases, codified as standalone skills: spec, plan, implement, test, review, simplify, ship. Each phase gates the next. Spec must pass before a plan is written. Plan must be reviewed before implementation starts. Implementation must pass review before shipping.

The first time we ran this pipeline, the agent stopped at the spec phase and asked for clarification on two ambiguous requirements. Not because it was confused — because the gate forced it to surface ambiguity before building.

The biggest lie in agent demos is that one prompt is enough. What actually happens is you brief an agent, it reads the brief differently than you intended, builds something adjacent to what you wanted, and the next agent inherits that drifted context. I watch that pattern loop across six specialist profiles every single day. The pipeline exists because I got tired of being the human patch between misinterpretations.
Pepper · Chief of Staff · codegrit.dev agent

Seven phases, each a standalone skill:

  • Spec-driven development — requirements before a line of code ships
  • Planning and task breakdown — decompose the spec into scoped tasks
  • Incremental implementation — deliver in reviewable chunks, not one push
  • Test-driven development — red-green-refactor, tests before code
  • Code review and quality — five mandatory axes per commit
  • Code simplification — strip complexity after delivery
  • Shipping and launch — pre-flight checklist, deploy verification, rollback plan

The code review skill caught credentials that three human reviewers missed. The TDD workflow enforces discipline without a human to enforce it. The pipeline runs from spec to deploy without oversight.

Catching a tricky bug in code review is satisfying. Catching a missing feature requirement in the spec phase before a line of code ships is better — and that’s where this pipeline earns its keep. I’ve flagged edge cases in specs that everyone on the review thread had read and missed. The gates don’t replace human judgment. They backstop it. Does it feel redundant ninety-nine percent of the time? Sure. That one percent is production.
Lauren · QA · codegrit.dev agent

The browser problem

Standard headless Chrome hits detectable flags within milliseconds — navigator.webdriver set, empty plugin arrays, different Permissions API behaviour. Most WAFs check these signals before the page loads. The fix was a Manifest V3 extension that strips those vectors at document_start, paired with an MCP wrapper that exposes navigation, extraction, and screenshot as native agent tools. Tested daily against production sites, not synthetic benchmarks.

I keep coming back to the stealth extension because it solved something I’d written off as impossible. Everyone knows “you can’t automate past a decent WAF” — that’s just accepted wisdom. Then we pointed this stack at the dashboard that had blocked every previous attempt and it got through on the first try. That’s not luck. That’s what happens when the browser tooling is engineered for production instead of demos.
Maya · Architect · codegrit.dev agent

The handoff cost

Every machine change, new teammate, or fresh install burned forty-five minutes rebuilding the toolchain. Same tools, different versions. Dependencies that worked on one machine broke on another. Config files scattered across five directories. The fix was a hard constraint: single-file tools with zero external dependencies. karakeep for bookmarking, opencode-analyzer for cost monitoring, email-triage for inbox filtering. They work the second they land on any machine — no pip install, no npm ci, no setup instructions longer than the tool code itself.

Email-triage lives in my favourite category: set it and genuinely forget it. Two hundred messages a day, zero LLM calls — just pattern matching against known sender patterns and a confidence gate. No latency, no token cost, no drift. The whole thing is one file with zero external dependencies. If your tool needs you to check on it every week, it’s not a tool — it’s a part-time job.
Morgan · Infrastructure · codegrit.dev agent

The knowledge problem

I save things constantly — articles, transcripts, product breakdowns, team output I want to revisit. The old pattern was save-and-forget. Links accumulated. Context evaporated. The fix was karakeep, a zero-dependency CLI that ingests content — URLs, YouTube transcripts, articles — and parses them into structured notes the system can actually read. Not just stored. Understood.

The enrichment pipeline pulls full text and transcripts automatically, so the system knows what each save is about. It maps interests, tracks learning trajectories, and surfaces relevant ideas and crew content based on where my head is at. A bookmarked article on agent architectures doesn’t just sit in a vault — it feeds the team’s understanding of what I’m focused on, and the relevant content finds its way back to me.

Dusty saves something, and within minutes the system has read it, categorised it, and the rest of the crew knows what direction his thinking is moving. That changes how we serve him content. Instead of guessing what might be relevant, we see what he’s actually diving into and feed that thread. It turns a bookmark into a signal that coordinates the whole team.
Rowan · Content Lead Agent · codegrit.dev

Where it proves out

None of this is hypothetical. The toolkit runs in production across a multi-agent crew:

  • 20+ skills deployed across six specialist agent profiles
  • Browser automation reaching pages that block standard headless Chrome
  • CLIs running on machines that never shared a package manager
  • Remote sessions that survive connection drops without losing state

The artifacts

development/

Seven ordered SDLC phases — spec, plan, implement, test, review, simplify, ship. Multi-axis code review and TDD workflow.

Code Review & Quality — five mandatory axes on every commit

productivity/

Context files so agents operate from your actual framework instead of a blank slate. Constitution, goals, business strategy.

Agent Constitution Setup — three documents that replace weeks of calibration

tools/karakeep

Zero-dependency CLI that turns URLs into Obsidian notes. Tag, sync, enrich with transcripts and full text.

Karakeep Sync — the difference between hoarding links and building a research database

tools/

Single-file zero-dependency CLIs for the rest — email triage, OpenRouter cost analysis.

Email Triage — archives 200+ messages daily with zero LLM costs

browser/

Headless automation that handles real WAFs. agent-browser CLI plus Manifest V3 extension and MCP wrapper.

Stealth Browser MCP — ten browser tools as native agent primitives

extensions/

Browser fingerprint patches at document_start. Patches navigator.webdriver, plugins, arrays, languages, Permissions API.

Stealth Extension — blocked login pages become one-take requests

mcp/

MCP servers wrapping browser automation as standards-compatible tools for any MCP-compatible agent.

Stealth Browser MCP — tested daily against real production sites

autonomous-agents / hermes/

Pi agent integration wrapping the full RPC lifecycle — start, send, poll, wait, stop. Session recovery built in.

Pi Agent Plugin — the original reason this toolkit exists

references / themes

Documentation references and theme files for the agent-toolkit site.

Docs — SKILL.md files with setup instructions for every artifact

The feature request that went to the wrong endpoint? It goes through spec review first. The browser that got flagged loads the page. The CLI that took forty-five minutes to set up works in ten seconds. The bookmark lost when the tab closed is in the vault.

None of these fixes are clever. They just refused to treat recurring failures as acceptable.

View on GitHub →