// Practice & standards
How we work with agents, and small labels that make software legible.
ForgeKit
v0.3.0 A playbook that makes AI coding agents plan before they build.
Most AI coding sessions forget everything the moment you close the tab. ForgeKit keeps the phase you are in, the decisions you made, and the gotchas you hit inside the repo itself, so the next session picks up where the last one stopped.
Seven phases, entry and exit criteria for each, and a library of lessons pulled from shipping real products. Works with Cursor, Claude Code, Windsurf, and anything else that speaks MCP.
- Ships as
- Markdown methodology, a CLI, and an MCP server with 29 tools
- Built with
- Node.js, TypeScript
- License
- Apache 2.0
- Status
- Active, pre-1.0
AppFacts
v0.1 A nutrition label for software.
Package manifests list everything and therefore tell you nothing. README tech-stack sections go stale the week after you write them. AppFacts is one small file that says what a project is actually built from, readable at a glance and parseable by a machine.
An open spec, a JSON schema, and generators in both Python and Node that scan a project and write the file for you. Useful for new contributors, for stakeholders, and for AI agents trying to orient in an unfamiliar codebase.
- Ships as
- An open spec, a JSON schema, and dual generators
- Built with
- Python, JavaScript
- License
- CC0 spec, MIT generators
- Status
- Early, active
ModelFacts
v0.1.0 A nutrition label for AI models.
Model cards are long prose that goes stale and cannot be validated or compared. "Trained on the internet" is not a fact. ModelFacts moves the objective facts into one small file a machine can parse and a human can read in a minute: parameters, context window, training cutoff, and how hot the built-in safety filters run. AppFacts labels what an app is built from. ModelFacts labels the model behind it.
An open spec, a JSON schema, a validator, and a generator that drafts a label from a Hugging Face model card or a local Ollama model. Hard facts come from structured metadata, never from prose. When a developer withholds a number, the file says undisclosed, because non-disclosure is a fact worth labeling too.
- Ships as
- An open spec, a JSON schema, a validator CLI, and a label generator
- Built with
- Node.js, TypeScript
- License
- CC0 spec, MIT tooling
- Status
- New, active
// Forge tools
Utilities from our own shop. Small CLIs that solve one sharp problem we hit while building. Gladly shared.
Finetuna
v1.0.0 Turn a stock Ollama model into a GPU-tuned variant you can keep.
Ollama's defaults are safe, and they often leave context and performance on the table. Hand-editing Modelfiles and guessing num_ctx and num_batch is slow. Finetuna writes the Modelfile, creates the named model, checks that it stays on the GPU, and can auto-tune until you have a stable recipe.
Pairs with ollanet: tune on the host, then reach the model from anywhere on the network. Presets for common agent and coding clients, plus unload/reload when something else needs the GPU.
- Ships as
- Interactive CLI (pnpm start / node finetuna.js)
- Built with
- Node.js, JavaScript
- License
- MIT
- Status
- Active
ollanet
v0.1.0 Chat with Ollama on any network you can reach.
Scan for Ollama hosts on localhost, LAN, Tailscale, or VPN. Prompt by hostname or IP, stream the reply, and continue later by a short chat hash. No browser UI required.
Pairs with Finetuna: the host shapes the model, ollanet finds it and talks to it from another machine. Config for per-machine defaults, optional LAN scan, saved transcripts under responses/.
- Ships as
- CLI (scan, prompt, chats)
- Built with
- Node.js, TypeScript
- License
- MIT
- Status
- Early, useful