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 returnedevidenceId 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 anevidenceId 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-onlyLiaisonAnswer 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, falseno_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.pyandtool_contracts.py - Tests:
agent/tests/test_nova_contracts.pyandtest_skills_runtime.py
