Experiment Craft
EvoScientist/EvoSkills
A skill your agent uses when the user wants to debug, diagnose, or systematically iterate on an experiment that already exists, or when they need a structured experiment log for tracking runs…
Generates LESSONS.md files capturing institutional knowledge and failures.
$ npx skills add jamditis/claude-skills-journalism --skill project-retrospective -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamditis/claude-skills-journalism project-retrospective --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/jamditis/claude-skills-journalism.git skills-src && mkdir -p .claude/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .claude/skills/project-retrospective && 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 "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .claude/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospectiveType 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 jamditis/claude-skills-journalism --skill project-retrospective -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamditis/claude-skills-journalism project-retrospective --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .agents/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .agents/skills/project-retrospective && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .agents/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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 jamditis/claude-skills-journalism --skill project-retrospective -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamditis/claude-skills-journalism project-retrospective --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .cursor/skills/project-retrospective && 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 "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .cursor/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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/jamditis/claude-skills-journalism.git --path project-templates-toolkit/skills/project-retrospective--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 jamditis/claude-skills-journalism --skill project-retrospective -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamditis/claude-skills-journalism project-retrospective --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .gemini/skills/project-retrospective && 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 "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .gemini/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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 jamditis/claude-skills-journalism project-retrospectiveInstalls 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 jamditis/claude-skills-journalism --skill project-retrospective -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .github/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .github/skills/project-retrospective && 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 "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .github/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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 jamditis/claude-skills-journalism --skill project-retrospective -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamditis/claude-skills-journalism project-retrospective --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/project-templates-toolkit/skills/project-retrospective .opencode/skills/project-retrospective && 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 "project-retrospective" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/project-templates-toolkit/skills/project-retrospective into .opencode/skills/project-retrospective/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-retrospective", 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.
project-retrospectiveGenerates LESSONS.md files capturing institutional knowledge and failures.
Project Retrospective is an agent skill from jamditis/claude-skills-journalism. Generates LESSONS.md files capturing institutional knowledge and failures. Use when closing out projects or investigations.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files (for example `agents/openai.yaml`, `templates/editorial-tool.md` and `templates/event.md`).
It sits in Product & Project Management, covering Retrospectives and Knowledge bases. The repository describes itself as: Claude Code skills for journalism, media, and academia - verification, FOIA, data journalism, academic writing, and more. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3e2172. 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.
Links to these hosts (documentation or services it may open):
sre.googlepostmortems.pagerduty.comkitchensoap.comfirst.army.milFrom 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.
Project Retrospective loads about 2.8k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,085 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 jamditis/claude-skills-journalism at commit e3e2172, republished under its MIT licence (© jamditis). 1,085 words, ~2,782 tokens.
.claude/skills/project-retrospective/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Create LESSONS.md files that capture institutional knowledge, especially failures. Think like a journalist writing about your own project, be specific, be honest, name the actual mistakes.
The 2024–2026 consensus in incident-analysis writing (PagerDuty, J. Paul Reed, Lorin Hochstein) is that pure blamelessness is neurobiologically unrealistic, humans default to blame. Healthier framing: acknowledge the blame bias exists and counter it deliberately. Source: https://postmortems.pagerduty.com/culture/blameless/
Cognitive biases to counter explicitly:
The voice rule isn't "no blame", it's "name the system that permitted the human action, not just the action."
Allspaw's canonical critique (still the dominant view in 2024–2026) calls Five Whys / single-root-cause analysis "seductively satisfying and compellingly simple, but false." It locks analysts into a linear causal chain that terminates in individual blame. Source: https://www.kitchensoap.com/2014/11/14/the-infinite-hows-or-the-dangers-of-the-five-whys/
Use "how" narratives instead, gathering on four prompts:
The retrospective's job is to surface contributing factors, not declare a root cause.
Pre-define triggers before incidents happen, not after. Google SRE specifies criteria: user-visible downtime past a threshold, any data loss, on-call rollbacks, monitoring failures requiring manual discovery, stakeholder request. Source: https://sre.google/sre-book/postmortem-culture/
Translated to journalism:
| Trigger | Examples |
|---|---|
| Live-event failure | Live-blog downtime during election night, breaking-news embed breakage, paywall regression mid-investigation |
| Editorial process failure | Missed correction window, source-management breach, fact-check process bypass |
| Tool failure affecting subscribers | CMS migration regression, paywall logic affecting >X% of readers |
| Stakeholder request | Editor / publisher / source explicitly asking "what happened?" |
Pre-defined triggers prevent retrospective theater on routine work and ensure they happen on real failures.
Google's good-vs-bad postmortem comparison cites a "four months later" example as a quality failure because contributors' memories had decayed. Source: https://sre.google/workbook/postmortem-culture/
Recommended cadence:
| Project type | Target window |
|---|---|
| Live-event retro (election night, breaking news) | Same-day debrief, written within 48h |
| Tool / CMS incident | Within one week |
| Investigation or publication launch | Within one month of project close |
| Annual review of ongoing initiative | Once per year, scoped to discrete decision points |
The empirical floor is "fresh in contributors' minds." Past one week and the narrative gets reconstructed rather than remembered.
The US Army's After Action Review (FM 7-0 Appendix K) was designed for facilitated post-event debriefs and fits live-news realities better than a project-close template. Source: https://www.first.army.mil/Portals/102/FM%207-0%20Appendix%20K.pdf
Four prompts:
Run AAR immediately after the event with all participants, election night newsroom team, live-blog runners, breaking-news desk. Use event.md template for this; project-close templates are wrong for live-event retros.
This is the most valuable part of any retrospective. It answers:
"What did we THINK we were building vs. what was ACTUALLY needed?"
Strong example:
We built an admin dashboard for editors when they actually needed a Slack bot. They live in Slack, forcing them to open a web app was friction they'd never accept. The dashboard has 2 monthly active users; the Slack bot prototype we built in a day has 47.
Weak example:
We learned the importance of user research.
# LESSONS.md
## Project
- **Name:** [Project name]
- **Dates:** [Start - End]
- **Status:** [Completed / Abandoned / Ongoing]
- **Author:** [Your name]
- **Retrospective written:** [Date, should be within timing window above]
## Summary
[One paragraph: what it did, what impact it had, why it matters]
## What worked
### Technical wins
- [Specific decision and WHY it worked]
- [Tool/pattern that saved time]
### Process wins
- [Methodology that helped]
- [Communication pattern that worked]
## What didn't work
For each item below, separate the system layer from the people layer.
"What did the system permit or require?" comes before "What did the
people inside that system do?"
### Critical failures
- **System:** [What the architecture / process / tooling permitted]
- **People:** [What humans did inside that constraint]
- **Cost:** [Quantified impact: hours, subscribers affected, money]
### Technical debt
- [Shortcut that hurt later, and why it was the rational choice at the time]
- [Complexity that wasn't needed]
### External factors
- [Things outside your control that impacted the project]
## The real problem
What we thought: [Initial assumption]
What was actually needed: [Reality]
The gap cost us: [Time / effort / money wasted]
## Action items
Each item must have an owner, a deadline, a tracker URL, and a priority.
"Postmortems without subsequent action are indistinguishable from no postmortem."
- Google SRE
| # | Action | Owner | Deadline | Tracker | Priority |
|---|--------|-------|----------|---------|----------|
| 1 | [Specific change] | [Name] | [Date] | [Issue URL] | P0 / P1 / P2 |
| 2 | [Specific change] | [Name] | [Date] | [Issue URL] | P0 / P1 / P2 |
Failure modes to avoid:
- Ambiguous wording ("make automation better")
- Equal priority across all items (defeats the purpose of priority)
- No tracker bug or issue URL (action items vanish)
- Fixes targeting human behavior instead of system redesign ("be more careful")
Add a 30/60/90-day check-in note: who reviews progress on these, and when.
## Reusable artifacts
| Component | Why it's valuable |
|-----------|-------------------|
| [Name] | [Specific reuse potential] |
| [Name] | [Why someone else should use this] |
## Questions for next time
- [Unanswered questions worth investigating]
- [Things you'd research before starting]The canonical SRE / AAR / Allspaw frameworks don't cover the editorial-judgment retrospective an investigation needs. The research-project.md template adds a "Source decisions revisited" section:
Newsroom engineering blogs (NYT Open, ProPublica News Apps, WaPo Engineering) publish project descriptions but rarely retrospective methodologies, so this is treated as a journalism-native extension to the system rather than borrowed from precedent.
| Include | Exclude |
|---|---|
| Specific failures with quantified context | Vague "learnings" |
| Actual time / cost of mistakes | Blame for individuals |
| What the system permitted (then what humans did) | "Mistakes were made" passives |
| Tools that helped or hurt, by name | Generic best practices |
| Decisions you'd reverse, and why now, not then | Obvious statements |
| Surprising discoveries | Information already in other docs |
For each item in "What didn't work," ask:
If no to any → be more specific.
If you find yourself writing these, stop and be more specific:
These are placeholders for real insights. Replace them.
Bad, too vague:
- Communication could have been better
- We underestimated the complexity
- Testing was insufficient
Good, specific and actionable:
- The schema validation step was disabled in CI for the data-import script (system) and the freelance reporter who imported new entries didn't know it had been disabled (people). Cost: 3 hours debugging a typo that caused silent failures across 12 published stories.
- We built a custom date picker when the browser native input would have worked. Tracker: ENG-1247. Owner: K. Park. 2 days wasted.
Templates are in the templates/ directory:
| Template | Use for |
|---|---|
research-project.md | Investigations, data journalism projects (includes sourcing-decision retro) |
event.md | Conferences, workshops, campaigns (uses AAR structure) |
publication.md | Newsletters, podcasts, ongoing content |
editorial-tool.md | Newsroom software, AI tools |
What kind of project?
├── Investigation/analysis → research-project.md
├── Conference/workshop/election night → event.md (use AAR)
├── Newsletter/podcast → publication.md
└── Newsroom tool → editorial-tool.md2026-05-09. Sources verified: kitchensoap.com (Allspaw "Infinite Hows"), postmortems.pagerduty.com, sre.google/sre-book and /workbook, first.army.mil FM 7-0 Appendix K, adaptivecapacitylabs.com.
The best retrospectives are written by people who got burned and want to save others from the same fate.
© jamditis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in project-templates-toolkit/skills/project-retrospective of jamditis/claude-skills-journalism.
Open the folder on GitHubat commit e3e2172
Project Retrospective 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 |
|---|---|---|---|---|---|---|
| Project Retrospective this skilljamditis/claude-skills-journalism | 416 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Experiment CraftEvoScientist/EvoSkills | 475 | 3 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Weekly Engineering Retrogarrytan/gstack | 136k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Dough Execute Planterryyin/lizard | 2.5k | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| After Action Reportrampstackco/claude-skills | 940 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Oral Paper SkillAdkid-Zephyr/oral-paper-skill | 340 | — | ~1.9k | Automated safety check: Pass | None |
EvoScientist/EvoSkills
A skill your agent uses when the user wants to debug, diagnose, or systematically iterate on an experiment that already exists, or when they need a structured experiment log for tracking runs…
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
terryyin/lizard
Executes one selected story or bounded retrospective correction through an executable plan, or one authorized planless slice from a selected simple story or a contextual instruction, with…
rampstackco/claude-skills
Run a structured after-action review (postmortem, retrospective) on a launch, incident, or completed project to capture timeline, root cause analysis, contributing factors, and actionable lessons.
Adkid-Zephyr/oral-paper-skill
Help authors learn from exemplary ICLR, ICML, and NeurIPS papers through source-linked manuscript comparisons, concrete writing and experiment suggestions, and guided reflection.
asheshgoplani/agent-deck
Run a fully local agent-deck retrospective over the user's own transcripts, Recall index and logs.
jamditis/claude-skills-journalism
A skill your agent uses when creating distinct website directions, a client review picker, asset catalog, previews, and Cloudflare-ready handoffs.
jamditis/claude-skills-journalism
Builds an Open Knowledge Format (OKF) knowledge base from existing docs, notes, or a repo.
jamditis/claude-skills-journalism
Local Gitleaks scans for staged changes, push ranges, and full history in private repos, with redacted reports.
jamditis/claude-skills-journalism
Acquire, clean, analyze, verify, visualize, and explain data for journalism.
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
jamditis/claude-skills-journalism
Establishes how to find and use skills, requiring Skill tool invocation before any response.
Categories
Generates LESSONS.md files capturing institutional knowledge and failures. Project Retrospective is an agent skill from jamditis/claude-skills-journalism.md files capturing institutional knowledge and failures.
Project Retrospective fits situations like: closing out projects; tasks that involve Retrospectives; tasks that involve Knowledge bases.
Run `npx skills add jamditis/claude-skills-journalism --skill project-retrospective -a claude-code`. Or copy the skill folder (project-templates-toolkit/skills/project-retrospective in jamditis/claude-skills-journalism) into .claude/skills/project-retrospective in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamditis/claude-skills-journalism --skill project-retrospective -a codex`. Or copy the skill folder (project-templates-toolkit/skills/project-retrospective in jamditis/claude-skills-journalism) into .agents/skills/project-retrospective 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 jamditis/claude-skills-journalism --skill project-retrospective -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-retrospective, .gemini/skills/project-retrospective, .github/skills/project-retrospective and .opencode/skills/project-retrospective in your project.
SKILL.md names no scripts, command-line tools or credentials: Project Retrospective is instructions for the agent only.
SKILL.md names 4 domains. As links in the text: sre.google, postmortems.pagerduty.com, kitchensoap.com and first.army.mil. 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.
Project Retrospective is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k 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 Project Retrospective: Experiment Craft (EvoScientist/EvoSkills, 475 stars), Weekly Engineering Retro (garrytan/gstack, 136k stars), Dough Execute Plan (terryyin/lizard, 2.5k stars) and After Action Report (rampstackco/claude-skills, 940 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamditis (a GitHub user) maintains it in jamditis/claude-skills-journalism, which has 416 GitHub stars. The repository holds 53 skills in this directory. The repository was last updated on October 4, 2026.
Source: jamditis/claude-skills-journalism on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.