Agent skill

Learning Log

by Resgrid in Resgrid/Core

Auto-document insights and discoveries during development sessions.

Apache-2.0Auto-check passed

Install Learning Log

skills CLI
$ npx skills add Resgrid/Core --skill learning-log -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Resgrid/Core learning-log --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.forge/skills/learning-log .claude/skills/learning-log && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
learning-log
GitHub stars
229
Token cost
~2.2k tokens
SKILL.md length
370 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
Apache-2.0

At a glance

Auto-document insights and discoveries during development sessions.

  • Works in 5 steps: Log insights, not rules — MEMORY.md… → Structure enables searchability — Every… → Log during work, not after — Capture… → …
  • Asks about learnings
  • SKILL.md covers Core Principles, Patterns, Anti-patterns and Decision Guide
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Learning Log is an agent skill from Resgrid/Core. Auto-document insights and discoveries during development sessions. Unlike MEMORY.md (corrective rules from the self-correction-loop skill), the learning log captures organic discoveries: non-obvious bugs, undocumented architecture decisions, performance findings, workarounds, and gotchas. Stored at .claude/learning-log.md. Load this skill when Claude discovers something non-obvious, finds a workaround, uncovers an undocumented decision, or when the user asks about "learnings", "discoveries", "gotchas", "what did…

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: The Open Source Computer Aided Dispatch (CAD), Personnel, Shift Management, Automatic Vehicle Location (AVL) and Emergency Management Platform that powers Resgrid.com. The licence is Apache-2.0.

When your agent uses it

  • Asks about learnings
  • What did we learn
  • Document this finding

Example prompts

  • “learnings”
  • “discoveries”
  • “gotchas”
  • “/learning-log”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Log insights, not rules — MEMORY.md stores corrective rules ("always use X instead of Y"). The learning log stores discoveries ("X behaves…
  2. Structure enables searchability — Every entry has a date, category, title, description, and affected files. Consistent structure means you…
  3. Log during work, not after — Capture insights the moment they occur. Waiting until the end of a session means half the detail is lost. A…
  4. Periodic review extracts patterns — A monthly scan of the learning log reveals recurring themes. Three "gotcha" entries about the same…
  5. Distinct from handoff notes — The wrap-up-ritual handoff captures session state (done/pending/learned). The learning log is a persistent…

What it can do on your machine

Read from SKILL.md and the folder at commit a31015f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Learning Log loads about 2.2k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 370 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~143
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Resgrid/Core at commit a31015f, republished under its Apache-2.0 licence (© Resgrid). 370 words, ~2,179 tokens.

Download SKILL.mdSave it as .claude/skills/learning-log/SKILL.md (or your agent's skills folder).
name
learning-log
description
Auto-document insights and discoveries during development sessions. Unlike MEMORY.md (corrective rules from the self-correction-loop skill), the learning log captures organic discoveries: non-obvious bugs, undocumented architecture decisions, performance findings, workarounds, and gotchas. Stored at .claude/learning-log.md. Load this skill when Claude discovers something non-obvious, finds a workaround, uncovers an undocumented decision, or when the user asks about "learnings", "discoveries", "gotchas", "what did we learn", or "document this finding".

Learning Log

Core Principles

  1. Log insights, not rules — MEMORY.md stores corrective rules ("always use X instead of Y"). The learning log stores discoveries ("X behaves differently when Y is configured because Z"). Rules prescribe behavior; insights explain the world.

  2. Structure enables searchability — Every entry has a date, category, title, description, and affected files. Consistent structure means you can search by category, scan titles, or find entries related to specific files.

  3. Log during work, not after — Capture insights the moment they occur. Waiting until the end of a session means half the detail is lost. A 2-line entry written immediately is worth more than a paragraph reconstructed from memory.

  4. Periodic review extracts patterns — A monthly scan of the learning log reveals recurring themes. Three "gotcha" entries about the same subsystem suggests a systemic issue worth addressing. Individual entries are useful; patterns across entries are actionable.

  5. Distinct from handoff notes — The wrap-up-ritual handoff captures session state (done/pending/learned). The learning log is a persistent, growing knowledge base. Handoffs are overwritten; the log only grows (and is periodically pruned).

Patterns

Log Entry Format

Each entry follows a consistent structure in .claude/learning-log.md:

markdown
# Learning Log

## 2025-07-15 | Bug Root Cause | EF Core SaveChanges Silently Succeeds on Duplicate Keys
`SaveChangesAsync` with a duplicate PK throws on the *next* `SaveChangesAsync` call, not the insert.
**Files:** `src/Orders/Features/CreateOrder.cs:42`
**Resolution:** Call `SaveChangesAsync` immediately after `Add()`, before any other operations.

## 2025-07-12 | Gotcha | MassTransit Consumer Registration Order Matters
Multiple consumers for the same message type run in registration order. If the first throws,
subsequent consumers are skipped. Caused missed audit events.
**Files:** `src/Shared/Extensions/MassTransitConfig.cs:15-30`
**Resolution:** Configure independent consumer endpoints or use the retry filter.
Auto-Logging Triggers

Log entries automatically when these situations occur:

TRIGGER 1: Non-Obvious Bug Root Cause
When debugging reveals the root cause is NOT where the error appeared.
→ Log the misdirection, the actual cause, and how to avoid confusion.

TRIGGER 2: Undocumented Architecture Decision
When you discover WHY something was built a certain way (not just HOW).
→ Log the decision, the alternatives considered, and the rationale.

TRIGGER 3: Workaround for Framework/Library Limitation
When the "correct" approach doesn't work and you need an alternative.
→ Log what didn't work, why, and what works instead.

TRIGGER 4: Performance Finding
When profiling or observation reveals unexpected performance behavior.
→ Log the finding, the measurement, and the optimization applied.

TRIGGER 5: External Service Behavior
When an external API/service behaves differently than documented.
→ Log the expected vs actual behavior and any workaround.

TRIGGER 6: Non-Obvious Configuration
When a setting or configuration has a surprising effect.
→ Log the configuration, the surprising behavior, and the correct setup.
Category System

Use these 6 categories consistently:

Architecture Decision  — WHY something is structured a certain way
Bug Root Cause        — Non-obvious bugs where the error ≠ the cause
Performance Discovery — Unexpected performance behavior or optimization
Pattern Found         — Reusable pattern discovered in the codebase
Gotcha                — Surprising behavior in frameworks, libraries, or APIs
External Service      — Quirks of third-party services and APIs
Practical Logging Workflow

How to log during active development:

DURING WORK:
1. You encounter something non-obvious
2. Spend 30 seconds writing a log entry (2-4 lines)
3. Include the category, a descriptive title, and affected files
4. Continue working — the entry is captured, detail can be added later

ENTRY QUALITY LEVELS:
Quick (during work):  Date | Category | Title + 1-line description + files
Full (if time allows): Date | Category | Title + full description + resolution + files

A quick entry is infinitely better than no entry.
Show full SKILL.md (153 more words)Show less
Log vs. Memory vs. Handoff

Distinguish between the three knowledge stores:

MEMORY.md (via self-correction-loop):
- Contains: Prescriptive rules ("always do X", "never do Y")
- Source: User corrections, promoted learning log entries
- Lifespan: Permanent until proven wrong
- Format: Category → bullet point rules

.claude/learning-log.md (this skill):
- Contains: Descriptive insights ("X happens because Y")
- Source: Organic discoveries during development
- Lifespan: 3-6 months, then archive or promote
- Format: Date | Category | Title | Description | Files

.claude/handoff.md (via wrap-up-ritual):
- Contains: Session state (done/pending/learned)
- Source: End of each session
- Lifespan: Until next session overwrites it
- Format: Completed / Pending / Learned sections

Anti-patterns

Logging Everything
// BAD — low-value entries that add noise
## 2025-07-15 | Pattern Found | Used Primary Constructors
Used primary constructors for the OrderService class.
**Files:** src/Orders/OrderService.cs

// GOOD — only log when it's non-obvious or surprising
## 2025-07-15 | Gotcha | Primary Constructor Parameters Captured as Fields
Primary constructor parameters in C# 14 are implicitly captured as fields.
If you also declare an explicit field with the same name, you get a compiler
warning but no error — and the two can silently diverge.
**Files:** src/Orders/OrderService.cs:5
No Categorization
// BAD — entries without categories are unsearchable
## 2025-07-15 | Compiled queries don't support Include()
## 2025-07-14 | MassTransit consumer ordering matters
## 2025-07-13 | Orders module uses VSA, Identity uses CA

// GOOD — categories enable filtering and pattern detection
## 2025-07-15 | Performance Discovery | Compiled Queries Don't Support Include()
## 2025-07-14 | Gotcha | MassTransit Consumer Registration Order Matters
## 2025-07-13 | Architecture Decision | Why Orders Uses VSA While Identity Uses CA
Write-Only Log (Never Reviewed)
// BAD — 100 entries, never reviewed
.claude/learning-log.md grows to 500 lines
Same gotchas keep appearing because no one reads the log
No entries are promoted to MEMORY.md

// GOOD — monthly reviews extract value
Every 20 entries, scan for patterns
Promote recurring findings to MEMORY.md as preventive rules
Archive stale entries
The log stays lean and the rules get stronger
Duplicating MEMORY.md Content
// BAD — restating a MEMORY.md rule as a log entry
MEMORY.md: "Always use TimeProvider instead of DateTime.Now"
learning-log.md: "## Gotcha | DateTime.Now Is Not Testable" ← redundant

// GOOD — log adds a concrete incident the rule doesn't capture
learning-log.md: "## Bug Root Cause | Flaky Test Due to DateTime.Now
  OrderExpiry test failed intermittently — DateTime.Now crossed midnight during run."

Decision Guide

ScenarioAction
Found a non-obvious bug root causeLog it — category: Bug Root Cause
Discovered why code is structured a certain wayLog it — category: Architecture Decision
Framework behaved unexpectedlyLog it — category: Gotcha
Performance surprise (good or bad)Log it — category: Performance Discovery
Found a reusable pattern in the codebaseLog it — category: Pattern Found
External API behaved differently than docs sayLog it — category: External Service
User corrected Claude's codeDon't log — use self-correction-loop for MEMORY.md
Routine code change, nothing surprisingDon't log — only log insights
Same gotcha appeared 3+ times in the logPromote to MEMORY.md as a preventive rule
Learning log exceeds 50 entriesMonthly review — archive old, promote recurring
Starting a new sessionScan recent log entries for context on the working area

© Resgrid, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .forge/skills/learning-log of Resgrid/Core.

Open the folder on GitHubat commit a31015f

Compare with similar skills

Learning Log next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Learning Log compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Learning Log this skillResgrid/Core229—~2.2kAutomated safety check: PassApache-2.0
Session Logstrpc-group/trpc-agent-go1.8k13 repos~857Automated safety check: PassApache-2.0
Trellis Session Insightmindfold-ai/Trellis15k4 repos~1.7kAutomated safety check: PassAGPL-3.0
Session History Searchslopus/happy24k—~3.1kAutomated safety check: PassMIT
Read Sessionasgeirtj/system_prompts_leaks69k—~2.4kAutomated safety check: PassCC0-1.0
Session Handoffsickn33/agentic-awesome-skills47k—~1.8kAutomated safety check: NotesMIT

Similar skills

  • Session Logs

    trpc-group/trpc-agent-go

    Search and analyze your own session logs (older/parent conversations) using jq.

    1.8k GitHub starsUsed in 13 repos~857 tokens
    Auto-check passed
  • Trellis Session Insight

    mindfold-ai/Trellis

    Reach into past AI conversation history through the trellis mem CLI.

    15k GitHub starsUsed in 4 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Read Session

    asgeirtj/system_prompts_leaks

    Locate and read Muse Code's OWN session logs — the current session or a prior one.

    69k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Session Handoff

    sickn33/agentic-awesome-skills

    A skill your agent uses when context approaches capacity, before /clear or /compact, when switching tasks, or when ending a coding session: produces a structured handoff artifact for the next session.

    47k GitHub stars~1.8k tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Coding Agent Session Finder

    code-yeongyu/oh-my-openagent

    Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.

    70k GitHub stars~2.8k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from Resgrid/Core

All 23 skills in this repo
  • 80 20 Review

    Resgrid/Core

    Focus code review effort on the 20% of code that causes 80% of issues.

    229 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Autonomous Loops

    Resgrid/Core

    Autonomous iteration loops for .NET development: build-fix, test-fix, refactor, and scaffold loops.

    229 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Logging

    Resgrid/Core

    Observability for .NET 10 applications. An agent skill from Resgrid/Core.

    229 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Model Selection

    Resgrid/Core

    Strategic Codex model selection for .NET development workflows.

    229 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Model Selection

    Resgrid/Core

    Strategic Claude model selection for .NET development workflows.

    229 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Session Management

    Resgrid/Core

    End-to-end session lifecycle management for .NET projects. An agent skill from Resgrid/Core.

    229 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Questions about Learning Log

What does Learning Log do?

Auto-document insights and discoveries during development sessions. Learning Log is an agent skill from Resgrid/Core. Auto-document insights and discoveries during development sessions.

When should I use Learning Log?

Learning Log fits situations like: asks about learnings; what did we learn; document this finding.

How do I install Learning Log in Claude Code?

Run `npx skills add Resgrid/Core --skill learning-log -a claude-code`. Or copy the skill folder (.forge/skills/learning-log in Resgrid/Core) into .claude/skills/learning-log in your project. Claude Code loads it when a task matches its description.

How do I install Learning Log in Codex?

Run `npx skills add Resgrid/Core --skill learning-log -a codex`. Or copy the skill folder (.forge/skills/learning-log in Resgrid/Core) into .agents/skills/learning-log in your project. Codex loads it when a task matches its description.

Can I use Learning Log in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Resgrid/Core --skill learning-log -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/learning-log, .gemini/skills/learning-log, .github/skills/learning-log and .opencode/skills/learning-log in your project.

What does Learning Log need to run?

SKILL.md names no scripts, command-line tools or credentials: Learning Log is instructions for the agent only.

Does Learning Log access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Learning Log safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Learning Log use?

Learning Log is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Learning Log use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Learning Log?

Skills that share tags, products or a category with Learning Log: Session Logs (trpc-group/trpc-agent-go, 1.8k stars), Trellis Session Insight (mindfold-ai/Trellis, 15k stars), Session History Search (slopus/happy, 24k stars) and Read Session (asgeirtj/system_prompts_leaks, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Learning Log?

Resgrid (a GitHub organization) maintains it in Resgrid/Core, which has 229 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 7, 2026.

Source: Resgrid/Core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.