Skip to content

AWS / Cisco / GCP 資格試験ガイドの拡充・完全移行と CCNA Automation API リトライロジック & UI 設計の最適化 - #118

Merged
myoshi2891 merged 72 commits into
mainfrom
dev
Aug 8, 2026
Merged

myoshi2891 merged 72 commits into
mainfrom
dev

Conversation

@myoshi2891

@myoshi2891 myoshi2891 commented Aug 5, 2026 •

Copy link
Copy Markdown
Owner

📊 変更概要

本期間では、主に AWS SAA (Domain 4)、Cisco CCDE / CCIE、GCP (PCNE / ADK Labs) などの資格試験学習ガイドのコンポーネント化・完全移植を実施しました。また、Cisco CCNA Automation API ガイドにおける Retry-After 解析およびリトライ処理(最終試行時の sleep スキップ)の最適化とテスト追加を行ない、デザインシステム(CSS 3層アーキテクチャ)・アクセシビリティ (a11y)・Mermaid ダイアグラムの品質向上を推進しました。


🔍 主な変更内容(カテゴリ別)

1. 🎓 新規資格学習コンテンツの追加・完全移行(TDDアプローチ)

  • AWS SAA Domain 4 (Design Cost-Optimized Architectures)
    • HTML / 原稿から 100% 完全復元して TSX コンポーネント化し、ルーティング統合・モバイルナビ対応・スタイリング適用を実施。
  • Cisco CCDE Complete Guide & CCIE Enterprise Infrastructure
    • CcdeGuide を 12 個の独立セクションコンポーネントと CSS Modules に分割リファクタリング。
    • CCIE Enterprise Infrastructure ガイドの実装およびナビゲーションへの統合。
  • GCP / PCNE 関連ガイドの拡充
    • PCNE (Professional Cloud Network Engineer) Section 1 & Section 2 VPC Design 学習ガイドを追加。
    • ADK Lab, Natural Language & Speech API, GSP Kubernetes などのハンズオンガイドを追加・最適化。

2. ⚙️ Cisco CCNA Automation API ガイド & Retry-After ロジックの最適化

  • Retry-After 解析の改善
    • 3600 秒の上限キャップ制限を削除し、秒数指定および HTTP-date 形式の両方に対応。
    • ceil 計算による待機秒数の高精度化。
  • リトライ処理の最適化
    • 最終リトライ試行時に無駄な sleep を実行せずに即座にループを抜けるよう、条件チェックと break の順序を最適化。
    • Cisco Meraki API の認証ヘッダーを X-Cisco-Meraki-API-Key に統一。
    • TSX・Markdown ドキュメント・ユニットテストの相互同期を徹底。

3. 🎨 UI/UX・デザインシステム & アクセシビリティ (a11y) 強化

  • CSS 3層アーキテクチャ(globals.css 等)の適用
    • ルート変数の統一、サイドバー予約幅、ヘッダーの sticky オフセット量の調整。
  • アクセシビリティ (a11y) 向上
    • ドロワー・サイドバー切り替えでの aria-label, aria-expanded, dataset.open 等の属性管理を強化。
  • コンポーネント境界の明確化
    • Client / Server コンポーネントの分離を進め、各コンポーネントに詳細な JSDoc ドキュメントを追加。

4. 📁 ディレクトリ構造・アーカイブの再配置

  • 不要・旧ガイドの削除
    • 旧 Iap-tcp-forwarding-best-practices-guide.md および Terrafor-gcp-challenge-lab-guide.md を削除。
  • アーカイブの整理
    • Cisco 関連の HTML / Markdown アーカイブファイルを Gcl_Archive/Cisco 内の ccna, ccie, ccde サブフォルダへ体系的に整理移動。

5. 🛠️ Mermaid ダイアグラム描画修復 & テスト・開発フローの強化

  • Mermaid 表示不具合の修正
    • HTML / MD 内の矢印記号(> → &gt;)のエスケープ処理、CDN integrity ハッシュ更新、壊れていた </pre> タグの修復。
  • TDD 開発フローの強化
    • .claude/rules/tdd-commit-workflow.md のルールを更新し、Strict な網羅性テストと Fail → Pass → Refactor のステップ別コミットを徹底。

@netlify

netlify Bot commented Aug 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for cloud-infrastructure-studies ready!

Name Link
🔨 Latest commit 3a9f193
🔍 Latest deploy log https://app.netlify.com/projects/cloud-infrastructure-studies/deploys/6a7708882545650009059740
😎 Deploy Preview https://deploy-preview-118--cloud-infrastructure-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 Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • 新機能
    • AWS SAAドメイン4、Cisco CCDE/CCIE、Google Cloud PCNEの学習ガイドを追加しました。
    • ADK、Speech API、Natural Language API、GKEなどの日本語ラボガイドを追加しました。
    • レスポンシブ表示、目次、Mermaid図、コードハイライト、チェックリストを提供します。
  • 改善
    • 試験一覧、ナビゲーション、既存ガイド、安全な設定例を拡充しました。
    • APIの再試行処理がHTTP-date形式などに対応しました。
  • テスト
    • ガイド内容、リンク、図表、ナビゲーションの検証を強化しました。
  • 削除
    • IAP TCPフォワーディングおよびTerraform関連ガイドを削除しました。

Walkthrough

複数のクラウド学習ガイド、AWS・Ciscoの資格ページ、移行記録、表示テストを追加または更新しました。CCNAアーカイブの再試行処理、Mermaid描画、設定例も更新しました。

Changes

共通ルールと索引

Layer / File(s) Summary
共通ルール、索引、移行記録
.claude/rules/*, CLAUDE.md, GEMINI.md, MIGRATION_PROGRESS.md, app/constants.ts, app/globals.css, components/MermaidDiagram.tsx
テスト品質ゲート、移行記録、資格一覧、共通テーマ、Mermaid設定を更新しました。

学習ガイド

Layer / File(s) Summary
クラウドAPIとAIガイド
Adk-challenge-lab-guide.*, Cloud-*-challenge-lab-guide.*, Speech-to-text-challenge-lab-best-practices.*, Fantasy-character-creator-best-practices.*
ADK、Cloud API、Speech、Fantasy Character Creatorの手順、検証方法、トラブルシューティング、HTML表示を追加しました。
コンテナとGKEガイド
Gsp-kubernetes-best-practices-guide.*
Dockerイメージ作成、Artifact Registryへのpush、GKEへのデプロイ手順を追加しました。
PCNE VPCガイド群
Pcne-section1-vpc-design.*, Pcne-s2-vpc-implementation.html, Pcne-s4-hybrid-connectivity.md
VPC設計、ルーティング、NCC、GKE、Interconnect、VPN、BGP、チェックリストを追加しました。

資格ページ

Layer / File(s) Summary
AWS SAA Domain 4
app/aws/solutions-architect-associate/domain4/*, archive/Aws/SAA/*Domain4*, __tests__/aws/solutions-architect-associate/domain4/*
コスト管理、ストレージ、コンピューティング、データベース、ネットワークの学習ページ、図表、ナビゲーション、表示テストを追加しました。
CCDE完全ガイド
app/cisco/ccde/complete-guide/*, components/sections/ccde/*, Gcl_Archive/Cisco/html/Ccde-guide.html, __tests__/cisco-ccde-guide.test.tsx
CCDEの試験フロー、試験情報、費用、再認定、用語集、FAQ、参考資料を追加しました。
CCIE Enterprise Infrastructureガイド
app/cisco/ccie/enterprise-infrastructure/*, archive/Cisco/html/ccie/*, archive/Cisco/md/ccie/*, __tests__/cisco-ccie-enterprise-infrastructure.test.tsx
CCIEの取得手順、ENCOR、ラボ試験、費用、再認定、学習ロードマップ、FAQを追加しました。

CCNAアーカイブ

Layer / File(s) Summary
CCNAアーカイブガイド群
archive/Cisco/html/ccna/*, archive/Cisco/md/ccna/*, app/cisco/ccna/automation-api-guide/*
Mermaid描画、設定例、認証方式、パスワード表現、コードブロック、説明文、429応答の再試行処理を更新しました。

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive プルリクエストの説明がなく、変更内容との関連性を確認できません。 Retry-After処理の修正、テスト追加、関連ドキュメント変更の概要を説明欄に記載してください。
Title check ❓ Inconclusive タイトル「Dev」は変更内容を具体的に示さず、主な変更を判断できません。 リトライ処理の修正、学習ガイド追加、試験ガイド実装など、主な変更を具体的に示す短いタイトルへ変更してください。
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 83.33% 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.
✨ Finishing Touches
📝 Generate docstrings
  • ✅ Generated successfully - (🔄 Check to regenerate)
  • ✅ Committed to branch successfully - (🔄 Check to regenerate)

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.

@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: 47

🤖 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 `@__tests__/aws/solutions-architect-associate/domain4/page.test.tsx`:
- Around line 30-38: Expand the tests in the DIAGRAMS and Domain4Guide suite
beyond non-empty checks: assert the expected heading count, exactly 29 Mermaid
diagrams, table row counts and cell text, supplemental content, and source-link
count/content based on the original material. Keep the assertions focused on
migration completeness so omissions in mappings, wording, or references fail the
tests.

In `@__tests__/cisco-ccde-guide.test.tsx`:
- Around line 82-101: Expand the test case around CcdeGuide to define
expectations based on the source HTML and verify every table header, data-cell
label, explanatory cell, callout, FAQ answer, and reference-source description,
not only the currently listed domain, elective, and cost values. Ensure the
assertions detect omitted or summarized migration content and cover all
supplemental items from the original material.
- Around line 25-29: Update the test around CcdeGuidePage to import or access
the page’s exported metadata directly and assert the expected metadata.title
and/or metadata.description values. Keep the existing render and heading
assertion only if still useful, but ensure the test fails when either metadata
field is removed or changed.

In @.claude/rules/tdd-commit-workflow.md:
- Line 44: Update the accessibility validation requirement in the Mermaid/SVG
diagram checklist to accept either an ariaLabel or decorative={true}, instead of
requiring ariaLabel alone, while preserving the rule that every SVG component
must specify one of these attributes.
- Around line 35-47: 学習ガイド/HTML移行の高強度テスト要件を、主要項目だけでなく全量検証に統一してください。Step 1
の表セル検証ではすべての td と th の文言を対象にし、出典リンク検証では blockquote
内に限定せず事前インベントリに含まれる全リンクとURLを確認するよう更新してください。

In `@Adk-challenge-lab-guide.html`:
- Around line 7-12: 外部 CDN の highlight.js と Mermaid の script、および highlight.js の
stylesheet link に、各リリース内容を検証した正しい sha384 の integrity 属性と crossorigin="anonymous"
を追加してください。対象の CDN URL とバージョンは変更せず、各リソースに対応するハッシュを設定し、代替として監査済みアセットをリポジトリ管理する場合は
CDN 参照を置き換えてください。

In `@Adk-challenge-lab-guide.md`:
- Around line 278-282: Update the geo_validator verification instructions in
Adk-challenge-lab-guide.md lines 278-282 to use `cd ~/adk_project && adk run
geo_validator`, instruct the reader to enter a country name, and describe
confirming the formatted JSON response; apply the same command and success
criteria in Adk-challenge-lab-guide.html lines 1056-1068, replacing the direct
agent.py execution guidance.

In `@app/aws/solutions-architect-associate/domain4/constants.ts`:
- Around line 208-212: Update the NATInstance Mermaid description in the
constants definition so it no longer suggests that NAT instances have no usage
cost; state that the EC2 instance is billed while running and may also incur
EBS, public IPv4, and data-transfer charges. Apply the same corrected wording
consistently in Domain4Guide.tsx, the HTML archive, and the Markdown archive.

In `@app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx`:
- Around line 71-77: Domain4Guide の表を含む全テーブルで、列見出しを表すすべての <th> に scope="col"
を追加してください。特に diff の thead 内にある「ツール/機能」「主な役割」「初級者向けポイント」の各 <th>
を更新し、既存の見出し文言とテーブル構造は維持してください。
- Around line 1-18: Remove the 'use client' directive from Domain4Guide so it
becomes a Server Component. Keep the existing NavBar and MermaidDiagram imports
and usage unchanged as their Client Component boundaries.
- Around line 1381-1384: Update the href in the list item for “S3 Glacier Vault
Lock” to point to the official S3 Glacier Vault Lock documentation instead of
the DynamoDB Accelerator (DAX) page, preserving the existing label and link
attributes.

In `@app/aws/solutions-architect-associate/domain4/NavBar.tsx`:
- Around line 40-70: Update NavBar with a dedicated "use client" component that
manages mobile sidebar open state, adds a toggle button with aria-expanded and
aria-controls="sidebar", and conditionally applies the open state to the
sidebar. Render a matching overlay that closes the menu when activated, while
preserving the existing navigation and activeId behavior.

In `@app/aws/solutions-architect-associate/domain4/page.css`:
- Around line 140-144: Update the .domain4-page .content rule to constrain the
main content with a centered max-width while preserving its existing sidebar
offset and spacing. Keep the page background full-width; only limit and center
the inner content area.
- Around line 1-15: Remove the custom property declarations from the
.domain4-page rule in page.css, and update its styles to use the existing shared
tokens such as --color-background, --color-foreground, and --color-border from
app/globals.css. Move any missing shared tokens to the global token architecture
rather than defining new component-level variables, including replacing the
local sidebar width variable with its established shared value.
- Around line 359-369: Replace the :global(...) wrappers in the Mermaid override
selectors within the .domain4-page .mermaid-wrap rules with standard descendant
selectors, preserving the existing .pieCircle, .pieTitleText, and .legend text
styles and page scoping.

In `@app/cisco/ccde/complete-guide/CcdeGuide.tsx`:
- Around line 17-986:
CcdeGuideを各ガイドセクション単位へ分割し、components/sections/配下に12セクション、表、FAQ、情報源などの専用コンポーネントを作成して、CcdeGuideはNavBarと各セクションの組み立てに限定してください。各セクション固有のスタイルは対応するCSS
Modulesへ移し、既存の表示内容・アンカーID・目次リンクを維持してください。
- Around line 1-5: CcdeGuide を Server Component に戻し、ファイル先頭の 'use client'
を削除してください。ブラウザAPIや状態を使う NavBar と MermaidDiagram のみが Client Component
境界になる構成を維持し、CcdeGuide 自体の表示内容や DIAGRAMS の利用は変更しないでください。
- Around line 7-17:
JSDocを追加し、app/cisco/ccde/complete-guide/CcdeGuide.tsx(7-17行)のDiagramが図表をIDで解決して表示または未定義時に非表示にする責務と、CcdeGuideがガイド全体を構成する責務を記述してください。__tests__/cisco-ccde-guide.test.tsx(9-22行)のDummyMermaidDiagramがMermaidDiagramの模擬として受け取る契約と表示責務を記述してください。app/cisco/ccde/complete-guide/NavBar.tsx(20行)のNavBarが監視する対象と状態更新の責務、app/cisco/ccde/complete-guide/page.tsx(11行)のCcdeGuidePageが担うページエントリ責務もJSDocで明記してください。

In `@app/cisco/ccde/complete-guide/NavBar.tsx`:
- Around line 5-18: Move the shared CCDE section definitions from NAV_ITEMS and
the duplicate table-of-contents data in CcdeGuide.tsx into the nearby
constants.ts, including each section ID, short navigation label, and
table-of-contents label. Update both the sticky navigation and CcdeGuide.tsx to
consume that single shared definition while preserving the current order and
displayed text.

In `@app/cisco/ccde/complete-guide/page.css`:
- Around line 1-17: Remove the page-specific custom property declarations from
the .ccde-guide-page rule, including color and font tokens, and update any
references in this stylesheet to use the existing tokens from app/globals.css
directly. Do not introduce replacement --* variables in the page CSS.

In `@archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md`:
- Around line 218-224:
表の見出し行と区切り行の間にある不要な`<br/>`を削除し、Markdownテーブルの区切り行が見出し行の直後に続くよう修正してください。表の内容や構成は変更しないでください。

In `@archive/Cisco/html/Ccde-guide.html`:
- Around line 1-2:
移行元HTMLの配置を見直し、Ccde-guide.htmlをarchive/Cisco/html/から移行ルールで指定された適切なGcl_Archive/配下へ移動してください。元ファイルを削除せず、移動先で移行記録から追跡できる状態を維持してください。

In `@Cloud-natural-language-api-challenge-lab-guide.html`:
- Around line 807-811: Escape the raw shell redirection characters in the <pre>
blocks by replacing each displayed “>” with “&gt;”, including the occurrences
near the analyze-response and corresponding line 819 command, while preserving
the shell commands’ rendered behavior.
- Around line 545-553: Update the Mermaid diagram labels in the visible
flowchart and the corresponding diagrams around the other referenced sections to
replace every label-internal \n with <br/>. Preserve the existing Japanese text
and diagram structure, and apply the same notation consistently with the other
guides.
- Around line 7-10: Cloud-natural-language-api-challenge-lab-guide.html lines
7-10, Cloud-speech-api-challenge-lab-guide.html lines 11-14, and
Speech-to-text-challenge-lab-best-practices.html lines 7-10 all reference Tabler
Icons without a fixed version; update each `@tabler/icons-webfont` CDN URL to the
same explicit version, replacing latest or the unversioned package reference.

In `@Cloud-speech-api-challenge-lab-guide.html`:
- Line 1120: Update the transcript value in the relevant example to restore the
French diacritics, including “maître” and “perché,” while preserving the rest of
the original transcription exactly as provided in
Cloud-speech-api-challenge-lab.md.
- Around line 1616-1621: Move useMaxWidth: false out of the top-level
mermaid.initialize configuration and add it under both the flowchart and
sequence diagram-specific configuration objects, preserving the existing value
and other Mermaid settings.

In `@Cloud-speech-api-challenge-lab-guide.md`:
- Around line 1-2: In Cloud-speech-api-challenge-lab-guide.md lines 1-2, replace
the subtitle’s h3 heading with a blank line followed by emphasized text,
preserving its wording. Apply the same change in
Speech-to-text-challenge-lab-best-practices.md lines 1-2 to the subtitle,
converting it from h3 to emphasized text after a blank line.
- Line 111:
Cloud-speech-api-challenge-lab-guide.md内の本文から、生成時の内部引用アーティファクトである<cite>タグをすべて削除してください。index="32-1"、"31-1"、"4-1"、"52-1"、"27-1"を含む各箇所の文章内容は維持し、根拠は既存の「根拠ソース」リストで示してください。

In `@Fantasy-character-creator-best-practices.html`:
- Around line 604-617:
Fantasy-character-creator-best-practices.htmlのヒーロー説明(604-617)に「Google AI Studio
/ Build modeを初めて使う方」と「ノーコードで“vibe
coding”に挑戦する方」を追加し、同HTMLの1361-1382付近ではMarkdown版にある「cartoon/video game
style」「Portrait/Backstory」およびステータス・キャラクター要素の値域と候補リストを復元してください。既存のReact + Gemini
APIやTask情報を保持し、Markdown版の詳細を省略・要約せずHTMLへ完全反映してください。

In `@Gsp-kubernetes-best-practices-guide.html`:
- Around line 490-492: Update the menuToggle button with aria-controls="sidebar"
and an initial aria-expanded="false", then synchronize aria-expanded and
aria-label whenever the sidebar is toggled or a navigation link is selected.
Ensure the values always reflect whether the sidebar is currently open or
closed.
- Around line 1263-1267: CDN script tags for highlight.js language bundles and
mermaid in the HTML need Subresource Integrity protection. Add the correct fixed
SHA-384 integrity hash and crossorigin="anonymous" attribute to each external
script, preserving their existing sources and versions.

In `@Gsp-kubernetes-best-practices-guide.md`:
- Around line 213-226: Gsp-kubernetes-best-practices-guide.md:213-226
のデプロイ手順で、valkyrie-app から実行しても YAML を解決できるよう `k8s`
への移動を明記するか、`k8s/deployment.yaml` と `k8s/service.yaml`
の相対パスを使用してください。Gsp-kubernetes-best-practices-guide.html:916-948 も Markdown
と同じ実行可能なパスまたは作業ディレクトリ変更に更新し、両形式の手順を一致させてください。
- Around line 90-96: Gsp-kubernetes-best-practices-guide.md の Dockerfile
命令表(90-96)で、FROM の説明をタグによる追跡性と、タグ+ダイジェスト固定によるビット単位の再現性に分け、golang:1.10
は変更しないでください。Gsp-kubernetes-best-practices-guide.md(249-253)の「ビルドの再現性を確保」も、ダイジェスト固定が必要な表現へ修正してください。Gsp-kubernetes-best-practices-guide.html(668-714、1026-1044)の対応する
Dockerfile 命令表とベストプラクティス表を、修正後の Markdown と同じ内容に同期してください。

In `@MIGRATION_PROGRESS.md`:
- Line 32:
移行元HTMLのアーカイブ先をMIGRATION_PROGRESS.md内のarchive/Ciscoおよびarchive/Awsから、既定のGcl_Archive/配下へ統一し、該当する参照を更新してください。HTML自体は削除せずGcl_Archive/へ移動し、関連する移行進捗リンクが新しい場所を指す状態を維持してください。
- Around line 20-22: CCDE の完了履歴から未完了の Docs Sync
手順または記録を削除し、MIGRATION_PROGRESS.md の Step 1〜3 は完了済みのまま維持してください。特に CCDE の完了ステップに
Docs Sync を追加せず、既存のテスト検証・ルーティング統合・アーカイブ移動の記録だけを残してください。

In `@Pcne-section1-vpc-design.html`:
- Around line 564-566: Update the sidebar toggle behavior around the
sidebarToggle button so mobile sidebar state is synchronized for accessibility:
initialize the closed sidebar with inert and aria-hidden="true", expose the
state through aria-expanded, and update all three attributes whenever toggled.
When opening, move focus to the first navigation link; when closing, return
focus to sidebarToggle.

In `@Pcne-section1-vpc-design.md`:
- Around line 1-2: Pcne-section1-vpc-design.md の H1 見出しと H2 見出しの間に空行を1行追加し、MD022
の見出し間隔ルールを満たしてください。
- Around line 992-999: In Pcne-section1-vpc-design.md lines 992-999, revise the
サービスアカウント guidance to limit node-pool service accounts to node operations such
as logging and image retrieval, and specify Workload Identity Federation for GKE
with per-workload Kubernetes ServiceAccounts for workload Google API
permissions. Apply the same change in Pcne-section1-vpc-design.html lines
3124-3134.
- Around line 512-536: Cloud VPN の gateway MTU と payload MTU の説明を分離し、可変の payload
MTU を「1460バイト固定」と記載しないよう修正してください。Pcne-section1-vpc-design.md の 512-536
では図と表を更新し、815-822 では HA VPN over Cloud Interconnect の gateway MTU
1440バイトと暗号スイートおよびIPv4/IPv6に応じて変化する payload MTU
を記載してください。Pcne-section1-vpc-design.html の 1791-1851 と 2613-2654 も同じ内容に同期してください。
- Around line 402-416: VPC Network Peering
を単独のスポーク間通信方式として扱わないよう修正する。Pcne-section1-vpc-design.md の402-416行と
Pcne-section1-vpc-design.html
の1530-1569行では、比較図・表にNVA/NGFWなどの中継方式を追加するか、非推移的ルーティング制約を明記する。Pcne-section1-vpc-design.md
の679-700行と Pcne-section1-vpc-design.html の2301-2306行では、明示的なルーティング設定だけでVPC
Bへ到達できる記述を削除し、必要な中継方式を記載する。

In `@Speech-to-text-challenge-lab-best-practices.html`:
- Around line 405-419: Change the outer `.sidebar` landmark from `nav` to
`aside`, keeping the inner navigation element and its existing links unchanged
so `.sidebar nav a` continues to match. Add a distinguishing `aria-label` to the
remaining navigation element to identify its purpose.
- Line 649: HTML内のコード例で生の特殊文字を使用しているため、`cat > request.json << EOF`
を含む該当箇所を修正してください。行649、669、808、826の `<pre>` 内で `>` を `&gt;`、`<` を `&lt;`
に置換し、行553の既存のエスケープ表記と統一してください。
- Around line 1298-1330: renderDiagrams() の document.fonts.ready 待機と
mermaid.render 呼び出しを try/catch
で保護し、フォント準備または個別の図の描画に失敗しても残りのループ処理を継続してください。失敗した図は既存の空コンテナを維持しつつ、エラー詳細を記録して原因を追跡できるようにします。さらに、renderDiagrams()
の呼び出し側にも catch を追加して未処理の Promise 拒否を防いでください。

In `@Speech-to-text-challenge-lab-best-practices.md`:
- Line 212: Update the `multi_es.flac` row so it does not assume the file is
mono or justify omitting `audioChannelCount` on that basis; instead, state that
the channel count must be verified and provide a brief `sox --i`-based
inspection step before configuring the request.
- Around line 262-266: トラブルシューティング表の400
INVALID_ARGUMENT行を、FLAC/WAVでencodingを明示すること自体ではなく、指定値がファイルヘッダーと一致しないことが原因となるよう修正してください。対処も、ヘッダー情報を確認してencodingやsampleRateHertzを一致させるか、ヘッダーと矛盾しない場合に限り省略する内容に更新し、本文の手順と整合させてください。
- Around line 217-232: フロー図の分岐構造を修正し、Markdown と HTML の両方で Start
から単一の拡張子判定ノードへ接続してください。`.wav` と `.flac`
の各遷移、および以降のチャンネル数判定に続く遷移へ、対応する条件ラベルを追加し、無条件に複数経路が実行される表現をなくしてください。
🪄 Autofix

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 Plus

Run ID: 357f381a-3d35-408b-b6e5-9fd73d343b1b

📥 Commits

Reviewing files that changed from the base of the PR and between 2194f85 and 3919b49.

📒 Files selected for processing (37)
  • .claude/rules/tdd-commit-workflow.md
  • Adk-challenge-lab-guide.html
  • Adk-challenge-lab-guide.md
  • CLAUDE.md
  • Cloud-natural-language-api-challenge-lab-guide.html
  • Cloud-natural-language-api-challenge-lab-guide.md
  • Cloud-speech-api-challenge-lab-guide.html
  • Cloud-speech-api-challenge-lab-guide.md
  • Fantasy-character-creator-best-practices.html
  • Fantasy-character-creator-best-practices.md
  • GEMINI.md
  • Gsp-kubernetes-best-practices-guide.html
  • Gsp-kubernetes-best-practices-guide.md
  • Iap-tcp-forwarding-best-practices-guide.md
  • MIGRATION_PROGRESS.md
  • Pcne-section1-vpc-design.html
  • Pcne-section1-vpc-design.md
  • Speech-to-text-challenge-lab-best-practices.html
  • Speech-to-text-challenge-lab-best-practices.md
  • Terrafor-gcp-challenge-lab-guide.md
  • __tests__/aws/solutions-architect-associate/domain4/page.test.tsx
  • __tests__/cisco-ccde-guide.test.tsx
  • app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx
  • app/aws/solutions-architect-associate/domain4/NavBar.tsx
  • app/aws/solutions-architect-associate/domain4/constants.ts
  • app/aws/solutions-architect-associate/domain4/page.css
  • app/aws/solutions-architect-associate/domain4/page.tsx
  • app/cisco/ccde/complete-guide/CcdeGuide.tsx
  • app/cisco/ccde/complete-guide/NavBar.tsx
  • app/cisco/ccde/complete-guide/constants.ts
  • app/cisco/ccde/complete-guide/page.css
  • app/cisco/ccde/complete-guide/page.tsx
  • app/constants.ts
  • archive/Aws/SAA/html/AWS-Certified-Solutions-Architect-Associate-Domain4.html
  • archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md
  • archive/Cisco/html/Ccde-guide.html
  • components/MermaidDiagram.tsx
💤 Files with no reviewable changes (2)
  • Iap-tcp-forwarding-best-practices-guide.md
  • Terrafor-gcp-challenge-lab-guide.md

Comment thread __tests__/aws/solutions-architect-associate/domain4/page.test.tsx Outdated
Comment thread .claude/rules/tdd-commit-workflow.md
Comment thread .claude/rules/tdd-commit-workflow.md Outdated
Comment thread Adk-challenge-lab-guide.html Outdated
Comment thread Adk-challenge-lab-guide.md Outdated
Comment thread Speech-to-text-challenge-lab-best-practices.html Outdated
Comment thread Speech-to-text-challenge-lab-best-practices.html
Comment thread Speech-to-text-challenge-lab-best-practices.md Outdated
Comment thread Speech-to-text-challenge-lab-best-practices.md
Comment thread Speech-to-text-challenge-lab-best-practices.md

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

Review continued from previous batch...

Comment thread __tests__/cisco-ccde-guide.test.tsx
Comment thread __tests__/cisco-ccde-guide.test.tsx Outdated
Comment thread app/cisco/ccde/complete-guide/CcdeGuide.tsx Outdated
Comment thread app/cisco/ccde/complete-guide/CcdeGuide.tsx Outdated
Comment thread app/cisco/ccde/complete-guide/CcdeGuide.tsx
Comment thread app/cisco/ccde/complete-guide/NavBar.tsx 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.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 47

🤖 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 `@__tests__/aws/solutions-architect-associate/domain4/page.test.tsx`:
- Around line 30-38: Expand the tests in the DIAGRAMS and Domain4Guide suite
beyond non-empty checks: assert the expected heading count, exactly 29 Mermaid
diagrams, table row counts and cell text, supplemental content, and source-link
count/content based on the original material. Keep the assertions focused on
migration completeness so omissions in mappings, wording, or references fail the
tests.

In `@__tests__/cisco-ccde-guide.test.tsx`:
- Around line 82-101: Expand the test case around CcdeGuide to define
expectations based on the source HTML and verify every table header, data-cell
label, explanatory cell, callout, FAQ answer, and reference-source description,
not only the currently listed domain, elective, and cost values. Ensure the
assertions detect omitted or summarized migration content and cover all
supplemental items from the original material.
- Around line 25-29: Update the test around CcdeGuidePage to import or access
the page’s exported metadata directly and assert the expected metadata.title
and/or metadata.description values. Keep the existing render and heading
assertion only if still useful, but ensure the test fails when either metadata
field is removed or changed.

In @.claude/rules/tdd-commit-workflow.md:
- Line 44: Update the accessibility validation requirement in the Mermaid/SVG
diagram checklist to accept either an ariaLabel or decorative={true}, instead of
requiring ariaLabel alone, while preserving the rule that every SVG component
must specify one of these attributes.
- Around line 35-47: 学習ガイド/HTML移行の高強度テスト要件を、主要項目だけでなく全量検証に統一してください。Step 1
の表セル検証ではすべての td と th の文言を対象にし、出典リンク検証では blockquote
内に限定せず事前インベントリに含まれる全リンクとURLを確認するよう更新してください。

In `@Adk-challenge-lab-guide.html`:
- Around line 7-12: 外部 CDN の highlight.js と Mermaid の script、および highlight.js の
stylesheet link に、各リリース内容を検証した正しい sha384 の integrity 属性と crossorigin="anonymous"
を追加してください。対象の CDN URL とバージョンは変更せず、各リソースに対応するハッシュを設定し、代替として監査済みアセットをリポジトリ管理する場合は
CDN 参照を置き換えてください。

In `@Adk-challenge-lab-guide.md`:
- Around line 278-282: Update the geo_validator verification instructions in
Adk-challenge-lab-guide.md lines 278-282 to use `cd ~/adk_project && adk run
geo_validator`, instruct the reader to enter a country name, and describe
confirming the formatted JSON response; apply the same command and success
criteria in Adk-challenge-lab-guide.html lines 1056-1068, replacing the direct
agent.py execution guidance.

In `@app/aws/solutions-architect-associate/domain4/constants.ts`:
- Around line 208-212: Update the NATInstance Mermaid description in the
constants definition so it no longer suggests that NAT instances have no usage
cost; state that the EC2 instance is billed while running and may also incur
EBS, public IPv4, and data-transfer charges. Apply the same corrected wording
consistently in Domain4Guide.tsx, the HTML archive, and the Markdown archive.

In `@app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx`:
- Around line 71-77: Domain4Guide の表を含む全テーブルで、列見出しを表すすべての <th> に scope="col"
を追加してください。特に diff の thead 内にある「ツール/機能」「主な役割」「初級者向けポイント」の各 <th>
を更新し、既存の見出し文言とテーブル構造は維持してください。
- Around line 1-18: Remove the 'use client' directive from Domain4Guide so it
becomes a Server Component. Keep the existing NavBar and MermaidDiagram imports
and usage unchanged as their Client Component boundaries.
- Around line 1381-1384: Update the href in the list item for “S3 Glacier Vault
Lock” to point to the official S3 Glacier Vault Lock documentation instead of
the DynamoDB Accelerator (DAX) page, preserving the existing label and link
attributes.

In `@app/aws/solutions-architect-associate/domain4/NavBar.tsx`:
- Around line 40-70: Update NavBar with a dedicated "use client" component that
manages mobile sidebar open state, adds a toggle button with aria-expanded and
aria-controls="sidebar", and conditionally applies the open state to the
sidebar. Render a matching overlay that closes the menu when activated, while
preserving the existing navigation and activeId behavior.

In `@app/aws/solutions-architect-associate/domain4/page.css`:
- Around line 140-144: Update the .domain4-page .content rule to constrain the
main content with a centered max-width while preserving its existing sidebar
offset and spacing. Keep the page background full-width; only limit and center
the inner content area.
- Around line 1-15: Remove the custom property declarations from the
.domain4-page rule in page.css, and update its styles to use the existing shared
tokens such as --color-background, --color-foreground, and --color-border from
app/globals.css. Move any missing shared tokens to the global token architecture
rather than defining new component-level variables, including replacing the
local sidebar width variable with its established shared value.
- Around line 359-369: Replace the :global(...) wrappers in the Mermaid override
selectors within the .domain4-page .mermaid-wrap rules with standard descendant
selectors, preserving the existing .pieCircle, .pieTitleText, and .legend text
styles and page scoping.

In `@app/cisco/ccde/complete-guide/CcdeGuide.tsx`:
- Around line 17-986:
CcdeGuideを各ガイドセクション単位へ分割し、components/sections/配下に12セクション、表、FAQ、情報源などの専用コンポーネントを作成して、CcdeGuideはNavBarと各セクションの組み立てに限定してください。各セクション固有のスタイルは対応するCSS
Modulesへ移し、既存の表示内容・アンカーID・目次リンクを維持してください。
- Around line 1-5: CcdeGuide を Server Component に戻し、ファイル先頭の 'use client'
を削除してください。ブラウザAPIや状態を使う NavBar と MermaidDiagram のみが Client Component
境界になる構成を維持し、CcdeGuide 自体の表示内容や DIAGRAMS の利用は変更しないでください。
- Around line 7-17:
JSDocを追加し、app/cisco/ccde/complete-guide/CcdeGuide.tsx(7-17行)のDiagramが図表をIDで解決して表示または未定義時に非表示にする責務と、CcdeGuideがガイド全体を構成する責務を記述してください。__tests__/cisco-ccde-guide.test.tsx(9-22行)のDummyMermaidDiagramがMermaidDiagramの模擬として受け取る契約と表示責務を記述してください。app/cisco/ccde/complete-guide/NavBar.tsx(20行)のNavBarが監視する対象と状態更新の責務、app/cisco/ccde/complete-guide/page.tsx(11行)のCcdeGuidePageが担うページエントリ責務もJSDocで明記してください。

In `@app/cisco/ccde/complete-guide/NavBar.tsx`:
- Around line 5-18: Move the shared CCDE section definitions from NAV_ITEMS and
the duplicate table-of-contents data in CcdeGuide.tsx into the nearby
constants.ts, including each section ID, short navigation label, and
table-of-contents label. Update both the sticky navigation and CcdeGuide.tsx to
consume that single shared definition while preserving the current order and
displayed text.

In `@app/cisco/ccde/complete-guide/page.css`:
- Around line 1-17: Remove the page-specific custom property declarations from
the .ccde-guide-page rule, including color and font tokens, and update any
references in this stylesheet to use the existing tokens from app/globals.css
directly. Do not introduce replacement --* variables in the page CSS.

In `@archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md`:
- Around line 218-224:
表の見出し行と区切り行の間にある不要な`<br/>`を削除し、Markdownテーブルの区切り行が見出し行の直後に続くよう修正してください。表の内容や構成は変更しないでください。

In `@archive/Cisco/html/Ccde-guide.html`:
- Around line 1-2:
移行元HTMLの配置を見直し、Ccde-guide.htmlをarchive/Cisco/html/から移行ルールで指定された適切なGcl_Archive/配下へ移動してください。元ファイルを削除せず、移動先で移行記録から追跡できる状態を維持してください。

In `@Cloud-natural-language-api-challenge-lab-guide.html`:
- Around line 807-811: Escape the raw shell redirection characters in the <pre>
blocks by replacing each displayed “>” with “&gt;”, including the occurrences
near the analyze-response and corresponding line 819 command, while preserving
the shell commands’ rendered behavior.
- Around line 545-553: Update the Mermaid diagram labels in the visible
flowchart and the corresponding diagrams around the other referenced sections to
replace every label-internal \n with <br/>. Preserve the existing Japanese text
and diagram structure, and apply the same notation consistently with the other
guides.
- Around line 7-10: Cloud-natural-language-api-challenge-lab-guide.html lines
7-10, Cloud-speech-api-challenge-lab-guide.html lines 11-14, and
Speech-to-text-challenge-lab-best-practices.html lines 7-10 all reference Tabler
Icons without a fixed version; update each `@tabler/icons-webfont` CDN URL to the
same explicit version, replacing latest or the unversioned package reference.

In `@Cloud-speech-api-challenge-lab-guide.html`:
- Line 1120: Update the transcript value in the relevant example to restore the
French diacritics, including “maître” and “perché,” while preserving the rest of
the original transcription exactly as provided in
Cloud-speech-api-challenge-lab.md.
- Around line 1616-1621: Move useMaxWidth: false out of the top-level
mermaid.initialize configuration and add it under both the flowchart and
sequence diagram-specific configuration objects, preserving the existing value
and other Mermaid settings.

In `@Cloud-speech-api-challenge-lab-guide.md`:
- Around line 1-2: In Cloud-speech-api-challenge-lab-guide.md lines 1-2, replace
the subtitle’s h3 heading with a blank line followed by emphasized text,
preserving its wording. Apply the same change in
Speech-to-text-challenge-lab-best-practices.md lines 1-2 to the subtitle,
converting it from h3 to emphasized text after a blank line.
- Line 111:
Cloud-speech-api-challenge-lab-guide.md内の本文から、生成時の内部引用アーティファクトである<cite>タグをすべて削除してください。index="32-1"、"31-1"、"4-1"、"52-1"、"27-1"を含む各箇所の文章内容は維持し、根拠は既存の「根拠ソース」リストで示してください。

In `@Fantasy-character-creator-best-practices.html`:
- Around line 604-617:
Fantasy-character-creator-best-practices.htmlのヒーロー説明(604-617)に「Google AI Studio
/ Build modeを初めて使う方」と「ノーコードで“vibe
coding”に挑戦する方」を追加し、同HTMLの1361-1382付近ではMarkdown版にある「cartoon/video game
style」「Portrait/Backstory」およびステータス・キャラクター要素の値域と候補リストを復元してください。既存のReact + Gemini
APIやTask情報を保持し、Markdown版の詳細を省略・要約せずHTMLへ完全反映してください。

In `@Gsp-kubernetes-best-practices-guide.html`:
- Around line 490-492: Update the menuToggle button with aria-controls="sidebar"
and an initial aria-expanded="false", then synchronize aria-expanded and
aria-label whenever the sidebar is toggled or a navigation link is selected.
Ensure the values always reflect whether the sidebar is currently open or
closed.
- Around line 1263-1267: CDN script tags for highlight.js language bundles and
mermaid in the HTML need Subresource Integrity protection. Add the correct fixed
SHA-384 integrity hash and crossorigin="anonymous" attribute to each external
script, preserving their existing sources and versions.

In `@Gsp-kubernetes-best-practices-guide.md`:
- Around line 213-226: Gsp-kubernetes-best-practices-guide.md:213-226
のデプロイ手順で、valkyrie-app から実行しても YAML を解決できるよう `k8s`
への移動を明記するか、`k8s/deployment.yaml` と `k8s/service.yaml`
の相対パスを使用してください。Gsp-kubernetes-best-practices-guide.html:916-948 も Markdown
と同じ実行可能なパスまたは作業ディレクトリ変更に更新し、両形式の手順を一致させてください。
- Around line 90-96: Gsp-kubernetes-best-practices-guide.md の Dockerfile
命令表(90-96)で、FROM の説明をタグによる追跡性と、タグ+ダイジェスト固定によるビット単位の再現性に分け、golang:1.10
は変更しないでください。Gsp-kubernetes-best-practices-guide.md(249-253)の「ビルドの再現性を確保」も、ダイジェスト固定が必要な表現へ修正してください。Gsp-kubernetes-best-practices-guide.html(668-714、1026-1044)の対応する
Dockerfile 命令表とベストプラクティス表を、修正後の Markdown と同じ内容に同期してください。

In `@MIGRATION_PROGRESS.md`:
- Line 32:
移行元HTMLのアーカイブ先をMIGRATION_PROGRESS.md内のarchive/Ciscoおよびarchive/Awsから、既定のGcl_Archive/配下へ統一し、該当する参照を更新してください。HTML自体は削除せずGcl_Archive/へ移動し、関連する移行進捗リンクが新しい場所を指す状態を維持してください。
- Around line 20-22: CCDE の完了履歴から未完了の Docs Sync
手順または記録を削除し、MIGRATION_PROGRESS.md の Step 1〜3 は完了済みのまま維持してください。特に CCDE の完了ステップに
Docs Sync を追加せず、既存のテスト検証・ルーティング統合・アーカイブ移動の記録だけを残してください。

In `@Pcne-section1-vpc-design.html`:
- Around line 564-566: Update the sidebar toggle behavior around the
sidebarToggle button so mobile sidebar state is synchronized for accessibility:
initialize the closed sidebar with inert and aria-hidden="true", expose the
state through aria-expanded, and update all three attributes whenever toggled.
When opening, move focus to the first navigation link; when closing, return
focus to sidebarToggle.

In `@Pcne-section1-vpc-design.md`:
- Around line 1-2: Pcne-section1-vpc-design.md の H1 見出しと H2 見出しの間に空行を1行追加し、MD022
の見出し間隔ルールを満たしてください。
- Around line 992-999: In Pcne-section1-vpc-design.md lines 992-999, revise the
サービスアカウント guidance to limit node-pool service accounts to node operations such
as logging and image retrieval, and specify Workload Identity Federation for GKE
with per-workload Kubernetes ServiceAccounts for workload Google API
permissions. Apply the same change in Pcne-section1-vpc-design.html lines
3124-3134.
- Around line 512-536: Cloud VPN の gateway MTU と payload MTU の説明を分離し、可変の payload
MTU を「1460バイト固定」と記載しないよう修正してください。Pcne-section1-vpc-design.md の 512-536
では図と表を更新し、815-822 では HA VPN over Cloud Interconnect の gateway MTU
1440バイトと暗号スイートおよびIPv4/IPv6に応じて変化する payload MTU
を記載してください。Pcne-section1-vpc-design.html の 1791-1851 と 2613-2654 も同じ内容に同期してください。
- Around line 402-416: VPC Network Peering
を単独のスポーク間通信方式として扱わないよう修正する。Pcne-section1-vpc-design.md の402-416行と
Pcne-section1-vpc-design.html
の1530-1569行では、比較図・表にNVA/NGFWなどの中継方式を追加するか、非推移的ルーティング制約を明記する。Pcne-section1-vpc-design.md
の679-700行と Pcne-section1-vpc-design.html の2301-2306行では、明示的なルーティング設定だけでVPC
Bへ到達できる記述を削除し、必要な中継方式を記載する。

In `@Speech-to-text-challenge-lab-best-practices.html`:
- Around line 405-419: Change the outer `.sidebar` landmark from `nav` to
`aside`, keeping the inner navigation element and its existing links unchanged
so `.sidebar nav a` continues to match. Add a distinguishing `aria-label` to the
remaining navigation element to identify its purpose.
- Line 649: HTML内のコード例で生の特殊文字を使用しているため、`cat > request.json << EOF`
を含む該当箇所を修正してください。行649、669、808、826の `<pre>` 内で `>` を `&gt;`、`<` を `&lt;`
に置換し、行553の既存のエスケープ表記と統一してください。
- Around line 1298-1330: renderDiagrams() の document.fonts.ready 待機と
mermaid.render 呼び出しを try/catch
で保護し、フォント準備または個別の図の描画に失敗しても残りのループ処理を継続してください。失敗した図は既存の空コンテナを維持しつつ、エラー詳細を記録して原因を追跡できるようにします。さらに、renderDiagrams()
の呼び出し側にも catch を追加して未処理の Promise 拒否を防いでください。

In `@Speech-to-text-challenge-lab-best-practices.md`:
- Line 212: Update the `multi_es.flac` row so it does not assume the file is
mono or justify omitting `audioChannelCount` on that basis; instead, state that
the channel count must be verified and provide a brief `sox --i`-based
inspection step before configuring the request.
- Around line 262-266: トラブルシューティング表の400
INVALID_ARGUMENT行を、FLAC/WAVでencodingを明示すること自体ではなく、指定値がファイルヘッダーと一致しないことが原因となるよう修正してください。対処も、ヘッダー情報を確認してencodingやsampleRateHertzを一致させるか、ヘッダーと矛盾しない場合に限り省略する内容に更新し、本文の手順と整合させてください。
- Around line 217-232: フロー図の分岐構造を修正し、Markdown と HTML の両方で Start
から単一の拡張子判定ノードへ接続してください。`.wav` と `.flac`
の各遷移、および以降のチャンネル数判定に続く遷移へ、対応する条件ラベルを追加し、無条件に複数経路が実行される表現をなくしてください。
🪄 Autofix

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 Plus

Run ID: 357f381a-3d35-408b-b6e5-9fd73d343b1b

📥 Commits

Reviewing files that changed from the base of the PR and between 2194f85 and 3919b49.

📒 Files selected for processing (37)
  • .claude/rules/tdd-commit-workflow.md
  • Adk-challenge-lab-guide.html
  • Adk-challenge-lab-guide.md
  • CLAUDE.md
  • Cloud-natural-language-api-challenge-lab-guide.html
  • Cloud-natural-language-api-challenge-lab-guide.md
  • Cloud-speech-api-challenge-lab-guide.html
  • Cloud-speech-api-challenge-lab-guide.md
  • Fantasy-character-creator-best-practices.html
  • Fantasy-character-creator-best-practices.md
  • GEMINI.md
  • Gsp-kubernetes-best-practices-guide.html
  • Gsp-kubernetes-best-practices-guide.md
  • Iap-tcp-forwarding-best-practices-guide.md
  • MIGRATION_PROGRESS.md
  • Pcne-section1-vpc-design.html
  • Pcne-section1-vpc-design.md
  • Speech-to-text-challenge-lab-best-practices.html
  • Speech-to-text-challenge-lab-best-practices.md
  • Terrafor-gcp-challenge-lab-guide.md
  • __tests__/aws/solutions-architect-associate/domain4/page.test.tsx
  • __tests__/cisco-ccde-guide.test.tsx
  • app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx
  • app/aws/solutions-architect-associate/domain4/NavBar.tsx
  • app/aws/solutions-architect-associate/domain4/constants.ts
  • app/aws/solutions-architect-associate/domain4/page.css
  • app/aws/solutions-architect-associate/domain4/page.tsx
  • app/cisco/ccde/complete-guide/CcdeGuide.tsx
  • app/cisco/ccde/complete-guide/NavBar.tsx
  • app/cisco/ccde/complete-guide/constants.ts
  • app/cisco/ccde/complete-guide/page.css
  • app/cisco/ccde/complete-guide/page.tsx
  • app/constants.ts
  • archive/Aws/SAA/html/AWS-Certified-Solutions-Architect-Associate-Domain4.html
  • archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md
  • archive/Cisco/html/Ccde-guide.html
  • components/MermaidDiagram.tsx
💤 Files with no reviewable changes (2)
  • Iap-tcp-forwarding-best-practices-guide.md
  • Terrafor-gcp-challenge-lab-guide.md
🛑 Comments failed to post (10)
app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx (3)

1-18: 🚀 Performance & Scalability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

FILE="app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx"

echo "== file exists and size =="
wc -l "$FILE"

echo "== first 120 lines =="
sed -n '1,120p' "$FILE"

echo "== imports/usages of hooks/browser APIs in Domain4Guide.tsx =="
python3 - <<'PY'
from pathlib import Path
p=Path("app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx")
s=p.read_text()
print("has_use_client:", "'use client'" in s or '"use client"' in s)
for token in ["useState","useEffect","useContext","useLayoutEffect","useReducer","useRef","useCallback","useMemo","useImperativeHandle","router.","pathname","searchParams","cookies","headers","localStorage","sessionStorage"]:
    if token in s:
        print("contains", token)
print("matches_hooks:", {token:s.count(token) for token in ["useClient","useState","useEffect","useContext","useLayoutEffect","useReducer","useRef","useCallback","useMemo","useImperativeHandle"]})
PY

echo "== import chain for NavBar and MermaidDiagram =="
printf '\nNavBar imports:\n'
rg -n "export .*NavBar|'use client'|useState|useEffect|cookies|headers|localStorage|sessionStorage" app/aws/solutions-architect-associate/domain4/NavBar.tsx app/aws/solutions-architect-associate/domain4/NavBar.ts 2>/dev/null || true
printf '\nMermaidDiagram imports:\n'
rg -n "export .*MermaidDiagram|'use client'|useState|useEffect|cookies|headers|localStorage|sessionStorage" app/components/MermaidDiagram.tsx app/components/MermaidDiagram.ts 2>/dev/null || true

Repository: myoshi2891/Cloud-Infrastructure-and-Network-Studies

Length of output: 7004


Domain4Guide を Server Component に戻してください。

このコンポーネントは状態管理とブラウザ API を使用していません。'use client' により、ガイド本文と DIAGRAMS の文字列が不用にクライアントバンドルへ入ります。NavBar と MermaidDiagram は Client Component 境界として残し、このディレクティブを削除してください。

🤖 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/aws/solutions-architect-associate/domain4/Domain4Guide.tsx` around lines
1 - 18, Remove the 'use client' directive from Domain4Guide so it becomes a
Server Component. Keep the existing NavBar and MermaidDiagram imports and usage
unchanged as their Client Component boundaries.

Source: Coding guidelines


71-77: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

すべての列見出しへ scope="col" を追加してください。

この表を含む全表の <th> に列見出しのスコープがありません。スクリーンリーダーが列見出しとセルを確実に関連付けられるようにしてください。

修正例
-<th>ツール/機能</th>
+<th scope="col">ツール/機能</th>

As per coding guidelines, "表形式データは <table> に変換し、必ず <thead> と <th scope=\"col\"> を含める。"

🤖 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/aws/solutions-architect-associate/domain4/Domain4Guide.tsx` around lines
71 - 77, Domain4Guide の表を含む全テーブルで、列見出しを表すすべての <th> に scope="col" を追加してください。特に
diff の thead 内にある「ツール/機能」「主な役割」「初級者向けポイント」の各 <th> を更新し、既存の見出し文言とテーブル構造は維持してください。

Source: Coding guidelines


1381-1384: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Vault Lock の参照先を修正してください。

表示名は S3 Glacier Vault Lock ですが、href は DynamoDB Accelerator (DAX) のドキュメントを指しています。利用者が誤った資料へ移動します。

修正例
- href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.html"
+ href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html"

As per coding guidelines, "HTML/Markdown移行では元資料の情報を省略・要約せず、出典リンクをすべてTSXへ完全移植する。"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

                                <li>
                                    <a href="https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html" target="_blank" rel="noreferrer">
                                        S3 Glacier Vault Lock
                                    </a>
🤖 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/aws/solutions-architect-associate/domain4/Domain4Guide.tsx` around lines
1381 - 1384, Update the href in the list item for “S3 Glacier Vault Lock” to
point to the official S3 Glacier Vault Lock documentation instead of the
DynamoDB Accelerator (DAX) page, preserving the existing label and link
attributes.

Source: Coding guidelines

archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md (1)

218-224: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

表の区切り行の前から <br/> を削除してください。

Markdown の表は、見出し行の直後に区切り行が必要です。Line 219 の <br/> が表を中断するため、この表は正しく表示されません。

修正例
 | ボリュームタイプ | 種別 | 主な用途 | コスト最適化のポイント |
-<br/>
 |---|---|---|---|

As per coding guidelines, "HTML/Markdown移行では元資料の情報を省略・要約せず、詳細手順、表、注釈、補足項目、出典リンクをすべてTSXへ完全移植する。"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

| ボリュームタイプ | 種別 | 主な用途 | コスト最適化のポイント |
|---|---|---|---|
| gp3 | SSD(汎用) | Webサーバー、開発・テスト環境、ほとんどの汎用ワークロード | gp2より約20%安価。IOPSとスループットを個別にプロビジョニングできるため、必要な分だけ課金される |
| io2 / io2 Block Express | SSD(プロビジョンドIOPS) | 大規模データベース(SAP HANA、Oracleなど) | 過剰スペックにならないよう、実測IOPSに基づいてサイジングする |
| st1 | HDD(スループット最適化) | ビッグデータ、ログ処理、データウェアハウス | gp3よりも大幅に安いが、ブート用途には使えない点に注意 |
| sc1 | HDD(コールドHDD) | アクセス頻度が非常に低いデータ | 最安価格帯だが低頻度アクセス向け |
🤖 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 `@archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md`
around lines 218 - 224,
表の見出し行と区切り行の間にある不要な`<br/>`を削除し、Markdownテーブルの区切り行が見出し行の直後に続くよう修正してください。表の内容や構成は変更しないでください。

Source: Coding guidelines

Pcne-section1-vpc-design.html (1)

564-566: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

モバイルドロワーのフォーカスと状態を同期してください。

幅 900px 以下では .sidebar を画面外へ移動するだけです。閉じた状態でもサイドバー内のリンクは Tab 操作と支援技術から到達できます。トグルボタンも展開状態を公開しません。閉じた状態では inert と aria-hidden="true" を設定し、切替時に aria-expanded、inert、aria-hidden を同期してください。開いた時は最初のナビゲーションリンクへ、閉じた時はトグルボタンへフォーカスを移動してください。(developer.mozilla.org)

Also applies to: 3834-3846

🧰 Tools
🪛 HTMLHint (1.9.2)

[warning] 564-564: The type attribute must be present on elements.

(button-type-require)

🤖 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 `@Pcne-section1-vpc-design.html` around lines 564 - 566, Update the sidebar
toggle behavior around the sidebarToggle button so mobile sidebar state is
synchronized for accessibility: initialize the closed sidebar with inert and
aria-hidden="true", expose the state through aria-expanded, and update all three
attributes whenever toggled. When opening, move focus to the first navigation
link; when closing, return focus to sidebarToggle.
Pcne-section1-vpc-design.md (4)

1-2: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

見出しの間に空行を追加してください。

Line 1 の H1 と Line 2 の H2 が連続しています。MD022 を満たすため、両者の間に空行を 1 行追加してください。

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 1-1: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 2-2: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above

(MD022, blanks-around-headings)

🤖 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 `@Pcne-section1-vpc-design.md` around lines 1 - 2, Pcne-section1-vpc-design.md
の H1 見出しと H2 見出しの間に空行を1行追加し、MD022 の見出し間隔ルールを満たしてください。

Source: Linters/SAST tools


402-416: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

VPC Peering 単体をスポーク間通信の方式として記述しないでください。

VPC Network Peering は推移的ルーティングを提供しません。ルーティング VPC へ Peering 接続するだけでは、スポーク間通信は成立しません。スポーク間通信が必要な図と表には、NVA/NGFW をゲートウェイとして追加するか、NCC または Cloud VPN の方式へ置き換えてください。(docs.cloud.google.com)

  • Pcne-section1-vpc-design.md#L402-L416: 図と比較表を、NVA/NGFW を含む構成、または非推移的である制約を明示する構成へ修正してください。
  • Pcne-section1-vpc-design.md#L679-L700: 明示的なルーティング設定だけで VPC B へ到達できるという記述を削除し、必要な中継方式を記載してください。
  • Pcne-section1-vpc-design.html#L1530-L1569: 図と比較表を、NVA/NGFW を含む構成、または非推移的である制約を明示する構成へ修正してください。
  • Pcne-section1-vpc-design.html#L2301-L2306: 明示的なルーティング設定だけで VPC B へ到達できるという記述を削除し、必要な中継方式を記載してください。
📍 Affects 2 files
  • Pcne-section1-vpc-design.md#L402-L416 (this comment)
  • Pcne-section1-vpc-design.md#L679-L700
  • Pcne-section1-vpc-design.html#L1530-L1569
  • Pcne-section1-vpc-design.html#L2301-L2306
🤖 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 `@Pcne-section1-vpc-design.md` around lines 402 - 416, VPC Network Peering
を単独のスポーク間通信方式として扱わないよう修正する。Pcne-section1-vpc-design.md の402-416行と
Pcne-section1-vpc-design.html
の1530-1569行では、比較図・表にNVA/NGFWなどの中継方式を追加するか、非推移的ルーティング制約を明記する。Pcne-section1-vpc-design.md
の679-700行と Pcne-section1-vpc-design.html の2301-2306行では、明示的なルーティング設定だけでVPC
Bへ到達できる記述を削除し、必要な中継方式を記載する。

512-536: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Cloud VPN の gateway MTU と payload MTU を区別してください。

Cloud VPN の 1460 バイトは gateway MTU です。トンネルの payload MTU は暗号スイートと IPv4/IPv6 によって変化します。HA VPN over Cloud Interconnect の gateway MTU は 1440 バイトです。「payload MTU は既定で 1460 バイト固定」という記述を修正してください。(docs.cloud.google.com)

  • Pcne-section1-vpc-design.md#L512-L536: 図と表を gateway MTU と payload MTU の区別に合わせて修正してください。
  • Pcne-section1-vpc-design.md#L815-L822: HA VPN over Cloud Interconnect の 1440 バイト gateway MTU と可変 payload MTU を記載してください。
  • Pcne-section1-vpc-design.html#L1791-L1851: 図と表を gateway MTU と payload MTU の区別に合わせて修正してください。
  • Pcne-section1-vpc-design.html#L2613-L2654: HA VPN over Cloud Interconnect の 1440 バイト gateway MTU と可変 payload MTU を記載してください。
📍 Affects 2 files
  • Pcne-section1-vpc-design.md#L512-L536 (this comment)
  • Pcne-section1-vpc-design.md#L815-L822
  • Pcne-section1-vpc-design.html#L1791-L1851
  • Pcne-section1-vpc-design.html#L2613-L2654
🤖 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 `@Pcne-section1-vpc-design.md` around lines 512 - 536, Cloud VPN の gateway MTU
と payload MTU の説明を分離し、可変の payload MTU
を「1460バイト固定」と記載しないよう修正してください。Pcne-section1-vpc-design.md の 512-536
では図と表を更新し、815-822 では HA VPN over Cloud Interconnect の gateway MTU
1440バイトと暗号スイートおよびIPv4/IPv6に応じて変化する payload MTU
を記載してください。Pcne-section1-vpc-design.html の 1791-1851 と 2613-2654 も同じ内容に同期してください。

992-999: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

ワークロードの最小権限にノードプールサービスアカウントを使わないでください。

ノードプールサービスアカウントはノードのログ送信やイメージ取得などのノード処理用です。これはワークロード単位の ID 境界ではありません。ワークロードの Google API 権限には、Workload Identity Federation for GKE とワークロードごとの Kubernetes ServiceAccount を使用するように記述を修正してください。(docs.cloud.google.com)

  • Pcne-section1-vpc-design.md#L992-L999: ノードプールサービスアカウントの用途をノード処理へ限定し、ワークロード権限の説明を Workload Identity Federation へ変更してください。
  • Pcne-section1-vpc-design.html#L3124-L3134: ノードプールサービスアカウントの用途をノード処理へ限定し、ワークロード権限の説明を Workload Identity Federation へ変更してください。
📍 Affects 2 files
  • Pcne-section1-vpc-design.md#L992-L999 (this comment)
  • Pcne-section1-vpc-design.html#L3124-L3134
🤖 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 `@Pcne-section1-vpc-design.md` around lines 992 - 999, In
Pcne-section1-vpc-design.md lines 992-999, revise the サービスアカウント guidance to
limit node-pool service accounts to node operations such as logging and image
retrieval, and specify Workload Identity Federation for GKE with per-workload
Kubernetes ServiceAccounts for workload Google API permissions. Apply the same
change in Pcne-section1-vpc-design.html lines 3124-3134.
archive/Cisco/html/Ccde-guide.html (1)

1-2: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

移行元HTMLを Gcl_Archive/ 配下へ移動してください。

移行元は archive/Cisco/html/ ではなく、移行ルールが指定する適切な Gcl_Archive/ 配下へ配置してください。元HTMLは削除せず、移動後も移行記録から追跡できる状態にしてください。

As per coding guidelines: 「HTMLからの移行時は移行元HTMLを削除せず、完了後に適切な Gcl_Archive/ 配下へ移動する」。

🤖 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 `@archive/Cisco/html/Ccde-guide.html` around lines 1 - 2,
移行元HTMLの配置を見直し、Ccde-guide.htmlをarchive/Cisco/html/から移行ルールで指定された適切なGcl_Archive/配下へ移動してください。元ファイルを削除せず、移動先で移行記録から追跡できる状態を維持してください。

Source: Coding guidelines

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 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

Caution

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

⚠️ Outside diff range comments (1)
archive/Cisco/md/ccna/Ccna-automation-api-guide.md (1)

434-434: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

POSTの認証ヘッダー例を移行先と同期してください。

Line 434 は Authorization: Bearer に変更されています。一方、app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx の同じPOST例は Line 735-736 で X-Cisco-Meraki-API-Key を使用しています。

両方のヘッダーがサポートされる場合でも、同じガイドの同じAPI例が異なる設定を示しています。現在の標準例を統一し、旧ヘッダーは旧方式として明示してください。

修正例
-    "X-Cisco-Meraki-API-Key": "<APIキー>",
+    "Authorization": "Bearer <APIキー>",

As per coding guidelines, HTML/Markdownからの移行では元資料の情報を省略・要約・抜粋せず、詳細な内容をTSXへ移植してください。

🤖 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 `@archive/Cisco/md/ccna/Ccna-automation-api-guide.md` at line 434,
同期先のCcnaAutomationApiGuide.tsxにある同じPOST例と認証ヘッダーを統一し、標準例ではX-Cisco-Meraki-API-Keyを使用してください。Authorization:
Bearerの例を残す場合は旧方式であることを明示し、MarkdownとTSX間で内容を省略せず同じ情報を反映してください。

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.

Inline comments:
In `@Adk-challenge-lab-guide.html`:
- Around line 873-876: Mermaid シーケンス図の U->>A、A->>G、G-->>A、A-->>U
の矢印記号に含まれるすべての「>」を HTML エンティティ「&gt;」へ置換し、Mermaid が同じ矢印として解釈できる状態を維持してください。

---

Outside diff comments:
In `@archive/Cisco/md/ccna/Ccna-automation-api-guide.md`:
- Line 434:
同期先のCcnaAutomationApiGuide.tsxにある同じPOST例と認証ヘッダーを統一し、標準例ではX-Cisco-Meraki-API-Keyを使用してください。Authorization:
Bearerの例を残す場合は旧方式であることを明示し、MarkdownとTSX間で内容を省略せず同じ情報を反映してください。
🪄 Autofix

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 Plus

Run ID: 7ed53634-a467-4369-981d-5f2b2d32655b

📥 Commits

Reviewing files that changed from the base of the PR and between c533d97 and 9d0039e.

📒 Files selected for processing (6)
  • Adk-challenge-lab-guide.html
  • __tests__/cisco/ccna/automation-api-guide/page.test.tsx
  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
  • app/cisco/ccna/automation-api-guide/constants.ts
  • archive/Cisco/html/ccna/Ccna-automation-api-guide.html
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md

Comment thread Adk-challenge-lab-guide.html 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.

Caution

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

⚠️ Outside diff range comments (1)
app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx (1)

789-793: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

両方の資料で最終試行の待機を防止してください。

最後の試行でも Retry-After を待機してからループを抜けるため、次のリクエストがないのに処理が停止します。

  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx#L789-L793: 最終試行なら待機前に終了してください。
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md#L489-L493: 同じ終了条件を追加してください。
🤖 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/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx` around lines
789 - 793, 最終試行で不要な待機を行わないよう、CcnaAutomationApiGuide.tsx のリトライ処理(789-793行)で
wait_seconds の設定・sleep 前に最終試行を判定してループを終了してください。同じ終了条件を
archive/Cisco/md/ccna/Ccna-automation-api-guide.md
の489-493行にも追加し、両資料の動作を一致させてください。
🤖 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/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`:
- Around line 789-793: 最終試行で不要な待機を行わないよう、CcnaAutomationApiGuide.tsx
のリトライ処理(789-793行)で wait_seconds の設定・sleep 前に最終試行を判定してループを終了してください。同じ終了条件を
archive/Cisco/md/ccna/Ccna-automation-api-guide.md
の489-493行にも追加し、両資料の動作を一致させてください。

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6013d3cc-2371-473c-985e-b6f89a39e870

📥 Commits

Reviewing files that changed from the base of the PR and between 9d0039e and 5df1194.

📒 Files selected for processing (3)
  • Adk-challenge-lab-guide.html
  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 7, 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/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`:
- Around line 789-790: Update the retry logic around the 429, RequestException,
and 5xx handling paths in
app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx (anchor lines
789-790) so every path skips time.sleep(...) when attempt == max_retries - 1 and
breaks to return the existing limit error. Apply the same change to
archive/Cisco/md/ccna/Ccna-automation-api-guide.md (sibling lines 489-490) to
keep the Markdown example synchronized.
🪄 Autofix

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 Plus

Run ID: f0051266-37f3-4e1b-b10f-fdab13a3bac9

📥 Commits

Reviewing files that changed from the base of the PR and between 5df1194 and cdb4211.

📒 Files selected for processing (3)
  • __tests__/cisco/ccna/automation-api-guide/page.test.tsx
  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md

Comment thread app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 8, 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

♻️ Duplicate comments (1)
app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx (1)

778-779: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Retry-After の値を3600秒で切り捨てないでください。

両方の例がサーバー指定値を変更しています。HTTP仕様どおりに値を尊重する例なら上限を削除してください。上限を意図したローカルポリシーなら、その理由を資料に明記し、対応するテストを追加してください。

  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx#L778-L779: min(parsed_val, 3600) を見直してください。
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md#L477-L479: TSX例と同じ待機ポリシーに修正してください。
🤖 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/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx` around lines
778 - 779, Retry-After のサーバー指定値を3600秒で切り捨てないよう、CcnaAutomationApiGuide.tsx の該当例で
min(parsed_val, 3600) を削除し、parsed_val
をそのまま待機時間に使用してください。同じ待機ポリシーになるよう、archive/Cisco/md/ccna/Ccna-automation-api-guide.md
の対応例も修正してください。
🤖 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/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`:
- Around line 763-764: 最終試行では再試行メッセージを出さないよう、CcnaAutomationApiGuide.tsx
の該当例では再試行メッセージ出力より前に attempt == max_retries - 1 の判定と break
を移動してください。archive/Cisco/md/ccna/Ccna-automation-api-guide.md
の同じ例もTSX例と同じ順序に修正し、両方の資料で処理と表示内容を一致させてください。

---

Duplicate comments:
In `@app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`:
- Around line 778-779: Retry-After
のサーバー指定値を3600秒で切り捨てないよう、CcnaAutomationApiGuide.tsx の該当例で min(parsed_val, 3600)
を削除し、parsed_val
をそのまま待機時間に使用してください。同じ待機ポリシーになるよう、archive/Cisco/md/ccna/Ccna-automation-api-guide.md
の対応例も修正してください。
🪄 Autofix

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 Plus

Run ID: a73b7cb6-4b8c-4236-8193-25e93029c9b9

📥 Commits

Reviewing files that changed from the base of the PR and between cdb4211 and 24cce0f.

📒 Files selected for processing (2)
  • app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
  • archive/Cisco/md/ccna/Ccna-automation-api-guide.md

Comment thread app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 8, 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 AWS / Cisco / GCP 資格試験ガイドの拡充・完全移行と CCNA Automation API リトライロジック & UI 設計の最適化 Aug 8, 2026
@coderabbitai

coderabbitai Bot commented Aug 8, 2026 •

Copy link
Copy Markdown
Contributor

Note

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

coderabbitai Bot added 2 commits August 8, 2026 10:33
Docstrings generation was requested by @myoshi2891.

The following files were modified:

* `app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx`
* `app/aws/solutions-architect-associate/domain4/NavBar.tsx`
* `app/cisco/ccde/complete-guide/CcdeGuide.tsx`
* `app/cisco/ccde/complete-guide/NavBar.tsx`
* `app/cisco/ccde/complete-guide/page.tsx`
* `app/cisco/ccie/enterprise-infrastructure/CcieEnterpriseGuide.tsx`
* `app/cisco/ccie/enterprise-infrastructure/NavBar.tsx`
* `components/sections/ccde/CertificationsEarnedSection.tsx`
* `components/sections/ccde/ClosingFooter.tsx`
* `components/sections/ccde/CostsSection.tsx`
* `components/sections/ccde/Diagram.tsx`
* `components/sections/ccde/FaqSection.tsx`
* `components/sections/ccde/GlossarySection.tsx`
* `components/sections/ccde/HeroSection.tsx`
* `components/sections/ccde/OverallFlowSection.tsx`
* `components/sections/ccde/PrerequisitesSection.tsx`
* `components/sections/ccde/RecertificationSection.tsx`
* `components/sections/ccde/RoadmapSection.tsx`
* `components/sections/ccde/SourcesSection.tsx`
* `components/sections/ccde/Step1WrittenSection.tsx`
* `components/sections/ccde/Step2PracticalSection.tsx`
* `components/sections/ccde/TitleBlockSection.tsx`
* `components/sections/ccde/TocSection.tsx`
* `components/sections/ccde/WhatIsCcdeSection.tsx`

These files were kept as they were:
* `app/aws/solutions-architect-associate/domain4/page.tsx`
* `app/cisco/ccie/enterprise-infrastructure/page.tsx`
* `app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`

These files were ignored:
* `__tests__/aws/solutions-architect-associate/domain4/page.test.tsx`
* `__tests__/cisco-ccde-guide.test.tsx`
* `__tests__/cisco/ccie-enterprise-infrastructure.test.tsx`
* `__tests__/cisco/ccna/automation-api-guide/page.test.tsx`
* `__tests__/components/Header.hamburger.test.tsx`
* `__tests__/lib/navigation.test.ts`

These file types are not supported:
* `.claude/rules/tdd-commit-workflow.md`
* `Adk-challenge-lab-guide.html`
* `Adk-challenge-lab-guide.md`
* `CLAUDE.md`
* `Cloud-natural-language-api-challenge-lab-guide.html`
* `Cloud-natural-language-api-challenge-lab-guide.md`
* `Cloud-speech-api-challenge-lab-guide.html`
* `Cloud-speech-api-challenge-lab-guide.md`
* `Fantasy-character-creator-best-practices.html`
* `Fantasy-character-creator-best-practices.md`
* `GEMINI.md`
* `Gcl_Archive/Cisco/html/Ccde-guide.html`
* `Gsp-kubernetes-best-practices-guide.html`
* `Gsp-kubernetes-best-practices-guide.md`
* `MIGRATION_PROGRESS.md`
* `Pcne-s2-vpc-implementation.html`
* `Pcne-s4-hybrid-connectivity.md`
* `Pcne-section1-vpc-design.html`
* `Pcne-section1-vpc-design.md`
* `Speech-to-text-challenge-lab-best-practices.html`
* `Speech-to-text-challenge-lab-best-practices.md`
* `app/aws/solutions-architect-associate/domain4/page.css`
* `app/cisco/ccde/complete-guide/page.css`
* `app/cisco/ccie/enterprise-infrastructure/page.module.css`
* `app/globals.css`
* `archive/Aws/SAA/html/AWS-Certified-Solutions-Architect-Associate-Domain4.html`
* `archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain4.md`
* `archive/Cisco/html/ccie/Ccie-enterprise-infrastructure.html`
* `archive/Cisco/html/ccna/Ccna-automation-api-guide.html`
* `archive/Cisco/html/ccna/Ccna-automation-software-development-design.html`
* `archive/Cisco/html/ccna/Ccna-beginner-guide.html`
* `archive/Cisco/html/ccna/Ccna-ip-connectivity-guide.html`
* `archive/Cisco/html/ccna/Ccna-ip-services-guide.html`
* `archive/Cisco/html/ccna/Ccna-security-fundamentals.html`
* `archive/Cisco/md/ccie/Ccie-enterprise-infrastructure.md`
* `archive/Cisco/md/ccna/Ccna-automation-api-guide.md`
* `archive/Cisco/md/ccna/Ccna-automation-software-development-design.md`
* `archive/Cisco/md/ccna/Ccna-beginner-guide.md`
* `archive/Cisco/md/ccna/Ccna-ip-connectivity-guide.md`
* `archive/Cisco/md/ccna/Ccna-ip-services-guide.md`
* `archive/Cisco/md/ccna/Ccna-security-fundamentals.md`
* `components/sections/ccde/ClosingFooter.module.css`
* `components/sections/ccde/FaqSection.module.css`
* `components/sections/ccde/GlossarySection.module.css`
* `components/sections/ccde/HeroSection.module.css`
* `components/sections/ccde/SectionBase.module.css`
* `components/sections/ccde/SourcesSection.module.css`
* `components/sections/ccde/TitleBlockSection.module.css`
* `components/sections/ccde/TocSection.module.css`
Docstrings generation was requested by @myoshi2891.

* #118 (comment)

The following files were modified:

* `app/aws/solutions-architect-associate/domain4/Domain4Guide.tsx`
* `app/aws/solutions-architect-associate/domain4/NavBar.tsx`
* `app/cisco/ccna/automation-api-guide/CcnaAutomationApiGuide.tsx`
* `components/sections/ccde/HeroSection.tsx`
* `components/sections/ccde/Step2PracticalSection.tsx`
@coderabbitai coderabbitai Bot mentioned this pull request Aug 8, 2026
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