tools/maintenance-report-generator/README.md
Workspace snapshot · 09/04 13:33
Maintenance Report Generator
更新前後のバージョン一覧から、顧客へ出す保守報告を作るCLIです。確認していない項目を「問題なし」と書きません。
WordPress Maintenance Skill が Step 2 と Step 6 で出力する plugins-before.csv /
plugins-after.csv を、そのまま入力にできます。
この道具の主張は1つだけ
保守報告で本当に価値があるのは「やったことの一覧」ではありません。 **「何が変わったか」と「何を確認していないか」**です。
だからこのツールは、報告しなかった確認項目を黙って省かず、未確認として必ず表に出します。
## 結論: 更新は完了、ただし**未確認の項目があります**
3件は確認できていません。**未確認は「問題なし」ではありません。**
沈黙が「問題なし」に化けないこと。これが仕様の中心です。
使い方
# Maintenance Skill が出力したCSVをそのまま渡す
python report_maintenance.py plugins-before.csv plugins-after.csv \
--site example.com --date 2026-08-27 \
--core-before 6.5 --core-after 6.6 \
--check top_and_subpages=ok \
--check login=ok \
--check contact_form=ng \
--held "WooCommerce 9.0(ステージング未整備のため保留)" \
--output report-20260827.md
--check を指定しなかった項目は unverified(未確認) になります。省略=合格ではありません。
| 確認キー | 内容 |
|---|---|
top_and_subpages | トップページと下層ページ2〜3枚 |
contact_form | 問い合わせフォームの送信(受信箱まで到達したか) |
login | 管理画面へのログイン |
page_builder | ページビルダーの編集画面 |
checkout | 決済・カート(ECの場合) |
error_log | PHPエラーログに新しい行が出ていないか |
ok / ng / unverified の3値。独自のキーを足すこともできます(例: --check member_login=ok)。
終了コードは ng が1件でもあれば 1、それ以外は 0。
--json を付けると、Markdownの代わりに構造化された差分を出します。
報告に出ること・出ないこと
出るもの: プラグイン名とバージョン、コアのバージョン、確認結果、保留した更新。
出ないもの(意図的に除外しています):
- DB名、DBユーザー名、パスワード
- バックアップファイルの完全パスと保管場所
- 管理画面のURL
入力CSVにこれらの列が混ざっていても、name と version 以外は読み込みません。
保守報告はメールやチャットで転送されるので、そこに載ってはいけないものを構造的に入れない設計です。
見逃さないようにしていること
- 覚えのないプラグインの増減。 追加・削除があれば「追加した覚えがない場合は確認してください」と 併記します。改ざんの初期兆候がここに出ることがあります。
- バージョンが変わっていないものの件数。 「全部更新した」と誤読させないためです。
できないこと
- 更新が安全だったかの判定。バージョンの差分と、人が報告した確認結果を整形するだけです。
- フォームが届くか、決済が通るかの自動判定。これは人が確認して
--checkで渡します。 - バックアップが復元できるかの保証。
必要な環境
Python 3.10以上。外部パッケージ不要(標準ライブラリのみ)。
テスト
python -m unittest discover -s tests
とくに次の2つを固定しています。
- 未指定の確認項目が「問題なし」にならないこと
- 入力CSVに紛れ込んだDB名やバックアップパスが、生成された報告に出てこないこと
検証状況
- 判定・整形ロジックのオフラインテスト: 同梱済み。ただしこのworkspaceでは実行していません (実行環境にシェルが無いため)。実行結果を伴わない「テスト済み」表示はしません。
- 実際の保守作業の出力を使ったスモークテスト: 未実施
License
MIT. 自分が所有または管理を委任されたサイトにのみ使用してください。
Part of PENGIN Tools — Web制作の面倒な作業を、小さな道具でなくす。