merge
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 3
- Forks
- 3
03 SKILL.md 正文
Branch: $ARGUMENTS, else current. Integration branch: per project CLAUDE.md, else develop if it exists, else origin's default. Direct merge, no PR or approval ([NO-COMMIT-ON-MAIN]); an open PR turns "Merged" at step 4's push. Talk in the user's language.
git status --porcelainmust be empty, else stop and say so. Run/repo:review <branch>: pushed commits are public for good. Its tidying happens before merge; what it leaves to the user: tell them, wait for their decision. Fast linters in the branch's worktree, only on changed files (git diff --name-only --diff-filter=d <integration>...<branch>):ruff checkandruff format --checkon Python,eslinton JS/TS/Vue, the like for other languages (ion-repo:uv run ruff check <files>,uv run ruff format --check <files>). No type checker, test,ion repo checkorion repo ci: the release runs them. No such file: run nothing. Failure: fix on the branch, never merge red. Thenion repo clonesin the worktree: the duplicated code the branch brought,copy ← original, found without Claude (jscpd). Judge each line, the original read first: reuse it (call it instead of the copy), adapt it to serve both, or keep the copy (the two will diverge, a test's or data's repetition). A reuse or an adaptation is a commit on the branch, linters run again on what it touched; a kept copy is named in the debrief with why. Never blocks the merge.- If moved into the worktree (
EnterWorktree), leave it now withExitWorktree(action: "keep"): an isolated session refuses to merge from the main tree. Thengit pull --ff-only origin <integration>, thengit merge --no-ff <branch> -m "Merge branch '<branch>' into <integration>", from the main tree if on the integration branch, elsegit -Con a worktree that is. Never switch the main tree's branch under another session. - Conflict: stop, show files, propose a resolution.
git push origin <integration>.- Delete worktree and branches now, only if both hold, else delete nothing and say which failed and why:
git fetch -q origin, thengit merge-base --is-ancestor <branch> origin/<integration>succeeds;git -C <wt> status --porcelainempty. Thengit worktree remove .claude/worktrees/<name>(never--force),git branch -d <branch>(never-D), and if on GitHub (git ls-remote --heads origin <branch>)git push origin --delete <branch>.
- Repo ships a plugin (
.claude-plugin/marketplace.jsonat root; ion-repo and every family tool): update the installed copy, else a just-merged skill staysUnknown commandin new sessions. For each<plugin>listed, under catalogname<market>(<tool>@<tool>for a family tool):claude plugin list --json: entries withid<plugin>@<market>. None: not installed, do nothing.- Once, after step 4's push (a GitHub marketplace reclones):
claude plugin marketplace update <market>. claude plugin update <plugin>@<market> --scope <scope>for each scope found, only those:userfrom anywhere;project,localfrom the main tree if the entry'sprojectPathis this repo (cd <projectPath> && …). Another repo'sprojectPath: leave it.- Tell the user to restart Claude Code: plugins load at launch.
Local-folder plugin (
readFromFolder, ion-repo here): same commands, harmless if version unchanged.
- No CI: it runs only on the release branch (
/repo:release). Report in therepoplugin'sdebriefformat (output-styles/debrief.md). Suggest/clearunder its ◆ Blocked, in one line, only after a long session or before an unrelated subject; otherwise say nothing of it.
04 同仓库更多 Skills
worktree
Create a work branch in a ready-to-use git worktree. The normal way to start a branch, so as not to cross another session in the main tree.
update
Update ion-repo - the ion-repo tool of the machine and its plugins, then the open repo (ion repo update, on a branch merged right away into develop). Use when the user asks to update ion-repo, or accepts the update offered at session start.
token
Set up a service's credentials (PyPI, Stripe, an API, a host…) in a `.<service>/` folder at the repo root (`token`, chmod 600, and `config` on its scope), with one command that pastes the token unseen. Use when a task needs an API key or a token, or when the user wants to give one.
statusline
Change the look of the status line - its style, its colors, among them the chat's (the person's and Claude's) - each shown before it is chosen. Use when the user wants another status line, other colors for it, or from `/repo:look`.
skill
Write or sharpen a skill of an Ion tool's plugin - intent, SKILL.md in the right craft's plugin, one trigger case, docs; tested with `claude plugin eval` only on request. Use when the user wants a new skill, to fix one, or to check one fires and does its job.
review
暂无简介