fez5587 and Claude Fable 5
7ab6db469d
Consultant escalation policy + milestone delivery checks
...
Manager policy, active only when a company employs a consultant:
- a task that blows its wall-clock budget or blocks on machine failure
(crashed worker, capability gap — anything except needs_input) is
reassigned to the consultant with the failure context appended
- every objective rollup spawns a consultant review task: verify each
deliverable against acceptance criteria, write milestone-check.md,
verdict per deliverable, fix nothing
Also: employee_role_check widened to include consultant (db + live);
consultant sprite shirt color in the office.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-04 14:34:12 -05:00
fez5587 and Claude Fable 5
9b6e7a23f6
Slice 1: dispatcher loop + objective decomposition — first live objective completed
...
- engine/dispatcher.py: 10s tick, bounded in-flight (3), ready->kanban dispatch
with budget mapping (goal_max_turns/max_runtime_seconds), poll->AgentMessage
extraction->events, wall-clock cap with run termination, blocked triage state.
- engine/protocol.py: schema-enforced pool calls — raw report -> AgentMessage,
objective brief -> task decomposition (3.6s live).
- engine/main.py: POST /companies/{slug}/objectives (manager decompose ->
child work items, role-matched round-robin), GET work-items.
- schema: work_item.hermes_task_id/dispatched_at, employee.role.
- Hermes integration fixes discovered live:
* profiles must use the pool custom endpoint (provider config written into
per-profile config; 'ollama' provider = Ollama Cloud, wants API key)
* kanban toolset was globally disabled in deployed Hermes config — removed
from agent.disabled_toolsets (backup in scratchpad)
* no_skills profiles (73 bundled skills drowned 9B tool discipline)
* souls spell out kanban_show first, kanban_complete/kanban_block with
required args last — after this, tasks complete reliably.
- Live result: GasWatch objective decomposed into 3 tasks, all completed by
qwen3.5:9b employees (mvp_features.md, onepager.md, report.md), 4 cost
entries totaling ~24 min wall, full event trail.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-04 09:49:26 -05:00
fez5587 and Claude Fable 5
ad4f603799
Step 5+6: event schema v1, core DDL, policy table, Slice 1 acceptance demo
...
- db/schema.sql: 9 core tables, append-only event log (trigger-enforced),
deny-by-default policy_rule with seeded globals, runaway budgets on work items.
Validated against Postgres 16 (DDL applies, trigger rejects UPDATE).
- engine/schemas/events.py: AgentMessage (flat, inference-enforced) +
EventEnvelope pydantic models; models are the schema (ADR-003).
- adr/ADR-003: event schema and data model decisions.
- SLICE1_DEMO.md: verbatim acceptance script for Slice 1.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-03 23:26:49 -05:00