Parent: TechDevGroup/devagentic#203 (canonical fusion contract).
Gap
hermes does not auto-load kind:vertical-spec, kind:grafted-context, or kind:worker-guardrails docs as session preamble on boot. Only plugins/devagentic-canvas/preamble.py exists, and it loads CANVAS state (hermes issues #55/#56) — not vertical manifests.
What is needed
On hermes session boot (or first turn), when HERMES_HOME=~/.hermes/profiles/<user_id>:
- Query devagentic for docs tagged
user_id=<user_id> and kind in {vertical-spec, grafted-context, worker-guardrails}.
- Render them as a pre-LLM preamble appended to the user message (same fail-soft contract as
plugins/devagentic-canvas/preamble.py).
- Cap injected size so a large vertical does not crowd out the user message.
Acceptance
- Worker session launched via
HERMES_HOME=~/.hermes/profiles/<name> hermes automatically ingests its vertical-spec + grafted-context + worker-guardrails docs on first turn.
- Unit test exercising the loader with a fixture user_id.
- README/docs added under
plugins/devagentic-vertical-preamble/ (or sibling location) describing the loader.
Notes
Parent: TechDevGroup/devagentic#203 (canonical fusion contract).
Gap
hermes does not auto-load
kind:vertical-spec,kind:grafted-context, orkind:worker-guardrailsdocs as session preamble on boot. Onlyplugins/devagentic-canvas/preamble.pyexists, and it loads CANVAS state (hermes issues #55/#56) — not vertical manifests.What is needed
On hermes session boot (or first turn), when
HERMES_HOME=~/.hermes/profiles/<user_id>:user_id=<user_id>andkind in {vertical-spec, grafted-context, worker-guardrails}.plugins/devagentic-canvas/preamble.py).Acceptance
HERMES_HOME=~/.hermes/profiles/<name> hermesautomatically ingests its vertical-spec + grafted-context + worker-guardrails docs on first turn.plugins/devagentic-vertical-preamble/(or sibling location) describing the loader.Notes
plugins/devagentic-canvas/preamble.pyarchitecture.genesis/doc.jsonldirectly — this loader is the canonical path.