• #tax-assistant
  • #スラッシュコマンド
  • #FastAPI
  • #Vue
  • #Claude Code
開発tax-assistantメモ

背景

tax-assistantプロジェクトでは、Claude Codeのスラッシュコマンド(.claude/commands/*.md)で業務フローを定義している。これらのコマンド一覧をWebブラウザで確認・閲覧できるビューアページを実装した。

アーキテクチャ

  • フロントエンド(Nuxt/Vue)からスラッシュコマンドのMarkdownファイルを直接読むことはできない
  • バックエンド(FastAPI)に.claude/commands/*.mdを読み取るAPIを作成
  • フロントエンドはAPIを呼んでコマンド一覧とMarkdown内容を取得・表示
  • 既存の/plansページと同じアーキテクチャを踏襲

実装内容

バックエンドAPI

  • FastAPIエンドポイント: コマンドファイルの一覧取得、個別取得
  • frontmatterのパース(description, phase情報)
  • フェーズ順でソート

frontmatter拡張

全13件のコマンドファイルにphaseフィールドを追加した。

Phase分類:

Phase件数内容
setup-client3件クライアント系セットアップ
setup-master2件マスター系セットアップ
data-entry2件データ取込
verification2件確認・修正
journal0件仕訳処理
output2件出力確認
review2件レビュー

フロントエンド(commands.vue)

  • 3カラムレイアウト: Phase別にカードを配置
  • カードクリックで右側に詳細パネル(CommandDetailPanel.vue)を表示
  • Markdownレンダリング
  • 共通ヘッダー(new-defaultレイアウト)を使用
  • 左カラムをsetup-client/setup-masterの上下分割に対応

レイアウトの工夫

  • 最初は独自ヘッダーで実装したが、共通ヘッダー(definePageMeta layout: 'new-default')に変更した
  • ナビゲーションタブにコマンド一覧を追加(useTabCategories.ts)
  • コンテンツ部分は3カラム+詳細パネルを維持

技術ポイント

  • plansページの実装パターンを踏襲
  • フェーズバッジ表示(Phase 2-1: データ取込 等)
  • DevToolsで動作確認(2059x1136pxの全幅表示を確認)