Skip Navigation

Scott Spence

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:

  • mcpick got safer config handling, rollback flows, portable client profiles, and TUI profile cleanup
  • nopeek got more secret loading safeguards and audit detection improvements
  • mcp-sqlite-tools got tighter safety boundaries, clearer usage errors, backup fixes, and CSV import/export support
  • mcp-omnisearch got 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!

Copyright © 2017 - 2026 - All rights reserved Scott Spence