Skip to content

CT-GT ガイドの完全移行とスタイル調整#76

Merged
myoshi2891 merged 34 commits into
mainfrom
dev
Jun 13, 2026
Merged

CT-GT ガイドの完全移行とスタイル調整#76
myoshi2891 merged 34 commits into
mainfrom
dev

Conversation

@myoshi2891

@myoshi2891 myoshi2891 commented Jun 11, 2026

Copy link
Copy Markdown
Owner

主な変更内容は以下の通りです。

  1. 全ガイドの移行完了とドキュメント同期
  • ISTQB CT-GT ガイドの移行: 最後の未移行ガイドであった「ゲームテスト (CT-GT) 完全ガイド」の Next.js 化が完了し、元の HTML/Markdown はアーカイブへ移動されました。
  • 進捗管理の更新: 全 34 ルート(ホームページ + 33 ガイド)の移行がすべて完了したことに伴い、docs/MIGRATION_PROGRESS.md および GEMINI.md が最終同期されました。
  1. スタイリングとレイアウトのブラッシュアップ
  • デザインテーマの適用: bdd-testing-guide に「サイバーフォレスト」テーマを適用するなど、各ページの視覚的な一貫性と質を向上させました。
  • レイアウト調整:
    • ユニットテスト: TDDサイクルの図解サイズ調整やテキスト溢れの修正。
    • E2Eテスト: POM(Page Object Model)コードブロックを横並びから縦並びに変更し、可読性を向上。
    • 受入テスト: ATDDサイクル図の重なり修正や、欠陥ライフサイクル図の調整。
    • AIテストガイド: 混同行列(Confusion Matrix)のレイアウト修正。
  • CSSの最適化: ページ固有のスタイルが全幅に広がってしまう問題の修正や、CSS変数名の命名規則(グローバル準拠)への修正、z-index の適正化を行いました。
  1. コード品質とアクセシビリティの修正
  • コードブロックの標準化: 変換ミスなどで崩れていたコードブロックを、プロジェクト標準の
    構造へ一括修正しました。
  • JSX/DOMエラーの解消: React での class 属性(正しくは className)の使用や、HTML のネスト違反、セキュリティリンクの属性不足などを修正しました。
  • アクセシビリティ向上: prefers-reduced-motion(視覚効果を減らす設定)への対応、テーブルセマンティクスの改善、aria-current の適切な設定などを行いました。
  1. テスト環境の整備
  • テストコードのクリーンアップ: 未使用の変数やインポートの削除、happydom-setup.ts の微調整、および Mock のシグネチャ(引数)の不整合を修正し、テストの安定性を高めました。

@netlify

netlify Bot commented Jun 11, 2026

Copy link
Copy Markdown

Deploy Preview for quality-assurance-studies ready!

Name Link
🔨 Latest commit 92aa38b
🔍 Latest deploy log https://app.netlify.com/projects/quality-assurance-studies/deploys/6a2d8693640204000815b2ab
😎 Deploy Preview https://deploy-preview-76--quality-assurance-studies.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

リリースノート

  • New Features

    • ギャンブル産業テスター(CT-GT)認定ガイドを追加しました
  • Bug Fixes

    • 複数のガイドでコードブロック表示と図解レイアウトを改善しました
  • Style

    • BDDテストガイドの視覚デザインを刷新し、複数ガイドの配置とグリッドレイアウトを最適化しました
  • Tests

    • テストスイートを154仕様に拡張し、全34ガイドへの対応を完了しました

Walkthrough

CT-GT ガイドの新規追加と 33 個の既存ガイド UI 刷新。NavBar・スタイル・ナビゲーション登録・テスト・ドキュメント更新でサイト移行完成、並びに BDD/AI/受理テスト等のグリッド・CSS・DOM・アクセシビリティ向上とテスト import 整理。

Changes

CT-GT ガイド移行完成

Layer / File(s) Summary
CT-GT NavBar コンポーネントと専用 CSS デザイン実装
app/istqb-ct-gt-complete-guide/NavBar.tsx, app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
useEffect で section[id] を IntersectionObserver 監視し activeId を管理する NavBar コンポーネント、及び .istqb-ct-gt-page 配下をネオン調で統一するカスタムプロパティ・背景オーバーレイ・スティッキーナビ・ヒーロー・TOC・カード・テーブル・コード・ステップ・アラート・Good/Bad 比較・アニメーション・レスポンシブを備えた 1097 行の CSS。
CT-GT のナビゲーション・E2E テスト・カバレッジ登録
lib/navigation.ts, e2e/pages.ts, docs/coverage-dashboard.html, tests/istqb-ct-gt-complete-guide/page.test.tsx, tests/lib/navigation.test.ts
NAV_ITEMS に CT-GT ガイド項目を追加、E2E pages 配列に /istqb-ct-gt-complete-guide マッチ用 RegExp を追加、EXPECTED_PAGE_COUNT を 33 → 34 に更新、coverage dashboard pages 配列に CT-GT ページを追加、テストで IntersectionObserver をモック化して主要見出し・ナビゲーション・セクション見出しの描画確認、NAV_ITEMS 件数期待値を 34 に更新。
CT-GT テスト実装と移行完了ドキュメント同期
docs/MIGRATION_PROGRESS.md, CLAUDE.md, GEMINI.md
MIGRATION_PROGRESS・CLAUDE.md・GEMINI.md の HEAD ハッシュを fdc0ea1 → e80058b に更新、「全ガイド移行完了」宣言とルート数(ホーム+34 ガイド)を反映、CT-GT 関連エントリ(CSS・page.tsx・NavBar.tsx)をアーキテクチャ構成に追記、テスト数を 151 specs → 154 specs に更新、次回セッション再開プロンプトの指示文を全34ルート移行完了前提に変更。

既存ガイド UI・表示構造・アクセシビリティ改善

Layer / File(s) Summary
BDD ガイド全面デザイン再構成
app/bdd-testing-guide.css, app/bdd-testing-guide/page.tsx
CSS カスタムプロパティ(色・グロー・ネオン・文字・枠・角丸・遷移)を導入、背景(ドットグリッド・スキャナー風オーバーレイ)・ヒーロー(グラデーション文字+text-glow-pulse アニメーション)・TOC(ガラス風カード+ドット展開ホバー)・セクション見出し(ネオンバー+グラデーション)・カード・ステップ・コールアウト・テーブル(ガラス背景+行ホバー)・コード(言語ラベル+シンタックスハイライト)・SVG フロー(dash アニメーション)・リスト装飾(ネオン記号)・prefers-reduced-motion 対応・768px レスポンシブを全面刷新、目次を ul/li から bdd-toc-grid カード形式へ、参照 URL リンク群を ref-url クラス+target="_blank" へ統一。
AI ガイド混同行列 ARIA 化と資格情報レイアウト再構成
app/ai-guide.css, app/ai-test-guide/page.tsx
混同行列を div.matrix-grid から role=table・rowheader・cell+aria-labelledby へ WCAG 準拠に変更、関連 CSS で matrix-wrap に横スクロール(overflow-x: auto)・matrix-grid を固定寸法(列/行数値指定)・matrix-cell を幅/高さ 100%・vertical-header に writing-mode・text-orientation・flex 中央寄せを追加、ct-ai・ct-genai の資格メタ情報を card-sm 内定義から cert-body 配下の cert-meta(k/v 個別要素)へ移行し前提条件・問題数・合格点・試験時間を個別表示。
受理テストガイド欠陥フロー・ATDD ノード・ツール card 調整
app/acceptance-testing-guide.css, app/acceptance-testing-guide/page.tsx
欠陥ライフサイクル .defect-flow を flex-wrap: nowrap+overflow-x: auto で横スクロール対応、-webkit-overflow-scrolling: touch とスクロールバー外観を追加、fixed 状態セレクタを .d-stage.fixed から .d-stage.d-fixed へ変更、tool-grid を auto-fill から repeat(3, ...) 固定列へ(992px で 2 列・640px で 1 列)、ATDD cycle ノード寸法を 110px → 135px に拡大しパディング・line-height も調整。
統合・ユニット・E2E ガイドのグリッド・ステップ・コード DOM 刷新
app/integration-system-testing-guide.css, app/unit-testing.css, app/e2e-testing-guide/page.tsx, app/e2e-testing-guide.css
統合テスト・ユニットテストの tool-grid・tdd-step・fw-grid を auto-fill/minmax から固定 3 列(992px 以下 2 列・640px 以下 1 列)へ統一し gap を 0.75rem → 1rem に変更、tdd-step 円形カード寸法を 120px → 150px に拡大、step-sub フォントと line-height を調整、E2E ガイドの POM コード例レイアウトを grid-2 から flex flex-col へ変更し dangerouslySetInnerHTML から code-line JSX 構築へ移行、E2E CSS に code-pre-div(余白・横スクロール・モノスペース)と code-line(white-space: pre)ルールを追加。

テスト基盤整理

Layer / File(s) Summary
テスト import 整理と IntersectionObserverMock 明示化
happydom-setup.ts, tests/istqb-ct-*/page.test.tsx, tests/istqb-ctal-*/page.test.tsx, tests/istqb-ctel-*/page.test.tsx
各ページテストの bun:test import から未使用の beforeAll・afterAll・mock を削除して afterEach・describe・it・expect のみに削減(複数ファイル対象)、IntersectionObserverMock の observe・unobserve メソッドに戻り値型 : void と void target 参照を追加して明示化。

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR タイトル「CT-GT ガイドの完全移行とスタイル調整」は、最後の未移行ガイド(CT-GT)の Next.js 化完了と、それに伴うスタイル調整という変更内容の主要な部分を的確に要約しており、チェンジセット全体の主なポイントを明確に表現している。
Description check ✅ Passed PR の説明は、変更内容の主要な 4 つの領域(全ガイドの移行完了、スタイリングとレイアウト調整、コード品質とアクセシビリティ修正、テスト環境の整備)を詳細に記載しており、差分で確認される多数の変更ファイルと合致している。
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css`:
- Around line 61-113: Add a prefers-reduced-motion media query that disables
animations for fadeInDown, fadeInUp, growBar, pulse, and glow by setting
animation: none for the elements that use them and ensure elements using the
growBar (e.g., .progress-bar) still show their intended width by applying width:
var(--bar-width, 70%) (or a concrete fallback) when animations are turned off;
place this block at the end of the CSS file and target the specific
selectors/classes that use those animations so reduced-motion users still see
correct content (refer to animation names fadeInDown, fadeInUp, growBar, pulse,
glow and the .progress-bar selector).

In `@app/istqb-ct-gt-complete-guide/NavBar.tsx`:
- Around line 31-37: Add the aria-current="location" attribute to the active
anchor elements so accessibility reflects the active state; where you currently
compute className using activeId (e.g., the <a href="`#hero`">, <a href="`#ch0`">,
<a href="`#ch1`">, <a href="`#ch2`">, <a href="`#ch3`">, <a href="`#exam`">, <a
href="`#references`"> anchors), add aria-current={activeId === 'hero' ? 'location'
: undefined} (or equivalent conditional) for each anchor so the attribute is
present only when that link is active.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3f55515d-5ef9-4615-8b92-79ca503ea51a

📥 Commits

Reviewing files that changed from the base of the PR and between 1c197f2 and 3ac1521.

📒 Files selected for processing (16)
  • CLAUDE.md
  • GEMINI.md
  • app/istqb-ct-gt-complete-guide/NavBar.tsx
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
  • app/istqb-ct-gt-complete-guide/page.tsx
  • docs/MIGRATION_PROGRESS.md
  • docs/coverage-dashboard.html
  • e2e/pages.ts
  • istqb-ct-game-complete-guide.html
  • istqb-ct-game-complete-guide.md
  • istqb-ct-gt-complete-guide.html
  • istqb-ct-gt-complete-guide.md
  • lib/navigation.ts
  • next-env.d.ts
  • tests/istqb-ct-gt-complete-guide/page.test.tsx
  • tests/lib/navigation.test.ts
💤 Files with no reviewable changes (2)
  • istqb-ct-game-complete-guide.md
  • istqb-ct-gt-complete-guide.md

Comment thread app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
Comment thread app/istqb-ct-gt-complete-guide/NavBar.tsx Outdated
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css`:
- Around line 1073-1089: The prefers-reduced-motion block targets non-existent
selectors; update it to target the actual animated classes (.hero,
.hero-eyebrow, .hero h1, .hero-sub, .hero-meta, .toc-card) and set animation:
none !important for each, and for .progress-bar set animation: none !important
plus max-width: 100% !important (keep width: var(--bar-width, 70%) as fallback
if needed). Locate the existing `@media` (prefers-reduced-motion: reduce) rule and
replace the listed selectors (.hero-title, .hero-subtitle, .hero-desc,
.hero-btn, .neon-text, .neon-box) with the concrete symbols above so the
reduced-motion preference actually disables those animations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 964a8215-3872-48f3-97be-db228cc9e17f

📥 Commits

Reviewing files that changed from the base of the PR and between 3ac1521 and 680c77b.

📒 Files selected for processing (3)
  • app/istqb-ct-gt-complete-guide/NavBar.tsx
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
  • app/istqb-ct-gt-complete-guide/page.tsx

Comment thread app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css

@coderabbitai coderabbitai 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css (2)

32-45: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

オーバーレイを前面レイヤーに置かないでください。

この ::before / ::afterposition: fixed かつ z-index: 9999/9998 なので、クリックは透過しても常に全コンテンツの前面に描画されます。ガイドラインどおり z-index: 0-1 に落とし、必要ならページ側でスタッキングコンテキストを作って背面に固定してください。As per coding guidelines For overlays using ::before or ::after pseudo-elements ... include pointer-events: none and z-index: 0 or -1 to prevent blocking clicks.

Also applies to: 48-57

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css` around lines
32 - 45, The overlay pseudo-element (.istqb-ct-gt-page::before and the
corresponding ::after) uses position: fixed with z-index: 9999 which forces it
above all content; change the z-index to 0 or -1 so it sits behind page content
and keep pointer-events: none; if you need it visually behind positioned
content, ensure the page container creates a stacking context (e.g., by adding
position: relative/transform) so the pseudo-elements remain fixed but do not
block clicks.

Source: Coding guidelines


2-20: ⚠️ Potential issue | 🟠 Major

CT-GT CSS のローカルCSS変数名が参照名と不一致で、意図した色/フォント上書きが効いていない

  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css(2-20行目)では --bg-card / --neon-green / --font-head 等を定義している一方で、同ファイルと app/istqb-ct-gt-complete-guide/page.tsxvar(--color-bg-card) / var(--color-accent-green) / var(--font-display) を参照しているため、このファイル側のローカル定義は参照されず上書きになっていない。
  • ただし app/globals.cssapp/layout.tsx で読み込み済み)に --color-* / --font-display は定義されているため「未定義で全部無効」にはならないが、CT-GT用のパレットが反映されず見た目が意図とズレる可能性が高い。
  • 対応: ローカル変数名を --color-* / --font-display に合わせるか、参照側(var(--color-*) / var(--font-display))をローカル定義名に合わせて統一すること。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css` around lines 2
- 20, Local CSS custom properties in the CT-GT stylesheet are mismatched with
the properties referenced elsewhere (e.g., page.tsx), so the intended
palette/font overrides aren't applied; fix by renaming the local variables to
match the referenced names or by updating the references to match the local
names. Specifically, in the CT-GT CSS change variables like --bg-card,
--neon-green, --font-head (and any other --bg-*, --neon-*, --text-*, --font-*)
to the global naming convention used by the page (for example --color-bg-card,
--color-accent-green, --font-display), or alternatively update the var(...)
references in page.tsx from var(--color-*)/var(--font-display) to use the
existing --bg-*/--neon-* and --font-head names so both sides use the same
identifiers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css`:
- Around line 32-45: The overlay pseudo-element (.istqb-ct-gt-page::before and
the corresponding ::after) uses position: fixed with z-index: 9999 which forces
it above all content; change the z-index to 0 or -1 so it sits behind page
content and keep pointer-events: none; if you need it visually behind positioned
content, ensure the page container creates a stacking context (e.g., by adding
position: relative/transform) so the pseudo-elements remain fixed but do not
block clicks.
- Around line 2-20: Local CSS custom properties in the CT-GT stylesheet are
mismatched with the properties referenced elsewhere (e.g., page.tsx), so the
intended palette/font overrides aren't applied; fix by renaming the local
variables to match the referenced names or by updating the references to match
the local names. Specifically, in the CT-GT CSS change variables like --bg-card,
--neon-green, --font-head (and any other --bg-*, --neon-*, --text-*, --font-*)
to the global naming convention used by the page (for example --color-bg-card,
--color-accent-green, --font-display), or alternatively update the var(...)
references in page.tsx from var(--color-*)/var(--font-display) to use the
existing --bg-*/--neon-* and --font-head names so both sides use the same
identifiers.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 179d8ff1-f220-48af-a411-2d1763d2f0e3

📥 Commits

Reviewing files that changed from the base of the PR and between 680c77b and 07c1f61.

📒 Files selected for processing (1)
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai 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.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
app/ai-test-guide/page.tsx (1)

419-462: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

混同行列の意味関係が支援技術に伝わりません。

見た目は整っていますが、これは div ベースのグリッドなので、スクリーンリーダーには「どの列・行に対する TP/FN/FP/TN なのか」が伝わりません。教育コンテンツの核になる図なので、table / thead / tbody / th scope / td に置き換えるか、少なくとも表相当の ARIA ロールとヘッダ関連付けを追加してください。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/ai-test-guide/page.tsx` around lines 419 - 462, The current grid uses
divs (matrix-wrap, matrix-grid, matrix-cell, and specific cells tp, fn, fp, tn)
which is inaccessible to screen readers; replace this structure with a semantic
table using <table>, <thead>, <tbody>, and <th scope="col">/<th scope="row"> and
<td> for the TP/FN/FP/TN cells so assistive tech can associate headers with
cells, or if you must keep divs apply ARIA table semantics (role="table" on
matrix-grid, role="row" on row wrappers, role="columnheader"/role="rowheader" on
header cells and role="cell" on tp/fn/fp/tn) and link headers and cells with
appropriate aria-colindex/aria-rowindex or aria-labelledby attributes; ensure
the vertical headers (currently vertical-header) use rowheader semantics and the
top headers use columnheader semantics so screen readers correctly convey which
header applies to each TP/FN/FP/TN cell.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/ai-guide.css`:
- Around line 161-172: 親要素の .matrix-wrap に横スクロールがないため幅固定の .matrix-grid
(grid-template-columns: 50px 170px 170px) が狭い画面で切れてしまっています;修正は .matrix-wrap に
overflow-x: auto を追加して横スクロールで逃がすか、あるいは狭幅用にメディアクエリを追加して .matrix-grid の
grid-template-columns を縮める(例: 50px 130px 130px など)ようにしてください;対象の識別子は .matrix-wrap
と .matrix-grid、プロパティは grid-template-columns と overflow-x です。

In `@app/bdd-testing-guide.css`:
- Around line 188-190: .bdd-guide-page .bdd-toc-card:hover の border-color は未定義の
CSS 変数 --cyber-border-bright
を参照して無効になっているため、ホバー時の境界色が反映されません。該当セレクタ(.bdd-guide-page .bdd-toc-card:hover)内で
--cyber-border-bright を使う代わりに既存のトークン --cyber-border-hover
を参照するように置き換えるか、グローバルなカスタムプロパティ定義に --cyber-border-bright
を追加して正しい色値を提供してください。類似の箇所(同様の TOC/カードの hover スタイル、コメントで指摘されたもう一箇所)も同様に修正してください。

In `@app/e2e-testing-guide/page.tsx`:
- Around line 917-927: The .code-block currently relies on
dangerouslySetInnerHTML with embedded "\n" (see the two <pre
dangerouslySetInnerHTML=...> usages rendering the LoginPage and tests examples);
change those renderings to output each source line as a separate <div
className="code-line"> element (map the string by splitting on "\n" and render
each chunk as a code-line) instead of injecting raw HTML, and ensure the wrapper
.code-block markup uses those code-line children so line-wrapping/styles remain
stable; keep the original HTML content but produce it via JSX elements rather
than dangerouslySetInnerHTML.

In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css`:
- Around line 31-40: Remove the self-referential CSS custom properties inside
the .istqb-ct-gt-page rule (the --color-accent-*, --color-text-*, --font-*,
--color-bg-card entries that are set to var(--same-name)); these create circular
references and invalidate the variables. Edit the .istqb-ct-gt-page block to
delete those var(--...) assignments so the component inherits the authoritative
values from app/globals.css :root (or replace with explicit fallbacks/new
variable names if you need local overrides), ensuring no declaration like
--color-accent-green: var(--color-accent-green) remains.

In `@happydom-setup.ts`:
- Around line 26-27: IntersectionObserverMock の observe()/unobserve()
が引数なしで定義されており、実際の使用側は observer.observe(section) のように Element を渡しているため API
署名を標準に合わせてください。具体的には IntersectionObserverMock.observe(target: Element): void と
IntersectionObserverMock.unobserve(target: Element): void のシグネチャに変更し(必要なら target
を Element | null にして安全化)、既存の内部実装は受け取った target
を無視するか登録/削除ロジックに渡すように修正して型エラーを解消してください。

---

Outside diff comments:
In `@app/ai-test-guide/page.tsx`:
- Around line 419-462: The current grid uses divs (matrix-wrap, matrix-grid,
matrix-cell, and specific cells tp, fn, fp, tn) which is inaccessible to screen
readers; replace this structure with a semantic table using <table>, <thead>,
<tbody>, and <th scope="col">/<th scope="row"> and <td> for the TP/FN/FP/TN
cells so assistive tech can associate headers with cells, or if you must keep
divs apply ARIA table semantics (role="table" on matrix-grid, role="row" on row
wrappers, role="columnheader"/role="rowheader" on header cells and role="cell"
on tp/fn/fp/tn) and link headers and cells with appropriate
aria-colindex/aria-rowindex or aria-labelledby attributes; ensure the vertical
headers (currently vertical-header) use rowheader semantics and the top headers
use columnheader semantics so screen readers correctly convey which header
applies to each TP/FN/FP/TN cell.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1f0315d1-8fcf-48d9-8ce0-cc5c606fc475

📥 Commits

Reviewing files that changed from the base of the PR and between 2a3258c and 9d8c1e8.

📒 Files selected for processing (28)
  • CLAUDE.md
  • GEMINI.md
  • app/acceptance-testing-guide.css
  • app/acceptance-testing-guide/page.tsx
  • app/ai-guide.css
  • app/ai-test-guide/page.tsx
  • app/bdd-testing-guide.css
  • app/bdd-testing-guide/page.tsx
  • app/e2e-testing-guide/page.tsx
  • app/integration-system-testing-guide.css
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
  • app/istqb-ct-gt-complete-guide/page.tsx
  • app/unit-testing.css
  • docs/MIGRATION_PROGRESS.md
  • happydom-setup.ts
  • tests/istqb-ct-ai-complete-guide/page.test.tsx
  • tests/istqb-ct-aut-complete-guide/page.test.tsx
  • tests/istqb-ct-genai-complete-guide/page.test.tsx
  • tests/istqb-ct-pt-complete-guide/page.test.tsx
  • tests/istqb-ct-sec-complete-guide/page.test.tsx
  • tests/istqb-ct-ste-complete-guide/page.test.tsx
  • tests/istqb-ct-ut-complete-guide/page.test.tsx
  • tests/istqb-ctal-att-complete-guide/page.test.tsx
  • tests/istqb-ctel-itp-atp-complete-guide/page.test.tsx
  • tests/istqb-ctel-itp-itpi-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-mtt-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-otm-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-sm-complete-guide/page.test.tsx

Comment thread app/ai-guide.css
Comment thread app/bdd-testing-guide.css
Comment thread app/e2e-testing-guide/page.tsx Outdated
Comment thread app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css Outdated
Comment thread happydom-setup.ts Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
app/bdd-testing-guide/page.tsx (1)

1591-1596: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

外部リンクにセキュリティ属性が不足しています。

セクション14の参照URL一覧にある全ての外部リンク(約40件)に target="_blank" rel="noopener noreferrer" が設定されていません。コーディングガイドラインに従い、外部リンクには新規タブで開く設定とセキュリティ属性を追加してください。

🔧 修正例(1つのリンクの例)
-<a href="https://istqb.org/" className="ref-url">https://istqb.org/</a>
+<a href="https://istqb.org/" className="ref-url" target="_blank" rel="noopener noreferrer">https://istqb.org/</a>

Based on learnings: コーディングガイドラインにて「Add target="_blank" rel="noopener noreferrer" to all external links in JSX/TSX files for security and user experience」と規定されています。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/bdd-testing-guide/page.tsx` around lines 1591 - 1596, The external links
in the references table are missing security attributes; locate the anchor
elements with className "ref-url" in the Section 14 references (in
app/bdd-testing-guide/page.tsx, the <a className="ref-url"> elements) and add
target="_blank" rel="noopener noreferrer" to each external link element so every
external URL opens in a new tab and includes the noopener/noreferrer security
attributes; apply this consistently to all ~40 external anchors in that section.

Source: Coding guidelines

♻️ Duplicate comments (1)
app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css (1)

21-23: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

--font-mono / --font-body が自己参照になっており、CSS変数が無効化されます

Line 21 と Line 23 は循環参照です。font-family: var(--font-mono) 等の解決時に無効値化し、意図したフォント適用が崩れる可能性があります。ローカル再定義を削除してグローバル定義を継承させてください。

修正案(最小差分)
-    --font-mono: var(--font-mono);
     --font-head: var(--font-display);
-    --font-body: var(--font-body);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css` around lines
21 - 23, The CSS has self-referential variable declarations (--font-mono and
--font-body) which cause invalidation; remove the local redefinitions of
--font-mono and --font-body in the stylesheet so they inherit the global
definitions instead (leave other variables like --font-head if they reference
valid globals). After removing those declarations, verify places using
font-family: var(--font-mono) and font-family: var(--font-body) resolve to the
intended global values.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/ai-test-guide/page.tsx`:
- Around line 422-423: The inline style style={{ display: 'contents' }} used on
the row div (the element with role="row" and className "matrix-cell header") is
duplicated in three places; replace these inline styles with a CSS/Tailwind
class (e.g., add className "contents" or a custom CSS class) and remove the
style prop from the divs to comply with the app/**/*.{ts,tsx} guideline to avoid
inline styles; update the three occurrences (the role="row" divs) to use the
shared class instead.

In `@app/e2e-testing-guide/page.tsx`:
- Around line 917-949: The snippet renders a <pre> whose children are
div.code-line (invalid phrasing-content nesting) which can trigger SSR/React DOM
correction; locate the JSX that wraps the LoginPage code sample (the <pre>
element containing multiple div.className="code-line" entries) and fix by either
replacing the outer <pre> with a semantically appropriate block element (e.g.,
<div> or <figure> with the same styling) or by converting each child
div.code-line into phrasing elements (e.g., <span className="code-line">) so the
contents remain valid inside <pre>; update only the rendering markup around the
code sample (the block that contains the LoginPage class, goto/login/loginButton
lines) and preserve visual styling via CSS.

---

Outside diff comments:
In `@app/bdd-testing-guide/page.tsx`:
- Around line 1591-1596: The external links in the references table are missing
security attributes; locate the anchor elements with className "ref-url" in the
Section 14 references (in app/bdd-testing-guide/page.tsx, the <a
className="ref-url"> elements) and add target="_blank" rel="noopener noreferrer"
to each external link element so every external URL opens in a new tab and
includes the noopener/noreferrer security attributes; apply this consistently to
all ~40 external anchors in that section.

---

Duplicate comments:
In `@app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css`:
- Around line 21-23: The CSS has self-referential variable declarations
(--font-mono and --font-body) which cause invalidation; remove the local
redefinitions of --font-mono and --font-body in the stylesheet so they inherit
the global definitions instead (leave other variables like --font-head if they
reference valid globals). After removing those declarations, verify places using
font-family: var(--font-mono) and font-family: var(--font-body) resolve to the
intended global values.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1499fbab-27fd-4b4e-a8b5-dadf96d0c9c7

📥 Commits

Reviewing files that changed from the base of the PR and between 2a3258c and 7cc9057.

📒 Files selected for processing (28)
  • CLAUDE.md
  • GEMINI.md
  • app/acceptance-testing-guide.css
  • app/acceptance-testing-guide/page.tsx
  • app/ai-guide.css
  • app/ai-test-guide/page.tsx
  • app/bdd-testing-guide.css
  • app/bdd-testing-guide/page.tsx
  • app/e2e-testing-guide/page.tsx
  • app/integration-system-testing-guide.css
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
  • app/istqb-ct-gt-complete-guide/page.tsx
  • app/unit-testing.css
  • docs/MIGRATION_PROGRESS.md
  • happydom-setup.ts
  • tests/istqb-ct-ai-complete-guide/page.test.tsx
  • tests/istqb-ct-aut-complete-guide/page.test.tsx
  • tests/istqb-ct-genai-complete-guide/page.test.tsx
  • tests/istqb-ct-pt-complete-guide/page.test.tsx
  • tests/istqb-ct-sec-complete-guide/page.test.tsx
  • tests/istqb-ct-ste-complete-guide/page.test.tsx
  • tests/istqb-ct-ut-complete-guide/page.test.tsx
  • tests/istqb-ctal-att-complete-guide/page.test.tsx
  • tests/istqb-ctel-itp-atp-complete-guide/page.test.tsx
  • tests/istqb-ctel-itp-itpi-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-mtt-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-otm-complete-guide/page.test.tsx
  • tests/istqb-ctel-tm-sm-complete-guide/page.test.tsx

Comment thread app/ai-test-guide/page.tsx Outdated
Comment thread app/e2e-testing-guide/page.tsx Outdated
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/e2e-testing-guide.css`:
- Around line 643-653: The CSS for .page-e2e .code-pre-div should not enforce
line breaks via white-space: pre; switch to the repository convention by
removing or neutralizing white-space on .code-pre-div and instead add/adjust
rules for .page-e2e .code-line (e.g., ensure .code-line uses white-space: pre
and display: block, inherit font-family/font-size/line-height/color from the
container, and handle padding/overflow on the container if needed) so code
blocks are represented per-line with .code-line elements and wrapping behavior
is consistent with the project's guideline.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3c8e9530-a86f-4932-b2b0-3c8c582703fc

📥 Commits

Reviewing files that changed from the base of the PR and between 7cc9057 and d188214.

📒 Files selected for processing (6)
  • app/ai-test-guide/page.tsx
  • app/bdd-testing-guide/page.tsx
  • app/e2e-testing-guide.css
  • app/e2e-testing-guide/page.tsx
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css
  • next-env.d.ts
💤 Files with no reviewable changes (1)
  • app/istqb-ct-gt-complete-guide/istqb-ct-gt-complete-guide.css

Comment thread app/e2e-testing-guide.css
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891 myoshi2891 changed the title Dev CT-GT ガイドの完全移行とスタイル調整 Jun 13, 2026
@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Note

Docstrings generation - SUCCESS
Generated docstrings for this pull request at #77

Docstrings generation was requested by @myoshi2891.

* #76 (comment)

The following files were modified:

* `app/acceptance-testing-guide/page.tsx`
* `app/ai-test-guide/page.tsx`
* `app/e2e-testing-guide/page.tsx`
* `app/istqb-ct-gt-complete-guide/NavBar.tsx`
@coderabbitai coderabbitai Bot mentioned this pull request Jun 13, 2026

@coderabbitai coderabbitai 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.

♻️ Duplicate comments (1)
app/e2e-testing-guide/page.tsx (1)

967-998: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

<pre> 配下に div.code-line が残っており、DOM補正リスクがあります

Line 967 の <pre> が Line 968-998 の div.code-line を直接子要素に持っており、HTML内容モデルに反します。SSR時のDOM補正/ハイドレーション不一致リスクがあるため、上段と同様に code-pre-div へ統一してください。

修正案(最小差分)
-                        <pre>
+                        <div className="code-pre-div">
                             <div className="code-line"><span className="cm">// tests/auth.spec.ts</span></div>
                             <div className="code-line"><span className="kw">import</span> &`#123`; test, expect &`#125`; <span className="kw">from</span> <span className="str">'`@playwright/test`'</span>;</div>
                             <div className="code-line"><span className="kw">import</span> &`#123`; <span className="cls">LoginPage</span> &`#125`; <span className="kw">from</span> <span className="str">'../pages/LoginPage'</span>;</div>
                             ...
-                        </pre>
+                        </div>

As per coding guidelines, app/**/*.tsx では .code-block 内のコード行を <div className="code-line"> 構造で安定表示する運用が必須です。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/e2e-testing-guide/page.tsx` around lines 967 - 998, The snippet uses a
raw <pre> element containing multiple <div className="code-line"> children which
violates HTML content models and risks SSR hydration fixes; replace the <pre>
wrapper with a <div className="code-pre-div"> (or <div className="code-pre-div
code-block"> per project convention) around the existing <div
className="code-line"> lines so the inner structure remains identical but the
wrapper is a valid container; ensure you update both the opening <pre> and its
closing tag to the new <div> and leave all LoginPage/test code lines untouched.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@app/e2e-testing-guide/page.tsx`:
- Around line 967-998: The snippet uses a raw <pre> element containing multiple
<div className="code-line"> children which violates HTML content models and
risks SSR hydration fixes; replace the <pre> wrapper with a <div
className="code-pre-div"> (or <div className="code-pre-div code-block"> per
project convention) around the existing <div className="code-line"> lines so the
inner structure remains identical but the wrapper is a valid container; ensure
you update both the opening <pre> and its closing tag to the new <div> and leave
all LoginPage/test code lines untouched.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9c41a0cc-1a84-402d-be61-7fc6afa7c3ec

📥 Commits

Reviewing files that changed from the base of the PR and between 192bcfc and 92aa38b.

📒 Files selected for processing (4)
  • app/acceptance-testing-guide/page.tsx
  • app/ai-test-guide/page.tsx
  • app/e2e-testing-guide/page.tsx
  • app/istqb-ct-gt-complete-guide/NavBar.tsx

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