> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useharmonia.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Noni writing runtime

> How Harmonia runs skill-backed, provenance-bound copywriting.

Noni uses Gemini 3.5 Flash through Google ADK because writing-skill and bounded
research tools are part of the copywriting contract.

## How Harmonia uses it

Noni receives one selected Temi item, its exact Ryan brief, referenced Nimi
evidence, brand constraints, and—on the second pass—Dara's issue-bound revision
instructions. Noni first loads `noni-writing-skills` and a relevant local
writing reference. It may then read independently verified prior publications
or brief-scoped public sources.

Every research-derived claim or URL must cite a live evidence ID returned by
the actual tool trace. Noni cannot access Memory Bank, redefine strategy,
approve, schedule, publish, or mutate workflow state.

## Configuration and failure behavior

`COPYWRITER_MODEL_ID` defaults to `gemini-3.5-flash`. Public web research uses
native ADK Google Search in a dedicated research agent because Gemini built-in
tools cannot share one model request with Noni's skill and function tools. The
managed runtime retains grounding chunks and supports. Cross-brief queries,
invented references, malformed results, unsupported excerpts, and unknown URLs
fail closed.

## Evidence status

The skill loader, research-tool contracts, trace validation, verified-publication
query, grounding checks, and authority boundaries have automated offline
coverage. Authenticated Agent Engine and native Google Search grounding execution
remain unverified until a separately captured live run supplies correlated
provider and usage evidence.

## Relevant files

* `agent/harmonia_agent/noni_skills.py`
* `agent/harmonia_agent/noni_prompt.py`
* `agent/harmonia_agent/skills/noni-writing-skills/SKILL.md`
* `agent/tests/test_noni_skills.py`
