System Prompt Architecture Research & Findings
Analyzes system prompt architectures from Claude Code, Cline, and Bolt.new to recommend modular, tool-centric improvements for Better-i18n's AI agent.
What this file does
Analyzes system prompt architectures from Claude Code, Cline, and Bolt.new to recommend modular, tool-centric improvements for Better-i18n's AI agent.
When to use it
- Designing or refactoring an AI agent system prompt
- Comparing modular vs monolithic prompt architectures
- Adding tool documentation with when-to-use guidance
- Planning phased improvements to an existing prompt
System Prompt Architecture Research & Findings
Date: January 2026 Research Source: Claude Code, Cline, Bolt.new, Agentic AI Design Patterns Purpose: Improve Better-i18n AI system prompt based on production best practices
Executive Summary
Top AI agent systems (Claude Code, Cline, Bolt.new) follow a modular, tool-centric, example-driven architecture rather than monolithic prompts. The key to effective agentic prompts is explicit tool documentation with "when to use" guidance, hierarchical agent structure, and clear examples over generic instructions.
Key Architectural Patterns from Leading Systems
1. MODULAR ARCHITECTURE (NOT MONOLITHIC)
Claude Code Pattern:
- Single main system prompt (2,852 tokens)
- 20+ individual tool descriptions (separate instruction sets)
- 3-4 sub-agent prompts (Explore, Plan, Task modes)
- Utility prompts (summarization, session management)
- Total: ~40+ distinct strings composed dynamically
Benefit:
- Easy to maintain and version-control each component
- Can activate/deactivate sections based on context
- Tool changes don't require updating entire prompt
Better-i18n Application: Currently we have one monolithic system.ts. We could refactor to:
system-core.ts- Main behavioral directives (1500-2000 tokens)system-tools.ts- Tool descriptions (one per tool, ~100-200 tokens each)system-mention-parsing.ts- Mention detection patternssystem-workflows.ts- Task-specific workflows (DIRECT_TRANSLATE, etc.)
2. TOOL-CENTRIC DESIGN
Industry Standard: Each tool needs:
- Clear description of what it does (1-2 sentences)
- Explicit "WHEN TO USE" guidance (concrete examples)
- "WHEN NOT TO USE" constraints (prevent misuse)
- Usage examples (show exact format and parameters)
- Common patterns (batch operations, error handling)
Current Better-i18n Status: ✅ We improved this in the latest refactor - each tool now has WHEN/DO NOT USE ✅ Added usage examples for each tool ❌ Could add more complex pattern examples (batch fetching, error recovery)
What to add:
- Multi-tool workflows (e.g., "getTranslations THEN proposeTranslations")
- Error recovery patterns
- Performance considerations (why batch > loop)
3. HIERARCHICAL AGENT STRUCTURE
Claude Code Model:
Main Agent (decision-maker)
├── Explore Sub-Agent (516 tokens)
│ └── Focus: Find and understand code patterns
├── Plan Sub-Agent (633 tokens)
│ └── Focus: Design implementation approach
├── Task Sub-Agent
│ └── Focus: Execute specific implementation
Better-i18n Current State: Currently single-mode (translate/fill/improve) Could benefit from:
- Mode Detection Agent: Analyzes user intent (plan vs. act mode)
- Mention Parsing Agent: Specialized in extracting namespace/key mentions
- Translation Agent: Focuses on generation and quality
- Review Agent: Checks for quality issues
Implementation Approach: Different system prompts per intent level, not just one prompt handling everything.
4. EXPLICIT "WHEN TO USE" MATRICES
Pattern from Cline/Claude Code:
Tool: getTranslations
WHEN TO USE:
- User asks "show translations" + namespace is mentioned
- User wants to review before proposing edits
- You need current values before proposing changes
- User says "translations are broken in [namespace]"
WHEN NOT TO USE:
- Just for getting statistics → use getProjectStats
- User wants missing keys → use getUntranslatedKeys
- Single key details → already have from context
- No mention in message → ask for clarification first
Our Implementation: We added this in the mention parsing section - good pattern, but could expand with more examples.
5. CONDITIONAL CONTEXT LOADING
Claude Code Approach:
- Git status embedded conditionally (only if repo context exists)
- Environment variables activate different behavior paths
- User preferences control sub-agent availability
- CLAUDE.md file auto-detected and included when present
Better-i18n Application: Could conditionally include:
- PROJECT INFO section (namespace list, languages) - vary based on project size
- BRAND CONTEXT section - only if configured
- GLOSSARY - only if project has one
- AI CONTEXT - only if user configured brand voice
Benefits:
- Smaller token usage for simpler projects
- More relevant guidance for complex projects
- Faster response times (less prompt to parse)
Key Success Factors
1. Specificity Over Generality
Bad: "Generate translations" Good: "Translate affordableEnglishLearning.comparison.columns.carna.title to Turkish. Parse the full key name from the mention format. If the full sourceText is missing, first call getTranslations to fetch it. Then immediately call proposeTranslations in compact format."
Why: Specific instructions reduce ambiguity and token usage.
2. Examples Over Description
Bad: "Parse mentions in dot-notation format" Good: "Parse mentions like affordableEnglishLearning.comparison.columns.carna.title'i çevirsene → namespace='affordableEnglishLearning' key='comparison.columns.carna.title'"
Why: Examples stick better than descriptions, reduce interpretation.
3. Prevention > Detection
Bad: "Don't call the tool incorrectly" Good: "NEVER call getKeyDetails - use getKeyDetailsBatch even for single keys. Why: Batching handles edge cases automatically."
Why: Explains the WHY, prevents mistakes at source.
4. Decision Matrices > Paragraphs
Bad: Long paragraph explaining when to use getTranslations Good: Table with clear yes/no rows
Why: Faster parsing, easier to scan, models pick up patterns faster.
5. Tool Chains > Individual Tools
Bad: Document each tool separately Good: Show "Tool A → Tool B → Tool C" workflow
Why: Models understand the intended sequence, make better decisions about batching.
Common Mistakes to Avoid
1. Too Much Context Per Tool
Problem: 10+ bullet points per tool → model skips sections Solution: 3-4 key points max, elaborate only for complex tools
2. Vague "When to Use"
Problem: "Use when user asks about keys" Solution: "Use when user mentions specific namespace + action (e.g., 'hero'yu çevir')"
3. Missing Negative Examples
Problem: Only showing what to do Solution: Show what NOT to do (e.g., "NEVER loop getKeyDetails - use batch version")
4. Tool Descriptions Too Long
Problem: Single tool description > 500 tokens Solution: Move complex examples to workflows section
5. No Performance Guidance
Problem: Model doesn't know which approach is better Solution: Explicitly state "Batching is 3x faster: getTranslations(namespaces: [...]) NOT loop of getTranslations calls"
Recommended Refactoring for Better-i18n
Phase 1: Immediate Improvements (Quick wins)
✅ Already Done:
- Tool descriptions with WHEN/DO NOT USE sections
- Decision matrix for mention types
- Workflow examples
⏳ Next:
- Add performance notes to each tool ("Batch before loop")
- Add error recovery patterns ("If tool returns empty, ask user for clarification")
- Add tool chain examples ("getTranslations → proposeTranslations workflow")
Phase 2: Structural Refactoring (Modular architecture)
Separate system.ts into:
system-core.ts- Identity, rules, critical guidancesystem-tools.ts- All tool definitions (could auto-generate)system-mention-parsing.ts- Detection patterns + decision matrixsystem-workflows.ts- Task workflows (DIRECT_TRANSLATE, IMPROVE, STATUS)system-guardrails.ts- Safety rules, error handling
Benefits:
- Tool changes isolated from core logic
- Easier to add new tools (just create new file)
- Sub-prompts can reference each other
- Easier to version and test
Phase 3: Sub-Agent Specialization (Optional, if needed)
Create separate prompts for:
- Intent detection ("What does user want?")
- Mention parsing ("Extract namespace/key from message")
- Translation generation ("Generate translations")
- Quality review ("Check for issues")
Only implement if mention-based system needs fallback logic.
Implementation Priority
1. HIGH PRIORITY (Do Now)
- ✅ Mention parsing matrix (done)
- ✅ Tool WHEN/DO NOT USE (done)
- Add batch performance guidance to tools
- Add error recovery patterns
2. MEDIUM PRIORITY (Week 1)
- Tool chain documentation ("fetch → propose" workflows)
- Conditional context loading (PROJECT INFO varies by size)
- Add more complex usage examples
3. LOW PRIORITY (Future)
- Modular architecture refactoring (system.ts → multiple files)
- Sub-agent specialization (if mention-based approach has issues)
- Automated tool description generation
Lessons Applied to Better-i18n
✅ What We Got Right
- Tool-centric design - Each tool has explicit guidance
- Mention-based context - Uses message parsing, not UI state
- Decision matrices - Clear yes/no examples for mention types
- Workflow documentation - Shows DIRECT_TRANSLATE steps
- Prevention over correction - "NEVER call getKeyDetails" preventive guidance
🔄 What to Improve
- More examples - Add concrete input/output pairs for each tool
- Batch patterns - Emphasize "getTranslations(namespaces: [...])" over loops
- Error recovery - "If empty result, ask user for clarification with examples"
- Tool chains - "Always fetch before propose" pattern documented
- Conditional sections - Vary prompt based on project complexity
🚀 What to Consider Later
- Sub-agent prompts - Separate prompt for mention detection if needed
- Modular architecture - Split system.ts into multiple files
- Performance telemetry - Track which patterns work best
- User feedback loop - A/B test different prompt versions
Research Sources
- Claude Code System Prompts Repository
- Anthropic: Claude Code Best Practices
- Agentic AI Design Patterns 2025
- OpenAI Prompt Engineering Best Practices
- Awesome AI System Prompts (Cline, Claude Code, v0)
Next Steps
- Review this analysis with team
- Implement Phase 1 improvements (batch patterns, error recovery)
- Test mention-based system with sample: "affordableEnglishLearning.comparison.columns.carna.title'i çevirsene"
- Monitor performance - track which patterns work best
- Decide on sub-agents - implement if mention parsing needs fallback
What's inside
Executive summary, 5 architectural patterns, 5 success factors, 5 common mistakes, 3-phase refactoring plan, priority matrix, lessons learned, research sources.
Change this for your project
- Replace
better-i18nwith your own project name - Replace
affordableEnglishLearningwith your own namespace example - Replace
system.tswith your own prompt file path - Replace
DIRECT_TRANSLATEwith your own workflow names
Where it goes
Save in docs/ or the repository root. Gives agents and new contributors a map of the codebase.
Worth borrowing
- Tool descriptions with explicit WHEN TO USE and WHEN NOT TO USE sections
- Decision matrices over paragraphs for faster model parsing
- Conditional context loading to reduce token usage for simple projects
Related Documents
PCB Design Sources for Industry-Scale Testing
Lists GitHub repos and communities where you can download real PCB designs for testing optimization at scale.
Design Document: BharatSeva AI
Describes a 10-agent AWS system that helps India's informal workers access government schemes via voice-first, serverless architecture.
OpenClaw Enterprise Transformation Plan
Transforms a single-user AI agent into a dual-mode platform supporting both viral open-source and Fortune 500 enterprise deployments through phased security, IAM, audit, multi-tenancy, and Kubernetes features.
Qwen Image and Edit: Open-sourcing and Local GGUF Generations with Lightning
Documents the Qwen-Image and Qwen-Image-Edit models, covering architecture, training, benchmarks, ComfyUI setup, and prompting techniques for local GGUF deployment.