Self-Improve Prompt Design
Guide for writing self-improve prompts that maintain expertise file accuracy.
Core Purpose
Self-improve prompts teach agents HOW to learn. They:
-
Validate expertise against actual codebase (source of truth)
-
Identify drift between mental model and reality
-
Update expertise files automatically
-
Enforce line limits to prevent context bloat
-
Run after every ACT step in Act-Learn-Reuse
When to Use
-
Creating maintenance workflows for agent experts
-
Designing validation logic for expertise files
-
Implementing the LEARN step of Act-Learn-Reuse
-
Writing self-improve prompts for new domains
-
Reviewing or debugging existing self-improve prompts
-
Setting up git diff conditional checks for efficiency
Self-Improve Prompt Template
description: Sync {domain} expertise with codebase reality argument-hint: [check-git-diff]
Self-Improve: {Domain} Expert
Maintain expertise accuracy by validating against codebase implementation.
Arguments
$1: check_git_diff flag (optional, default: "true")- "true": Only check files changed in git diff
- "false": Full rescan of all domain files
Configuration
- EXPERTISE_FILE:
.claude/commands/experts/{domain}/expertise.yaml - MAX_LINES: 1000
- DOMAIN_PATHS: ["path/to/domain/files/"]
Workflow
Step 1: Check Git Diff (Conditional)
If $1 is "true" or not provided:
- Run
git diff --name-only HEAD~1to get changed files - Filter to files in DOMAIN_PATHS
- If no relevant changes, report "No domain changes detected" and exit
- Continue with changed files only
If $1 is "false":
- Skip git diff check
- Process all files in DOMAIN_PATHS
Step 2: Read Current Expertise
- Load EXPERTISE_FILE
- Parse YAML structure
- Note current line count
- Identify sections present
Step 3: Validate Against Codebase
For each section in expertise:
core_implementation:
- Verify all file paths exist
- Check line counts are approximately correct
- Confirm key exports still exist
key_operations:
- Verify function names exist
- Check signatures match
- Validate file locations
schema_structure: (if applicable)
- Compare against actual schema definitions
- Check field names and types
best_practices:
- Ensure still relevant to current patterns
known_issues:
- Check if any resolved
- Look for new issues in domain
Step 4: Identify Discrepancies
Create a list of findings:
| Section | Issue | Action |
|---|---|---|
| core_implementation | file.ext renamed | Update path |
| key_operations | new function added | Add entry |
| known_issues | issue #123 resolved | Remove entry |
Step 5: Update Expertise File
Apply changes:
- Update outdated information
- Add new discoveries
- Remove stale entries
- Maintain YAML structure
Step 6: Enforce Line Limit
If line count > MAX_LINES:
- Identify lowest priority sections
- Summarize verbose entries
- Remove least critical items
- Continue until under limit
Priority order (highest to lowest):
- core_implementation
- key_operations
- best_practices
- known_issues
- patterns_and_conventions
- testing_notes
Step 7: Validation Check
- Parse updated YAML (ensure valid syntax)
- Verify line count: {current}/{MAX_LINES}
- Run quick sanity checks on paths/names
Output Report
## Self-Improve Complete: {domain}
### Summary
- Files scanned: X
- Changes detected: Y
- Updates applied: Z
### Changes Made
| Section | Change | Reason |
| --- | --- | --- |
| ... | ... | ... |
### Expertise Health
| Metric | Value |
| --- | --- |
| Line count | X/1000 |
| Files validated | X/X exist |
| Functions verified | X/X accurate |
| Schema accuracy | X% |
### Recommendations
- [Any manual review suggestions]
Notes
- Mental model is NOT source of truth - codebase is
- Run after every ACT (build, fix, modify)
- Check git diff by default to save time
- Full rescan periodically or when drift suspected
Key Design Principles
- Conditional Git Diff Check
Always include git diff optimization:
If check_git_diff is true:
- Only process changed files
- Exit early if no relevant changes
- Saves time on routine syncs
- Line Limit Enforcement
Must be explicit and prioritized:
MAX_LINES: 1000
If over limit:
-
Summarize verbose sections
-
Remove lowest priority items
-
Never exceed limit
-
Validation Before Update
Always validate before writing:
Before writing updated expertise:
-
Parse as YAML (catch syntax errors)
-
Count lines
-
Verify critical paths exist
-
Actionable Output
Report should enable follow-up:
Changes Made
| Section | Change | Reason |
|---|
Recommendations
- Items requiring human review
- Potential issues to investigate
Validation Patterns
File Path Validation
For each file path in expertise:
- Check if file exists at path
- If not, search for file by name
- If found elsewhere, update path
- If not found, mark for removal
Function Validation
For each function in key_operations:
- Search file for function definition
- Compare signature if found
- Update or flag discrepancy
Schema Validation
For each table/entity in schema_structure:
- Find schema definition file
- Compare fields and types
- Note additions/removals
Anti-Patterns
Anti-Pattern Problem Solution
No git diff option Wastes time on no-ops Always include conditional check
No line limit Context overflow Enforce MAX_LINES strictly
Silent failures Drift undetected Report all validation results
Manual edits Human time wasted Self-improve only updates
No validation Bad YAML written Always parse before save
Integration with Act-Learn-Reuse
┌─────────────────────────────────────────────┐ │ ACT: Build, Fix, or Answer │ │ (Agent performs useful work) │ └──────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ LEARN: Self-Improve Prompt │ │ • Check git diff │ │ • Validate expertise against code │ │ • Update mental model │ │ • Enforce line limits │ └──────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ REUSE: Next Execution │ │ (Agent reads updated expertise first) │ └─────────────────────────────────────────────┘
Testing Self-Improve Prompts
To validate a self-improve prompt works correctly:
-
Initial state: Run against seeded expertise
-
Introduce change: Modify a file in domain
-
Run self-improve: Check it detects change
-
Verify update: Confirm expertise updated correctly
-
Line limit test: Add content until limit hit, verify truncation
Related Skills
-
expertise-file-design : Structure of expertise files
-
agent-expert-creation : Full agent expert workflow
-
meta-agentic-creation : Self-improving at scale
Last Updated: 2025-12-15
Version History
- v1.0.0 (2025-12-26): Initial release