.claude/skills/alt-adr-writer/SKILL.md
Writes an Architecture Decision Record for the Alt project in Japanese after a completed implementation, then runs the Pact-gated manual deploy (./scripts/deploy.sh production). Trigger when the user says "ADR書いて" / "ADRにまとめて" / "ADRに記録して" / "実装が終わったのでドキュメントに" / "コンテナ再ビルドしてADR書いて" / "docs/ADR" 関連のまとめ依頼, or after finishing code changes that clearly warrant a decision record. Skip the deploy step only when the user explicitly says "ADRだけ書いて"; skip the build step only for documentation-only changes.
npx skillsauth add kaikei-e/alt alt-adr-writerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
このスキルは 3 つのフェーズを順に実行する:
docs/ADR/NNNNNN.md を日本語で追加する./scripts/deploy.sh production各フェーズはユーザ依頼の範囲に応じてスキップ条件がある (§5 参照)。
ADR を書くのは「動いた状態」を固定する行為なので、最低限のテストと起動確認を先に済ませる。
| 変更の種類 | 最低限回すコマンド |
|---|---|
| Go service | go test ./... + 必要なら docker compose -f compose/compose.yaml -p alt up --build -d <service> |
| Rust service | cargo test + 上記 compose 再ビルド |
| TypeScript / Svelte (alt-frontend-sv) | bun run check && bun test + 上記 compose 再ビルド |
| Python (news-creator 等) | uv run pytest |
| ドキュメント・scripts のみ | 再ビルド不要。bash tests/scripts/run.sh など該当テストだけ |
再ビルドは変更のあったサービスだけをターゲットにする。docker build --no-cache は許可されない限り使わない。
テストが落ちていたら ADR は書かず、ユーザに原因を報告して止まる。ADR は「動いた実装の決定記録」であり、憶測を書く場所ではない。
ls docs/ADR/ | sort | tail -1 # 最新番号を確認
最新 +1 の 6 桁ゼロ埋め(例: 000750 → 000751)をファイル名にする。docs/ADR/template.md を Read で開き、そのセクション見出しをそのまま使う(勝手に増減しない)。
| フィールド | 値の決め方 |
|---|---|
| title | 動詞始まりの行動指向の一文。ADR 番号は含めない |
| date | YYYY-MM-DD(当日) |
| status | 原則 accepted。過去 ADR を無効化する場合のみ superseded |
| tags | §2.4 の許可タグから最大 5 個 |
| affected_services | サービス名と変更概要を 1 行/件で列挙 |
| aliases | ADR-NNN と ADR-000NNN の 2 形式を必ず両方入れる(Obsidian リンク解決用) |
template.md を尊重する。Context / Decision / Consequences (Pros, Cons/Tradeoffs) / Related ADRs の順が基本。[[000NNN]] タイトル 形式で列挙する。Obsidian のグラフビュー / バックリンクがこの形式でのみ機能するため、ADR-000NNN (タイトル) 形式は使わない。architecture, clean-architecture, connect-rpc, performance, security,
database, migration, pgbouncer, frontend, backend, api, rss, search,
caching, authentication, docker, networking, ci-cd, testing, refactoring,
bugfix, monitoring, logging, ai, rag, recap, nats, queue, 3d-graphics
この外のタグを増やしたくなったら ADR ではなく docs/CLAUDE.md を先に更新する。
Alt は OSS として公開されている。以下を含めない:
localhost:XXXX と compose サービス名は OK。
Write ツールで docs/ADR/NNNNNN.md を作る。heredoc や cat > ... は使わない。書き込み後に Read で自分の出力を読み返し、見出し / frontmatter / wikilink 形式を確認する。
ADR を書いたらコードと ADR を同じ commit にまとめて、scripts/deploy.sh を手で叩く。CI 自動発火はしない(方針: [[000740]] / [[deploy]])。
git add -A
git commit -m "<英語の 1 行メッセージ>" # Co-Authored-By は付けない
./scripts/deploy.sh production
deploy.sh は c2quay の薄いラッパで、以下を順に叩く:
scripts/pact-check.sh --broker — Pact file を Broker に publishc2quay deploy --env production --config c2quay.yml
docker compose up -d --wait --remove-orphansscripts/smoke.shscripts/record-remote-pacticipant.sh production — 別ホストの tts-speaker 用途中で失敗すれば set -e で即停止する。自動ロールバックは無い。復旧は git revert → 再 commit → ./scripts/deploy.sh production を再実行。
| やりたいこと | コマンド |
|---|---|
| 現状確認 (副作用なし) | c2quay verify --env production --config c2quay.yml |
| デプロイ計画の確認 | c2quay deploy --env production --dry-run --config c2quay.yml |
| 1 サービスだけ再 recreate | c2quay deploy --env production --service <svc> --config c2quay.yml |
| broker matrix の現状 | c2quay status --env production --config c2quay.yml |
--skip-verify / --no-record は廃止済み。Broker が落ちていたら先に docker compose up -d pact-broker で戻す。
| 段 | 兆候 | 対処 |
|---|---|---|
| pact-check | 出力に contract regression | provider/consumer テストを修正 → 再 commit → 再 deploy |
| c2quay: can-i-deploy | blocked by のログ | 対象 pacticipant の provider 側を修正 → 再 deploy |
| c2quay: compose up --wait | container … not healthy | healthcheck 修正・依存関係見直し → 再 deploy |
| c2quay: smoke | smoke FAIL: <url> | 該当サービスのログを確認 |
| c2quay: record-deployment | record-deployment failed | broker matrix が乖離。c2quay status と pact-broker-cli で確認し、手で record-deployment を再実行 |
| record-remote-pacticipant | tts-speaker record-deployment failed | 別 GPU ホスト・Broker 到達性を確認後、scripts/record-remote-pacticipant.sh production を再実行 |
必ず migrate → deploy の順。逆にするとアプリが新スキーマを期待するまま旧スキーマで起動し、healthcheck が通らず自動ロールバックで戻される:
cd migrations-atlas && atlas migrate hash && atlas migrate apply --env production
cd ~/alt && ./scripts/deploy.sh production
ユーザに以下を伝える:
docs/ADR/NNNNNN.md)とタイトルdeploy.sh の終了コード + .deploy-current に記録された SHA| ユーザ発話 | §1 | §2 | §3 | |---|---|---|---| | 「ADR だけ書いて」「docs だけ」 | skip | run | skip | | 「実装まとめて ADR 書いて」「ADR 書いてデプロイして」 | run | run | run | | ドキュメント / scripts のみの変更 | skip build (test は run) | run | run |
迷ったら §1 → §2 → §3 の全実行を既定とする。Alt の運用は「ADR を書く = デプロイ準備完了」という前提で組まれている。
docs/ADR/template.md — セクションと frontmatter のソースdocs/runbooks/deploy.md ([[deploy]]) — デプロイ手順の完全版docs/runbooks/pact-broker-ops.md ([[pact-broker-ops]]) — Broker 運用docs/CLAUDE.md — vault 全体の編集ルールdevelopment
--- name: bp-go description: Go ベストプラクティス。Go コードの品質を保つための規約とパターン集。 TRIGGER when: .go ファイルを編集・作成する時、Go コードを書く時、Go サービス(alt-backend, auth-hub, pre-processor, search-indexer, mq-hub, altctl)を実装する時。 DO NOT TRIGGER when: テストの実行のみ、go.mod の確認のみ、ファイルの読み取りのみ、他言語の作業時。 --- # Go Best Practices このスキルが発動したら、`docs/best_practices/go.md` を Read ツールで読み込み、 記載されたベストプラクティス(DECREE)に従ってコードを書くこと。 ## 重要原則 1. **エラーラップ必須**: `fmt.Errorf("action: %w", err)` でコンテキスト付きラップ。裸の `return nil, err` 禁止 2. **main.go は薄く**: co
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.