self-improving-agent

Meta-skill for making the agent self-improving. Covers updating AGENTS.md, creating new skills from repeated workflows, and deciding what to systematize. Invoke after completing tasks, when noticing repeated friction, or at session end.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "self-improving-agent" with this command: npx skills add grail-computer/self-improving-agent/grail-computer-self-improving-agent-self-improving-agent

Self-Improving Agent

When to use this skill:

  • After completing a significant task (post-task reflection)
  • When you notice yourself repeating a multi-step workflow
  • When a human corrects your behavior and you need to persist the correction
  • When the codebase map in AGENTS.md is stale
  • At the end of a working session

Step 1: Diagnose What Needs Improving

Ask yourself these questions after completing work:

  1. Did I wander? Did I spend time searching for files that should have been in the codebase map?

    • → Update the Codebase Map in AGENTS.md
  2. Did I get corrected? Did the human tell me to do something differently?

    • → Add the correction to Local Norms, Guardrails, or Patterns & Gotchas in AGENTS.md
  3. Did I repeat a workflow? Did I follow a multi-step procedure that I've done before (or will likely do again)?

    • → Create a new skill (see Step 3 below)
  4. Did something surprise me? Did I discover a gotcha, a deprecated API, or a non-obvious coupling?

    • → Add it to Patterns & Gotchas in AGENTS.md
  5. Is the AGENTS.md stale? Do the norms, entry points, or conventions no longer match the actual codebase?

    • → Update the outdated sections now

If none of these apply, no action is needed. Don't create artifacts for the sake of it.


Step 2: Update AGENTS.md

When updating AGENTS.md, follow these rules:

Codebase Map Updates

  1. Read the current map in AGENTS.md.
  2. Use find or ls (not recursive full-tree) to see the actual top-level structure.
  3. Update only the parts that have changed. Don't rewrite the whole map.
  4. Focus on: entry points, directory roles, config files, test locations.

Adding Norms or Guardrails

  1. Write the rule as a short, imperative statement — one line if possible.
  2. Place it in the correct section:
    • Local Norms → How to build, test, run, or style code in this repo
    • Guardrails → What the agent must NEVER do
    • Patterns & Gotchas → Non-obvious discoveries about the codebase
  3. If a correction contradicts an existing entry, update the existing entry rather than adding a duplicate.

Quality Checks

  • Keep entries concise. Agents read this every session — brevity compounds.
  • Remove placeholder/example entries (italicized) once real entries exist.
  • Don't add generic advice. Every entry should be specific to this repo.

Step 3: Create a New Skill

Use this procedure when you've identified a repeatable workflow worth capturing.

Decision: Is This a Skill or an AGENTS.md Entry?

Is it a multi-step procedure with a clear output?
  → YES → Skill
  → NO  → AGENTS.md entry

Is it specific to HOW this repo works (norms, navigation)?
  → YES → AGENTS.md entry
  → NO  → Skill

Am I unsure?
  → Start as an AGENTS.md entry. Promote to skill if it grows.

Creating the Skill

  1. Choose a name. Use a verb-noun pattern reflecting the job: debug-ci, draft-release-notes, run-migration, etc.

  2. Create the folder and file:

    skills/<skill-name>/SKILL.md
    
  3. Write the SKILL.md with this structure:

    ---
    name: <skill-name>
    description: <one-line description of what job this skill does>
    ---
    
    # <Skill Name>
    
    > **When to use:** <clear trigger condition>
    
    ## Steps
    
    1. <Step 1 — be specific and imperative>
    2. <Step 2>
    3. ...
    
    ## Output Contract
    
    <What "done" looks like. Be specific about format, location, and quality.>
    
  4. Key principles for good skills:

    • Frame around a job to be done, not a tool ("debug CI failure", not "use grep")
    • Make the trigger clear — when should an agent reach for this?
    • Define the output contract — what does "done" look like?
    • Include examples of good output as assets if helpful (put in skills/<name>/examples/)
    • Keep steps imperative and specific — avoid vague instructions
  5. Add the new skill to the skills table in AGENTS.md:

    | [<skill-name>](skills/<skill-name>/SKILL.md) | <purpose> | <trigger> |
    

Adding Scripts or Assets to a Skill

If a skill needs deterministic execution (not just LLM judgment), add scripts:

skills/<skill-name>/
├── SKILL.md          # The playbook (always required)
├── scripts/          # Helper scripts for deterministic steps
│   └── validate.sh
└── examples/         # Reference outputs showing "good" quality
    └── example-output.md

Reference these from SKILL.md: "Run scripts/validate.sh to verify the output."


Step 4: Decide Scope — Repo-Local vs Global vs Shared

Does this skill only matter for THIS repo?
  → Keep it in skills/ within this repo (repo-local)

Have I felt this pain in another repo too?
  → Promote to ~/.agent/skills/<name>/ (machine-global)
  → Copy the skill folder there

Does my team keep repeating this workflow?
  → Promote to a shared repo or registry (shared)
  → Move the skill folder into the team's shared skills repo

Promotion Checklist

When promoting a skill from repo-local to global:

  1. Remove any repo-specific paths or references from the SKILL.md.
  2. Make the instructions generic enough for any project.
  3. Test it works without the original repo's context.
  4. Keep the repo-local version if it has repo-specific customizations.

Step 5: Validate the Improvement

After making any changes (AGENTS.md update or new skill):

  1. Re-read the updated file. Does it read clearly? Would a fresh agent session benefit from it?
  2. Check for contradictions. Does the new entry conflict with anything existing?
  3. Check for bloat. Is this file getting too long? If AGENTS.md exceeds ~200 lines, consider:
    • Archiving old gotchas that are no longer relevant
    • Moving detailed procedures into skills
    • Summarizing verbose entries
  4. Commit the changes with a clear message:
    docs: update AGENTS.md with <what you learned>
    
    or
    feat: add <skill-name> skill for <job description>
    

Anti-Patterns to Avoid

❌ Don't✅ Do Instead
Add generic advice ("write clean code")Add repo-specific rules ("use pnpm, not npm")
Create skills for one-off tasksCreate skills for tasks you'll do again
Let AGENTS.md grow unboundedPrune stale entries, move procedures to skills
Write vague skill steps ("figure out what's wrong")Write specific steps ("run npm test, read the first failing assertion")
Create a skill around a toolCreate a skill around a job to be done
Start with shared/global skillsStart repo-local, promote when pain repeats

Quick Reference: The Compounding Loop

Work on task
    ↓
Complete task
    ↓
Reflect: Did I wander? Get corrected? Repeat a workflow? Discover a gotcha?
    ↓
    ├── Navigation miss     → Update Codebase Map
    ├── Behavior correction → Add to Local Norms / Guardrails
    ├── Repeated workflow   → Create a Skill
    ├── Surprise discovery  → Add to Patterns & Gotchas
    └── Nothing notable     → Move on
    ↓
Next task starts from a better baseline

"The most valuable skill is the habit of watching yourself work." Each improvement makes future improvements easier. That's how agents compound.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

self-improving-agent

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

self-improvement

No summary provided by upstream source.

Repository SourceNeeds Review
-4.4K
pskoett
Automation

self-improvement

No summary provided by upstream source.

Repository SourceNeeds Review