repo-publishlisted
Install: claude install-skill yktsnet/dotfiles-public
# repo-publish
Private → Public は**公開後に取り消せない唯一の不可逆点**(履歴は fork・クロール・アーカイブに残りうる)。gh 一発で公開せず、必ず本手順を踏む。
**公開パイプラインの固定順**: `repo-standardize → guarantee-audit → repo-readme → readme-i18n → repo-publish → repo-about`。本 Skill は**第5**。この順は都度再判断しない。
## 前提
- `repo-standardize` 済み(LICENSE・README コアメッセージ・CI・dependabot)。未実施ならそちらが先。
- README 肉付け(`repo-readme`)・英語版(`readme-i18n`)は公開前に済んでいるのが既定。user が明示的に急ぐ場合のみ省略可。
## 1. 全履歴シークレットスキャン(公開前・必須)
ワーキングツリーだけでなく **git 履歴全体** を見る。
```bash
# 汎用スキャン(gitleaks)
nix run nixpkgs#gitleaks -- detect --source . --log-opts="--all"
```
```bash
# フリート固有値スキャン: secrets-agents 辞書の実値が履歴に無いか
# ~/dotfiles/secrets-agents/*.md の「実値」列(ドメイン・Tailscale IP・Tunnel UUID・
# OAuth Secret・SSH ユーザ等)を対象に、履歴全体を grep する
git grep -I "{実���}" $(git rev-list --all) | head
```
辞書の実値は多いので、そのリポに関係しうるもの(デプロイ先・使用サービス)に絞ってよい。た��し `<BASE_DOMAIN>`・Tailscale IP・OAuth/tskey 系は必ず全履歴を確認する。
**検出された場合**: 公開を中止して user に報告する。履歴書き換え(`git filter-repo`)は影響が大きいため相談者が勝手にやらない。
## 2. 直前チェック
```
[ ] スキャン結果クリーン(gitleaks + 辞書 grep)
[ ] LICENSE の年・owner が正しい
[ ] README の画像・GIF がリポ内パス参照(外部 URL や private 依存が無い)
[ ] .env が追跡されていない(git ls-files | grep -c '\.env$' が 0)
[ ] GitHub Secrets に登録済みの値がワークフロー YAML に直書きされていない
[ ] docs/guarantees.md が存在する、または skip 理由(テストなし等)がチャットで明示されている
```
## 3. 公開
スキャン結果を user に提示し、公開してよいか**この時点で一度確認する**(不可逆のため。事前に「公開まで一括でやって」と明示されている場合は省略可)。
```bash
gh repo edit {owner}/{repo} --visibility public --accept-visibility-change-consequences
```
## 4. 公開直後の設定(private/Free では設