Skip to content

Releases: hapo-nghialuu/hod

hod 0.1.13 — opt-in adaptive coordinator

Choose a tag to compare

@hapo-nghialuu hapo-nghialuu released this 09 Aug 09:57
c0d744e

Adds an opt-in adaptive coordination layer. The default hod workflow is completely unchanged unless you explicitly ask for an adaptive coordinator or coordinator-plus-advisor setup.

What is it?

A request-driven routing system that picks the smallest workflow that fits:

  • DIRECT — fast path for questions, explanations, and read-only inspection. No worker, no plan, no advisor, no checkpoint.
  • SINGLE — one task packet for a clear, reversible, single-owner change.
  • ORCHESTRATE — working plan, explicit ownership, and ordered coordination for multi-writer, multi-phase, or large-blast-radius work.

CONSULT and ASK_USER are overlays, not additional modes. Every repository change still gets a mechanical E0 evidence receipt before acceptance. Tripwires hold before re-routing — they never auto-revert, open new writers, or expand permissions. Advisors (user-chosen from Fable, GPT-5.6 Sol, or Opus) receive self-contained decision packets and return assessments only, never authority.

Six reasoning principles are embedded as observable output rubrics: floor check, concrete simulation, adversarial self-review, constraint loop, multi-hypothesis diagnosis, and calibrated delivery.

What it is not

This is not a new CLI command. bin/hod only changes one line — the version number. No new subcommands, settings profiles, lock files, ledger helpers, or stale-lock recovery code.

One additional fix

features.multi_agent=false is now documented as version-sensitive on interactive Codex: the gap was confirmed on 0.146.1 and observed as resolved on 0.147.0. Probe the exact installed binary before relying on the flag.

Full protocol: references/coordinator-advisor.md

Upgrade: hod update

hod 0.1.12 — the impl promise now matches what is enforced

Choose a tag to compare

@hapo-nghialuu hapo-nghialuu released this 08 Aug 04:18
1ec18a9

Reading the two role profiles side by side turned up a promise wider than its enforcement.

The impl role read "May edit code and commit; must not publish (push/merge) or spawn agents" — but nothing backs that second half. settings-impl.json denies four git commands and has no Agent entry; the Codex flag set carries network_access and writable_roots but omits features.multi_agent=false, a flag that would not hold in an interactive worker anyway.

The gap is symmetric — both CLIs are equally open at this role — so parity between them is unaffected. What was wrong is that the written promise claimed more than either side delivers, and a promise the controller cannot rely on is worse than a gap it knows about.

The promise now ends at publication. The Honest gaps entry states plainly that no-spawn at the impl role rests on prompt wording for both CLIs, and that the controller must check the commit, the absence of publication, and the absence of child-agent work.

Docs only — no behaviour change. Upgrade with hod update.

hod 0.1.11 — what the Codex flags actually guarantee

Choose a tag to compare

@hapo-nghialuu hapo-nghialuu released this 08 Aug 03:44
f66c204

Live validation against interactive Codex workers — started the way you actually start them, through herdr agent start --kind codex — contradicted two claims that 0.1.10 documented as boundaries. Both are corrected.

features.multi_agent=false is not a hard block in interactive mode. It removes spawn_agent under codex exec, but an interactive worker on 0.146.1 started with -s read-only -c features.multi_agent=false still reports the tool. Two workers reported two different names, so never match on the name.

Severity is low, and the docs now say so plainly: a child inherits the same read-only sandbox and cannot write — confirmed by a blocked write leaving the tree clean. What is lost is observability, since delegation would not show up in the Herdr sidebar. Verify by evidence, not by pane presence.

Project-level .codex/config.toml is ignored by interactive workers. In the same directory, sandbox_mode = "read-only" blocks writes under codex exec but an interactive worker with no CLI flags shows an approval dialog instead of blocking — and still exposes spawn_agent despite multi_agent = false in the file. Flags after Herdr's -- remain the only effective path. Committing a config file to a repository creates no boundary.

The controller row is now marked documented-only: it rests on socket evidence alone, with no full worker run behind it.

What still holds, unchanged: read-only blocks writes at the OS layer, .git stays protected until listed in writable_roots, and the impl flag set edits and commits cleanly.

Docs and version only — no behaviour change. Upgrade with hod update.

hod 0.1.10 — Codex workers get real role boundaries

Choose a tag to compare

@hapo-nghialuu hapo-nghialuu released this 31 Jul 11:13
3e6cf8c

Herdr workers running Claude Code get their role boundaries from settings.<role>.json profiles. Workers running Codex had nothing equivalent — a reviewer or impl started with --kind codex was bounded by wording alone.

The principle: a role is defined by the promise the controller may trust, not by the mechanism. Each CLI enforces that promise with its strongest layer — Claude with tool deny rules, Codex with its OS sandbox — and the new references/role-boundaries.md maps all three roles to both CLIs, naming the honest gaps on each side instead of pretending parity.

reviewer    -s read-only -c features.multi_agent=false          # fresh session
controller  -s workspace-write --ask-for-approval never \
            -c sandbox_workspace_write.network_access=true \
            -c features.multi_agent=false
impl        -s workspace-write --ask-for-approval never \
            -c sandbox_workspace_write.network_access=true \
            -c 'sandbox_workspace_write.writable_roots=["<abs-repo>/.git"]'

hod settings list now prints these beside the Claude profiles.

Every claim was verified empirically on codex-cli 0.145.0/0.146.0 (macOS), including two findings worth knowing:

  • .git is protected inside workspace-write — commits fail until the repo's .git is listed in writable_roots. The impl flags above handle it.
  • The sandbox network rule also covers Herdr's own Unix socket, so a Codex controller cannot be sandbox-locked and still drive Herdr. Its no-edit promise is wording-level — symmetric with Claude's controller, which leaves Bash open.

Upgrade: hod update

Tests: 105 hod, green on macOS and Linux.

v0.1.0 — official release

Choose a tag to compare

@hapo-nghialuu hapo-nghialuu released this 27 Jul 06:39
42cfda5

hod — Herdr Orchestrator Driver, first official release.

Install

curl -fsSL https://raw.githubusercontent.com/hapo-nghialuu/hod/main/install.sh | HOD_REF=v0.1.0 sh
hod status

Included

Skill — the orchestration contract for Claude Code / Codex / Grok controllers through Herdr: strict coordinator-only mode (controller plans and delegates; never codes, builds, tests, or reviews by hand), direct-user delegation semantics, evidence-based verification with per-run sentinels, one-file-one-writer ownership, open-question harvesting into every final report, hierarchical portfolio mode, and continue-vs-fresh session rules (reviewers are always fresh sessions).

hod CLIinstall (global or per-project, no sibling layout required), status, doctor (reports branch vs tag-pinned checkout mode), update (fast-forwards branches; moves pinned checkouts to the newest tag), settings (role permission profiles enforced by the Claude Code harness — controller/impl/reviewer), uninstall.

Docs — bilingual README (English · Tiếng Việt) with hand-built flow diagrams, four-level quickstart, usage recipes, portfolio guide.

Quality — 77 behavioral tests (55 hod, 22 linker), CI on Ubuntu + macOS, validated against Herdr 0.7.5.

Note: this tag supersedes an earlier v0.1.0 draft cut one day prior which lacked the pinned-update fix. Tags are immutable from this release onward.