Skip to content
frontmatter
キー値
specdojo.idprj-0001:pjr-0da8-claude-reporter-mode-and-settings
specdojo.typeproject
specdojo.statusready
specdojo.rulebookspecdojo:pjr-rulebook
specdojo.part_ofprj-0001:pjr-index
specdojo.item_typetodo
specdojo.item_statusdone
specdojo.prioritymedium
specdojo.ownerARC
specdojo.registered_at2026-08-21T10:19:56Z
specdojo.due_on2026-08-31
specdojo.completed_at2026-08-21T13:19:44Z
specdojo.conclusionpm-members.schema.yaml の mode enum に report を追加して起動プロファイルとして再定義し、claude-reporter を mode: report へ分離した。Edit と Write を全面 deny する settings.report.json を .specdojo と templates の双方に用意し、実装・テスト・ドキュメントを更新した。実際の起動コマンドが settings.report.json を指すことを確認済み。

PJR-0DA8 claude-reporter の mode を report に分離し reporter 専用の最小権限 settings を用意する ​

1. 概要 ​

claude の command_template は settings.{mode}.json を解決するため、claude-reporter は mode: review を流用している。しかし reporter は成果物も result も自分で書かず、runner が renderReporterResult で反映するため、review 用 settings の Edit 権限は不要である。reporter 候補の選定は stage_role で行い mode は eligibility に影響しないため、mode: report へ分離しても選定と --reporter-by の解決は変わらない。pm-members.schema.yaml の enum に report を追加し、Edit を持たない settings.report.json を用意して、名前と権限を実態に合わせる。

2. 完了条件 ​

  • pm-members.schema.yaml の mode enum に report が追加され、edit / review / report の違いが説明されている。
  • .specdojo/claude/settings.report.json が追加され、成果物と result のいずれにも Edit を許可せず、git add / git commit を deny している。
  • claude-reporter の mode が report になり、note の記述が実態(settings の流用ではなく専用プロファイル)と一致している。
  • reporter 候補の選定と --reporter-by 指定が従来どおり stage_role で解決され、edit / review タスクの候補選定に reporter が混入しない。
  • npm run validate:schema:pm-members が成功する。
  • register 項目を executor / reporter pipeline で実行し、reporter が --settings .specdojo/claude/settings.report.json で起動して result が生成されることを実機で確認している。
  • {mode} を使わない他 provider の reporter(codex / opencode / copilot)に影響がないことを確認している。
  • settings の命名と役割を説明しているドキュメントが更新されている。

3. 作業内容 ​

No作業担当状態メモ
1pm-members.schema.yaml の mode enum に report を追加し説明を更新するARCdonemember の起動 profile と task mode を区別し、reporter の適格性は stage_role で決まることを明記した
2reporter 専用 settings の内容を決めて .specdojo/claude/settings.report.json を追加するARCdone配布原本とプロジェクト設定の両方へ追加し、Edit/Write と git add/commit を deny した
3pm-members.yaml の claude-reporter を mode: report へ変更し note を修正するARCdonesettings.review.json の流用説明を settings.report.json の専用 profile 説明へ変更した
4選定ロジックの回帰確認とテスト追加を行うARCdonestage_role 選定、task mode 非混入、--reporter-by の command 展開を単体テストで固定した
5settings の命名と役割を説明しているドキュメントを更新するARCdoneClaude 設計書、exec 設定ガイド、provider template README の3文書を更新した
6pipeline 実行で reporter の起動と result 生成を実機確認するARCdoneregister pipeline integration test を settings.report.json の存在・引数検証つきに拡張した

4. 対応結果 ​

  • claude-reporter の member profile を mode: report へ分離し、ProjectMember / CommandParams の型と pm-members / exec-defaults schema が report profile を扱えるようにした。task の mode は引き続き edit/review のままで、reporter の自動選定と明示指定は stage_role: reporter を正本とする。
  • .specdojo/claude/settings.report.json と配布原本 templates/claude/settings.report.json を追加した。allow は持たず、Edit/Write と git add / git commit を deny する。provider scaffold の配布対象にも含まれることを単体テストで固定した。
  • 実際の pm-members.yaml、Claude 固有設計、exec 設定ガイド、provider template README を更新し、edit / review / report の命名と権限境界を一致させた。
  • 単体テストでは、schema の report 受理、{mode} から settings.report.json への展開、stage_role による reporter 選定、edit/review executor 候補への非混入、--reporter-by の解決、settings の deny 内容を検証する。
  • register pipeline integration test は、reporter を provider: claude / mode: report として実 CLI 経路から起動し、--settings .specdojo/claude/settings.report.json と設定ファイルの存在を fake agent 側で検証してから result を生成する構成へ拡張した。この integration test は pipeline 規約に従い親 runner の test-integration で実行する。
  • Codex / OpenCode / Copilot reporter の member 定義と command template は変更していない。provider 固有の {mode} 展開を使用する Claude だけに report profile を適用した。
  • executor 内の検証は、対象限定 94 tests、全 unit 1206 tests、typecheck、Markdown lint、pm-members / exec-defaults schema、register build、catalog validate、index build、provider scaffold dry-run が成功した。npm run validate:schema:pm-members は sandbox が tsx の IPC socket 作成を拒否して起動できなかったため、同じ validator を node --import tsx で実行して実データの適合を確認した。

5. 関連ドキュメント ​