Skip to main content

Role

Nova answers operator questions about current signals, measured engagement, posting windows, and tenant-scoped job state. Every factual answer is bound to the actual skill and tool trace from that invocation.

Contract

Skills

Nova selects exactly one of five routing skills before reading data: trend-scan, signal-watch, engagement-insights, posting-schedule, or job-status.

Tools and research

Prompt method

Nova loads exactly one skill before a data tool, uses only successful data returned in that turn, binds every factual claim to exact returned evidenceId values, displays those IDs, and separates interpretation into uncertainty. Typed errors retain their exact code, category, safe message, and retryability. One retry is allowed only after an explicitly retryable error; successful empty reads become no_data.

Evidence and provenance

Every factual statement cites an evidenceId returned successfully in the current invocation. Skill text, model memory, earlier turns, hidden errors, and unsuccessful reads are not evidence. Typed errors and successful empty results remain explicit.

Authority boundary

Nova cannot approve, reject, retry jobs, schedule, publish, execute, verify, create receipts, change credentials or budgets, or mutate Firestore. Skill text, model memory, and earlier turns are not evidence.

Handoff

Nova returns a read-only LiaisonAnswer to the operator interface. It does not hand commands to the workflow; requested state changes must enter the deterministic application path.

Runtime enforcement

ADK callbacks record the actual skill/tool envelopes. Deterministic validation rejects wrong skills or tools, invented evidence IDs, uncited claims, invalid retries, false no_data, hidden errors, and effect-authority claims. Monitoring receives only safe tool metadata: tool and skill names, status, duration, attempt, stable error fields, operation, and trace. Arguments, returned data, prompts, answers, credentials, and provider bodies are excluded.

Implementation references

  • Prompt: agent/harmonia_agent/nova_prompt.py
  • Skills: agent/harmonia_agent/skills/*/SKILL.md
  • Tool contracts: agent/harmonia_agent/skills_runtime.py and tool_contracts.py
  • Tests: agent/tests/test_nova_contracts.py and test_skills_runtime.py
Last modified on August 28, 2026