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 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
"Bash(ls *)",
|
||||
|
||||
"Skill(git-commit)",
|
||||
"Skill(worktree-update)",
|
||||
"Skill(sprint-start)"
|
||||
],
|
||||
"deny": [
|
||||
|
||||
@@ -94,9 +94,9 @@ Format the combined review as a table per reviewer:
|
||||
|
||||
### <Reviewer Name> (<Focus>): [APPROVE | REQUEST_CHANGES]
|
||||
[Summary]
|
||||
| # | File | Severity | Issue |
|
||||
|---|------|----------|-------|
|
||||
| 1 | path:line | critical/warning/suggestion | description |
|
||||
| # | File | Issue |
|
||||
|---|------|-------|
|
||||
| 1 | path:line | description |
|
||||
|
||||
### <Reviewer Name> (<Focus>): [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.
|
||||
```
|
||||
|
||||
|
||||
@@ -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/<branch>
|
||||
```
|
||||
|
||||
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..<branch>`
|
||||
|
||||
#### 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 <login> --repo <owner/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 <branch> --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 <current-branch>
|
||||
```
|
||||
|
||||
Never push without explicit confirmation.
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user