Skip to main content

update-version

When a project artifact whose filename carries a version — the canonical outline or the figure deck — is bumped (e.g. v4→v5, ver7→ver8), propagate the new filename into every file that references the old one (CLAUDE.md, command/skill files, agent memories, manuscript anchors, export scripts) so no downstream tool points at a stale file, then offer to delete genuinely-obsolete archive files (never auto-delete). Reads the previously-current values from CLAUDE.md

インストールへ移動

ソース情報

リポジトリ
youngeun1209/oh-my-claudecode-research
ソースの最終更新活動
2026年7月10日 00:25
検出された SKILL.md の言語
英語
スター
31
フォーク
8

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
update-version
description
When a project artifact whose filename carries a version — the canonical outline or the figure deck — is bumped (e.g. v4→v5, ver7→ver8), propagate the new filename into every file that references the old one (CLAUDE.md, command/skill files, agent memories, manuscript anchors, export scripts) so no downstream tool points at a stale file, then offer to delete genuinely-obsolete archive files (never auto-delete). Reads the previously-current values from CLAUDE.md
# Update Version Pointers When the user bumps a version — the figure `Deck file`, the `Outline file`, or a working copy of either — **propagate the new filename/version into every file that references the old one** so no downstream tool points at a stale file. Then **offer to delete genuinely-obsolete archive files** (never auto-delete). Default to **English** for the report; keep filenames verbatim. Override the report language via the project `CLAUDE.md`. **Core principle:** there is ONE current version of each artifact. Every *live* reference should name the current file. The only references that stay frozen are **dated historical records** (sync/todofig reports, dated changelog entries inside agent memories) — those record what was true at a past date and must not be rewritten. ## Configuration The previously-current values live in `CLAUDE.md` `## Research stack`: | Setting | `## Research stack` key | Env var | |---|---|---| | Figure deck | `Deck file` | `DECK_FILE` | | Outline | `Outline file` | `OUTLINE_FILE` | The delta between these and the user's new files gives the rename pairs. **After propagating, update the `## Research stack` values themselves** so they hold the new current names. ## Step 1 — Resolve the current files You need the NEW current value for each bumped artifact (outline and/or deck). If `$ARGUMENTS` contains `@`-mentions, parse them. Otherwise **ask the user and stop for input** — say exactly which to provide and that they should reply with `@`-mentions. Do not guess versions. A user may bump only one artifact (e.g. only the deck); accept a partial set and only propagate what changed. ## Step 2 — Derive OLD → NEW token pairs For each bumped artifact: - Read `CLAUDE.md` `## Research stack` — `Deck file:` and `Outline file:` hold the *previously-current* values. The delta gives the rename pairs (e.g. `figures_v7.key → figures_v8.key`; `outline_v4.md → outline_v5.md`). - Also build **generic→versioned** pairs for any unversioned references (e.g. `outline.md → <new .md>`) if the project has legacy suffix-less references that silently resolve to the old file. - Compute a **tolerant** search pattern that catches *any* old version, not just the immediate predecessor: e.g. `figures_v[0-9]+\.key`, `outline(_v[0-9]+)?\.(md|docx)`. Print the derived OLD → NEW pairs before applying. ## Step 3 — Sweep for pointers (live search, cross-checked against a checklist) The **live sweep is the source of truth** (line numbers drift — never trust cached line numbers). Search the workspace for the tolerant pattern (force-include gitignored `.claude/` internals): ```bash PAT='figures_v[0-9]|outline(_v[0-9]+)?\.(md|docx)|<your old tokens>' grep -rInE "$PAT" . --include='*.md' --include='*.sh' --include='*.py' \ -g '!.git' 2>/dev/null | grep -av 'Binary file' | sort -u # .claude internals (some paths are gitignored): grep -rInE --no-ignore --hidden "$PAT" .claude 2>/dev/null | grep -av 'Binary file' | sort -u ``` ### LIVE pointers — UPDATE these (find by token, not cached line number) Cross-check the sweep against the usual homes of a version pointer (project-specific — the sweep finds the exact set): - **`CLAUDE.md`** — `## Research stack` `Deck file:` / `Outline file:`; any prose in the file-layout / figure-map / conventions sections that names the current outline or deck. - **Export / build scripts** — the variable or comment that names the deck the figure export reads (a stale name here silently breaks figure export). - **Command / skill files** that hardcode the outline or deck name (e.g. a `/sync` docx-embed target, a `/todofig` mtime-compare line, the `cropfig` default deck path). - **Manuscript anchors** — README / section files that say "anchored to `<outline>`". - **Agent memories** — lines stating the *current* ground-truth outline/deck (leave dated "Last synced" markers + changelog bullets alone — those are frozen). ### FROZEN — never rewrite (dated historical records) - Dated snapshot reports (e.g. `sync_reports/*.md`, `todofig_reports/*.md`). - Every agent's `Last synced:` marker + past-dated changelog bullets; a sync-coordinator's dated log entries. - A review *of* a past version, correctly named for that version. - The **internal version header inside an archive file** (e.g. the `Outline v4` line atop `outline_v3.md`) — that file *is* that version. ## Step 4 — Apply the updates Edit each LIVE pointer with the OLD → NEW replacement (exact string replacement; replace-all where the token repeats). Then update the `## Research stack` `Deck file:` / `Outline file:` values to the new names. After editing config/scripts, verify: ```bash # script syntax still parses, and the new file the script now points to exists: bash -n <export-script> && echo "export script OK" ls -la <new deck/outline file> ``` If the user only bumped one artifact, only touch that artifact's pointers. ## Step 5 — Obsolete-file cleanup (DESTRUCTIVE — confirm first) Superseded files accumulate. After the pointer update, list **delete candidates** (superseded outline archives, retired generators, old changelogs) and ask the user which to remove. **Never delete without explicit per-file confirmation.** Re-verify each still exists and is truly superseded before proposing. Present them as a checklist (`[ ] delete` per file); act only on the ones the user checks. Use `git rm` if tracked, `rm` if not. If a deleted file was referenced by a LIVE pointer, fix that reference too. ## Step 6 — Report ``` # Version pointer update — YYYY-MM-DD ## Renames applied - <old> → <new> (per artifact) ## Files updated (LIVE pointers) - <file> : <what changed> ✅ ## Skipped (FROZEN — historical records) - <file / reason> ## Delete candidates (confirmation needed) - [ ] <file> ## Verification - export script syntax OK / new file exists / config values updated ``` End by noting anything the sweep surfaced that wasn't expected, so future runs know where new pointers live. ## Guardrails - **Ask for the new file(s) first** (Step 1) unless `@`-mentioned. Never assume the new version number. - **Never rewrite dated historical records** (Step 3 FROZEN list). - **Never auto-delete** — Step 5 is confirm-gated, per file. - **Verify after editing** scripts/config (Step 4) — a wrong deck name in an export script silently breaks `/todofig`, `/sync`, and `cropfig`. - **Update `## Research stack` last** so it always reflects the new current state. - If the live sweep surfaces a new pointer you didn't expect, update it and report it.
GitHubで見る