White paper & system architecture
Hub-William: the boundary an agent must not cross, written down
An agent given a whole codebase and a shell has no boundary it must not cross, and nothing that fires when it tries. Hub-William writes that boundary down in four kinds of document — Harnesses, Skills, Hooks and Templates — and every one of them is a Markdown file in this repository. That is the point: a boundary you can read, review in a diff, and disagree with.
01. The problem
Why prompting harder does not fix it
Contemporary AI coding agents suffer from fundamental systemic limitations: prompt bloat, memory degradation across long contexts, accidental destructive overwrites, and failure to honor repository-specific architectural rules.
When an agent is given an entire codebase and free rein over raw shell commands, it frequently hallucinates non-existent dependencies, breaks existing unit tests, violates project conventions, and opens a pull request nobody can review.
Core hypothesis: the failure is not a wording problem, so it does not have a wording fix. An agent needs a boundary written down where it can be read — harnesses it executes inside, skills that carry one discipline’s rules, and hooks that fire around the actions leaving the checkout.
02. How to contribute
Everything is a Markdown file, so a contribution is a pull request
Everything on the canvas is a Markdown file, so contributing is opening a pull request that adds one. There is no upload, no account, and nothing to run.
- Fork the repository.
Create
contributors/default/contrib/<your-github-login>/and file your document under the kind it is.contributors/<your-github-login>/ ├── libraries/ │ ├── harness/<name>.md an execution mode │ ├── skills/<name>/SKILL.md a skill, with YAML front matter │ ├── hooks/<name>.md a contract that fires around an action │ └── templates/<name>.md a shape to write into └── tools/ └── <name>/<name>.md how to install or run somethingThe folder name has to be your GitHub login. That is what publishes your page at
/library/<your-login>, and what resolves your avatar beside it without an API call or a stored file.- Write the document. A heading and a first paragraph are enough — the site takes the entry’s name and description from them, and never edits your file. A skill also needs
nameanddescriptionfront matter, because that is what its format requires. - Open a pull request. CI runs formatting, linting, type checking, tests, a production build and the catalogue’s own suite. Once it merges your page is prerendered and deployed — nobody has to register it anywhere.
Changing a shared document is the same flow without step 2. Say in the pull request why the rule should apply to everybody rather than to you; that is the whole difference between the two folders.
03. How to use
Install the catalogue on your machine
One dependency-free Python bootstrap downloads or updates the catalogue, then opens the same terminal picker used for every later change. There is no package-manager wrapper to install first.
curl -fsSL https://synasapmob.github.io/install.py | python3 -What it needs on the machine
python33.8 or newer onPATH. macOS ships one at/usr/bin/python3and most Linux distributions already have one; with nothing new enough the script stops before it does anything.- At least one agent CLI on
PATH—claude,codexorgrok. With none of them installed,initstops withno agent CLI on PATHrather than installing documents no agent will read.
The picker uses arrow keys to move, space to toggle an item, and enter to preview the install. It asks once before touching anything, then installs the selection into each agent’s home as read-only copies. The checkout stays the editable source.