Docs, Guardrails and wiki0 - May 2026
Most of May was delivery work, plus a lot of evening/weekend tinkering on the tooling that helps me do that work without losing the plot.
The public bits were one blog post, a lot of my-pi iteration, and a
new thing called wiki0 that went from idea to working CLI/MCP/core
packages in about three days. The private bits were mostly client work
around SvelteKit, team onboarding, project memory, guardrails, custom
linting, Azure, CI/CD, document processing, and the unglamorous glue
needed to make a real system deployable.
Client Work
I spent a lot of time making the codebase easier for the team and for
agents to work in: onboarding docs, architecture notes, searchable
project context, repo boundary checks, custom oxlint rules, Svelte
guardrails, runtime config checks, release/export tooling, and small
scripts that turn “please remember the convention” into “the tooling
will catch it”.
The docs CLI was the bit I was most pleased with. It indexes the
project docs into local SQLite/FTS, then gives you commands for search, context, show, facts, topics, read-only query, and stats. For agent work, that means you can ask for the relevant
project context before touching code, then jump back to the cited
source chunk instead of trusting vibes or a stale summary.
That pattern is absolutely coming with me. It is also what nudged wiki0 into existence: if a project docs index is useful for one
codebase, a small local-first wiki with CLI/MCP access is useful for a
lot more than that.
wiki0
wiki0, a local-first Markdown wiki for humans and agents.
The shape is pretty simple:
- Markdown files stay as the source of truth
[[WikiLinks]]give pages a graph- optional YAML frontmatter adds metadata
- SQLite gives fast local index/search
- CLI and MCP tools make it usable from a terminal or agent session
This started as a small “I want that docs CLI pattern, but reusable”
thing and very quickly turned into a repo with @wiki0/core, CLI
commands, MCP tools, indexing, search, backlinks, graph output,
linting, facts, and a small SvelteKit web app scaffold.
The most useful bit so far is that it is dogfoodable immediately. I can use the MCP tools to create pages, add frontmatter, index the wiki, search it, and check links while building the thing itself. That loop is the whole point: project knowledge should be inspectable, local, and usable by both me and the agent without needing another hosted service.
It is early, but it feels like one of those tools that will be handy in AI workflows.
my-pi
my-pi kept moving too. Some of this was the continuation of the work
from April, where the useful bits started becoming installable Pi
packages rather than just living inside my own harness.
The biggest public thread was still the SQLite context sidecar. I published the longer write-up here:
The short version: oversized tool output gets chunked and indexed into local SQLite with FTS5, and replaced in chat with a receipt. The agent can then search and retrieve exact chunks instead of filling the whole conversation with a giant command result.
I also kept adding the bits that make the harness feel more like a usable daily tool:
- Svelte guardrails through pre-tool-use hooks
- configurable Svelte guardrail modes
- optional built-in extensions
- coding preferences as an extension
- GitHub skill import/update flows
- skill install progress overlays
- a git staging UI with hunk/line staging and commit composer
- footer widgets and density settings
- team-mode cleanup, mailbox waits, and modal flow work
- a small web landing page for
my-pi
That is a very Scott list, I know. Half product surface, half plumbing, half “this annoyed me yesterday so now it is a feature”. Yes, that is three halves.
Skills and Guardrails
Skills got another pass as well. The Svelte skills were refreshed for
Svelte 5, the remote-functions skill picked up query.live, and the
metadata across the skill pile got tidied so the right skill can be
found at the right time.
That fed back into check-skills, which now
has stricter validation around vague descriptions, unsafe resource
paths, orphaned files, placeholder content and multiline descriptions.
Other Open Source Bits
A few other tools got smaller updates:
mcpickgot safer config handling, rollback flows, portable client profiles, and TUI profile cleanupnopeekgot more secret loading safeguards and audit detection improvementsmcp-sqlite-toolsgot tighter safety boundaries, clearer usage errors, backup fixes, and CSV import/export supportmcp-omnisearchgot better large-result offloading controls and more honest provider status handling- this site moved through the pnpm 11/dependency/CI conveyor belt
Fin
So yeah, May was quieter publicly but busy underneath. Client work
took the centre, the docs/indexing/guardrails pattern proved itself, my-pi kept turning into a more usable harness, and wiki0 appeared
because apparently I needed another local SQLite thing in my life.
If you want to poke around, the repos and post are linked above, or come say hi on Bluesky. Thanks for reading!