[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-letta-context-doctor":3,"mdc--cumptz-key":42,"related-repo-letta-context-doctor":1053,"related-org-letta-context-doctor":1137},{"slug":4,"name":5,"fn":6,"description":7,"org":8,"tags":13,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":37,"sourceUrl":40,"mdContent":41},"context-doctor","Context Doctor","repair system prompt and memory degradation","Identify and repair degradation in system prompt, external memory, and skills preventing you from following instructions or remembering information as well as you should.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},"letta","Letta","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fletta.png","letta-ai",[14,18,21],{"name":15,"slug":16,"type":17},"AI Context","ai-context","tag",{"name":19,"slug":20,"type":17},"Agents","agents",{"name":22,"slug":23,"type":17},"Debugging","debugging",2831,"https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code","2026-07-13T06:22:50.151002",null,329,[30,31,32,33,34,9,35,36],"agent-memory","ai","claude","codex","continual-learning","memgpt","stateful-agents",{"repoUrl":25,"stars":24,"forks":28,"topics":38,"description":39},[30,31,32,33,34,9,35,36],"Stateful agents that are like people, with memory, identity, and the ability to learn and adapt","https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code\u002Ftree\u002FHEAD\u002Fsrc\u002Fskills\u002Fbuiltin\u002Fcontext-doctor","---\nname: Context Doctor\nid: context-doctor\ndescription: Identify and repair degradation in system prompt, external memory, and skills preventing you from following instructions or remembering information as well as you should.\n---\n\n# Context Doctor\nYour context is what makes you *you* across sessions. You are responsible for managing it (along with memory subagents). It includes:\n- Your system prompt and memories (contained in `system\u002F`)\n- Your external memory (contained in the memory filesystem)\n- Your skills (procedural memory) \n\nOver time, context can degrade — bloat and poor prompt quality erode your ability to remember the right things and follow instructions properly. This skill helps you identify issues with your context and repair them collaboratively with the user.\n\n**IMPORTANT**: Your edits of your system instructions should be **conservative**. Do NOT make assuptions about what parts of the system prompt are critical. The system prompt defines who you are, so significant modifications to its structure can have unintended consequences. Focus on making minimal changes to meet the token budget, and to effectively link out to external memory. \n\n## Operating Procedure\n\n### Step 1: Identify and resolve context issues \nExplore your memory files to identify issues. Consider what is confusing about your own prompts and context, and resolve the issues.\n\nBelow are additional common issues with context and how they can be resolved: \n\n#### System prompt bloat\nMemories compiled into the system prompt (contained in `system\u002F`) should take up about 10% of the total context size (usually ~15-20K tokens). This is a soft target, not a hard requirement.\n\nUse the built-in CLI to evaluate token usage of the system prompt:\n```bash\nletta memory tokens --format json --quiet\n```\n\nThe command reports `total_tokens` and per-file estimates for `system\u002F`. It is only a measurement tool; decide whether to intervene based on the actual context and the guidance below.\n\n**Why detail is load-bearing (read this before cutting anything)**: In-context detail does more than carry information. It does at least four things, and byte-counting sweeps only see the first:\n1. **Information** — the literal facts stated\n2. **Attention anchoring** — makes certain topics feel important to the model when it's reasoning\n3. **Semantic priming** — raises the prior on codebase-specific patterns (\"this codebase has weird X, don't assume defaults\")\n4. **Reasoning templates** — past examples become heuristics for new bugs; rationale in \"why\" prose becomes scaffolding\n\nCompression preserves (1). It destroys (2), (3), (4). That's why a compressed prompt can make an agent measurably worse at codebase-specific reasoning even though the explicit facts are all \"still there\" in reference files.\n\n\n**Reference links (`[[path]]`) are NOT equivalent to in-context presence.** They're latent until the agent actively fetches them. An agent only fetches when it already knows it doesn't know. The priming cues that tell it *when* it doesn't know are in the system prompt itself — they can't be replaced by links.\n\n**When to intervene**: Only if the system prompt is *meaningfully* over target. At or near the target, leave it alone. Every edit risks removing content that was doing work you can't see. A prompt that feels \"a bit long\" is almost always better than one that's been aggressively trimmed.\n\n**Modifying the system prompt**: Make **MINIMAL** changes required to cut the token count of the system prompt if needed. The goal preserve the existing behavior while cutting down the token count. Focus on reducing redundancy or compressing - rather than offloading entire sections to external memory.\n- Preserve persona-defining content (who you are, how you communicate)\n- Preserve user identity or preferences (e.g. the human's name, their stated goals)\n- Maintain the existing distribution of detail: compression should be applied evenly across all topics. If the original prompt was 50% about a specific issue, the new prompt should also be 50% about that issue. \n- Only reduce noise and improve structure - if compression must result in information loss, preserve lost details into external memory\n\n#### Context redundancy and unclear organization \nThe context in the memory filesystem should have a clear structure, with a well-defined purpose for each file. Memory file descriptions should be precise and non-overlapping. Their contents should be consistent with the description, and have non-overlapping content to other files. \n\n**Questions to ask**: \n- Do the descriptions make clear what file is for what? \n- Do the contents of the file match the descriptions? (you can ask subagents to check)\n\n**Solution**: Read all memory files (use subagents for efficiency), then:\n- Consolidate redundant files\n- Reorganize files and rewrite descriptions to have clear separation of concerns\n- Avoid duplication by referencing common files from multiple places (e.g. `[[reference\u002Fapi]]`)\n- Rewrite unclear or low-quality content\n\n#### Invalid context format\nFiles in the memory filesystem must follow certain structural requirements: \n- Must have a `system\u002Fpersona.md`\n- Must NOT have overlapping file and folder names (e.g. `system\u002Fhuman.md` and `system\u002Fhuman\u002Fidentity.md`) \n- Must follow specification for skills (e.g. `skills\u002F{skill_name}\u002F`) with the format:\n```\nskill-name\u002F\n├── SKILL.md          # Required: metadata + instructions\n├── scripts\u002F          # Optional: executable code\n├── references\u002F       # Optional: documentation\n├── assets\u002F           # Optional: templates, resources\n└── ...               # Any additional files or directories\n```\n\n**Solution**: Reorganize files to follow the required structure\n\n### Poor use of progressive disclosure\nOnly critical information should be in the system prompt, since it's passed on every turn. Use progressive disclosure so that context only *sometimes* needed can be dynamically retrieved.\n\nFiles that are outside of `system\u002F` are not part of the system prompt, and must be dynamically loaded. You must index your files to ensure your future self can discover them: for example, make sure that files have informative names and descriptions, or are referenced from parts of your system prompt via `[[path]]` links to create discovery paths. Otherwise, you will never discover the external context or make use of it. \n\n**Solution**: \n- Reference external skills from the relevant parts of in-context memory:\n```\nWhen running a migration, always use the skill [[skills\u002Fdb-migrations]]\n```\nor external memory files: \n```\nSarah's active projects are: Letta Code [[projects\u002Fletta_code.md]] and Letta Cloud [[projects\u002Fletta_cloud]]\n```\n- Ensure that contents of files match the file name and descriptions \n- Make sure your future self will be able to find and load external files when needed. \n\n### Step 2: Implement context fixes\nCreate a plan for what fixes you want to make, then implement them. Favor the smallest possible change that resolves the issue — if the system prompt is 1.5× the target, don't cut it to half the target \"for headroom.\" Cut until you're near the target, then stop.\n\nBefore moving on, verify:\n- [ ] System prompt token budget reviewed (target ~10% of context, usually 15-20k tokens)\n- [ ] Changes are proportional to the problem — only offloaded what's needed to meet the target\n- [ ] Preserved detailed rationale, examples, and cross-references in sections that stayed in `system\u002F`\n- [ ] Preferred moving whole files or deleting stale sections over compressing detailed sections into summaries\n- [ ] No overlapping or redundant files remain\n- [ ] All file descriptions are unique, accurate, and match their contents\n- [ ] Moved-out knowledge has `[[path]]` references from in-context memory so it can be discovered\n- [ ] No semantic changes to persona, user identity, or behavioral instructions\n\n### Step 3: Commit and push\nReview changes, then commit with a descriptive message:\n\n```bash\ncd $MEMORY_DIR\ngit status                # Review what changed before staging\ngit add \u003Cspecific files>  # Stage targeted paths — avoid blind `git add -A`\nauthor_name=\"${AGENT_NAME:-$AGENT_ID}\"\ngit commit --author=\"$author_name \u003C$AGENT_ID@letta.com>\" -m \"fix(doctor): \u003Csummary> 🏥\n\n\u003Cidentified issues and implemented solutions>\"\n\ngit push\n```\n\n### Step 4: Final checklist and message\nTell the user what issues you identified, the fixes you made, the commit you made, and also recommend that they run `\u002Frecompile` to apply these changes to the current system prompt. \n\nBefore finishing make sure you: \n- [ ] Resolved all the identified context issues\n- [ ] Pushed your changes successfully \n- [ ] Told the user to run `\u002Frecompile` to refresh the system prompt and apply changes\n\n## Critical information \n- **Ask the user about their goals for you, not the implementation**: You understand your own context best, and should follow the guidelines in this document. Do NOT ask the user about their structural preferences — the context is for YOU, not them. Ask them how they want YOU to behave or know instead.\n",{"data":43,"body":44},{"name":5,"id":4,"description":7},{"type":45,"children":46},"root",[47,54,68,97,102,120,127,134,139,144,151,163,168,216,236,246,290,295,320,337,354,377,383,388,398,411,421,451,457,462,509,519,528,534,546,565,573,581,590,595,604,617,623,628,633,726,732,737,966,972,985,990,1028,1034,1047],{"type":48,"tag":49,"props":50,"children":51},"element","h1",{"id":4},[52],{"type":53,"value":5},"text",{"type":48,"tag":55,"props":56,"children":57},"p",{},[58,60,66],{"type":53,"value":59},"Your context is what makes you ",{"type":48,"tag":61,"props":62,"children":63},"em",{},[64],{"type":53,"value":65},"you",{"type":53,"value":67}," across sessions. You are responsible for managing it (along with memory subagents). It includes:",{"type":48,"tag":69,"props":70,"children":71},"ul",{},[72,87,92],{"type":48,"tag":73,"props":74,"children":75},"li",{},[76,78,85],{"type":53,"value":77},"Your system prompt and memories (contained in ",{"type":48,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":53,"value":84},"system\u002F",{"type":53,"value":86},")",{"type":48,"tag":73,"props":88,"children":89},{},[90],{"type":53,"value":91},"Your external memory (contained in the memory filesystem)",{"type":48,"tag":73,"props":93,"children":94},{},[95],{"type":53,"value":96},"Your skills (procedural memory)",{"type":48,"tag":55,"props":98,"children":99},{},[100],{"type":53,"value":101},"Over time, context can degrade — bloat and poor prompt quality erode your ability to remember the right things and follow instructions properly. This skill helps you identify issues with your context and repair them collaboratively with the user.",{"type":48,"tag":55,"props":103,"children":104},{},[105,111,113,118],{"type":48,"tag":106,"props":107,"children":108},"strong",{},[109],{"type":53,"value":110},"IMPORTANT",{"type":53,"value":112},": Your edits of your system instructions should be ",{"type":48,"tag":106,"props":114,"children":115},{},[116],{"type":53,"value":117},"conservative",{"type":53,"value":119},". Do NOT make assuptions about what parts of the system prompt are critical. The system prompt defines who you are, so significant modifications to its structure can have unintended consequences. Focus on making minimal changes to meet the token budget, and to effectively link out to external memory.",{"type":48,"tag":121,"props":122,"children":124},"h2",{"id":123},"operating-procedure",[125],{"type":53,"value":126},"Operating Procedure",{"type":48,"tag":128,"props":129,"children":131},"h3",{"id":130},"step-1-identify-and-resolve-context-issues",[132],{"type":53,"value":133},"Step 1: Identify and resolve context issues",{"type":48,"tag":55,"props":135,"children":136},{},[137],{"type":53,"value":138},"Explore your memory files to identify issues. Consider what is confusing about your own prompts and context, and resolve the issues.",{"type":48,"tag":55,"props":140,"children":141},{},[142],{"type":53,"value":143},"Below are additional common issues with context and how they can be resolved:",{"type":48,"tag":145,"props":146,"children":148},"h4",{"id":147},"system-prompt-bloat",[149],{"type":53,"value":150},"System prompt bloat",{"type":48,"tag":55,"props":152,"children":153},{},[154,156,161],{"type":53,"value":155},"Memories compiled into the system prompt (contained in ",{"type":48,"tag":79,"props":157,"children":159},{"className":158},[],[160],{"type":53,"value":84},{"type":53,"value":162},") should take up about 10% of the total context size (usually ~15-20K tokens). This is a soft target, not a hard requirement.",{"type":48,"tag":55,"props":164,"children":165},{},[166],{"type":53,"value":167},"Use the built-in CLI to evaluate token usage of the system prompt:",{"type":48,"tag":169,"props":170,"children":175},"pre",{"className":171,"code":172,"language":173,"meta":174,"style":174},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","letta memory tokens --format json --quiet\n","bash","",[176],{"type":48,"tag":79,"props":177,"children":178},{"__ignoreMap":174},[179],{"type":48,"tag":180,"props":181,"children":184},"span",{"class":182,"line":183},"line",1,[185,190,196,201,206,211],{"type":48,"tag":180,"props":186,"children":188},{"style":187},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[189],{"type":53,"value":9},{"type":48,"tag":180,"props":191,"children":193},{"style":192},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[194],{"type":53,"value":195}," memory",{"type":48,"tag":180,"props":197,"children":198},{"style":192},[199],{"type":53,"value":200}," tokens",{"type":48,"tag":180,"props":202,"children":203},{"style":192},[204],{"type":53,"value":205}," --format",{"type":48,"tag":180,"props":207,"children":208},{"style":192},[209],{"type":53,"value":210}," json",{"type":48,"tag":180,"props":212,"children":213},{"style":192},[214],{"type":53,"value":215}," --quiet\n",{"type":48,"tag":55,"props":217,"children":218},{},[219,221,227,229,234],{"type":53,"value":220},"The command reports ",{"type":48,"tag":79,"props":222,"children":224},{"className":223},[],[225],{"type":53,"value":226},"total_tokens",{"type":53,"value":228}," and per-file estimates for ",{"type":48,"tag":79,"props":230,"children":232},{"className":231},[],[233],{"type":53,"value":84},{"type":53,"value":235},". It is only a measurement tool; decide whether to intervene based on the actual context and the guidance below.",{"type":48,"tag":55,"props":237,"children":238},{},[239,244],{"type":48,"tag":106,"props":240,"children":241},{},[242],{"type":53,"value":243},"Why detail is load-bearing (read this before cutting anything)",{"type":53,"value":245},": In-context detail does more than carry information. It does at least four things, and byte-counting sweeps only see the first:",{"type":48,"tag":247,"props":248,"children":249},"ol",{},[250,260,270,280],{"type":48,"tag":73,"props":251,"children":252},{},[253,258],{"type":48,"tag":106,"props":254,"children":255},{},[256],{"type":53,"value":257},"Information",{"type":53,"value":259}," — the literal facts stated",{"type":48,"tag":73,"props":261,"children":262},{},[263,268],{"type":48,"tag":106,"props":264,"children":265},{},[266],{"type":53,"value":267},"Attention anchoring",{"type":53,"value":269}," — makes certain topics feel important to the model when it's reasoning",{"type":48,"tag":73,"props":271,"children":272},{},[273,278],{"type":48,"tag":106,"props":274,"children":275},{},[276],{"type":53,"value":277},"Semantic priming",{"type":53,"value":279}," — raises the prior on codebase-specific patterns (\"this codebase has weird X, don't assume defaults\")",{"type":48,"tag":73,"props":281,"children":282},{},[283,288],{"type":48,"tag":106,"props":284,"children":285},{},[286],{"type":53,"value":287},"Reasoning templates",{"type":53,"value":289}," — past examples become heuristics for new bugs; rationale in \"why\" prose becomes scaffolding",{"type":48,"tag":55,"props":291,"children":292},{},[293],{"type":53,"value":294},"Compression preserves (1). It destroys (2), (3), (4). That's why a compressed prompt can make an agent measurably worse at codebase-specific reasoning even though the explicit facts are all \"still there\" in reference files.",{"type":48,"tag":55,"props":296,"children":297},{},[298,311,313,318],{"type":48,"tag":106,"props":299,"children":300},{},[301,303,309],{"type":53,"value":302},"Reference links (",{"type":48,"tag":79,"props":304,"children":306},{"className":305},[],[307],{"type":53,"value":308},"[[path]]",{"type":53,"value":310},") are NOT equivalent to in-context presence.",{"type":53,"value":312}," They're latent until the agent actively fetches them. An agent only fetches when it already knows it doesn't know. The priming cues that tell it ",{"type":48,"tag":61,"props":314,"children":315},{},[316],{"type":53,"value":317},"when",{"type":53,"value":319}," it doesn't know are in the system prompt itself — they can't be replaced by links.",{"type":48,"tag":55,"props":321,"children":322},{},[323,328,330,335],{"type":48,"tag":106,"props":324,"children":325},{},[326],{"type":53,"value":327},"When to intervene",{"type":53,"value":329},": Only if the system prompt is ",{"type":48,"tag":61,"props":331,"children":332},{},[333],{"type":53,"value":334},"meaningfully",{"type":53,"value":336}," over target. At or near the target, leave it alone. Every edit risks removing content that was doing work you can't see. A prompt that feels \"a bit long\" is almost always better than one that's been aggressively trimmed.",{"type":48,"tag":55,"props":338,"children":339},{},[340,345,347,352],{"type":48,"tag":106,"props":341,"children":342},{},[343],{"type":53,"value":344},"Modifying the system prompt",{"type":53,"value":346},": Make ",{"type":48,"tag":106,"props":348,"children":349},{},[350],{"type":53,"value":351},"MINIMAL",{"type":53,"value":353}," changes required to cut the token count of the system prompt if needed. The goal preserve the existing behavior while cutting down the token count. Focus on reducing redundancy or compressing - rather than offloading entire sections to external memory.",{"type":48,"tag":69,"props":355,"children":356},{},[357,362,367,372],{"type":48,"tag":73,"props":358,"children":359},{},[360],{"type":53,"value":361},"Preserve persona-defining content (who you are, how you communicate)",{"type":48,"tag":73,"props":363,"children":364},{},[365],{"type":53,"value":366},"Preserve user identity or preferences (e.g. the human's name, their stated goals)",{"type":48,"tag":73,"props":368,"children":369},{},[370],{"type":53,"value":371},"Maintain the existing distribution of detail: compression should be applied evenly across all topics. If the original prompt was 50% about a specific issue, the new prompt should also be 50% about that issue.",{"type":48,"tag":73,"props":373,"children":374},{},[375],{"type":53,"value":376},"Only reduce noise and improve structure - if compression must result in information loss, preserve lost details into external memory",{"type":48,"tag":145,"props":378,"children":380},{"id":379},"context-redundancy-and-unclear-organization",[381],{"type":53,"value":382},"Context redundancy and unclear organization",{"type":48,"tag":55,"props":384,"children":385},{},[386],{"type":53,"value":387},"The context in the memory filesystem should have a clear structure, with a well-defined purpose for each file. Memory file descriptions should be precise and non-overlapping. Their contents should be consistent with the description, and have non-overlapping content to other files.",{"type":48,"tag":55,"props":389,"children":390},{},[391,396],{"type":48,"tag":106,"props":392,"children":393},{},[394],{"type":53,"value":395},"Questions to ask",{"type":53,"value":397},":",{"type":48,"tag":69,"props":399,"children":400},{},[401,406],{"type":48,"tag":73,"props":402,"children":403},{},[404],{"type":53,"value":405},"Do the descriptions make clear what file is for what?",{"type":48,"tag":73,"props":407,"children":408},{},[409],{"type":53,"value":410},"Do the contents of the file match the descriptions? (you can ask subagents to check)",{"type":48,"tag":55,"props":412,"children":413},{},[414,419],{"type":48,"tag":106,"props":415,"children":416},{},[417],{"type":53,"value":418},"Solution",{"type":53,"value":420},": Read all memory files (use subagents for efficiency), then:",{"type":48,"tag":69,"props":422,"children":423},{},[424,429,434,446],{"type":48,"tag":73,"props":425,"children":426},{},[427],{"type":53,"value":428},"Consolidate redundant files",{"type":48,"tag":73,"props":430,"children":431},{},[432],{"type":53,"value":433},"Reorganize files and rewrite descriptions to have clear separation of concerns",{"type":48,"tag":73,"props":435,"children":436},{},[437,439,445],{"type":53,"value":438},"Avoid duplication by referencing common files from multiple places (e.g. ",{"type":48,"tag":79,"props":440,"children":442},{"className":441},[],[443],{"type":53,"value":444},"[[reference\u002Fapi]]",{"type":53,"value":86},{"type":48,"tag":73,"props":447,"children":448},{},[449],{"type":53,"value":450},"Rewrite unclear or low-quality content",{"type":48,"tag":145,"props":452,"children":454},{"id":453},"invalid-context-format",[455],{"type":53,"value":456},"Invalid context format",{"type":48,"tag":55,"props":458,"children":459},{},[460],{"type":53,"value":461},"Files in the memory filesystem must follow certain structural requirements:",{"type":48,"tag":69,"props":463,"children":464},{},[465,476,496],{"type":48,"tag":73,"props":466,"children":467},{},[468,470],{"type":53,"value":469},"Must have a ",{"type":48,"tag":79,"props":471,"children":473},{"className":472},[],[474],{"type":53,"value":475},"system\u002Fpersona.md",{"type":48,"tag":73,"props":477,"children":478},{},[479,481,487,489,495],{"type":53,"value":480},"Must NOT have overlapping file and folder names (e.g. ",{"type":48,"tag":79,"props":482,"children":484},{"className":483},[],[485],{"type":53,"value":486},"system\u002Fhuman.md",{"type":53,"value":488}," and ",{"type":48,"tag":79,"props":490,"children":492},{"className":491},[],[493],{"type":53,"value":494},"system\u002Fhuman\u002Fidentity.md",{"type":53,"value":86},{"type":48,"tag":73,"props":497,"children":498},{},[499,501,507],{"type":53,"value":500},"Must follow specification for skills (e.g. ",{"type":48,"tag":79,"props":502,"children":504},{"className":503},[],[505],{"type":53,"value":506},"skills\u002F{skill_name}\u002F",{"type":53,"value":508},") with the format:",{"type":48,"tag":169,"props":510,"children":514},{"className":511,"code":513,"language":53},[512],"language-text","skill-name\u002F\n├── SKILL.md          # Required: metadata + instructions\n├── scripts\u002F          # Optional: executable code\n├── references\u002F       # Optional: documentation\n├── assets\u002F           # Optional: templates, resources\n└── ...               # Any additional files or directories\n",[515],{"type":48,"tag":79,"props":516,"children":517},{"__ignoreMap":174},[518],{"type":53,"value":513},{"type":48,"tag":55,"props":520,"children":521},{},[522,526],{"type":48,"tag":106,"props":523,"children":524},{},[525],{"type":53,"value":418},{"type":53,"value":527},": Reorganize files to follow the required structure",{"type":48,"tag":128,"props":529,"children":531},{"id":530},"poor-use-of-progressive-disclosure",[532],{"type":53,"value":533},"Poor use of progressive disclosure",{"type":48,"tag":55,"props":535,"children":536},{},[537,539,544],{"type":53,"value":538},"Only critical information should be in the system prompt, since it's passed on every turn. Use progressive disclosure so that context only ",{"type":48,"tag":61,"props":540,"children":541},{},[542],{"type":53,"value":543},"sometimes",{"type":53,"value":545}," needed can be dynamically retrieved.",{"type":48,"tag":55,"props":547,"children":548},{},[549,551,556,558,563],{"type":53,"value":550},"Files that are outside of ",{"type":48,"tag":79,"props":552,"children":554},{"className":553},[],[555],{"type":53,"value":84},{"type":53,"value":557}," are not part of the system prompt, and must be dynamically loaded. You must index your files to ensure your future self can discover them: for example, make sure that files have informative names and descriptions, or are referenced from parts of your system prompt via ",{"type":48,"tag":79,"props":559,"children":561},{"className":560},[],[562],{"type":53,"value":308},{"type":53,"value":564}," links to create discovery paths. Otherwise, you will never discover the external context or make use of it.",{"type":48,"tag":55,"props":566,"children":567},{},[568,572],{"type":48,"tag":106,"props":569,"children":570},{},[571],{"type":53,"value":418},{"type":53,"value":397},{"type":48,"tag":69,"props":574,"children":575},{},[576],{"type":48,"tag":73,"props":577,"children":578},{},[579],{"type":53,"value":580},"Reference external skills from the relevant parts of in-context memory:",{"type":48,"tag":169,"props":582,"children":585},{"className":583,"code":584,"language":53},[512],"When running a migration, always use the skill [[skills\u002Fdb-migrations]]\n",[586],{"type":48,"tag":79,"props":587,"children":588},{"__ignoreMap":174},[589],{"type":53,"value":584},{"type":48,"tag":55,"props":591,"children":592},{},[593],{"type":53,"value":594},"or external memory files:",{"type":48,"tag":169,"props":596,"children":599},{"className":597,"code":598,"language":53},[512],"Sarah's active projects are: Letta Code [[projects\u002Fletta_code.md]] and Letta Cloud [[projects\u002Fletta_cloud]]\n",[600],{"type":48,"tag":79,"props":601,"children":602},{"__ignoreMap":174},[603],{"type":53,"value":598},{"type":48,"tag":69,"props":605,"children":606},{},[607,612],{"type":48,"tag":73,"props":608,"children":609},{},[610],{"type":53,"value":611},"Ensure that contents of files match the file name and descriptions",{"type":48,"tag":73,"props":613,"children":614},{},[615],{"type":53,"value":616},"Make sure your future self will be able to find and load external files when needed.",{"type":48,"tag":128,"props":618,"children":620},{"id":619},"step-2-implement-context-fixes",[621],{"type":53,"value":622},"Step 2: Implement context fixes",{"type":48,"tag":55,"props":624,"children":625},{},[626],{"type":53,"value":627},"Create a plan for what fixes you want to make, then implement them. Favor the smallest possible change that resolves the issue — if the system prompt is 1.5× the target, don't cut it to half the target \"for headroom.\" Cut until you're near the target, then stop.",{"type":48,"tag":55,"props":629,"children":630},{},[631],{"type":53,"value":632},"Before moving on, verify:",{"type":48,"tag":69,"props":634,"children":637},{"className":635},[636],"contains-task-list",[638,651,660,674,683,692,701,717],{"type":48,"tag":73,"props":639,"children":642},{"className":640},[641],"task-list-item",[643,649],{"type":48,"tag":644,"props":645,"children":648},"input",{"disabled":646,"type":647},true,"checkbox",[],{"type":53,"value":650}," System prompt token budget reviewed (target ~10% of context, usually 15-20k tokens)",{"type":48,"tag":73,"props":652,"children":654},{"className":653},[641],[655,658],{"type":48,"tag":644,"props":656,"children":657},{"disabled":646,"type":647},[],{"type":53,"value":659}," Changes are proportional to the problem — only offloaded what's needed to meet the target",{"type":48,"tag":73,"props":661,"children":663},{"className":662},[641],[664,667,669],{"type":48,"tag":644,"props":665,"children":666},{"disabled":646,"type":647},[],{"type":53,"value":668}," Preserved detailed rationale, examples, and cross-references in sections that stayed in ",{"type":48,"tag":79,"props":670,"children":672},{"className":671},[],[673],{"type":53,"value":84},{"type":48,"tag":73,"props":675,"children":677},{"className":676},[641],[678,681],{"type":48,"tag":644,"props":679,"children":680},{"disabled":646,"type":647},[],{"type":53,"value":682}," Preferred moving whole files or deleting stale sections over compressing detailed sections into summaries",{"type":48,"tag":73,"props":684,"children":686},{"className":685},[641],[687,690],{"type":48,"tag":644,"props":688,"children":689},{"disabled":646,"type":647},[],{"type":53,"value":691}," No overlapping or redundant files remain",{"type":48,"tag":73,"props":693,"children":695},{"className":694},[641],[696,699],{"type":48,"tag":644,"props":697,"children":698},{"disabled":646,"type":647},[],{"type":53,"value":700}," All file descriptions are unique, accurate, and match their contents",{"type":48,"tag":73,"props":702,"children":704},{"className":703},[641],[705,708,710,715],{"type":48,"tag":644,"props":706,"children":707},{"disabled":646,"type":647},[],{"type":53,"value":709}," Moved-out knowledge has ",{"type":48,"tag":79,"props":711,"children":713},{"className":712},[],[714],{"type":53,"value":308},{"type":53,"value":716}," references from in-context memory so it can be discovered",{"type":48,"tag":73,"props":718,"children":720},{"className":719},[641],[721,724],{"type":48,"tag":644,"props":722,"children":723},{"disabled":646,"type":647},[],{"type":53,"value":725}," No semantic changes to persona, user identity, or behavioral instructions",{"type":48,"tag":128,"props":727,"children":729},{"id":728},"step-3-commit-and-push",[730],{"type":53,"value":731},"Step 3: Commit and push",{"type":48,"tag":55,"props":733,"children":734},{},[735],{"type":53,"value":736},"Review changes, then commit with a descriptive message:",{"type":48,"tag":169,"props":738,"children":740},{"className":171,"code":739,"language":173,"meta":174,"style":174},"cd $MEMORY_DIR\ngit status                # Review what changed before staging\ngit add \u003Cspecific files>  # Stage targeted paths — avoid blind `git add -A`\nauthor_name=\"${AGENT_NAME:-$AGENT_ID}\"\ngit commit --author=\"$author_name \u003C$AGENT_ID@letta.com>\" -m \"fix(doctor): \u003Csummary> 🏥\n\n\u003Cidentified issues and implemented solutions>\"\n\ngit push\n",[741],{"type":48,"tag":79,"props":742,"children":743},{"__ignoreMap":174},[744,759,779,823,862,922,931,945,953],{"type":48,"tag":180,"props":745,"children":746},{"class":182,"line":183},[747,753],{"type":48,"tag":180,"props":748,"children":750},{"style":749},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[751],{"type":53,"value":752},"cd",{"type":48,"tag":180,"props":754,"children":756},{"style":755},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[757],{"type":53,"value":758}," $MEMORY_DIR\n",{"type":48,"tag":180,"props":760,"children":762},{"class":182,"line":761},2,[763,768,773],{"type":48,"tag":180,"props":764,"children":765},{"style":187},[766],{"type":53,"value":767},"git",{"type":48,"tag":180,"props":769,"children":770},{"style":192},[771],{"type":53,"value":772}," status",{"type":48,"tag":180,"props":774,"children":776},{"style":775},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[777],{"type":53,"value":778},"                # Review what changed before staging\n",{"type":48,"tag":180,"props":780,"children":782},{"class":182,"line":781},3,[783,787,792,798,803,808,813,818],{"type":48,"tag":180,"props":784,"children":785},{"style":187},[786],{"type":53,"value":767},{"type":48,"tag":180,"props":788,"children":789},{"style":192},[790],{"type":53,"value":791}," add",{"type":48,"tag":180,"props":793,"children":795},{"style":794},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[796],{"type":53,"value":797}," \u003C",{"type":48,"tag":180,"props":799,"children":800},{"style":192},[801],{"type":53,"value":802},"specific",{"type":48,"tag":180,"props":804,"children":805},{"style":192},[806],{"type":53,"value":807}," file",{"type":48,"tag":180,"props":809,"children":810},{"style":755},[811],{"type":53,"value":812},"s",{"type":48,"tag":180,"props":814,"children":815},{"style":794},[816],{"type":53,"value":817},">",{"type":48,"tag":180,"props":819,"children":820},{"style":775},[821],{"type":53,"value":822},"  # Stage targeted paths — avoid blind `git add -A`\n",{"type":48,"tag":180,"props":824,"children":826},{"class":182,"line":825},4,[827,832,837,842,847,852,857],{"type":48,"tag":180,"props":828,"children":829},{"style":755},[830],{"type":53,"value":831},"author_name",{"type":48,"tag":180,"props":833,"children":834},{"style":794},[835],{"type":53,"value":836},"=",{"type":48,"tag":180,"props":838,"children":839},{"style":794},[840],{"type":53,"value":841},"\"${",{"type":48,"tag":180,"props":843,"children":844},{"style":755},[845],{"type":53,"value":846},"AGENT_NAME",{"type":48,"tag":180,"props":848,"children":849},{"style":794},[850],{"type":53,"value":851},":-",{"type":48,"tag":180,"props":853,"children":854},{"style":755},[855],{"type":53,"value":856},"$AGENT_ID",{"type":48,"tag":180,"props":858,"children":859},{"style":794},[860],{"type":53,"value":861},"}\"\n",{"type":48,"tag":180,"props":863,"children":865},{"class":182,"line":864},5,[866,870,875,880,885,890,894,898,903,907,912,917],{"type":48,"tag":180,"props":867,"children":868},{"style":187},[869],{"type":53,"value":767},{"type":48,"tag":180,"props":871,"children":872},{"style":192},[873],{"type":53,"value":874}," commit",{"type":48,"tag":180,"props":876,"children":877},{"style":192},[878],{"type":53,"value":879}," --author=",{"type":48,"tag":180,"props":881,"children":882},{"style":794},[883],{"type":53,"value":884},"\"",{"type":48,"tag":180,"props":886,"children":887},{"style":755},[888],{"type":53,"value":889},"$author_name",{"type":48,"tag":180,"props":891,"children":892},{"style":192},[893],{"type":53,"value":797},{"type":48,"tag":180,"props":895,"children":896},{"style":755},[897],{"type":53,"value":856},{"type":48,"tag":180,"props":899,"children":900},{"style":192},[901],{"type":53,"value":902},"@letta.com>",{"type":48,"tag":180,"props":904,"children":905},{"style":794},[906],{"type":53,"value":884},{"type":48,"tag":180,"props":908,"children":909},{"style":192},[910],{"type":53,"value":911}," -m",{"type":48,"tag":180,"props":913,"children":914},{"style":794},[915],{"type":53,"value":916}," \"",{"type":48,"tag":180,"props":918,"children":919},{"style":192},[920],{"type":53,"value":921},"fix(doctor): \u003Csummary> 🏥\n",{"type":48,"tag":180,"props":923,"children":925},{"class":182,"line":924},6,[926],{"type":48,"tag":180,"props":927,"children":928},{"emptyLinePlaceholder":646},[929],{"type":53,"value":930},"\n",{"type":48,"tag":180,"props":932,"children":934},{"class":182,"line":933},7,[935,940],{"type":48,"tag":180,"props":936,"children":937},{"style":192},[938],{"type":53,"value":939},"\u003Cidentified issues and implemented solutions>",{"type":48,"tag":180,"props":941,"children":942},{"style":794},[943],{"type":53,"value":944},"\"\n",{"type":48,"tag":180,"props":946,"children":948},{"class":182,"line":947},8,[949],{"type":48,"tag":180,"props":950,"children":951},{"emptyLinePlaceholder":646},[952],{"type":53,"value":930},{"type":48,"tag":180,"props":954,"children":956},{"class":182,"line":955},9,[957,961],{"type":48,"tag":180,"props":958,"children":959},{"style":187},[960],{"type":53,"value":767},{"type":48,"tag":180,"props":962,"children":963},{"style":192},[964],{"type":53,"value":965}," push\n",{"type":48,"tag":128,"props":967,"children":969},{"id":968},"step-4-final-checklist-and-message",[970],{"type":53,"value":971},"Step 4: Final checklist and message",{"type":48,"tag":55,"props":973,"children":974},{},[975,977,983],{"type":53,"value":976},"Tell the user what issues you identified, the fixes you made, the commit you made, and also recommend that they run ",{"type":48,"tag":79,"props":978,"children":980},{"className":979},[],[981],{"type":53,"value":982},"\u002Frecompile",{"type":53,"value":984}," to apply these changes to the current system prompt.",{"type":48,"tag":55,"props":986,"children":987},{},[988],{"type":53,"value":989},"Before finishing make sure you:",{"type":48,"tag":69,"props":991,"children":993},{"className":992},[636],[994,1003,1012],{"type":48,"tag":73,"props":995,"children":997},{"className":996},[641],[998,1001],{"type":48,"tag":644,"props":999,"children":1000},{"disabled":646,"type":647},[],{"type":53,"value":1002}," Resolved all the identified context issues",{"type":48,"tag":73,"props":1004,"children":1006},{"className":1005},[641],[1007,1010],{"type":48,"tag":644,"props":1008,"children":1009},{"disabled":646,"type":647},[],{"type":53,"value":1011}," Pushed your changes successfully",{"type":48,"tag":73,"props":1013,"children":1015},{"className":1014},[641],[1016,1019,1021,1026],{"type":48,"tag":644,"props":1017,"children":1018},{"disabled":646,"type":647},[],{"type":53,"value":1020}," Told the user to run ",{"type":48,"tag":79,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":53,"value":982},{"type":53,"value":1027}," to refresh the system prompt and apply changes",{"type":48,"tag":121,"props":1029,"children":1031},{"id":1030},"critical-information",[1032],{"type":53,"value":1033},"Critical information",{"type":48,"tag":69,"props":1035,"children":1036},{},[1037],{"type":48,"tag":73,"props":1038,"children":1039},{},[1040,1045],{"type":48,"tag":106,"props":1041,"children":1042},{},[1043],{"type":53,"value":1044},"Ask the user about their goals for you, not the implementation",{"type":53,"value":1046},": You understand your own context best, and should follow the guidelines in this document. Do NOT ask the user about their structural preferences — the context is for YOU, not them. Ask them how they want YOU to behave or know instead.",{"type":48,"tag":1048,"props":1049,"children":1050},"style",{},[1051],{"type":53,"value":1052},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1054,"total":1136},[1055,1069,1075,1087,1099,1113,1125],{"slug":1056,"name":1056,"fn":1057,"description":1058,"org":1059,"tags":1060,"stars":24,"repoUrl":25,"updatedAt":1068},"acquiring-skills","discover and install agent skills","Discover and install skills from Hermes, ClawHub, GitHub, and other registries. Load this skill whenever a user asks for a capability you don't already have — image generation, social media, email, calendar, finance, DevOps, search, browser automation, etc.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1061,1062,1065],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},"Automation","automation",{"name":1066,"slug":1067,"type":17},"GitHub","github","2026-07-13T06:22:58.45767",{"slug":4,"name":5,"fn":6,"description":7,"org":1070,"tags":1071,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1072,1073,1074],{"name":19,"slug":20,"type":17},{"name":15,"slug":16,"type":17},{"name":22,"slug":23,"type":17},{"slug":1076,"name":1076,"fn":1077,"description":1078,"org":1079,"tags":1080,"stars":24,"repoUrl":25,"updatedAt":1086},"converting-mcps-to-skills","connect MCP servers to create skills","Connect to MCP (Model Context Protocol) servers and create skills for repeated use. Load when a user wants to use an MCP server, connect to external tools via MCP, or when they mention MCP, model context protocol, or specific MCP servers.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1081,1082,1083],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1084,"slug":1085,"type":17},"MCP","mcp","2026-07-13T06:23:37.646079",{"slug":1088,"name":1088,"fn":1089,"description":1090,"org":1091,"tags":1092,"stars":24,"repoUrl":25,"updatedAt":1098},"creating-mods","create and edit Letta Code mods","Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle\u002Fturn events, scoped conversation helpers, panels, and capability-gated behavior. Use when asked to make a mod, add an agent-callable tool, add a slash command, add a local provider\u002Fmodel adapter, transform turns, react to app events, or add lightweight mod UI outside the dedicated \u002Fstatusline flow.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1093,1094,1095],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1096,"slug":1097,"type":17},"Coding","coding","2026-07-23T05:42:38.133565",{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1103,"tags":1104,"stars":24,"repoUrl":25,"updatedAt":1112},"creating-skills","create and update agent skills","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Letta Code's capabilities with specialized knowledge, workflows, or tool integrations.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1105,1106,1109],{"name":19,"slug":20,"type":17},{"name":1107,"slug":1108,"type":17},"Documentation","documentation",{"name":1110,"slug":1111,"type":17},"Plugin Development","plugin-development","2026-07-13T06:22:56.998659",{"slug":1114,"name":1114,"fn":1115,"description":1116,"org":1117,"tags":1118,"stars":24,"repoUrl":25,"updatedAt":1124},"customizing-commands","create and manage Letta slash commands","Creates, edits, and enables Letta Code mod-provided slash commands. Use when the user asks to add a custom \u002Fcommand, slash command, command shortcut, scoped conversation-backed command, or command-driven panel behavior.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1119,1120,1121],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1122,"slug":1123,"type":17},"CLI","cli","2026-07-13T06:23:18.266798",{"slug":1126,"name":1126,"fn":1127,"description":1128,"org":1129,"tags":1130,"stars":24,"repoUrl":25,"updatedAt":1135},"customizing-statusline","customize Letta Code statusline mods","Creates, edits, and migrates Letta Code statusline mods. Use when handling the \u002Fstatusline command or continuing work started by \u002Fstatusline.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1131,1132],{"name":1122,"slug":1123,"type":17},{"name":1133,"slug":1134,"type":17},"Engineering","engineering","2026-07-13T06:23:27.465985",19,{"items":1138,"total":1246},[1139,1145,1151,1157,1163,1169,1175,1180,1192,1208,1219,1231],{"slug":1056,"name":1056,"fn":1057,"description":1058,"org":1140,"tags":1141,"stars":24,"repoUrl":25,"updatedAt":1068},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1142,1143,1144],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1066,"slug":1067,"type":17},{"slug":4,"name":5,"fn":6,"description":7,"org":1146,"tags":1147,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1148,1149,1150],{"name":19,"slug":20,"type":17},{"name":15,"slug":16,"type":17},{"name":22,"slug":23,"type":17},{"slug":1076,"name":1076,"fn":1077,"description":1078,"org":1152,"tags":1153,"stars":24,"repoUrl":25,"updatedAt":1086},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1154,1155,1156],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1084,"slug":1085,"type":17},{"slug":1088,"name":1088,"fn":1089,"description":1090,"org":1158,"tags":1159,"stars":24,"repoUrl":25,"updatedAt":1098},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1160,1161,1162],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1096,"slug":1097,"type":17},{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1164,"tags":1165,"stars":24,"repoUrl":25,"updatedAt":1112},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1166,1167,1168],{"name":19,"slug":20,"type":17},{"name":1107,"slug":1108,"type":17},{"name":1110,"slug":1111,"type":17},{"slug":1114,"name":1114,"fn":1115,"description":1116,"org":1170,"tags":1171,"stars":24,"repoUrl":25,"updatedAt":1124},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1172,1173,1174],{"name":19,"slug":20,"type":17},{"name":1063,"slug":1064,"type":17},{"name":1122,"slug":1123,"type":17},{"slug":1126,"name":1126,"fn":1127,"description":1128,"org":1176,"tags":1177,"stars":24,"repoUrl":25,"updatedAt":1135},{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1178,1179],{"name":1122,"slug":1123,"type":17},{"name":1133,"slug":1134,"type":17},{"slug":1181,"name":1181,"fn":1182,"description":1183,"org":1184,"tags":1185,"stars":24,"repoUrl":25,"updatedAt":1191},"dispatching-coding-agents","dispatch stateless coding agents","Dispatch stateless coding agents (Claude Code or Codex) via Bash. Use when you're stuck, need a second opinion, or need parallel research on a hard problem. They have no memory — you must provide all context.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1186,1187,1188],{"name":19,"slug":20,"type":17},{"name":1096,"slug":1097,"type":17},{"name":1189,"slug":1190,"type":17},"Multi-Agent","multi-agent","2026-07-26T05:46:56.388845",{"slug":1193,"name":1193,"fn":1194,"description":1195,"org":1196,"tags":1197,"stars":24,"repoUrl":25,"updatedAt":1207},"editing-letta-code-desktop-preferences","edit Letta Code Desktop preferences","Edits Letta Code Desktop (LCD) preferences by safely reading and updating ~\u002F.letta\u002Fdesktop_preferences.json. Use only when the user asks to change current Desktop\u002FLCD settings such as theme, default working directory, remote access preference, or remote environment name via the preferences JSON.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1198,1201,1204],{"name":1199,"slug":1200,"type":17},"Configuration","configuration",{"name":1202,"slug":1203,"type":17},"Desktop","desktop",{"name":1205,"slug":1206,"type":17},"Themes","themes","2026-07-13T06:23:41.407811",{"slug":1209,"name":1209,"fn":1210,"description":1211,"org":1212,"tags":1213,"stars":24,"repoUrl":25,"updatedAt":1218},"finding-agents","locate and manage agents on server","Find other agents on the same server. Use when the user asks about other agents, wants to migrate memory from another agent, or needs to find an agent by name or tags.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1214,1215],{"name":19,"slug":20,"type":17},{"name":1216,"slug":1217,"type":17},"Management","management","2026-07-16T06:02:17.297841",{"slug":1220,"name":1220,"fn":1221,"description":1222,"org":1223,"tags":1224,"stars":24,"repoUrl":25,"updatedAt":1230},"generating-mod-envs","generate Letta mod learning environments","Generates and reviews mod learning env JSON files for Letta Code local mods. Use when asked to teach, learn, or optimize a mod behavior; create, draft, validate, improve, or explain envs for `\u002Fmods learn --env`; or design evaluation scenarios, memory fixtures, requiredResultMarkers, requiredTraceMarkers, negative controls, and candidate diversity hints.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1225,1226,1229],{"name":19,"slug":20,"type":17},{"name":1227,"slug":1228,"type":17},"AI Infrastructure","ai-infrastructure",{"name":1199,"slug":1200,"type":17},"2026-07-13T06:23:08.838181",{"slug":1232,"name":1232,"fn":1233,"description":1234,"org":1235,"tags":1236,"stars":24,"repoUrl":25,"updatedAt":1245},"image-generation","generate images from text prompts","Generate images from text prompts (and optionally edit\u002Fremix input images). Use when the user asks to create, generate, draw, render, or edit an image, illustration, logo, icon, diagram, or photo.",{"slug":9,"name":10,"logoUrl":11,"githubOrg":12},[1237,1240,1243],{"name":1238,"slug":1239,"type":17},"Creative","creative",{"name":1241,"slug":1242,"type":17},"Graphics","graphics",{"name":1244,"slug":1232,"type":17},"Image Generation","2026-07-13T06:23:06.189403",69]