Trigger: binky-control automation queues (AWQ/DEC/OH) emerged as an unindexed parallel work-item ontology (AWQ-010 reintegration case). Three artefacts: - research/2026-07-19-work-orchestration-infrastructure-survey.md — inventory of the ADR-001/005 backbone, state models, task-flow engine, hub generations, execution stack, and the >=9 live work-item species - research/2026-07-19-work-orchestration-best-practices.md — external 2025/26 practice: GitOps reconciliation, risk-tiered HITL, flow metrics/WIP, lean budget guardrails; anti-patterns to skip - research/WorkOrchestrationArchitectureDraft.md — v0.1 proposal: unified work-record ontology, type registry + UUIDv7/canonical-name layering, lanes to fleet canon, policy/derived tags, queues as generated views, staged migration; open questions for discussion Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
13 KiB
Work Orchestration Infrastructure Survey — Coulomb Fleet
Research artefact — 2026-07-19. Phase 1 of the work-orchestration reconciliation effort (trigger: AWQ-010 reintegration in binky-control, founder direction 2026-07-19). Surveys every mechanism the fleet currently uses to plan, organize, implement and document work. Companion:
2026-07-19-work-orchestration-best-practices.md(external), synthesized inWorkOrchestrationArchitectureDraft.md.
1. The canonical backbone (what is settled)
ADR-001 — files first, hub as read model
Workplans and work items originate as Markdown files in the owning repo;
the State Hub indexes them and must be rebuildable from repo files alone
(canon/architecture/adr-001-workplans-as-repo-artefacts.md). Corollaries:
DB is disposable; MCP bootstrap tools are index/sync tools; the sanctioned
registration path is write file → commit → statehub fix-consistency
(C-06 registers, writes UUIDs back into frontmatter). A closure protocol
(closure review, stale-task cleanup as fallback) governs finishing.
ADR-005 — cross-repo work gets a project repo
Every workplan has exactly one repo anchor; genuinely cross-repo efforts get
a dedicated category: project repo with lifecycle
draft → active → completed → archived and a completion record listing
modified repos. Repos are recognized as "the most stable, git-managed
entities in the ecosystem".
Terminology canon
canon/standards/workplan-terminology-fleet_v0.1.md: workplan is the
fleet term (legacy: workstream, metered retirement via legacy-meter,
STATE-WP-0069). IDs: {PREFIX}-WP-NNNN for workplans, {WP}-TNN for tasks;
hub UUID is internal and opaque — exactly the layered id scheme aspect 5
asks for, already practiced.
State models
- Workplan lifecycle (
state-hub/docs/workplan-state-model-proposal.md):proposed | ready | active | blocked | backlog | finished | archived, withstale/stalled/oldiesexplicitly derived health labels, not stored states — an important precedent for aspect 6 (policy tagging). - Task lifecycle (
state-hub/docs/task-state-canon-migration.md): the InfoTechCanon modelwait | todo | progress | done | cancel(symbolic codes WAIT/TODO/PROG/DONE/CNCL). Deliberately separate from workplan lifecycle. Canon source lives ininfo-tech-canon— the abstract-state backbone for aspect 4 already has a home. - Task flow engine (
state-hub/docs/task-flow-engine-spec.md, plus hublist_flow_definitions/get_flow_state): a generic workstation + assertion substrate ("information objects move through named workstations"; pure predicates over object properties, no domain knowledge). This is the existing mechanism for kind-specific lifecycles under shared abstractions — largely underused so far.
Hub ecosystem generations
docs/hub-ecosystem-architecture.md: hub-core (library) / state-hub
(dev coordination, file-first, localhost) / core-hub (Gen-3 production
framework, /api/v2, contract-first FastAPI/Postgres, operator console,
hub.coulomb.social). core-hub's docs/specs/workplan-coordination.md
explicitly preserves the file-first rule and commits to ingesting ADR-001
workplans before replacing state-hub operations. Gen 2 (inter-hub/IHP) is
being drained. The dashboard/global-visibility layer of aspect 2 is
core-hub's charter.
Event / automation delegation
state-hub/docs/activity-core-delegation.md: the hub is a read model, not
a task factory. It publishes lifecycle events on NATS
(org.statehub.repo.registered, …workstream.completed,
…decision.resolved, …domain.goal.activated, …task.stale);
activity-core reacts via declarative ActivityDefinition YAML (cron + event
triggers, rule expressions, instructions; Temporal-backed history). "Rules
auditable, testable, modifiable without redeploying the hub."
Execution stack
agent-harness/docs/architecture.md three-layer model:
| Layer | Repo | Artefact |
|---|---|---|
| Blueprint | kaizen-agentic | agent personas, schedule blueprints, coach/metrics loop |
| Instance | consuming repo | .kaizen/schedule.yml manifest — declarative only: blueprint, cadence, lane (green/blue), named tool_profile, budget (tokens/run), pinned harness major |
| Runtime | agent-harness | task intake (issue-core poll/claim), persona bind, credential acquisition (OpenBao/ops-warden lanes), bounded session, commit verification, hub + kaizen reporting |
Notable: manifest declares, harness enforces; completion events are the idempotence currency; budgets and lanes are already machine-enforced at this layer. issue-core provides claimable task distribution (Gitea/local backends); ops-warden is the policy front door for credentials; llm-connect abstracts model providers.
Supporting hub entities (from the dev-hub surface)
Suggestions (staged lifecycle with relevance_weight, vet / decline /
promote-to-task), capability requests (request/accept/reroute/dispute),
contributions, interface changes, technical debt, risks, domain & repo
goals (with needs_workplan guidance), decisions (record/resolve,
auto-escalation of financial/legal pending decisions "per constitution §4"),
token events (record_token_event, get_token_summary), ad-hoc and
interactive task records (record_adhoc_task, record_interactive_task),
DOI checks, kaizen agent registry, human-flagging (flag_for_human,
needs_human, intervention notes), messages (agent inbox).
2. The binky-control queue layer (the new thing to reconcile)
Built during company-kernel bootstrap (BINKY-WP-0002/0003), governed by
AutonomyPolicy.md:
| Document | Role | Item ids | Lane semantics |
|---|---|---|---|
AutopilotWorkQueue.md |
evergreen pull queue for idle agent capacity; "never empty" | AWQ-NNN |
Green/Blue |
DecisionQueue.md |
prepared approval packages for the founder | DEC-YYYY-NNN |
Yellow/Red |
OfficeHourQueue.md |
business-hour interactions batched into command days | OH-YYYY-NNN |
Orange |
OperatingRhythm.md |
cadence: daily brief, queue hygiene, bridge scheduler → harness cutover | — | — |
ControlLoopCatalog.md |
company as Sense→Interpret→Decide→Act→Record→Learn loops | Loop N | — |
RiskRegister.md |
risks | RISK-NNN |
— |
The autonomy lanes (Green safe-autonomous / Blue reversible-logged / Yellow deferred-approval / Orange time-window / Red human-only) are the conceptual spine: "maximize Green+Blue throughput, queue Yellow, batch Orange, protect Red." Approval packages, founder attention budget (minutes/day, max decisions/day), and founder availability as first-class state are defined here — none of it yet fleet canon.
What the queues got right
- Cheap intake. A YAML block appended to a live document — far lighter
than authoring a workplan file. Mail triage →
AWQ-010took one commit. - Lane-aware routing. Items are born with an execution route (pull queue vs. decision package vs. office-hour batch) — the suggestion→task flow has no equivalent.
- Human attention as a budgeted resource. DecisionQueue + OfficeHourQueue are effectively WIP-limited human workstations.
- Pull protocol. Idle agents self-serve; matches issue-core's claim model but in file form.
Where they break the backbone
- Not indexed. AWQ/OH/DEC/RISK items have ids and states but no hub
representation → invisible to
get_domain_summary, dashboards, dependency modeling, staleness detection. (DEC items acquired ad-hocstate_hub_decision_idmirroring only via manual dual bookkeeping — done by hand twice on 2026-07-19.) - Parallel ontology. A queue item is a work item (or a decision) with
a different id scheme, different state vocabulary (
queued|prepared|done,prepared|resolved|deferred), and hand-maintained "Completed" logs instead of the canonical task lifecycle. - Manual promotion. AWQ-010 → BINKY-WP-0005 required a human/agent to notice, transcribe, and re-register — the exact "sidetrack reintegration" signal aspect 7 names.
- Repo-local convention. Nothing stops other repos from inventing different queue formats; there is no schema, no fix-consistency check, no canon standard.
3. Adjacent mechanisms with overlapping ontology
- Suggestions (hub) overlap AWQ intake almost 1:1 (idea → vet → promote-to-task) but are hub-first entities with no file artefact — themselves in tension with ADR-001.
- issue-core issues overlap task distribution (claim/execute/close) — used as harness intake sink, but issues are not file-backed either.
- ADHOC workplans (
workplans/ADHOC-YYYY-MM-DD.md) cover spontaneous low-risk work — a third intake form. - OH/DEC vs. hub decisions: decisions exist in three places (queue file, hub record, DecisionQueue resolved log).
- Capability requests, CCRs (credential change requests, railiance-platform), interface changes: further typed work-item species with their own id schemes and states.
Count of intake/work-item species currently live: ≥ 9 (workplan task, adhoc task, suggestion, issue, AWQ item, OH item, DEC item, capability request, CCR) — with ~5 distinct state vocabularies and ~8 id schemes.
4. Existing budget / risk / policy controls
- Token budget policy (workstation CLAUDE.md): 8k soft / 10k hard per task —
human-convention enforced only, but
record_token_event+get_token_summaryexist in the hub, and the harness manifest has a machine-enforcedbudget(tokens/run). - Lanes + tool profiles: enforced at harness runtime, declared in manifests.
- Decision auto-escalation: hub escalates pending financial/legal decisions (constitution §4) — observed live on DEC-2026-004.
needs_humanflag + intervention notes;flag_for_human/clear_human_flag;list_blocked_tasks.- Derived health labels (stalled/stale) specified but only partially implemented in views.
- Consistency:
statehub fix-consistency(ADR-001 checks C-01…C-24 including C-06 registration, C-24 repo classification) — the natural enforcement point for any new convention.
5. Markup / knowledge persistence infrastructure
- All coordination artefacts are Markdown + embedded YAML blocks; hub parses
- markitect family (markitect-main/-tool/-filter/-quarkdown, marki-docx) provides the markup toolchain; DOCX/PDF only as external inputs/outputs — matches aspect 3's stance and needs only codifying, not building.
- Research artefacts precedent:
core-hub/docs/research/2026-06-27-…and binky-controlintegrations/*.mddesign docs; briefs inbriefs/, evidence CSVs inmailmeta/reports/.
6. Observed pain points (data, not speculation)
- AWQ-010 — queue item had to be manually re-integrated as a workplan (2026-07-19). Root cause: no automatic path from intake item to registered work.
- Dual decision bookkeeping — DEC-2026-003/004 each required manual file+hub mirroring in both directions (create and resolve).
- Suggestion flow unused in practice — binky-control never used suggestions; the queue format won because intake friction was lower. The infrastructure lost to a Markdown file — that is the efficiency bar.
- BINKY-WP-0002 hub slug drift (
bnky-wp-0001slug, title mismatch) — registration by early manual path left inconsistent index data; C-06-era registrations are clean. - Historic DB-first violations required ADR-001 remediation; the pattern recurs whenever a new entity type (suggestions, issues) is added hub-first or file-only without the sync pair.
- Terminology migrations are expensive (workstream→workplan: 4 workplans, a legacy-meter, a fleet standard) — arguing for getting the umbrella ontology right before the queue pattern spreads beyond binky-control.
7. Assets to build on (summary)
| Aspect (founder list) | Existing asset |
|---|---|
| 1 agile + planned, dependencies, budgets | queues (agile) + workplans (planned); create_dependency/create_workplan_dependency; harness budgets + token events |
| 2 global visibility, tenancy | core-hub charter; domains/topics/repos; agent-harness multi-tenant; repo-classification standard |
| 3 repos as base unit, X-as-Code, rebuildable | ADR-001/ADR-005, fix-consistency, ActivityDefinitions-as-YAML, manifests-as-YAML; markitect |
| 4 one framework, many work kinds | InfoTechCanon task model + task-flow-engine workstations |
| 5 layered ids, migration-stable history | UUID internal / canonical name external, already practiced; legacy-meter retirement discipline |
| 6 policy tagging | derived health labels precedent; needs_human; lanes |
| 7 opinionated, anti-sidetrack | fix-consistency as gate; AGENTS.md generation from state-hub templates |