From 050aeafc01d707d5bf5bea39193f9444cce464ff Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sun, 5 Apr 2026 15:21:20 +0200 Subject: [PATCH] chore(kit): remove worktree-update skill, fix pr-review severity tiers - Delete worktree-update skill template (replaced by sprint branches) - Remove worktree-update references from settings, manifests, tests - Update customization-examples to sprint-branch language - Remove three-tier severity from pr-review template (every comment is actionable, no suggestion tier) Co-Authored-By: Claude Opus 4.6 --- .../references/customization-examples.md | 4 +- .../skill/references/profile-manifests.md | 2 - whatsinagame/templates/.claude/settings.json | 1 - .../.claude/skills/pr-review/SKILL.md | 8 +- .../.claude/skills/worktree-update/SKILL.md | 118 ------------------ whatsinagame/tests/test-install.sh | 2 - 6 files changed, 6 insertions(+), 129 deletions(-) delete mode 100644 whatsinagame/templates/.claude/skills/worktree-update/SKILL.md diff --git a/whatsinagame/skill/references/customization-examples.md b/whatsinagame/skill/references/customization-examples.md index b629cb222..ac4bd72c4 100644 --- a/whatsinagame/skill/references/customization-examples.md +++ b/whatsinagame/skill/references/customization-examples.md @@ -60,9 +60,9 @@ Instead of one main branch, the project uses worktrees for parallel development: | visual | `../visual/` | araminta | | ci | `../ci/` | justine | -Each worktree contains the full repository. Sprint briefings are written per-team (`docs/sprints/sprint-N/server.md`, `client.md`, etc.). Merges happen via the `/worktree-update` skill. +Each sprint branch contains the full repository. Sprint briefings are written per-team (`docs/sprints/sprint-N/server.md`, `client.md`, etc.). Merges happen via PR review on main. -**Key lesson**: Worktrees are powerful for large projects with distinct workstreams. Most projects should start with single-branch and add worktrees when branch contention becomes a problem. +**Key lesson**: Sprint branches (`sprint-N/team`) with ephemeral worktrees via `isolation: "worktree"` give each agent an isolated copy without persistent worktree management. ### Qdrant + Ollama for Semantic Document Search diff --git a/whatsinagame/skill/references/profile-manifests.md b/whatsinagame/skill/references/profile-manifests.md index 52d8230a5..200a6c58b 100644 --- a/whatsinagame/skill/references/profile-manifests.md +++ b/whatsinagame/skill/references/profile-manifests.md @@ -60,7 +60,6 @@ Everything in minimal, plus: | ticket | /ticket — manage project tickets in SQLite DB | | pr-push | /pr-push — push commits and create/update PRs | | pr-review | /pr-review — spawn parallel reviewers for branch diffs | -| worktree-update | /worktree-update — sync worktree branches with main | | sprint-retro | /sprint-retro — run a sprint retrospective | | release-notes | /release-notes — generate release notes from commits | @@ -81,7 +80,6 @@ decisions/process.md # Process decisions .claude/skills/pr-push/SKILL.md # Push PR skill .claude/skills/pr-review/SKILL.md # Review PR skill .claude/skills/pr-review/references/ # Review checklist references -.claude/skills/worktree-update/SKILL.md # Worktree sync skill .claude/skills/sprint-retro/SKILL.md # Retro skill .claude/skills/release-notes/SKILL.md # Release notes skill .config/hooks/pre-commit # Pre-commit hook diff --git a/whatsinagame/templates/.claude/settings.json b/whatsinagame/templates/.claude/settings.json index bc7ee5b16..b12a539db 100644 --- a/whatsinagame/templates/.claude/settings.json +++ b/whatsinagame/templates/.claude/settings.json @@ -42,7 +42,6 @@ "Bash(ls *)", "Skill(git-commit)", - "Skill(worktree-update)", "Skill(sprint-start)" ], "deny": [ diff --git a/whatsinagame/templates/.claude/skills/pr-review/SKILL.md b/whatsinagame/templates/.claude/skills/pr-review/SKILL.md index 6bb8827ed..7b949b0c3 100644 --- a/whatsinagame/templates/.claude/skills/pr-review/SKILL.md +++ b/whatsinagame/templates/.claude/skills/pr-review/SKILL.md @@ -94,9 +94,9 @@ Format the combined review as a table per reviewer: ### (): [APPROVE | REQUEST_CHANGES] [Summary] -| # | File | Severity | Issue | -|---|------|----------|-------| -| 1 | path:line | critical/warning/suggestion | description | +| # | File | Issue | +|---|------|-------| +| 1 | path:line | description | ### (): [APPROVE | REQUEST_CHANGES] ... @@ -130,8 +130,8 @@ Respond with: 2. Summary: 2-3 sentence overall assessment 3. Comments: List of specific issues, each with: - File path and approximate location - - Severity: critical / warning / suggestion - Description of the issue +Every comment is actionable — there is no "suggestion" tier. If it's worth mentioning, it's worth fixing. If no issues found, say APPROVE with a brief positive summary. ``` diff --git a/whatsinagame/templates/.claude/skills/worktree-update/SKILL.md b/whatsinagame/templates/.claude/skills/worktree-update/SKILL.md deleted file mode 100644 index 0a849bbf6..000000000 --- a/whatsinagame/templates/.claude/skills/worktree-update/SKILL.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -name: worktree-update -description: > - Sync worktree branches with main. Use when the user says "update worktrees", - "sync branches", "merge main", "worktree update", or invokes /worktree-update. - When on main: shows ahead branches and lets user pick which to merge. - When on a non-main branch: merges main into the current branch. -user-invocable: true -allowed-tools: Bash, Read, AskUserQuestion ---- - -# Worktree Update Skill - -Sync worktree branches safely. Direction depends on the current branch. - -## Safety Rules (NON-NEGOTIABLE) - -- **Never force-push, reset --hard, rebase, or delete branches.** -- **Never use `--no-verify` or skip hooks.** -- **Always use `--no-edit` on merges** to avoid interactive editor prompts. -- **Stop on merge conflicts** — report them and let the user decide. Never - auto-resolve or abort a conflicted merge without asking. -- **Fetch before comparing** — always `git fetch --all` first so commit - comparisons are accurate. -- **Dry-run first on main** — show the user exactly what will happen before - merging anything into main. - -## Workflow - -### 1. Detect current branch - -```bash -git branch --show-current -``` - -Branch determines the mode: `main` -> outbound sync, anything else -> inbound sync. - -### 2a. On `main` — merge worktree branches into main - -#### Fetch and compare - -```bash -git fetch --all -``` - -Discover all worktree branches (excluding `main` itself): - -```bash -git worktree list | grep -v '\[main\]' | sed 's/.*\[//;s/\]//' -``` - -For each worktree branch, check if it has commits ahead of main: - -```bash -git rev-list --count main..origin/ -``` - -Skip branches with 0 commits ahead. For branches that ARE ahead, collect: -- Branch name -- Number of commits ahead -- One-line log of those commits: `git log --oneline main..` - -#### Check for open PRs - -Use the git host CLI matching your project (see CLAUDE.md): - -```bash -# GitHub: gh pr list --state open -# Gitea: tea pr list --login --repo --state open --output simple -# GitLab: glab mr list --state opened -``` - -Cross-reference open PR head branches with the ahead-of-main branches. - -#### Present results - -Show a summary table of branches ahead of main. For each branch, indicate: -- `[PR]` if it has an open pull request — warn that it should go through - normal review channels (use `/pr-review` instead) -- Commit count and summary - -Use `AskUserQuestion` to let the user pick which branches to merge. -Exclude PR-flagged branches from the default options (but allow the user to -override via "Other"). - -#### Merge selected branches - -For each selected branch, one at a time: - -```bash -git merge --no-edit -``` - -If a merge conflicts, **stop immediately**. Report the conflict and do NOT -continue to the next branch. The user must resolve before proceeding. - -After all merges, show the final state with `git log --oneline -N` (where N -covers the new commits). - -### 2b. Not on `main` — merge main into current branch - -```bash -git fetch --all -git merge origin/main --no-edit -``` - -If clean, report the result (fast-forward or merge commit, files changed). -If conflicts, report them and stop. - -### 3. Push prompt - -After a successful merge, ask the user if they want to push: - -```bash -git push origin -``` - -Never push without explicit confirmation. diff --git a/whatsinagame/tests/test-install.sh b/whatsinagame/tests/test-install.sh index 4f26cced3..5828a7883 100755 --- a/whatsinagame/tests/test-install.sh +++ b/whatsinagame/tests/test-install.sh @@ -111,7 +111,6 @@ STANDARD_FILES=( ".claude/skills/ticket/SKILL.md" ".claude/skills/pr-push/SKILL.md" ".claude/skills/pr-review/SKILL.md" - ".claude/skills/worktree-update/SKILL.md" ".claude/skills/sprint-retro/SKILL.md" ".claude/skills/release-notes/SKILL.md" "decisions/README.md" @@ -129,7 +128,6 @@ mkdir -p "$TMPDIR_STANDARD/.claude/skills/skill-create" mkdir -p "$TMPDIR_STANDARD/.claude/skills/ticket" mkdir -p "$TMPDIR_STANDARD/.claude/skills/pr-push" mkdir -p "$TMPDIR_STANDARD/.claude/skills/pr-review" -mkdir -p "$TMPDIR_STANDARD/.claude/skills/worktree-update" mkdir -p "$TMPDIR_STANDARD/.claude/skills/sprint-retro" mkdir -p "$TMPDIR_STANDARD/.claude/skills/release-notes" mkdir -p "$TMPDIR_STANDARD/decisions"