Session Logs
trpc-group/trpc-agent-go
Search and analyze your own session logs (older/parent conversations) using jq.
Auto-document insights and discoveries during development sessions.
$ npx skills add Resgrid/Core --skill learning-log -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Resgrid/Core learning-log --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .claude/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-logType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Resgrid/Core --skill learning-log -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Resgrid/Core learning-log --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.forge/skills/learning-log .agents/skills/learning-log && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .agents/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Resgrid/Core --skill learning-log -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Resgrid/Core learning-log --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.forge/skills/learning-log .cursor/skills/learning-log && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .cursor/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Resgrid/Core.git --path .forge/skills/learning-log--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Resgrid/Core --skill learning-log -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Resgrid/Core learning-log --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.forge/skills/learning-log .gemini/skills/learning-log && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .gemini/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Resgrid/Core learning-logInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Resgrid/Core --skill learning-log -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .github/skills && cp -r skills-src/.forge/skills/learning-log .github/skills/learning-log && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .github/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Resgrid/Core --skill learning-log -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Resgrid/Core learning-log --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Resgrid/Core.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.forge/skills/learning-log .opencode/skills/learning-log && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "learning-log" agent skill from https://github.com/Resgrid/Core/tree/master/.forge/skills/learning-log into .opencode/skills/learning-log/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "learning-log", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
learning-logAuto-document insights and discoveries during development sessions.
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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a31015f. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from Resgrid/Core at commit a31015f, republished under its Apache-2.0 licence (© Resgrid). 370 words, ~2,179 tokens.
.claude/skills/learning-log/SKILL.md (or your agent's skills folder).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.
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.
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.
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.
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).
Each entry follows a consistent structure in .claude/learning-log.md:
# 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.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.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 APIsHow 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.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// 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// 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// 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// 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."| Scenario | Action |
|---|---|
| Found a non-obvious bug root cause | Log it — category: Bug Root Cause |
| Discovered why code is structured a certain way | Log it — category: Architecture Decision |
| Framework behaved unexpectedly | Log it — category: Gotcha |
| Performance surprise (good or bad) | Log it — category: Performance Discovery |
| Found a reusable pattern in the codebase | Log it — category: Pattern Found |
| External API behaved differently than docs say | Log it — category: External Service |
| User corrected Claude's code | Don't log — use self-correction-loop for MEMORY.md |
| Routine code change, nothing surprising | Don't log — only log insights |
| Same gotcha appeared 3+ times in the log | Promote to MEMORY.md as a preventive rule |
| Learning log exceeds 50 entries | Monthly review — archive old, promote recurring |
| Starting a new session | Scan 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
Just SKILL.md in .forge/skills/learning-log of Resgrid/Core.
Open the folder on GitHubat commit a31015f
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Learning Log this skillResgrid/Core | 229 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Session Logstrpc-group/trpc-agent-go | 1.8k | 13 repos | ~857 | Automated safety check: Pass | Apache-2.0 | |
| Trellis Session Insightmindfold-ai/Trellis | 15k | 4 repos | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| Session History Searchslopus/happy | 24k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Read Sessionasgeirtj/system_prompts_leaks | 69k | — | ~2.4k | Automated safety check: Pass | CC0-1.0 | |
| Session Handoffsickn33/agentic-awesome-skills | 47k | — | ~1.8k | Automated safety check: Notes | MIT |
trpc-group/trpc-agent-go
Search and analyze your own session logs (older/parent conversations) using jq.
mindfold-ai/Trellis
Reach into past AI conversation history through the trellis mem CLI.
slopus/happy
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.
asgeirtj/system_prompts_leaks
Locate and read Muse Code's OWN session logs — the current session or a prior one.
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.
code-yeongyu/oh-my-openagent
Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.
Resgrid/Core
Focus code review effort on the 20% of code that causes 80% of issues.
Resgrid/Core
Autonomous iteration loops for .NET development: build-fix, test-fix, refactor, and scaffold loops.
Resgrid/Core
Observability for .NET 10 applications. An agent skill from Resgrid/Core.
Resgrid/Core
Strategic Codex model selection for .NET development workflows.
Resgrid/Core
Strategic Claude model selection for .NET development workflows.
Resgrid/Core
End-to-end session lifecycle management for .NET projects. An agent skill from Resgrid/Core.
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.
Learning Log fits situations like: asks about learnings; what did we learn; document this finding.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Learning Log is instructions for the agent only.
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.
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.
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.
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.
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.
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.