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
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.