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

# Agent skills, tools, prompts, and traces

> Actual Strands registrations and host-selected capability boundaries.

Harmonia has a deterministic host coordinator and seven named operational specialists. Routing, context assembly, research and artifact variants, and resident Dream synthesis are separate registered tasks. The coordinator is host code; it is not a model that chooses its next stage.

Skill guidance is method, never evidence. Search is a tool, not a skill. AgentCore Memory is advisory context, never authority.

## Runtime inventory

| Registration                 | Default model | Input → output                                           | State key                  | Model-visible tools                                                                          |
| ---------------------------- | ------------- | -------------------------------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------- |
| `harmonia_intent_router`     | Haiku 4.5     | `IntentRoutingInput` → `IntentClassification`            | `intent_classification`    | None                                                                                         |
| `harmonia_context_assembler` | Haiku 4.5     | `StrategyContextAssemblyInput` → `IntentStrategyContext` | `intent_strategy_context`  | None                                                                                         |
| `nimi_analyst`               | Nova 2 Lite   | `AnalystInput` → `SemanticSourceAnalysis`                | `source_analysis`          | None                                                                                         |
| `nimi_research_analyst`      | Nova 2 Lite   | Same analysis contract                                   | `source_analysis`          | Exactly one of `nimi_gateway_search` or `nimi_agent_search_agent`, selected before inference |
| `ryan_strategist`            | Sonnet 4.6    | `StrategistInput` → `StrategistResult`                   | `strategist_result`        | None                                                                                         |
| `ryan_research_strategist`   | Sonnet 4.6    | Same strategy contract                                   | `strategist_result`        | `ryan_gateway_search`                                                                        |
| `temi_editorial_planner`     | Sonnet 4.6    | `EditorialPlannerInput` → `EditorialPlan`                | `editorial_plan`           | None; the host supplies the planning snapshot                                                |
| `noni_copywriter`            | Sonnet 4.6    | `CopywriterInput` → `ContentDraft`                       | `copywriter_draft`         | `search_verified_publications`                                                               |
| `noni_artifact_producer`     | Sonnet 4.6    | `ArtifactProductionInput` → `SemanticArtifactWireDraft`  | `semantic_artifact_draft`  | None                                                                                         |
| `dara_editor`                | Sonnet 4.6    | `EditorialReviewInput` → `EditorialAssessment`           | `editorial_assessment`     | None                                                                                         |
| `dara_artifact_editor`       | Sonnet 4.6    | `ArtifactReviewInput` → `SemanticArtifactReview`         | `semantic_artifact_review` | None                                                                                         |
| `maya_presenter`             | Haiku 4.5     | `UiContext` → `SurfacePlan`                              | `surface_plan`             | None                                                                                         |
| `nova_liaison`               | Haiku 4.5     | Host-validated `LiaisonInput` → `LiaisonAnswer`          | `liaison_answer`           | Six scoped reads listed below                                                                |
| `nova_context_answer`        | Haiku 4.5     | `LiaisonInput` → `ContextRecordAnswer`                   | `context_record_answer`    | None; answers only from the supplied context record                                          |
| `harmonia_dream_synthesizer` | Sonnet 4.6    | `DreamCycleInput` → `DreamCycleOutput`                   | `dream_cycle_output`       | None                                                                                         |

Exact model IDs are listed in [Bedrock models](/platform/agents/bedrock). `SourceAnalysis` is the host-bound persisted analysis, not the raw semantic model result.

## Preloaded method guidance

| Role | Method module       | Preloaded skill                                                                       |
| ---- | ------------------- | ------------------------------------------------------------------------------------- |
| Nimi | `nimi_skills.py`    | `nimi-analysis-skills`                                                                |
| Ryan | `ryan_skills.py`    | `ryan-strategy-skills`                                                                |
| Temi | `temi_skills.py`    | `temi-editorial-planning-skills`                                                      |
| Noni | `noni_skills.py`    | `noni-writing-skills`                                                                 |
| Dara | `dara_skills.py`    | `dara-editing-skills`                                                                 |
| Nova | `skills_runtime.py` | `trend-scan`, `signal-watch`, `engagement-insights`, `posting-schedule`, `job-status` |

The host compiles method text into each invocation and bootstraps activation provenance. The runtime does not register `load_skill` or `load_skill_resource`. Shared handoff/recovery instructions accompany every specialist. Method files and their hashes are not factual source evidence.

Nova exposes `fetch_trend_signals`, `search_trend_signals`, `get_engagement_insights`, `get_operator_feed`, `get_job_status` and `suggest_posting_windows`. The host validates returned evidence and permits only a bounded retry of the same transient read.

## Request and tool enforcement

`build_agent_team()` creates `SpecialistDefinition` values. `HarmoniaCoordinator.select()` chooses the exact allowed definition from host state. `LocalStrandsTeamRuntime` constructs a fresh `strands.Agent` using `BedrockModel`, `structured_output_model`, `AuthorityHooks`, `callback_handler=None` and `retry_strategy=None`, then calls `invoke_async()`.

`BeforeModelCallEvent` records hashes of the actual request and enforces the paid-operation gate. `BeforeToolCallEvent` validates tool membership and the exact research request, consuming one-shot research authority before dispatch. `AfterToolCallEvent` records typed evidence. The native structured-output tool is a cognition contract, not permission for an external action.

Gateway Web Search and Bedrock Knowledge Base retrieval use native AWS transports. Provider evidence is normalized at the host boundary. No Google built-in grounding tool is registered, and Noni has no public-web search registration.

## Persistence and evidence status

The runtime returns state keys; worker code validates and persists accepted results. DynamoDB operations, approval digests, effect claims and independent readback own execution truth. A model cannot authorize an effect or create an execution receipt.

The registrations and request contracts have local tests. Authenticated AgentCore, Bedrock, Gateway and Memory execution in this AWS edition remains unverified. See `agent/harmonia_agent/agents.py`, `team_runtime.py`, `agentcore_app.py` and `runtime_instructions.py`.
