Skip to content

fix: update stale docs, action yaml validation, and promote design skills#950

Merged
s977043 merged 1 commit into
mainfrom
fix/docs-and-action-quality
May 30, 2026
Merged

fix: update stale docs, action yaml validation, and promote design skills#950
s977043 merged 1 commit into
mainfrom
fix/docs-and-action-quality

Conversation

@s977043

@s977043 s977043 commented May 30, 2026

Copy link
Copy Markdown
Owner

Summary

Codex が指摘した3件を対応。

変更内容

ドキュメント陳腐化修正

Action バグ修正

  • runners/github-action/action.ymloutput_format バリデーション正規表現に yaml を追加(ドキュメントに記載済みだが検証で弾かれていた)

デザインスキル昇格

  • rr-midstream-design-token-enforcement-001 — golden 4件生成、recommended: true に昇格
  • rr-midstream-design-system-component-reuse-001 — golden 4件生成、recommended: true に昇格

Test plan

  • npm test — 1113 tests pass
  • skills:validate — pass
  • lint-staged — pass

🤖 Generated with Claude Code

…ills

docs/review/troubleshooting.md:
- Update exec --plan note: PR #935 (v0.68.0) now invokes generateReview,
  findings are real (not always [])

docs/development/execution-context-contract.md:
- Add PR #935 addenda to replay contract section (Stage 3 now invoked)

pages/reference/plangate-cli-roadmap.md:
- Mark public entrypoint row as implemented (v0.68.0+); review
  plan/exec/verify are wired in src/cli.mjs

runners/github-action/action.yml:
- Fix output_format validation regex: add yaml to allowed values
  (documented but previously rejected)

skills: promote design-token-enforcement and design-system-component-reuse
- Add golden outputs for all 4 fixtures (rubric verified)
- Flip recommended: false → true in registry.yaml

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@vercel

vercel Bot commented May 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ai-review-kit Ready Ready Preview, Comment May 30, 2026 11:07pm

@github-actions

Copy link
Copy Markdown
Contributor

River Reviewer

  • フェーズ: midstream
  • LLM: skipped (dry-run enabled)
  • Planner: off
  • Impact tags: none
  • 変更ファイル数: 2
  • トークン見積もり: 686

選択されたスキル (0)

  • none
スキップされたスキル (90)
  • adversarial-review: routing skill: not an executable review skill
  • river-reviewer-architecture: routing skill: not an executable review skill
  • river-reviewer-code: routing skill: not an executable review skill
  • river-reviewer-performance: routing skill: not an executable review skill
  • river-reviewer-security: routing skill: not an executable review skill
  • river-reviewer-testing: routing skill: not an executable review skill
  • river-reviewer: routing skill: not an executable review skill
  • rr-downstream-review-policy-standard-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-downstream-coverage-gap-001: phase mismatch: downstream !== midstream; applyTo did not match any changed file; missing inputContext: tests
  • rr-downstream-flaky-test-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-downstream-test-existence-001: phase mismatch: downstream !== midstream; applyTo did not match any changed file; missing inputContext: tests
  • rr-downstream-test-naming-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-downstream-test-plan-review-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-downstream-test-review-sample-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-a11y-accessible-name-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-design-system-component-reuse-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-design-token-enforcement-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-independent-review-synthesis-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-modern-web-a11y-interactive-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-modern-web-browser-compat-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-modern-web-performance-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-modern-web-semantic-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-nextjs-app-router-boundary-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-review-policy-standard-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-agent-skill-bridge-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-api-compatibility-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-config-json-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-gh-address-comments-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-hello-skill-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-i18n-unused-key-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-loading-state-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-logging-observability-001: applyTo did not match any changed file
  • rr-midstream-logic-torturing-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-normalization-consistency-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-nullability-contract-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-review-automation-boundary-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-review-comment-triage-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-security-basic-001: applyTo did not match any changed file
  • rr-midstream-suppression-feedback-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-type-driven-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-typescript-nullcheck-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-typescript-strict-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-war-game-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-midstream-code-quality-sample-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-review-policy-standard-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-nextjs-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-php-laravel-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-react-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-remix-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-unit-python-pytest-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-unit-ts-jest-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-test-code-vue-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-adr-decision-quality-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-api-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-api-versioning-compat-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-boundaries-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-diagrams-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-risk-register-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-traceability-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-validation-plan-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-availability-architecture-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-bounded-context-language-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-cache-strategy-consistency-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-capacity-cost-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-change-communication-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-context-budget-tuning-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-create-plan-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-data-flow-state-ownership-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-data-model-db-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-dr-multiregion-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-eval-driven-skill-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-event-driven-semantics-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-external-dependencies-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-failure-modes-observability-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-integration-contracts-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-migration-rollout-rollback-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-multitenancy-isolation-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-openapi-contract-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-operability-slo-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-plangate-exec-conformance-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-plangate-gc-deterministic-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-plangate-plan-integrity-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-plangate-rule-promotion-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-plangate-verification-audit-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-pr-template-qa-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-pre-mortem-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-requirements-acceptance-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-security-privacy-design-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-trust-boundaries-authz-001: dry-run: LLM必須スキル(ヒューリスティック未対応)
  • rr-upstream-architecture-sample-001: dry-run: LLM必須スキル(ヒューリスティック未対応)

優先度サマリー

  • P1 (must fix before merge): 0 件

  • P2 (should fix or waive): 1 件

  • P3 (recommended improvement): 0 件

  • P4 (informational): 0 件

  • 抑制済み: 1 件 (主な理由: low_confidence(1))

スコア (参考値)

結果(スコア): 96/100
判定: human-review-recommended

内訳:

  • 可読性: 100/100
  • 拡張性: 100/100
  • パフォーマンス: 100/100
  • セキュリティ: 100/100
  • 保守性: 80/100

スコアは severity と axis から決定論的に算出された 参考値 (derived: true)。HITL レビューと併用してください。

指摘

  • docs/development/execution-context-contract.md:156
    • Finding: マッチするスキルがなく自動指摘を生成できなかった
    • Evidence: LLM: dry-run enabled
    • Impact: 重要なリスクを見落とす可能性がある
    • Fix: このファイル種別に対応するスキルを追加するか、手動レビューを実施する
    • Severity: warning
    • Confidence: low

1 件の指摘を抑制しました (主な理由: low_confidence(1))

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

本プルリクエストでは、--plan リプレイ機能の仕様変更に伴うドキュメントの更新、メインCLIのロードマップ更新、GitHub Actionへの yaml 出力フォーマットの追加、および新規デザインスキルの追加と有効化が行われています。レビューでは、GitHub Actionにおける yaml 出力時のPRコメント表示崩れや出力パス未定義の問題、およびゴールデンファイル内で非標準の TokenSuggestion: ラベルが使用されていることでパーサーが正常に動作しない懸念が指摘されており、これらへの対応が推奨されています。

# Validate output format
output_fmt="${RIVER_OUTPUT_FORMAT}"
if [[ ! "${output_fmt}" =~ ^(text|markdown|json)$ ]]; then
if [[ ! "${output_fmt}" =~ ^(text|markdown|json|yaml)$ ]]; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

output_format に yaml が追加されましたが、現状のワークフローのロジックでは yaml 出力時にいくつかの問題が発生します。

  1. 誤った拡張子とPRコメントへの投稿:
    output_fmt が json 以外の場合(yaml を含む)、出力は ${RUNNER_TEMP}/river-reviewer-comment.md に書き込まれ、Post PR comment ステップによってそのまま PR コメントとして投稿されてしまいます。YAML 形式のテキストがそのまま Markdown として投稿されると、インデントや記号(- や #)が Markdown のリストやヘッダーとして誤ってレンダリングされ、表示が崩れてしまいます。
  2. 出力パスの欠如:
    JSON 出力時には json_path というアウトプットが提供されますが、YAML 出力時には yaml_path のような構造化データを後続ステップで利用するためのアウトプットが定義されていません。

推奨される修正案:
action.yml 全体で yaml を json と同様に構造化データとして扱い、PR コメントへの投稿をスキップし、yaml_path を出力するように変更することを検討してください。

Comment on lines +1 to +21
Finding: Hardcoded hex color `#3B82F6` used directly in inline style prop instead of a design token or CSS custom property.
Evidence: src/components/PrimaryButton.tsx:11 — `style={{ color: '#3B82F6', padding: '16px', fontSize: '14px' }}`
TokenSuggestion: Replace with Tailwind utility class `text-blue-500`, or CSS custom property `var(--color-primary)` if a semantic token exists in the project.
Severity: minor
Confidence: high

---

Finding: Hardcoded pixel padding `'16px'` used in inline style prop instead of a spacing token.
Evidence: src/components/PrimaryButton.tsx:11 — `style={{ color: '#3B82F6', padding: '16px', fontSize: '14px' }}`
TokenSuggestion: Replace with Tailwind utility class `p-4` (which maps to 16px in the default Tailwind scale).
Severity: minor
Confidence: high

---

Finding: Hardcoded font size `'14px'` used in inline style prop instead of a typography token.
Evidence: src/components/PrimaryButton.tsx:11 — `style={{ color: '#3B82F6', padding: '16px', fontSize: '14px' }}`
TokenSuggestion: Replace with Tailwind utility class `text-sm` (which maps to 14px in the default Tailwind scale), or `var(--font-size-sm)` if a CSS custom property exists in the project.
Severity: minor
Confidence: high

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

このゴールデンファイルでは TokenSuggestion: というカスタムラベルが使用されていますが、src/lib/review-engine.mjs のシステムプロンプトやパーサー(parseFindingMessage)が期待する標準のラベルは Fix: または Suggestion: です。

TokenSuggestion: を使用すると、パーサーが提案(suggestion)を正しく抽出できず、構造化データ(finding.suggestion)が null になってしまう可能性があります。

一貫性とパースの正確性を保つため、標準の Fix: または Suggestion: に変更することを推奨します。

@github-actions

Copy link
Copy Markdown
Contributor

PlanGate Review

  • decision: pass
  • plan status: skipped-by-label
  • exec status: skipped-by-label

PlanGate review decision: pass

severity count policy
critical 0 fail
major 0 fail-if-required / warn
minor 0 comment-only
info 0 skipped

ポリシー: critical=fail / major=fail-if-required (warn) / minor=comment-only / info=skipped — spec: pages/reference/cli-review-plan-spec.md

@s977043 s977043 merged commit ae49569 into main May 30, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant