consult

star 0

既存システムの課題・移行・リファクタについて相談し、選択肢の整理から実行・PRまでを行う。/craft で「既存システムの相談」を選択したときに実行される。

agaemo By agaemo schedule Updated 6/6/2026

name: consult description: 既存システムの課題・移行・リファクタについて相談し、選択肢の整理から実行・PRまでを行う。/craft で「既存システムの相談」を選択したときに実行される。

consult(相談フロー)

「なんか遅くなってきた」「認証まわりが複雑になってきた」など、 現状のシステムへの漠然とした課題感から相談できる。 移行先が決まっていなくても、移行しない結論になっても構わない。

SKILL_DIR = このSKILL.mdが存在するディレクトリの2階層上の絶対パス
  # このファイルを /Users/alice/.claude/skills/craft/flows/consult/SKILL.md で読んだ場合
  # → SKILL_DIR = /Users/alice/.claude/skills/craft

手順

ステップ 1: 相談

ASK USER:
  現在のシステムについて、気になっていることや困っていることを
  自由に話してください。

WAIT_FOR: ユーザーの話

# テスト・品質・QAに関する相談であれば qa フローに委譲する
IF 相談内容がテスト・品質・QA基盤・カバレッジに関するもの:
  READ {SKILL_DIR}/flows/qa/SKILL.md
  FOLLOW: そこに記述されたすべての手順を実行する
  STOP

IF 話が漠然としている・追加情報が必要:
  ASK: 状況を深掘りする質問を1件ずつ行う
    例: 「それはどのくらいの頻度で起きていますか?」
        「現在の構成はどうなっていますか?」
  REPEAT: 課題の輪郭が掴めるまで繰り返す

ステップ 2: 現状調査

READ: コードベースを調査し、相談内容に関連する箇所を把握する
  調査手順:
    1. Glob / Bash(find) でプロジェクト構造・依存パッケージ(package.json 等)を把握する
    2. 課題に関係するファイルを Read で読む(深さは課題の複雑度に応じて調整)
    3. Bash(grep) で関連するシンボル・エラーメッセージを横断検索する
  確認すべき観点:
    - 課題に関係するファイル・設定・依存パッケージのバージョン
    - テストカバレッジの有無(test/ ディレクトリ・package.json の test スクリプト)
    - 関連する複雑度・技術的負債の箇所

REPORT: 調査結果をユーザーに共有する
  - 課題の根本原因として考えられること
  - 影響を受けている範囲

ステップ 3: 選択肢の整理・提案

ANALYZE: 課題と調査結果をもとに、取りうる選択肢を整理する

PRESENT: 以下の形式で選択肢を提示する

  ## 現状の課題
  [課題を1〜2文で整理]

  ## 選択肢

  ### A. [移行・刷新する場合]
  - 内容: FROM → TO
  - メリット: ...
  - デメリット・リスク: ...
  - 工数感: ...

  ### B. [リファクタ・改善で対応する場合]
  - 内容: ...
  - メリット: ...
  - デメリット・リスク: ...
  - 工数感: ...

  ### C. [今は対応しない場合]
  - 理由: ...
  - 今後どうなるか: ...

  ## 推奨
  [状況をふまえたおすすめとその理由]

GATE: ユーザーの判断を仰ぐ
  → 今は対応しない・相談だけで終わる選択も同等に扱う

ステップ 4: 実行(移行・刷新を選んだ場合のみ)

IF ユーザーが「今は対応しない」「相談だけ」を選択:
  STOP: 選択肢の整理・推奨の提示をもって完了とする

IF ユーザーが移行・リファクタを選択:

  PLAN:
    作業をフェーズに分割する。各フェーズは以下の条件を満たすこと:
      - 独立してテスト・検証できる単位
      - ロールバック手順が明確
      - 前のフェーズが成功しないと次に進まない

    計画フォーマット:
      ## 実行計画

      ### フェーズ 1: [名称]
      - 変更内容: ...
      - 変更ファイル: ...
      - 検証方法: ...
      - ロールバック: ...

      ### フェーズ N: ...

      ### 残作業(手動対応が必要なもの)
      - ...

  GATE: 計画の承認を得る
    → 修正要望があれば計画を更新して再提示する
  PROHIBITED: 承認前に実行フェーズへ進むこと

  ASK USER:
    実行にあたって以下を確認します。
    1. GitHub issue を作成しますか?(変更の背景・経緯を記録)
    2. 完了後に PR を作成しますか?
    ※ サンプル・学習目的など「ローカル作業のみ」の場合は両方不要で構いません。

  WAIT_FOR: ユーザーの回答

  CREATE_ISSUE = ユーザーが issue 作成を希望した場合
  CREATE_PR    = ユーザーが PR 作成を希望した場合
  LOCAL_ONLY   = ユーザーが issue も PR も不要と回答した場合

  IF CREATE_ISSUE:
    READ {SKILL_DIR}/flows/consult/issue-template.md  ← issue本文フォーマットを確認してから作成する
    gh issue create \
      --title "[consult] <課題を端的に>" \
      --body "$(issue-template.md のフォーマットに従って記載)"
    ISSUE_NUMBER = 作成した issue の番号
    ASSERT: ISSUE_NUMBER が取得できたこと(gh コマンドが成功したこと)
    IF FAILED: REPORT "issue 作成に失敗しました。gh auth status を確認してください。" → STOP
  ELSE:
    ISSUE_NUMBER = なし

  # ブランチは issue・PR の有無に関わらず常に作成する(変更の分離のため)
  IF git remote がない(ローカルのみリポジトリ):
    RUN: DEFAULT_BRANCH=$(git symbolic-ref HEAD | sed 's@^refs/heads/@@')
    NOTE: リモートなしのため pull はスキップ
  ELSE:
    RUN: DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
    RUN: git checkout ${DEFAULT_BRANCH} && git pull
    IF 失敗:
      REPORT: pull に失敗した旨を伝え、コンフリクトや認証問題がないか確認を促す
      STOP
  ENDIF

  BRANCH = consult/<slug>
    例: consult/sqlite-to-mysql、consult/auth-refactor
  RUN: git checkout -b {BRANCH}
  ASSERT: ブランチが作成されて切り替わっていること(`git branch --show-current` = {BRANCH})
  IF FAILED: REPORT "ブランチ作成に失敗しました。既存ブランチと競合している可能性があります。" → STOP

  FOREACH phase IN 計画:
    REPORT: 「フェーズ N を開始します」と通知
    EXECUTE: そのフェーズの変更を適用する
    VERIFY:
      ビルド・lint・型チェックのうち利用可能なものを実行する
    IF 検証失敗:
      ROLLBACK: git checkout -- .
      REPORT: 失敗内容と原因をユーザーに報告する
      STOP: ユーザーの判断を仰ぐ
    GATE: 次フェーズへの進行承認を得る

ステップ 5: 完了・PR 作成(実行した場合のみ)

IF CREATE_PR == false:
  REPORT: 変更内容のサマリーを表示して完了とする
  STOP

READ {SKILL_DIR}/flows/consult/pr-template.md  ← PR本文フォーマットを確認してから作成する

CREATE PR:
  タイトル: [変更内容を端的に](例: migrate: SQLite → MySQL)
  本文: pr-template.md のフォーマットに従って記載
    IF ISSUE_NUMBER != なし: 最後に "Closes #ISSUE_NUMBER" を追加

  # PR 作成後にレビュースキルで自動レビューを実行する
  PR_NUMBER = 作成した PR の番号
  INVOKE SKILL: /review {PR_NUMBER}  ← Skill ツールで review スキルを呼び出す(bash RUN ではない)

  # デフォルトブランチに戻す
  RUN: git checkout {DEFAULT_BRANCH}
Install via CLI
npx skills add https://github.com/agaemo/dotfiles --skill consult
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator