ARES · first agent
Colonel is the door. Everything else walks through him.
You do not start an Architect. You do not start Imagine.
You type python3 -m ares …. That call hits one function.
That function is the first agent.
1 · The shell
Same entry every time. Package script ares and python3 -m ares are the same door.
src/ares/__main__.py
"""python3 -m ares …"""
from ares.colonel import main
if __name__ == "__main__":
raise SystemExit(main())
2 · The first agent
Colonel. Orchestrator. Does not write product code. Reads argv.
One if cmd per command. First match wins. That is how an agent “goes in.”
src/ares/colonel.py — main()
MOS = "Colonel"
def main() -> int:
load_dotenv()
cmd = sys.argv[1] if len(sys.argv) > 1 else "help"
if cmd in {"help", "-h", "--help"}:
print(USAGE.strip())
return 0
if cmd in {"status", "ld"}:
print(status())
…
if cmd == "roster":
…
3 · How the next one goes in
You asked to see what I add when I add a capability. Imagine is that example. Four files. No new MOS. No new docs chapter.
src/ares/imagine.py— the workcolonel.pyUSAGE line + oneif cmdresearch/store.pyseed soares commandslists ittests/test_imagine.py— mock transport, no live API
src/ares/colonel.py — the branch that lets Imagine in
if cmd in {"imagine", "image"}:
return _imagine_cmd(sys.argv[2:])
src/ares/colonel.py — _imagine_cmd
def _imagine_cmd(args: list[str]) -> int:
from ares.imagine import generate, render_list
…
result = generate(prompt, aspect=aspect, model=model,
resolution=resolution, negative=negative)
if not result.get("ok"):
print("HOLD " + (result.get("reason") or "imagine failed"))
return 1
print(f"saved {result['path']}")
return 0
4 · Roster after the door
Colonel already knows who exists. ares roster prints this list.
A new MOS only goes here if it has one job. Imagine did not get a MOS.
It is a command, not a personality.
src/ares/colonel.py — roster()
def roster() -> list[str]:
return [
architect.brief(),
s3.brief(),
s2.brief(),
s6.brief(),
engineer.brief(),
fister.brief(),
commo.brief(),
s4.brief(),
scribe_brief(),
]
5 · Skills — the playbook they carry
Code is the door. A skill is what they do after they walk in.
Live under .grok/skills/. Slash: /ares-colonel,
/ares-engineer, /ares-fister, /ares-s2,
/ares-s4, /ares-staff, /ares-scribe.