From ris-claude-code
Conducts structured weekly retrospectives: scans git repos for commits, checks GitHub issues/projects, interviews user on business topics, creates verified issues, updates canonical files.
npx claudepluginhub serejaris/ris-claude-codeThis skill uses the workspace's default tool permissions.
Part of the Personal Corp framework — running a one-person business through AI agents.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Part of the Personal Corp framework — running a one-person business through AI agents.
Structured weekly retrospective. Gather facts from code and project management tools, interview the founder, capture findings into issues and canonical files.
Before first use, define these in your project's CLAUDE.md:
## Weekly Retro Config
### Repos to scan
List all repos the agent should check for commits:
- ~/Projects/main-app
- ~/Projects/marketing-site
- ~/Projects/docs
### GitHub owner
Your GitHub username or org for issue search:
- owner: your-github-handle
### GitHub Project ID
Project board where retro issues land:
- project_id: 7
### Canonical files (single source of truth)
Files that hold authoritative data — agent must check these before writing numbers:
- data.md — prices, revenue, historical totals
- product.md — current offers
- insights.md — strategic conclusions
### Retro log path
Where retro summaries are saved:
- docs/retro/
### Task routing
Map task types to repos so issues land in the right place:
| Type | Repo |
|------|------|
| Backend bugs | main-app |
| Marketing | marketing-site |
| Strategy, cross-cutting | project-brain |
### Interview topics (customize to your business)
Ordered list of areas to cover:
1. Product delivery
2. Sales / pipeline
3. Calendar events
4. New initiatives
5. Research / strategy
6. Open question
No separate init skill needed — this section is the setup. Copy the config block above into your CLAUDE.md, fill in your values, and the skill is ready.
Retro = looking back. Planning = looking forward. Finish the retro completely, output the backlog, THEN plan.
If the founder wants to switch to planning before retro is done: "OK, N topics still uncovered: [list]. Skip or quick pass? After that — planning." Give the choice, don't switch silently.
digraph rules {
rankdir=LR;
"Calendar event" -> "ASK what it is" [label="don't assume"];
"Want to create issue" -> "VERIFY: gh + ls + git" [label="first"];
"Learned a fact" -> "WRITE immediately" [label="canonical/issue"];
"Want to recommend" -> "Finish gathering facts" [label="not before Phase 4"];
"Numbers diverge" -> "Show divergence" [label="don't write silently"];
}
gh issue list --search) + clarify scope. If fact is NEW and no issue exists — ask the founder: "Is this a task? What exactly should be done, in which repo?" Not every mention = issue.| Source | Priority | When to use |
|---|---|---|
| Live system query (DB, API, dashboard) | 1 | Canonical if available |
| Canonical file (dated snapshot) | 2 | Baseline, may be stale |
| Memory / notes | 3 | For context, not decisions |
| Founder (verbal) | VERIFY | Don't write without cross-check against #1-2 |
All in parallel:
# 1. Git commits across all repos (use repos from your CLAUDE.md config)
for repo in $YOUR_REPOS; do
echo "=== $repo ==="
cd $repo 2>/dev/null && git log --oneline --after="YYYY-MM-DD" --before="YYYY-MM-DD" | head -10
cd -
done
# 2. GitHub issues closed + updated
gh search issues --owner $YOUR_OWNER --updated "YYYY-MM-DD..YYYY-MM-DD" --json repository,number,title,state
# 3. Open issues on main project board
gh issue list -R $YOUR_OWNER/$YOUR_MAIN_REPO --state open --json number,title --limit 30
# 4. Previous retro carry-over
gh search issues --owner $YOUR_OWNER --label "retro:W{N-1}" --state open --json repository,number,title
Show summary to the user. Ask for a calendar screenshot (if they don't provide one — work with git/issues, don't insist).
Show open items from retro:W{N-1} as a separate block: "Still open from last retro: [list]". Include in Phase 4 summary.
digraph interview {
"Show data" -> "Ask about topic";
"Ask about topic" -> "Answer unclear" -> "Clarify" -> "Ask about topic";
"Ask about topic" -> "Answer clear" -> "WRITE immediately";
"Ask about topic" -> "Multi-topic answer" -> "Batch save + list back" -> "Continue with most important topic";
"WRITE immediately" -> "Issue?" [shape=diamond];
"Issue?" -> "VERIFY then CREATE" [label="yes"];
"Issue?" -> "Next topic" [label="no"];
"VERIFY then CREATE" -> "Next topic";
"Next topic" -> "Ask about topic" [label="more"];
"Next topic" -> "Phase 3" [label="done"];
}
When the answer covers multiple topics: (1) WRITE each fact immediately (batch is OK), (2) list back to founder: "Saved: X, Y, Z — correct?", (3) continue with the most important uncovered topic, (4) return to skipped items from interview order later.
Use the topics from your CLAUDE.md config. Default order:
# Check for duplicate issues
gh issue list -R $YOUR_OWNER/$REPO --search "{keywords}" --state all
| What you learned | Where to write IMMEDIATELY |
|---|---|
| Fact about project/product | Canonical file (data.md, product.md, etc.) |
| Date/plan changed | Relevant config file + any dependent docs |
| Process lesson/insight | Insights file or playbook |
| Action item | GitHub issue in the CORRECT repo (see task routing in config) |
Offer if retro surfaces 3+ unresolved risks or founder asks.
3 sub-agents in parallel:
## Retro WNN (dates)
### Done
- ...
### In progress
- ...
### Not touched
- ...
### Carry-over (from previous retro)
- [open items from retro:W{N-1}]
### Lessons -> system updates
| Lesson | What was updated |
Issues go to the CORRECT repos (per task routing in your config):
# Create retro label
gh label create "retro:WNN" -R $YOUR_OWNER/$REPO --color "D4C5F9"
# Each issue -> correct repo + label + project board
gh issue create -R $YOUR_OWNER/$REPO -t "..." -b "..." -a $YOUR_OWNER --label "retro:WNN"
gh project item-add $YOUR_PROJECT_ID --owner $YOUR_OWNER --url {url}
Final table:
### Backlog retro:WNN
| # | Repo | Task |
Filter: `gh search issues --owner $YOUR_OWNER --label "retro:WNN" --state open`
docs/retro/retro-WNN.md)docs: weekly retro WNNgh issue list --search first -> STOP, check for duplicates| Rationalization | Reality |
|---|---|
| "Calendar says Meeting — must be a meeting" | Calendar titles are unreliable. Ask. |
| "Git data is enough for retro" | Git doesn't know context: why, what was decided, what changed |
| "I'll write it later, let me gather everything first" | Later = never. Write immediately |
| "This is obviously a main-repo issue" | Route to the correct repo per your task routing config |
| "Config says date X — so that's the date" | Plans change. Ask for current status |
| "Roughly $X revenue" | Not in canonical files? Don't write it. Fabrication is unacceptable |
| "Founder said 30 — so it's 30" | Verbal numbers -> cross-check with live stats/canonical. Show divergence |
| "This mention needs an issue" | Not every mention = issue. Ask: "Is this a task?" |