weekly-plan
週次レビュー(/weekly-review)後に翌週の実行計画を並列サブエージェントで生成し、同週の `docs/reviews/weekly/YYYY-Www.md` に「来週の計画」セクションとして追記する(NSM/メトリクス連動・重め・手動のみ。週間計画の正本 .claude/todo/weekly.md は /plan-weekly が書く)。.claude/todo/weekly.md
SKILL.md.claude/skills/management/weekly-plan/SKILL.md
GitHub共通の判断基準
docs/strategy/01_プロダクト戦略.md と config/business-direction.json、直近の data/business/records/ の週次・月次判断を先に読む。対象資格・読者の課題・現物の不足・変更・評価指標・再計測日を一続きにする。記事数や図数を増やすための計画にしない。実験はexperiments.json、単発実装はbacklogへ接続し、計画へ状態を複製しない。未測定の販売・費用・時間は取得を次の一手に含める。
プロジェクトの現状を調査し、戦略的な週次計画を生成する。
引数
/weekly-plan [YYYY-Www]
- 週番号(任意): ISO 8601 週番号(例:
2026-W11)。省略時は今週。
概要
サブエージェントで並列にコンテキストを収集し(開発状況・コンテンツ・パフォーマンス・トレンド)、優先順位を決定し、批判的にレビューした上で、実行可能な週次計画を出力する。
手順
Phase 0: 週次メトリクス スナップショット(CI 供給が既定)
スナップショットは fetch-metrics.yml(金 06:00 JST)が CI 上でライブ取得してコミットする(2026-07-04〜。2026-W18 でローカル手動実行が途絶したのを CI 供給へ移行=恒久ルールと整合)。data/business/weekly/YYYY-Www.json に NSM(GA4+GSC 前週比較)+ SNS 流入(source 別 WoW) を保存する。窓は確定した直近の月〜日(事業レビュー・成長パックと同じ)で、ファイル名の週はその窓の ISO 週(実行日の週ではない)。Phase 0 で人がやることは通常なし(最新スナップショットを読むだけ)。
ローカルで手動生成したい場合のみ(creds のある Mac 等):
node .claude/scripts/snapshot-weekly-metrics.mjs # 確定した直近の週(既存週は skip・--force で上書き)
会社 PC のプロキシ配下などライブ取得できない環境では実行しない。Agent C(および weekly-review の SNS フェーズ)は CI がコミットした .claude/state/{weekly-metrics,metrics/{ga4,gsc}}/ のスナップショットを直接読む(既定経路)。
計測は CI/CD 供給が正(
fetch-metrics.yml金 06:00 JST /psi-audit.yml日次)。ローカル creds は設計上不要で「計測基盤未整備」とは扱わない。恒久ルール:.claude/knowledge/reference/measurement-incidents.md(2026-06-05)。
Phase 0.5: 閾値違反の抽出(.claude/todo/ 反映候補)
Phase 0 の snapshot 直後、data/business/weekly/YYYY-Www.json を読み、以下の閾値ルールで違反項目を抽出する。task-queue.json 自動登録は廃止(2026-06-11、.claude/todo/ 手動運用へ一本化)。抽出した違反は Phase 1 Agent C の出力に含め、Phase 3「今週のタスク」候補としてユーザーが .claude/todo/ にキュレーションする。
抽出対象の閾値
| ソース | メトリクス | 閾値 | 優先度 |
|---|---|---|---|
| GA4 | チャネル別 sessions 前週比 | -20% 以上 かつ 前週 ≥10 | High (Traffic-Drop) |
| GSC | 全体 CTR 前週比 | -30% 以上 | Medium |
| GSC | position ≤ 3 クエリの CTR | < 5% | Medium |
| PSI | field LCP / INP / CLS の category | AVERAGE または SLOW | Critical(実害) |
| PSI | LCP (lab) 直近5バッチ中央値 | > 2500ms | Medium(field が FAST のとき)/High(field も悪いとき) |
| PSI | CLS (lab) 直近5バッチ中央値 | > 0.1 | Medium/High(同上) |
| PSI | Performance スコア (lab) 中央値 | < 70 | Medium |
| PSI | 中央値比 Performance | -10 以上 | High(回帰) |
| PSI | 中央値比 LCP | +500ms 以上 | High(回帰) |
PSI の判定原則(誤報防止・必読): 実害=Critical は field(CrUX 実ユーザー p75) が AVERAGE/SLOW のときだけ。lab は合成スロットリング値で日次の振れが大きく(同一ページが同一週内に 2,026〜7,201ms を往復)、単発値・単発差分で Critical を立ててはいけない。field が FAST なら lab がどれだけ悪くても最大 Medium(改善余地であって障害ではない)。回帰は前回比ではなく直近5バッチ中央値で見る。 真実源: measurement-incidents.md「2026-07-27: lab と field の判定原則」/機械可読:
config/psi-config.jsonのjudgment。 ※ 2026-07-27(W30)に lab の単発スパイクを CRITICAL と報告し、実際は field p75 822ms=FAST で実害ゼロだった。1週間分の優先順位が歪んだ。
詳細な条件式は .claude/agents/metrics-analyzer.md および .claude/agents/performance-auditor.md 参照。
抽出手順
- 上記閾値に該当する違反を一覧化する(URL × メトリクス)
- 前週の
.claude/todo/weekly.mdと照合し、既に起票済みの項目は「継続」、新規のみ「今週新規」とする(重複起票を避ける) - 抽出結果を Phase 1 Agent C の出力に含める(「閾値違反: 新規 N 件 / 継続 M 件」)。Phase 4 で
.claude/todo/weekly.mdへの反映候補として提示する
違反なしの場合: 「閾値違反なし」と明示的にログに残す。
Phase 1: コンテキスト収集(並列サブエージェント)
Agent A: 開発状況
調査項目:
- git log --oneline -20(直近の開発活動)
- git diff --stat(未コミット変更)
- docs/ 配下のページ数(カテゴリ別)
出力形式: 「今週何が開発されたか」「未完了の作業」をまとめる
Agent B: コンテンツ状況
調査項目:
- docs/ 配下の .mdx ファイル数(カテゴリ別: general, road, river, low)
- 最近更新されたファイル
- カテゴリごとのコンテンツ充実度
出力形式: 「コンテンツの充実度」「不足しているカテゴリ」「ボトルネック」
Agent C: NSM / 実験サイクル
調査方法:
1. NSM データの取得(既定 = スナップショット読み):
- CI がコミットした `data/{ga4,gsc}/reports/` の最新スナップショットを読む(既定)
- Phase 0 で `data/business/weekly/YYYY-Www.json` が生成済みならそれを使ってもよい
- creds + 外部到達性がある環境に限り、任意で metrics-reader を直接呼んでもよい
2. data/business/experiments.json を読んで以下を把握:
- `kind: search-strategy` は汎用10日/28日・metrics-reader比較と start 候補から除外(search-strategy は `npm run search-improvement -- status` に従う。proposed はカードの時期で進む)。計測中のページへ別実験を提案しない。
- running 実験: 経過日数、baseline との gap
- measuring 実験: 前後比較の中間サマリ
- proposed 実験: 優先順位(次に start すべきもの)
3. `data/business/weekly/` の新しい 4 本(YYYY-Www.json)から直近 4 週分のトレンドを読む(運用中の場合)
4. 上記を統合して次の実験候補を 3-5 件提案
- .claude/skills/management/nsm-experiment/references/playbook.md の典型パターンから
- .claude/skills/management/nsm-experiment/references/rubric.md で優先順位付け
出力形式:
## NSM 現況
- Organic Search users: {今週} (前週比 {delta})
- GSC clicks: {今週} (前週比 {delta})
- 直近 4 週トレンド: (運用中の場合) 図表
## 実験の状態
| ID | title | status | 経過日数 | 進捗 |
|---|---|---|---|---|
### running の警告
- EXP-??? は started_at から 10 日超、そろそろ /nsm-experiment measure を実行
## 次の実験候補(rubric 順)
1. [加重 2.7] title 改善: ...
2. [加重 2.0] description 改訂: ...
### 提案アクション
- Must: 候補 1 を /nsm-experiment start で開始
- Should: 候補 2 を backlog に追加(experiments.json に proposed で残す)
取得元の優先順位:
- 既定: CI がコミットした
data/{ga4,gsc}/reports/スナップショットを読む(creds 不要) - 任意: creds(.env.local の GOOGLE_SERVICE_ACCOUNT_KEY_PATH / GA4_PROPERTY_ID)+ 外部到達性が 両方ある環境のみライブ fetch 可。会社 PC のプロキシ配下では不可
- スナップショットも揃わない真のデータ欠損時のみ「NSM セクション: スキップ(データ未取得)」と記録。 creds 未設定そのものは「計測基盤未整備」ではない(基盤は CI 側で稼働)
Agent C2: オープンの改善タスク
調査方法:
- 前週の `.claude/todo/weekly.md` の未完了項目(継続タスク。task-queue.json は廃止)
- `.claude/state/improvements/psi-*.md` の直近 7 日分(performance-auditor の改善候補レポート)
- 違反パターン別(LCP 肥大・CLS 発生等)の Critical / High 候補
分析項目:
- 前週から継続している項目 — 2 週以上の継続は Must 候補
- priority: high の改善候補は件数多くても上位 2-3 件を Should に入れる
- 同一 URL に複数タスクがある場合はまとめて 1 タスク化
出力形式: 「## オープンの改善タスク」セクションとして以下構造で:
## オープンの改善タスク
### Critical(前週から継続 または LCP/CLS 大幅超過)
| 対象 | 内容 | 継続 | 対応方針 |
|---|---|---|---|
| /docs/xxx | LCP 4.2s | 2 週 | Hero 画像 priority 指定 |
### High(PSI 改善候補から)
| 候補 | 対象 URL | 改善パターン |
|---|---|---|
これらを Phase 3 の Must / Should 候補として組み込む。
Agent D: トレンド・検索需要
調査項目:
- 土木系資格試験の日程(施工管理技士: 6月・11月、技術士: 7月・10月)
- 季節性の需要変動(試験前の学習需要増)
- 関連ニュース(インフラ、防災、建設業界)
出力形式: 「今週のトレンド機会」「試験シーズンとの関連」
Phase 2: 戦略分析
エージェントの結果を統合し分析する:
- KPI との距離: 目標に対する現在地
- ギャップ: 計画と実行の乖離
- 機会: 季節性・トレンドに応じた施策
- リスク: 放置すると悪化すること
Phase 3: 優先度提案
選定基準(タスクを Must/Should/Could に振るときの判断軸。この3点を満たさないものは格下げする):
- 収益・PV に直結するか — 「技術的に面白い」だけのタスクを Must に入れない
- 前週と同じ失敗の繰り返しでないか — 前週の計画・申し送りと照合する
- 今週やらないと機会損失か — 試験シーズン・受験期などのタイミング依存を優先
Must(必ずやる: 2-3件)
- 各タスクに: 理由, 成功基準, 推定工数(S/M/L)
Should(できればやる: 2-3件)
Could(余力があれば: 1-2件)
Phase 4: 出力(週次 PDCA md に追記)
生成した markdown を、同週の docs/reviews/weekly/YYYY-Www.md に「---」区切りで追記する。
# /weekly-review が先に docs/reviews/weekly/YYYY-Www.md を作成している前提
PDCA_FILE=docs/reviews/weekly/YYYY-Www.md
{
echo ""
echo "---"
cat /tmp/weekly-plan-section.md
} >> "$PDCA_FILE"
docs/reviews/weekly/YYYY-Www.md が存在しない場合は計画のみで新規作成してよい(この場合ファイル冒頭に # 週次 PDCA YYYY-Www の H1 を追加)。
出力フォーマット(週次 PDCA md の追記セクション)
分量バジェット(真実源: docs-markdown-style.md「長さの既定」): 各表は上位 5 行+「他 N 件」。タスクの理由は 1〜2 文。批判的レビューは最大 4 点。 該当ゼロのセクションは「なし」の 1 行で閉じ、見出しごと空欄で残さない。 検出と表示は別: 閾値違反は全件抽出したうえで、載せきれない分は件数と参照先を必ず書く。
## 来週の計画
### 前週の振り返り (W-1)
| タスク | 分類 | 状態 | メモ |
|---|---|---|---|
## 現状サマリー
| 指標 | 現在値 | 目標 |
|---|---|---|
| 公開ページ数 | N | — |
| 推定月間 PV | N | — |
## トレンド機会
| トレンド | 関連コンテンツ | アクション |
|---|---|---|
## 今週の実験
<!-- Agent C が experiments.json と nsm-experiment の rubric 評価から自動生成。
running / measuring / 新規 start 候補 を一覧で表示。 -->
| ID | title | status | 次のアクション |
|---|---|---|---|
## オープンの改善タスク(前週からの継続)
<!-- Agent C2 が前週 .claude/todo/weekly.md の未完了項目と
.claude/state/improvements/psi-*.md から生成。
Must/Should 候補の根拠となる。 -->
### Critical(前週から継続)
| 対象 | 内容 | 継続 |
|---|---|---|
### High(今週対応候補)
| 候補 | 対象 URL | 改善パターン |
|---|---|---|
## 今週のタスク
### Must
1. **タスク名** [S/M/L]
- 理由:
- 成功基準:
### Should
### Could
## 批判的レビュー
> Phase 3 の選定基準(収益直結か/前週の繰り返しでないか/今週やらないと機会損失か)で
> 引っかかった点を、最大 4 点まで書く。無ければ節ごと省略する。
## 次週への申し送り
運用ルール
- 毎週金曜に実行(/weekly-review 直後に同日連続実行)
- 前週の計画ファイルが存在する場合、自動で振り返りを生成する
- 計画ファイルは蓄積する(削除しない)
参照
.claude/skills/management/weekly-review/SKILL.md— 週次レビュー.claude/skills/management/nsm-experiment/SKILL.md— 実験ライフサイクル管理.claude/skills/management/nsm-experiment/references/playbook.md— 実験パターン.claude/skills/management/nsm-experiment/references/rubric.md— 実験優先順位.claude/scripts/snapshot-weekly-metrics.mjs— Phase 0 スナップショット.claude/scripts/lib/metrics-reader.mjs— NSM 計測本体.claude/skills/management/nsm-experiment/references/definition.md— NSM 定義