← ClaudeAtlas

release-doilisted

DOI-registered research repo (Zenodo) のリリース手順。README 多言語 / CHANGELOG / CITATION.cff / pyproject.toml / llms.txt / glossary を整合させてから tag push、Zenodo 自動採番後に新 DOI を反映し、Software Heritage archive + SWHID 記録 (intrinsic identifier 層) まで行う 4 phase + post-release ワークフロー。AKC / AAP / contemplative-agent など shimo4228 系の研究 repo で再利用する。
shimo4228/claude-harness · ★ 2 · AI & Automation · score 81
Install: claude install-skill shimo4228/claude-harness
# release-doi — DOI Release Runbook Zenodo に DOI 登録された research repo のリリース手順。`/release-doi` で起動。 適用対象: AKC (`agent-knowledge-cycle`) / AAP (`agent-attribution-practice`) / contemplative-agent など、`CITATION.cff` を持ち GitHub release webhook で Zenodo が自動採番する shimo4228 系 repo。 ## When to use - 直近の refactor / 新機能 / sunset ADR を Zenodo に新 version DOI として記録したい - pyproject.toml / CITATION.cff / 多言語 README の version drift を解消したい - glossary / llms.txt が code 実態とズレているのを release ゲートで揃えたい **Skip when**: - DOI 登録のない repo (Zenodo 連携していない) — `CITATION.cff` の有無で判定 - バージョン bump の必要なし (typo fix 等の小修正で release を切らない) - bug fix だけなら patch version で `/release-doi` を起動、major refactor なら minor / breaking なら major ## Pre-flight: 前提確認 ```bash # CITATION.cff があるか (= Zenodo 連携している repo か) test -f CITATION.cff && echo "DOI repo" || echo "skip /release-doi" # 直近 tag 以降の commit が空でないか (新規 repo なら tag なしで OK) git log "$(git describe --tags --abbrev=0 2>/dev/null)..HEAD" --oneline | head # Zenodo webhook が GitHub repo に登録されているか gh api repos/<owner>/<repo>/hooks --jq '[.[] | select(.config.url | contains("zenodo"))] | length' # → 0 が返ったら Zenodo opt-in 未実施。先に user に依頼する (下の "Zenodo opt-in" 参照) # → 1 以上なら OK。webhook の active 状態も確認: gh api repos/<owner>/<repo>/hooks --jq '.[] | select(.config.url | contains("zenodo")) | {active, url: .config.url[:50]}' ``` 空なら release 不要。webhook 未登録なら opt-in 依頼後に再開。 ### Zenodo opt-in (新規 DOI repo の最初の release で必須) Zenodo は GitHub repo ごとに **opt-in 連携** が必要。toggle ON 前に作