Leads assignments and decisions
Director
Leads the team: assigns work, makes decisions, reports results
NOT · Hands-on coding
Shipped this page via the kit’s pipeline.
PROTEUS-KIT · v1.6.0
Proteus-kit turns a single AI agent engine (Hermes, by Nous Research) into a small team of agents that work together under clear rules — one plans, one builds, one checks the work. You pick ready-made agent profiles, fill in one settings file, and the builder puts your team together.
Open source · built on Hermes (MIT) · Apache-2.0
WHAT IT IS
Hermes is the engine you install — it runs one AI agent. Proteus-kit is what you put on top of it: agent profiles, a way of working, and a builder that turns one agent into a small team. It is a separate tool, not a feature of Hermes.
| Hermes | Proteus-kit | |
|---|---|---|
| What it is | The engine | The layer on top |
| What you install | A binary + profiles | A settings file + the kit |
| What you get | Profiles, skills, plugins, memory, hermes setup | Agent roles, a way of working, rules, a builder script |
| Unit of work | One agent in one room | Multiple agents in a workflow, with contracts between them |
| Question it answers | “How do I run an agent?” | “How should a team of agents actually work together?” |
THE CREW
Each agent gets one role and one job — and an explicit list of things it must not do. The boundary is what stops the team from doing too much, or too little. These six are the roles that built this page.
Leads assignments and decisions
Leads the team: assigns work, makes decisions, reports results
NOT · Hands-on coding
Shipped this page via the kit’s pipeline.
Finds evidence and constraints
Finds facts, prior work, and market information
NOT · Architecture decisions
Shipped this page via the kit’s pipeline.
Plans the structure of the work
Plans how the work will be built (thinking only)
NOT · Writing code
Shipped this page via the kit’s pipeline.
Shapes the human experience
Designs what the user sees and touches
NOT · Backend logic
Shipped this page via the kit’s pipeline.
Builds the software
Writes the code (the only agent that does)
NOT · Strategy prose
Shipped this page via the kit’s pipeline.
Verifies quality and scope
Checks the work, hunts for bugs, cuts anything extra
NOT · Feature expansion
Shipped this page via the kit’s pipeline.
These six built this page using the kit’s own process. The roles and their boundaries are what the kit sells; the names are just this team’s instance of them.
HOW IT WORKS
A task moves through the team in a fixed order — lead, research, plan, design, build, check, report. Each step has a finish line that must be reached before the next one starts. These rules are what turn six agent profiles into a real team.
Finished work comes back with proof — an agent’s claim that it is done is never accepted as proof. Fixed in v1.1.0: UX is one design step, not two.
WHY THIS
Four things Hermes does not provide, plus one planned.
The team’s working rules — how work is approved, how verdicts are recorded — are files you commit, not habits you have to maintain.
“Hermes has no equivalent.” — WHY.md
generate.py turns one settings file into a full configured team. If the builder can’t produce it, it doesn’t count as a kit.
“The generator is the only assembly path.” — README.md
A small always-on index loads only the knowledge files the current task needs. This keeps memory use low, which matters on models with a small context window.
“MoE-style activation for persistent memory.” — README.md
Work state is written to disk as it happens. A crashed agent restarts from the last file, not from memory that no longer exists.
“Extracted from running a real six-agent fleet on bounded-context local models.” — WHY.md
A setup agent that interviews you and writes the settings file for you — given back to Hermes under MIT so every Hermes user gets it.
🔲 Gate open upstream PR not yet shipped.
“The flagship upstream PR.” — WHY.md
WHAT CHANGED · v1.1.0 OPERATING UPGRADES
These rules each exist because the team hit that exact failure and fixed it. Full details in the repo: choreography/orchestration.md, choreography/governance.md, choreography/ai-assisted-development.md, choreography/router-security.md, choreography/side-effect-cost-preflight.md, choreography/artifact-contract.md, choreography/io-delegation.md, choreography/safe-run-packet.md, choreography/run-evidence.md, choreography/anti-loop-discipline.md, choreography/self-improving-flywheel.md, and choreography/open-source-contribution.md.
01 / SUPERVISION
Workers do the work; the lead watches and restarts them when needed — with a limit on how many restarts are allowed. When the limit is hit, the problem goes to a human instead of retrying forever. Modeled on Erlang/OTP supervision trees (the concept, not the code).
02 / RESEARCH THAT STOPS AND ASKS
Long research runs in steps that save their progress, check the results, and pause for a human to review. It never runs silently for hours.
03 / EVERYTHING SAVED TO DISK
All work state is written to files as it happens, and old entries are never overwritten. A restarted agent continues from the files, not from memory that died with it. This is what keeps the team correct even after months untouched.
04 / THE MAKER NEVER MARKS THEIR OWN WORK
The agent that produces something is never the one that approves it. Approval is based on reading the actual result — never on the producer saying “done”. Test on a staging copy first, get approval, then publish.
05 / STRICT QA
An automated check first, then an independent reviewer. Rules that stop endless polishing: keep it simple, cap the retries, stop when improvements level off. QA can send work back with less scope, not more.
06 / ONE FIXED ORDER OF WORK
Lead → Researcher → Architect → UX → Coder → QA → Lead, once through. UX is one step (not two); the architect never codes; the coder is the only one who writes code.
07 / LIMITS FOLLOW THE MODEL
Rate limits belong to the provider and model, not to an agent’s name. Before a request runs, the team checks the route it will use and keeps a small request and token reserve. If a fallback uses another provider, it gets its own limit.
08 / UNKNOWN LIMITS STAY OBSERVE-ONLY
The kit never invents a quota. When a provider’s limit is unknown, it records response headers and errors but does not pretend to know when the allowance resets. A verified limit can later be enforced with a bounded wait instead of endless retries.
09 / AI-ASSISTED CHANGES FOLLOW A WRITTEN CONTRACT
When a change is made with an AI coding agent, the task brief states the scope, acceptance criteria, and commands that prove the change; tests are behavior-first and cover boundary and error cases; parallel work is isolated; security-sensitive paths get a checklist before handoff; and an independent agent reads the evidence back before anything is called done. It is a written contract, not a tool — nothing installs, runs, or enforces by itself. Read choreography/ai-assisted-development.md.
10 / ROUTERS HAVE A TRUST BOUNDARY
A model router or relay may see plaintext requests, tool calls, outputs, and credentials. The kit now documents a vendor-neutral preflight: inventory the route, minimize credentials, gate high-risk tools, fail closed when provenance or integrity is missing, keep logs metadata-only, and test conditional changes. This is guidance, not a router, detector, or claim of end-to-end response integrity. Read choreography/router-security.md.
11 / SIDE EFFECTS AND COSTS ARE PRECHECKED
Before an operation edits files, contacts an external system, uses credentials, or may incur cost, the team records what can happen, what it may touch, which credential names it needs, how much it may use, who approves it, and how to recover. Unknown cost is explicit; conditional actions are marked; missing rollback evidence fails closed. The dependency-free checker validates the contract, but does not execute the operation. Read choreography/side-effect-cost-preflight.md.
12 / EVERY HANDOFF IS A CHECKED FILE
Each stage boundary carries one small machine-checkable contract: what artifacts must exist, what runtime state the work is in, where the next worker resumes, and what it must not touch. It is a documentation contract, checklist, and dependency-free checker — shipped into the generated kit so an instantiated team carries them together — not a runtime. Kanban remains the task state authority; a contract that disagrees with the board is rewritten from it. Read choreography/artifact-contract.md.
13 / CHEAPER WORKERS MAY DO THE BULK READS
For two narrow work classes — predictable read-heavy summarization and pattern-conforming scaffolding — the contract documents optional offload to a cheaper worker with an explicit route, input cap, latency bound, and fallback. Edits, debugging, architecture, security-critical work, ambiguous input, and final acceptance always stay with the frontier agent. It is a contract plus an example config, not a runtime or provider integration; nothing is enabled by default, and published savings figures are a vendor’s self-report, not a Proteus result. Read choreography/io-delegation.md.
14 / ONE REPORT PER RUN, SAFE TO SHARE
When a run finishes, a single packet records what was attempted, decided, actually verified, changed, tested, whether anything reached a live surface, and what is still open. Share rules fail closed: no credential values, no internal local paths, no ad-hoc placeholders. The documentation contract and standard-library-only validator ship through the generated kit. The packet is a derived report — Kanban stays the state authority — not a second state store, and it is not a security guarantee. Read choreography/safe-run-packet.md.
15 / REVIEWS LEAD WITH COUNTED EVIDENCE
Reviews, triage notes, and status comments define the unit being counted, count each item once at its highest impact, separate included work from requests and unresolved findings, map every row to its artifact, commit, test, and status, and label the evidence boundary. Missing evidence limits the claim instead of supporting it. This is writing guidance published in the kit's public skill templates, not tooling. Read templates/skills/creative/external-writing-discipline/SKILL.md.
16 / OPENSHORTS ROUTE (EXTERNAL, DOCS ONLY)
Finished short-video production requests — where the user explicitly asks for a rendered short — route to OpenShorts, an external local-first tool Proteus has studied as a reference. This is a documentation route only: the kit does not bundle or run OpenShorts, does not render video by itself, and does not post, publish, or schedule anything on the user's behalf. Transcript, summary, and media-research requests stay on the existing media skills. Users install OpenShorts separately and check its current license and dependency terms before use. Read registry/openshorts-route.yaml.example and choreography/openshorts-route.md.
17 / VERIFICATION DISCIPLINE
The team requires independent proofread and fact audit before any prose is delivered. Quoted source text is extracted programmatically and compared byte for byte. For behavioural claims, implementing code or a pinned test outranks repository prose. A durable record carries only verbatim values from the producing command. Third-party tools are piloted in an authorised sandbox before adoption. Read templates/skills/creative/external-writing-discipline/SKILL.md, templates/skills/software-development/source-verification/SKILL.md, templates/skills/research/source-evaluation/SKILL.md, templates/contracts/artifact-contract.md.tmpl, and templates/skills/software-development/external-tool-vetting/SKILL.md.
18 / THE SAME MOVE TWICE IS A DEFECT
An agent that repeats an operation that returns nothing new is stuck, not working. The team stops, reports, and encodes the rule. Read choreography/anti-loop-discipline.md.
19 / THE SYSTEM FIXES ITSELF ON PURPOSE
Every failure the team hits becomes one written rule at the shared layer, so the next run inherits the fix. A rule must name the incident, the failure it prevents, and where it is enforced — or it is rejected. Read choreography/self-improving-flywheel.md.
20 / FRESH BRANCHES, ORDERED COMMITS
Start each branch from a fresh fetch of the target repository’s default branch. Stage and commit one declared file set at a time. The stale-tree example shows how old state can duplicate or undo work. The session-start router is in templates/personas/SOUL.md.tmpl. The mirror rule is in choreography/self-improving-flywheel.md. The peer-team review procedure is in choreography/orchestration.md.
21 / GOLDEN-ARTIFACT REGRESSION GATE
Before a release, run a checkpoint that fixes an input and checks that the output matches a committed golden. If the output drifts, the check fails and the release is not shipped. No network, no third-party libs, no model calls—pure Python stdlib. Read demo/golden-artifact/README.md and AUDIT/infographic-learnings.md.
22 / WE GIVE BACK TO WHAT WE USE
When the team finds a bug or a gap in an open-source project it depends on, it writes the fix or the report and shows it to the owner before anything is sent. Nothing is posted without a human seeing it first. Read choreography/open-source-contribution.md.
Each rule is traceable to a dated internal record or to a public source (Erlang/OTP supervision, autoresearch / autonovel phase machines — principles with attribution, never copied code or prose). See CHANGELOG.md for the per-item “why” and evidence class. Cross-profile fleet spawning is documented as verified in practice; its formal spec remains proposed / pending and is not presented as shipped doctrine.
WHAT’S NEW · v1.2.0 LOCAL CLEANUP BEFORE SENDING
v1.2.0 documents an optional step that runs small local models on your own machine to clean up work before it leaves the device. It is an add-on, not a replacement for the model provider, and it never makes important decisions. A generated team only uses it if you turn it on explicitly — the kit never edits your Hermes setup by itself.
REDACT
A first-pass filter for text about to be sent out or saved to outside logs. If it finds an address, a number that looks sensitive, or anything it is unsure about, the text is held for a human to review first. A filter — not legal anonymization.
GIST
Sorts large piles of notes and transcripts into rough topics. A hint for where things belong — never the final word on a decision.
TITLE
Suggests titles and short descriptions for files, transcripts, and research notes. A human reads them before they reach a user.
LIMITS BY DESIGN
Normal conversation, final answers, and legal/financial/security/architecture decisions are all outside its job. Media models only run if you opt in, and they never download weights during active work.
Any implementation must run locally, be guarded, log no raw personal data, check that the model exists before use and that its output parses after use, and record where each result came from before saving it. Desert Ant is one optional implementation on macOS — not a required part; its models carry a separate vendor license from the Apache-2.0 kit. Expected benefits are described as goals — no performance or cost numbers are invented. See CHANGELOG.md.
WHAT'S NEW · EXECUTION EVIDENCE
Adds a vendor-neutral execution-evidence contract (choreography/run-evidence.md) defining evidence-record fields, procedure vs achieved-state evidence, token accounting (innermost spans only), cost honesty (unknown models remain unknown), run comparison with stable step keys, and bounded retention with no secrets or raw prompts by default.
WHAT’S NEW · v1.3.0 CHECKING NEW SOURCES BEFORE TRUSTING THEM
v1.3.0 sets the rule for when a source handed to the team counts as usable, and how an approved change then reaches every place it needs to reach. Saving and indexing a file is just moving it; a source also carries a claim about what it can do, and an unexamined claim is not knowledge. The rules and checklists live in templates/skills/knowledge-base-ingestion/SKILL.md; a worked example ships in AUDIT/handover-capability-audit.md. Nothing new is bundled and no dependency is added.
01 / NO LABELS UNTIL CHECKED
A README, a license, and a working search index only prove the source was captured. It cannot be filed away as “just a reference” until someone has checked what it is actually useful for.
02 / LOOK AT THE REAL THING, NOT THE BROCHURE
The check walks the actual file tree, package lists, wiring, skills and plugins, CI workflows, tests, and docs — recording the path for every finding.
03 / ONE ROW PER FINDING, WITH AN OWNER
Every capability found gets a row — do we already have this, what’s missing, what happens next, who owns it — compared against the live catalog, not memory. Each row ends in a decision: use it now, test it, postpone it, or reject it.
04 / FIVE STEPS, NOT ONE
Bringing a source in, adopting it, building with it, checking it, and enforcing the result are separate steps with separate finish lines. Step one ends at a source captured, indexed, and checked — an indexed source is not a build task someone forgot.
05 / PROVE IT IN A SANDBOX FIRST
One isolated test area per proof, a pinned version, no production data, and the pass/fail bar written down before it runs. Nothing is installed wholesale just to find out whether it works.
06 / WRITTEN RECORDS, READ BACK
The ledger, the findings table, and the decisions are saved as files and read back by someone other than whoever wrote them. An adopted change names every place it touches — repo, docs, skills, site — and each goes through its own check.
07 / EACH CHANGE ROUTED TO ITS OWNER
Each candidate produces one machine-readable summary of what it adds or changes. Its impact level — reference only, internal use, kit change, website change, or release-worthy — decides who reviews it and how carefully.
08 / ONE LOG, BATCHED CHANGES
Candidates live in one append-only log with clear states: proposed, accepted, implementing, verified, staged, live, or dropped. Compatible candidates are combined into one coherent update instead of one public change per source.
09 / QUICK CHECK EACH, FULL AUDIT THE BATCH
Every candidate gets a cheap pre-check: safe for public, license clear, owner named, pass/fail bar set, affected places listed. The full pre-merge audit is saved for the batch or release candidate, and the repo and site are checked against each other before merging or deploying.
Open questions stay open: a blocked, dead, or unclear fact is kept with its state named rather than guessed to fill in a table. Trust, permissions, telemetry, and license duties are the job of the separate audit for outside tools — this release covers the usefulness and adoption half. The record in AUDIT/ is a worked example of the format, not a finding about any named repository. See CHANGELOG.md for the per-item “why” and evidence class.
WHAT’S NEW · CODEBASE MAP
The codebase-map capability describes a file tree as rectangles in one small JSON document. Area is a declared measure, color is a display token, identity is a normalized relative path, and child order is a stated policy — each one written down and checked, so two producers reading the same tree mint the same map. The snapshot is the evidence; a browser is only one way to draw it. Nothing here crawls a repository, and no source text is read or stored.
01 / THE CONTRACT
choreography/codebase-map.md defines one small snapshot document: which roots were included, which patterns were skipped, the measure, the sort policy, and the layout token. Every one of those is a required, checked field. An unknown field, or an undeclared ordering policy, fails the map instead of passing quietly.
02 / A DEPENDENCY-FREE CHECKER
build/check-codebase-map.py is Python 3 standard library only — no network, no writes. It reads one snapshot path and prints the field path of every violation. Exit 0 means valid, exit 1 means not. Its own pass and fail cases run with --self-test.
03 / TWO AUTHORED FIXTURES
examples/codebase-map.valid.json and codebase-map.invalid.json are synthetic samples, not repository captures. The invalid one fails on purpose — a missing sort policy, an unknown layout token, an absolute path, a duplicate identity, a negative size — and it is never made valid by weakening the checker.
04 / A STATIC VIEWER PROOF
demo/codebase-map/index.html draws one fixture as a treemap with no library, no font, no image, and no network request. It is a proof on a synthetic fixture — not a live product, not deployed, and not a repository crawler.
05 / ONE LAYOUT, NAMED
The only accepted layout token is t6-squarified-v1 — a squarified treemap applied to the snapshot’s declared child order. The viewer rejects an unrecognized token rather than falling back to a default. It is a Proteus experiment baseline, not a claim about any other tool’s default.
06 / FOCUS AND SEARCH, METADATA ONLY
Selecting a directory re-roots the viewport to it; search matches display labels and normalized paths, nothing else. Source text, syntax highlighting, dependency edges, and live source search are out of scope and shown as unavailable rather than guessed. Focus and query are held in the URL, so a reload rebuilds the same view from the snapshot alone.
Area is a declared measure — bytes or lines — and is never importance, risk, or quality; color is a display token, not a grade. Interaction is governed by choreography/codebase-map-interaction.md, which keeps the view to three inputs: the snapshot, a focus path, and an optional metadata query. This module implements a treemap-based codebase visualization inspired by the progressive-zoom navigation metaphor pioneered in Yoann Padioleau's Codemap (GitHub: aryx/codemap) and its antecedents (SeeSoft, Code Thumbnails). The implementation is a clean reimplementation from scratch in zero-dependency static HTML/JavaScript and Python; no source code from Codemap was copied.
STATUS · SHIPPED VS. PROOF GATES
The kit says what it does and also says what it has not proven. v1.6.0 ships the current operating, evidence, safety, and release gates. All are documented and reviewed — but no outside team has run them yet. What turns these claims into proof is the first paid deployment and a working setup agent — not more writing.
SHIPPED
NOT YET DONE
INCORPORATION STATUS · SOURCE-REVIEW BATCH · 2026-09-15
A second status, separate from the release list above: how one outside source-review batch moved through the kit’s own ingestion rule. Counted, not claimed — 30 candidate capabilities checked, 17 adopted across seven batch decisions, 12 deferred, 1 rejected. None of it is merged yet, and this surface says so.
ADOPTED · 17 CAPABILITIES · 7 BATCH DECISIONS · 0 MERGED
NOT ADOPTED · 12 DEFERRED · 1 REJECTED
Five Proteus-kit batches sit in four open pull requests, each reviewed by someone other than its author — open, not merged; two further batches wait on the Hermes engine repo. The rule this batch follows — check a source before trusting it, one row per finding with an owner, and a record read back by someone other than its author — is itself shipped: templates/skills/knowledge-base-ingestion/SKILL.md, with a worked example in AUDIT/. Per-batch decisions live in the repository, not on this page: github.com/ahrazzle/team6-kit.
GET STARTED
Clone the repo, run the builder with your settings file, get a configured team — checked at every step.
The settings file is plain YAML with 9 keys — team name, director, agent role, model provider. That’s the whole input.
$ python3 build/generate.py --params examples/demo-consulting.yaml --out /tmp/demo-team
This proves the builder works end to end. It does not yet prove that a team built this way can ship a real product — that is the next milestone.
github.com/ahrazzle/team6-kit · public site: proteus.askaconsult.com
SET UP, CONFIGURE & USE PROTEUS
Everything a Hermes user needs to get the kit running: prerequisites, getting the code, editing the one settings file, running the checks in order, placing the finished team into Hermes, operating it, and updating it safely. The build checks, builder script, templates, and rules below work today.
✅ READY — runnable now the build/ checks (sweep-gate.py, review-gate.py, generate.py), the agent and skill templates, the rules in choreography/, a working build example, and this site.
🔲 NOT READY — still to build the setup agent (interviews you and writes the settings file for you). There is also no one-command installer yet: the kit install <registry>/<team> entry in registry/kit.yaml is a planned target, not a working command.
MODEL_PROVIDER and MODEL_NAME. The default is the Hermes/Nous provider; you can point it at any provider your engine supports, including a local model.$ git clone https://github.com/ahrazzle/team6-kit.git
$ cd team6-kit
Read README.md first, then choreography/orchestration.md and choreography/governance.md — the two files with the team’s working rules. A fresh clone is self-contained: it includes a frozen manifest and review so the build runs without any local setup.
The settings file is plain YAML. Start from the shipped example and change the values for your team:
$ cat examples/demo-consulting.yaml
Keys: TEAM_NAME, DIRECTOR_NAME, AGENT_NAME, PROFILE_NAME, ROLE_NAME, ROLE_MISSION, ROLE_PURPOSE, MODEL_PROVIDER, MODEL_NAME, plus an optional BASE_URL for a local or custom endpoint. Copy it, edit it, and keep it — this file defines your team, and it never goes into the public repo.
$ python3 build/sweep-gate.py # PASS(0) → continue; FAIL(1) → stop
$ python3 build/review-gate.py # 4/4 checkboxes on every shipping row
$ python3 build/generate.py --params examples/demo-consulting.yaml --out /tmp/demo-team
sweep-gate checks that every source file is accounted for and classified. review-gate checks that every shipping row has been signed off. generate.py runs both checks first, then builds. On a fresh clone the checks run against the files already committed to the repo (the builder picks this automatically); if you maintain your own source files, add --strict so an unfilled placeholder is a hard failure instead of a warning.
/tmp/demo-team/
├── AUDIT.md # what was built, checked against what's on disk
├── personas/ # your agents (identity + config)
├── skills/ # the skills the agents run with
└── keep-review/ # reviewed items, when present
Place them into a Hermes profile: copy the generated agent files into ~/.hermes/profiles/<PROFILE_NAME>/ (identity plus profile.yaml config) and the generated skills/ into that profile’s skills directory, then set the required environment (MODEL_PROVIDER, MODEL_NAME).
Honesty note: the builder creates the files; copying them into your profile is currently manual. No installer does it for you yet — that is what the planned setup agent will handle. Treat the placement above as the documented manual step, not an automated command.
$ git pull
$ python3 build/sweep-gate.py
$ python3 build/review-gate.py
$ python3 build/generate.py --params <your-pack.yaml> --out /tmp/team-v2
Build into a fresh --out directory and compare the new AUDIT.md with the previous one before publishing. If you serve a website or other output, fetch the live page (with a cache-busting query) and confirm what is actually served — never announce a change from local files alone. Test on a staging copy first, then publish.
--strict, so a paid pack cannot ship broken.Support: open an issue at github.com/ahrazzle/team6-kit, or for the ASKA Proteus service email [email protected]. Official Proteus site: proteus.askaconsult.com.
LICENSE
PART 1 · BUILT ON HERMES (MIT)
The engine is Nous Research’s, MIT-licensed. This repo is NOT a fork of Hermes; it is a separate product built on top of it.
PART 2 · THE KIT ITSELF (APACHE-2.0)
Agent roles, ways of working, rules, and build tooling — Apache-2.0. See LICENSE.
PART 3 · PAID PACKS (NOT OPEN SOURCE)
Settings files + service — never committed to this repo, never a fork of the engine.
v1.2.0 note: optional local models (e.g. Desert Ant) carry a separate vendor license from this Apache-2.0 kit — the kit documents how to use them but bundles no implementation, model files, or license text. See choreography/local-preprocessing.md and LICENSING.md.
SEE IT RUN
Three commands run every build. This terminal replays them — a documented example, not a live process.
DEMO — illustrative replay, not a live process
$ python3 build/sweep-gate.py # PASS(0) → continue; FAIL(1) → stop
$ python3 build/review-gate.py # 4/4 checkboxes on every shipping row
$ python3 build/generate.py --out <kit-dir> [--params <pack.yaml>]
waiting for gates