New to Claude Skills? Learn how to install them →

microsoft on GitHub

Update Skills & Instructions

OfficialFree

Capture learnings for future coding sessions.

by microsoft188.6k stars on microsoft/vscode
3 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Update Skills & Instructions does

The Update Skills & Instructions skill is designed for developers and teams using version control systems, particularly those working with GitHub repositories. It enables users to capture significant learnings—whether they are patterns, pitfalls, or domain knowledge—during coding sessions. This skill ensures that valuable insights are documented and persist across sessions, facilitating knowledge sharing and reducing future debugging time.

When a user identifies a major learning moment by saying "learn!" or when a significant pattern is discovered, this skill can be invoked to either add this knowledge to existing instructions or create a new skill. The process involves reflecting on the learning, determining its relevance, and then systematically documenting it in the appropriate format. This structured approach helps maintain a clear and organized repository of knowledge that can be referenced in future coding sessions.

The skill is particularly useful in collaborative environments where multiple developers may encounter similar challenges. By capturing insights that are not documented elsewhere, teams can build a comprehensive knowledge base that aids in onboarding new members and improving overall project efficiency. It encourages a culture of continuous learning and improvement, ensuring that lessons learned are not forgotten.

However, it is essential to ensure that the captured learnings are general enough to be beneficial for future sessions, yet specific enough to be actionable. This skill is ideal for developers who frequently encounter complex problems or work on large projects where knowledge retention is crucial.

When to use it

Use this skill when significant learnings are identified during a coding session, especially when the user explicitly requests to capture a learning.

When not to use it

This skill may not be suitable for trivial insights or when the knowledge does not warrant documentation, such as one-off solutions that are unlikely to be reused.

What you can build with it

Capturing Debugging Insights

After troubleshooting a complex bug, use this skill to document the solution and any patterns observed.

Documenting Architectural Constraints

When identifying a crucial architectural constraint, capture it as a skill to inform future development efforts.

Sharing Reusable Domain Knowledge

If you discover domain knowledge that isn't documented, use this skill to create a new instruction for future reference.

How to install Update Skills & Instructions

View source

1. Install with the skills CLI

npx skills add microsoft/vscode/update-skills --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by microsoft
<!-- Customize this skill and select save to override its behavior. Delete that copy to restore the built-in behavior. -->

Update Skills & Instructions

When a major repository learning is discovered — a recurring pattern, a non-obvious pitfall, a crucial architectural constraint, or domain knowledge that would save future sessions significant time — capture it as a skill or instruction so it persists across sessions.

When to Use

  • The user explicitly says "learn!" or asks to capture a learning
  • You discover a significant pattern or constraint that cost meaningful debugging time
  • You identify reusable domain knowledge that isn't documented anywhere in the repo
  • A correction from the user reveals a general principle worth preserving

Decision: Skill vs Instruction vs Learning

Add a learning to an existing instruction when:

  • The insight is small (1-4 sentences) and fits naturally into an existing instruction file
  • It refines or extends an existing guideline
  • Follow the pattern in .github/instructions/learnings.instructions.md

Create or update a skill (.github/skills/{name}/SKILL.md or .agents/skills/{name}/SKILL.md) when:

  • The knowledge is substantial (multi-step procedure, detailed guidelines, or rich examples)
  • It covers a distinct domain area (e.g., "how to debug X", "patterns for Y")
  • Future sessions should be able to invoke it by name

Create or update an instruction (.github/instructions/{name}.instructions.md) when:

  • The rule should apply automatically based on file patterns (applyTo) or globally
  • It's a coding convention, architectural constraint, or process rule
  • It doesn't need to be invoked on demand

Procedure

1. Identify the Learning

Reflect on what went wrong or what was discovered:

  • What was the problem or unexpected behavior?
  • Why was it a problem? (root cause, not symptoms)
  • How was it fixed or what's the correct approach?
  • Can it be generalized beyond this specific instance?

2. Check for Existing Files

Before creating new files, search for existing skills and instructions that might be the right home:

# Check existing skills
ls .github/skills/ .agents/skills/ 2>/dev/null

# Check existing instructions
ls .github/instructions/ 2>/dev/null

# Search for related content
grep -r "related-keyword" .github/skills/ .github/instructions/ .agents/skills/

3a. Add to Existing File

If an appropriate file exists, add the learning to its ## Learnings section (create the section if it doesn't exist). Each learning should be 1-4 sentences.

3b. Create a New Skill

If the knowledge warrants a standalone skill:

  1. Choose the location:
    • .github/skills/{name}/SKILL.md for project-level skills (committed to repo)
    • .agents/skills/{name}/SKILL.md for agent-specific skills
  2. Create the directory and SKILL.md with frontmatter:
---
name: {skill-name}
description: {One-line description of when and why to use this skill.}
---

# {Skill Title}

{Body with guidelines, procedures, examples, and learnings.}
  1. The name field must match the parent folder name exactly.
  2. Include concrete examples — skills with examples are far more useful than abstract rules.

3c. Create a New Instruction

If the knowledge should apply automatically:

---
description: {When these instructions should be loaded}
applyTo: '{glob pattern}' # optional — auto-load when matching files are attached
---

{Content of the instruction.}

4. Quality Checks

Before saving:

  • Is the learning general enough to help future sessions, not just this one?
  • Is it specific enough to be actionable, not just a vague principle?
  • Does it include a concrete example of right vs wrong?
  • Does it avoid duplicating knowledge already captured elsewhere?
  • Is the description clear enough that the agent will know when to invoke/apply it?

5. Inform the User

After creating or updating the file:

  • Summarize what was captured and where
  • Explain why this location was chosen
  • Note if any existing content was updated vs new content created

Frequently asked questions about Update Skills & Instructions

Similar skills