Coding
PromptBeginner5 minmarkdown
Markdown Converter
Agent skill for markdown-converter
21
Replace `aider.coders.editblock_prompts.EditBlockPrompts` with our own prompt templates while maintaining the same interface that `MessageContextMixin` and `MessageSimpleMixin` expect.
Sign in to like and favorite skills
Replace
aider.coders.editblock_prompts.EditBlockPrompts with our own prompt templates while maintaining the same interface that MessageContextMixin and MessageSimpleMixin expect.
prompt_mixin.py imports from aider.coders.editblock_prompts import EditBlockPrompts which provides:
main_system - Main system prompt template (we use sys_prompt.md instead)system_reminder - SEARCH/REPLACE format rules with {fence} placeholdersexample_messages - Few-shot examples for the edit formatgo_ahead_tip - A small tip stringsys_prompt.md is required - Raise clear error if missing, propagates to UIsystem_reminder stays in code - Mechanical SEARCH/REPLACE rules, not user-editableexample_messages stays in code - Few-shot examples for the format| File | Action |
|---|---|
| Create - exports |
| Create - few-shot examples |
| Modify - change import, fail if missing |
| Create - unit tests |
ac/aider_integration/prompts/__init__.pyclass EditBlockPrompts: """Replacement for aider's EditBlockPrompts.""" main_system = "" # Not used - we load sys_prompt.md system_reminder = SYSTEM_REMINDER # SEARCH/REPLACE rules with {fence}, {go_ahead_tip} placeholders example_messages = EXAMPLE_MESSAGES # Few-shot examples go_ahead_tip = "" # Not needed
ac/aider_integration/prompts/example_messages.pyFew-shot examples covering:
ac/aider_integration/prompt_mixin.py Changesaider.coders.editblock_prompts to .prompts_load_prompt_file() raise FileNotFoundError if sys_prompt.md not foundget_system_prompt()When
sys_prompt.md is missing:
_init_prompts() raises FileNotFoundError with clear messageAiderEditor.__init__() failsAiderChat.__init__() failsLiteLLM.get_aider_chat() failsNo changes needed - token tracking is independent of aider prompts:
TokenCounter wraps litellm.token_counterAiderContextManager.count_tokens() uses TokenCounterHudMixin.print_hud() / print_compact_hud() display countsLiteLLM.track_token_usage() tracks session totalstests/test_prompts.pydef test_edit_block_prompts_has_required_attributes(): """Verify EditBlockPrompts has all required attributes.""" from ac.aider_integration.prompts import EditBlockPrompts prompts = EditBlockPrompts() assert hasattr(prompts, 'main_system') assert hasattr(prompts, 'system_reminder') assert hasattr(prompts, 'example_messages') assert hasattr(prompts, 'go_ahead_tip') def test_system_reminder_has_placeholders(): """Verify system_reminder has required format placeholders.""" from ac.aider_integration.prompts import EditBlockPrompts prompts = EditBlockPrompts() assert '{fence}' in prompts.system_reminder assert '{go_ahead_tip}' in prompts.system_reminder def test_example_messages_format(): """Verify example_messages have correct structure.""" from ac.aider_integration.prompts import EditBlockPrompts prompts = EditBlockPrompts() assert isinstance(prompts.example_messages, list) for msg in prompts.example_messages: assert 'role' in msg assert 'content' in msg assert msg['role'] in ('user', 'assistant') def test_example_messages_contain_search_replace(): """Verify assistant examples contain SEARCH/REPLACE blocks.""" from ac.aider_integration.prompts import EditBlockPrompts prompts = EditBlockPrompts() assistant_msgs = [m for m in prompts.example_messages if m['role'] == 'assistant'] for msg in assistant_msgs: content = msg['content'].format(fence='```', go_ahead_tip='') assert '<<<<<<< SEARCH' in content assert '=======' in content assert '>>>>>>> REPLACE' in content def test_missing_sys_prompt_raises_error(): """Verify missing sys_prompt.md raises FileNotFoundError.""" # This test requires mocking the file system or testing in isolation pass
sys_prompt.md temporarily, verify clear error in UIsys_prompt_extra.md to verify it's still appendedRevert import in
prompt_mixin.py back to:
from aider.coders.editblock_prompts import EditBlockPrompts