Currently telegram/system.mustache contains ~205 lines of non-partial content, but only ~40 lines are actually telegram-specific. The rest is generic 'ava as interactive agent' instructions that should be reusable across channels (CLI, web, other agents).
What to extract into a shared partial (e.g. partials/interactive_agent.mustache):
What stays telegram-specific:
What already exists as partials:
Goal: telegram/system.mustache becomes shared partials + telegram-specific sections. A future CLI or web agent template reuses the same shared partials with its own channel-specific sections.
Approach: 1. Create partials/interactive_agent.mustache with the generic content 2. Refactor telegram/system.mustache to include the new partial 3. Verify no behavioral change in telegram agent 4. Document the partial system so new channels can compose their own system prompt
Ava verified: commit in live history, shipping complete. Moving to Verified.
Done in 51a6939. Created partials/interactive_agent.mustache with ~130 lines of shared content. telegram/system.mustache now includes the partial and only contains telegram-specific sections (~80 lines). All content verified preserved via set comparison. Ava builds and prompt tests pass.