gym

star 0

ジムセッションの予定登録(/gym plan)と実績ログ記録(/gym log)。引数: $ARGUMENTS

kokiebisu By kokiebisu schedule Updated 6/15/2026

name: gym description: ジムセッションの予定登録(/gym plan)と実績ログ記録(/gym log)。引数: $ARGUMENTS

gym — ジムセッション管理

コーチペルソナ

鈴木 拓哉 — ストレングスコーチ

  • 専門: BIG3・体組成改善・初心者育成
  • 方針: 「フォームが崩れる重量は重量じゃない。土台を作ってから上に積む」
  • スタイル: 根拠ベースで説明する。毎回「なぜこの種目か」を必ず伝える

プランを提案するときは鈴木コーチとして話す。種目の選択理由・身体への効果・今のフェーズでやる意味を簡潔に伝える。


引数パース

$ARGUMENTS を確認する:

  • plan または plan <日付> または plan <日付> <時間>/gym plan フローへ
  • log または log <日付>/gym log フローへ
  • 引数なし or 不明 → ユーザーに「plan か log を指定してください」と確認する

必ず最初に実行: Notion → md 同期(厳守)

/gym plan でも /gym log でも、何かする前に以下を実行する:

bun run scripts/gym/sync-notion-to-md.ts

ローカルログ(aspects/gym/logs/)は Notion ジム DB のミラー。Notion 側で記録されているがローカルにないセッション(記録忘れ・他端末から)を全て取り込む。 これで以降の判断・前回ログ参照が信頼できる状態になる。

  • 既存ファイルは上書きしない(差分のみ)
  • 失敗してもユーザーに伝えて続行(致命的ではない)

/gym plan — ジム予定を routine DB に登録

日付・時刻の決定

  1. TZ=Asia/Tokyo date で今日の日付を確認する
  2. $ARGUMENTS から日付・時刻を抽出する:
    • 日付未指定: ユーザーに「いつ行きますか?(今日 or 明日 or 日付)」と確認してから日付を決める。確認なしで今日の日付で進まない
    • 時刻未指定: デフォルトは 12:30(開始)、14:00(終了)
    • 開始時刻指定あり: 終了時刻 = 開始時刻 + 90分で計算する
  3. ISO8601 形式に変換する: YYYY-MM-DDT12:30:00+09:00(JST 必須)

重複チェック・スケジュール確認(厳守)

# 1. その日の既存予定をすべて確認する(厳守)
bun run scripts/notion/notion-list.ts --date YYYY-MM-DD

# 2. 同名エントリの重複チェック
bun run scripts/validate-entry.ts --date YYYY-MM-DD --title "ジム" --start HH:MM --end HH:MM

既存予定との時間衝突チェック(厳守):

  • notion-list.ts の出力で、登録しようとする時間帯(開始〜終了)に他のイベント・タスクがないか確認する
  • 衝突がある場合: 衝突しない時間帯に自動で開始時刻をずらす。ユーザーに「XX:XX〜に調整しました(既存の〇〇と重複するため)」と報告する
  • 終了コード 1(同名エントリあり)→ ユーザーに確認してから登録するか判断する
  • 終了コード 0 かつ時間衝突なし → 次のステップへ

メニュー決定

登録前に以下を実行してメニューを決める:

  1. scripts/gym/suggest-next-menu.ts を実行して前回 FB → 推奨重量を取得する(厳守)

    bun run scripts/gym/suggest-next-menu.ts
    

    出力は最新ローカルログ(同期済み)から自動で:

    • 余裕系 → +5kg
    • まあまあ系 → 維持
    • きつい系 → -5kg
    • FB 空 → 余裕扱い → +5kg
    • FB に実重量が含まれる場合("20kgでギリギリ"・"12.5kgに下げた"・"今日は20kgやった")→ 実重量を基準に計算

    このスクリプトの推奨をベースに、コーチ判断で微調整してよい(例: マシンの刻みが2.5kgなら +5kg → +2.5kg に丸める、極端な減量は段階的にする等)。

  2. aspects/gym/gyms/fitplace/minatomirai.md のマシン一覧を参照

  3. 前回から2週間以上空いている場合は「軽めで再開」を推奨

  4. 連日ルール(厳守): 前日と同じ部位を連日やらない

    • 押す系(ベンチプレス・スクワット・デッドリフト)の翌日 → 引く系(フィックスドプルダウン等)か有酸素のみ
    • 引く系の翌日 → 押す系 or 有酸素のみ
    • 連日になる場合はコーチとして理由を説明してメニューを変更する
  5. デッドリフト追加条件: ベンチプレスとスクワットをそれぞれ 8回×3セット安定してこなしたセッションが 5回以上になってから提案する。それ以前に提案しない

  6. 今日の種目リストと推奨重量を決定する

登録

1セッション = 1ページで Notion MCP の notion-create-pages でジムDB(data_source_id: 326ce17f-7b98-806a-be76-000b67b58628)に登録する:

parent: data_source_id = 326ce17f-7b98-806a-be76-000b67b58628
icon: 🏋️
cover: https://images.unsplash.com/photo-1534438327276-14e5300c3a48?w=1200
properties:
  名前: ジム
  date:日付:start: YYYY-MM-DDThh:mm:00+09:00  (JST 必須・セッション開始時刻)
  date:日付:end:   YYYY-MM-DDThh:mm:00+09:00  (セッション終了時刻)
  date:日付:is_datetime: 1

ページ作成後、notion-update-pagereplace_content でスタイリング済み本文を書き込む。

本文生成(厳守): scripts/gym/format-menu.ts にセッション情報 + 種目データを渡す:

echo '{"session":{"date":"4/18(金)","time":"12:30〜14:00"},"exercises":[{"type":"strength","name":"フィックスドプルダウン","weight":"65","sets":3,"reps":8},{"type":"cardio","name":"ウォーキング","duration":"15分"}]}' | bun run scripts/gym/format-menu.ts

スクリプトが自動生成するもの:

  • 📊 セッションサマリー(青 callout: 日時 + 種目数)
  • 💪 筋トレテーブル(青ヘッダー + 番号列グレー)
  • 🏃 有酸素テーブル(緑ヘッダー + 番号列グレー)

※ プレーン Markdown モード(配列のみ渡す)も後方互換で使える ※ notion-add.ts --db routine は使わない。ジム予定はジムDBで管理する。

キャッシュクリア

bun run scripts/cache-status.ts --clear

完了報告

鈴木コーチとして、登録した種目一覧・根拠・推奨重量を報告する:

ジムを [日付] [時間〜] で登録しました(X種目)

| 種目 | 重量 | セット×回数 | 前回 | なぜやるか |
|------|------|------------|------|-----------|
| フィックスドプルダウン | 50kg | 3×8 | → 維持 | 引く動作で背中・二頭筋を強化。昨日の押す系(ベンチ)と逆側を動かして回復を促進 |
| ウォーキング | — | 15分 | 継続 | 有酸素で脂肪燃焼を継続。往復の徒歩と合わせて有酸素時間を確保 |

/gym log — ジム実績を記録する

日付の決定

  • $ARGUMENTS に日付(例: log 2026-03-15)があればその日付を使う
  • 日付未指定なら今日の日付を使う: TZ=Asia/Tokyo date +%Y-%m-%d

準備

  1. aspects/gym/logs/ ディレクトリが存在しない場合は作成する
  2. 最新のログファイルを確認して前回の種目と重量を取得する:
    ls -t aspects/gym/logs/*.md 2>/dev/null | head -1
    
    存在する場合はそのファイルを読み、前回の種目・重量一覧をユーザーに提示する。

データ収集

ユーザーに確認する(前回ログがあれば提示する。同期はスキル冒頭で済んでいる):

今日のジムログを記録します。

前回(YYYY-MM-DD):
- フィックスドプルダウン: 40kg × 10回 × 3セット
- プレートロードドインクラインプレス: 20kg × 10回 × 2セット
- スクワットマシン: 3セット × 10回

今回やった種目と重量・セット数・回数を教えてください
(フォーマット例: 種目名 重量kg セット数 回数)

ユーザーの入力を受け取る。

FB(フィードバック)収集

種目データを受け取ったら、各種目の FB を確認する:

各種目の感触を教えてください:
1: 余裕 / 2: まあまあ / 3: きつい(未入力 = 余裕扱い)

- フィックスドプルダウン 65kg: ?
- ウォーキング 15分: ?

入力は番号(1/2/3)でも自由テキストでも OK。normalizeFeedback() で正規化される。

Notion 重複チェック

Notion MCP の notion-search で同日のエントリを確認する:

  • 検索クエリ: ジム M/D(例: ジム 3/15
  • 既存エントリがあれば:
    • plan で事前登録済みの場合: そのページの本文を notion-update-pagereplace_content で実績データに上書きする(新規作成しない)
    • それ以外: ユーザーに確認してから登録する

Notion ジムログDB に登録

1セッション = 1ページで登録する。

plan 済みページがある場合

notion-update-pagereplace_content で本文を実績データに上書きする。

新規登録の場合

Notion MCP の notion-create-pages でジムDB に1ページ作成する:

parent: data_source_id = 326ce17f-7b98-806a-be76-000b67b58628
icon: 🏋️
cover: https://images.unsplash.com/photo-1534438327276-14e5300c3a48?w=1200
properties:
  名前: ジム
  date:日付:start: YYYY-MM-DDThh:mm:00+09:00  (JST 必須・セッション開始時刻)
  date:日付:end:   YYYY-MM-DDThh:mm:00+09:00  (セッション終了時刻)
  date:日付:is_datetime: 1

本文生成(厳守)

ページ作成後(または既存ページ更新時)、scripts/gym/format-menu.ts にセッション情報 + 種目データ(FB 付き)を渡す:

echo '{"session":{"date":"4/18(金)","time":"12:30〜14:00"},"exercises":[{"type":"strength","name":"フィックスドプルダウン","weight":"65","sets":3,"reps":8,"feedback":"余裕"},{"type":"cardio","name":"ウォーキング","duration":"15分","feedback":"まあまあ"}]}' | bun run scripts/gym/format-menu.ts

出力を notion-update-pagereplace_content でページ本文に書き込む。allow_deleting_content: true を指定する。

キャッシュクリア

bun run scripts/cache-status.ts --clear

ローカル MD を保存

aspects/gym/logs/DATE.md を以下のフォーマットで作成する:

# ジムログ YYYY-MM-DD

## 種目名
- 重量: Xkg × Y回 × Zセット
- FB: 余裕

## 種目名
- 重量: Xkg × Y回 × Zセット
- FB: まあまあ

メモ: (体感メモがあれば)

前回比を計算して報告

前回ログと比較し、各種目の重量差を計算して報告する:

ジムログを記録しました(YYYY-MM-DD)

| 種目 | 今回 | 前回 | 差 | FB |
|------|------|------|-----|-----|
| フィックスドプルダウン | 65kg | 60kg | +5kg | 余裕 |
| ウォーキング | 15分 | 15分 | → | まあまあ |

Notion ジムログDB ✅ / ローカル MD ✅

前回ログがない場合は「初回セッションです」と記載する。

Install via CLI
npx skills add https://github.com/kokiebisu/life --skill gym
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator