feat: Add comprehensive GitHub Actions workflows for documentation#93
feat: Add comprehensive GitHub Actions workflows for documentation#93
Conversation
- Add documentation.yml for build and deploy on master merge - Add validate-documentation.yml for PR validation with link checking - Add update-documentation.yml for daily automated updates - Add link-checker.yml for weekly comprehensive link checking - Add bin/README.md documenting all scripts and GitHub Actions integration Features: - Internal and external link validation with lychee - Automatic issue creation for broken links - Change detection for generated files - Comprehensive error handling and reporting - Support for both English and Japanese documentation - llms.txt standard compliance validation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Reviewer's GuideThis PR implements end-to-end automation for the Ray.Di documentation site by adding GitHub Actions workflows to build and deploy the Jekyll site, validate documentation on PRs, schedule daily updates of generated files, perform weekly link checks with automated issue creation, and includes a comprehensive Sequence diagram for scheduled documentation update and auto-commitsequenceDiagram
participant Scheduler as GitHub Scheduler
participant Workflow as Update Documentation Workflow
participant Scripts as Generation Scripts
participant Repo as Repository
Scheduler->>Workflow: Trigger update-documentation.yml (daily)
Workflow->>Scripts: Regenerate llms-full.txt
Workflow->>Scripts: Regenerate single-page docs
Workflow->>Workflow: Compare with previous files
alt Changes detected
Workflow->>Repo: Commit & push updated files
else No changes
Workflow->>Repo: No action
end
Workflow-->>Scheduler: Write summary
Flow diagram for documentation build and deploy workflowflowchart TD
A[Push to master or manual dispatch] --> B[Checkout code]
B --> C[Setup Ruby & PHP]
C --> D[Configure GitHub Pages]
D --> E[Build Jekyll site]
E --> F[Copy markdown for llms.txt]
F --> G[Generate llms-full.txt]
G --> H[Generate single-page docs]
H --> I[Copy generated files to _site]
I --> J[Upload artifact]
J --> K[Deploy to GitHub Pages]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Rate limit exceeded@koriym has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 19 minutes and 11 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (5)
WalkthroughSeveral new GitHub Actions workflow files and a detailed README for the Changes
Sequence Diagram(s)sequenceDiagram
participant GitHub Actions
participant Repo
participant Scripts (PHP/Ruby/Shell)
participant GitHub Pages
GitHub Actions->>Repo: Trigger (push, PR, schedule, manual)
GitHub Actions->>Repo: Checkout code
GitHub Actions->>Scripts (PHP/Ruby/Shell): Run build/generation/validation scripts
Scripts (PHP/Ruby/Shell)->>Repo: Generate documentation files
GitHub Actions->>GitHub Pages: Deploy built site (if deploy job)
GitHub Actions->>Repo: Commit & push updates (if update job)
GitHub Actions->>GitHub Actions: Validate, check links, report results
Possibly related PRs
Poem
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Hey @koriym - I've reviewed your changes and they look great!
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location> `.github/workflows/link-checker.yml:162` </location>
<code_context>
+ echo "The following external links were found to be broken:" >> link-check-results/report.md
+ echo "" >> link-check-results/report.md
+
+ # Parse JSON results for broken links
+ if [ -f "link-check-results/external-links.json" ]; then
+ # Extract broken links from JSON (simplified approach)
</code_context>
<issue_to_address>
The approach to parsing JSON for broken links is fragile and may miss or misreport links.
Using grep and sed for JSON parsing is unreliable and may fail with structural changes or special characters. Use jq for more accurate extraction of broken links and statuses.
</issue_to_address>
### Comment 2
<location> `.github/workflows/documentation.yml:60` </location>
<code_context>
+ - name: Generate single-page documentation
+ run: ruby bin/merge_md_files.rb
+
+ - name: Copy generated files to _site
+ run: |
+ cp llms-full.txt _site/
+ cp manuals/1.0/en/1page.md _site/manuals/1.0/en/
+ cp manuals/1.0/ja/1page.md _site/manuals/1.0/ja/
+
+ - name: Upload artifact
</code_context>
<issue_to_address>
No check is performed to ensure the destination directories exist before copying files.
Add mkdir -p commands for _site/manuals/1.0/en and _site/manuals/1.0/ja before copying to avoid cp failures.
</issue_to_address>
<suggested_fix>
<<<<<<< SEARCH
- name: Copy generated files to _site
run: |
cp llms-full.txt _site/
cp manuals/1.0/en/1page.md _site/manuals/1.0/en/
cp manuals/1.0/ja/1page.md _site/manuals/1.0/ja/
=======
- name: Copy generated files to _site
run: |
mkdir -p _site/manuals/1.0/en
mkdir -p _site/manuals/1.0/ja
cp llms-full.txt _site/
cp manuals/1.0/en/1page.md _site/manuals/1.0/en/
cp manuals/1.0/ja/1page.md _site/manuals/1.0/ja/
>>>>>>> REPLACE
</suggested_fix>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
- Replace fragile grep/sed JSON parsing with jq in link-checker.yml - Add mkdir -p commands in documentation.yml before copying files - Install jq package for reliable JSON parsing of broken links - Ensure destination directories exist before file copying 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
|
@Cluade review |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (6)
bin/README.md (2)
255-266: Add a language hint to satisfy MD040 and improve renderingThe fenced block that shows the
bin/tree omits a language identifier, triggeringmarkdownlintMD040 and disabling syntax highlighting on GitHub.-``` +```text bin/ ├── README.md # This file ... └── copy_markdown_files.sh # Copy markdown for llms.txt compliance
18-22: Wrap bare URLs in angle brackets to silence MD034Markdown-lint flags the plain
http://localhost:4000URLs.
Wrap them in<>or use reference links:-Accessible at http://localhost:4000 +Accessible at <http://localhost:4000>Repeat for the Docker section.
Also applies to: 34-38
.github/workflows/validate-documentation.yml (1)
60-64: Avoid unnecessarysudo– runner already has root privilegesUsing
sudoinside the Ubuntu runner adds ~3 s overhead and may fail in restricted containers.- sudo mv lychee /usr/local/bin/ + install -m 755 lychee /usr/local/bin/lycheeThe
installcall is simpler and avoids the privilege escalation step..github/workflows/update-documentation.yml (2)
95-101: Use a safe variable instead of interpolating a possibly-undefined inputWhen the workflow is triggered by
schedule,${{ github.event.inputs.force_update }}is undefined and GitHub replaces it with the literal stringnull, breaking the[…]test.-if [ "$changes_detected" = true ] || [ "${{ github.event.inputs.force_update }}" = "true" ]; then +FORCE=${{ github.event.inputs.force_update || 'false' }} +if [ "$changes_detected" = true ] || [ "$FORCE" = "true" ]; thenThis guards the shell against an empty/unset value.
110-120: Pushing directly tomastermay violate branch protectionMany repos protect the default branch.
Prefer opening a PR (withpeter-evans/create-pull-request) just like in the scheduled workflow — it avoids silent push failures..github/workflows/link-checker.yml (1)
190-194: Upgrade action to maintained major
actions/upload-artifact@v3is deprecated; switch to@v4to avoid future execution blocks.- uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/workflows/documentation.yml(1 hunks).github/workflows/link-checker.yml(1 hunks).github/workflows/update-documentation.yml(1 hunks).github/workflows/validate-documentation.yml(1 hunks)bin/README.md(1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: If building manually without the scripts, run 'bundle exec jekyll build' followed by './bin/copy_markdown_files.sh'
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : Markdown files are manually copied to '_site' directory for direct access, supporting llms.txt standard for AI assistants
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
.github/workflows/update-documentation.yml (4)
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-07-01T03:22:13.790Z
Learning: The file `llms-full.txt` in the ray-di.github.io repository is a generated document that should not be reviewed for content issues.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
bin/README.md (7)
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-07-01T03:22:13.790Z
Learning: The file `llms-full.txt` in the ray-di.github.io repository is a generated document that should not be reviewed for content issues.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : Markdown files are manually copied to '_site' directory for direct access, supporting llms.txt standard for AI assistants
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/serve_local.sh : Development scripts ('serve_local.sh' and Docker) automatically run the copy script after building the site
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: If building manually without the scripts, run 'bundle exec jekyll build' followed by './bin/copy_markdown_files.sh'
.github/workflows/documentation.yml (8)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use Jekyll front matter with layout, title, category, and permalink
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to _config.yml : Configured for GitHub Pages compatibility in Jekyll
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: If building manually without the scripts, run 'bundle exec jekyll build' followed by './bin/copy_markdown_files.sh'
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
.github/workflows/validate-documentation.yml (5)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use Jekyll front matter with layout, title, category, and permalink
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: If building manually without the scripts, run 'bundle exec jekyll build' followed by './bin/copy_markdown_files.sh'
🪛 YAMLlint (1.37.1)
.github/workflows/update-documentation.yml
[error] 23-23: trailing spaces
(trailing-spaces)
[error] 29-29: trailing spaces
(trailing-spaces)
[error] 34-34: trailing spaces
(trailing-spaces)
[error] 39-39: trailing spaces
(trailing-spaces)
[error] 46-46: trailing spaces
(trailing-spaces)
[error] 51-51: trailing spaces
(trailing-spaces)
[error] 54-54: trailing spaces
(trailing-spaces)
[error] 59-59: trailing spaces
(trailing-spaces)
[error] 61-61: trailing spaces
(trailing-spaces)
[error] 72-72: trailing spaces
(trailing-spaces)
[error] 83-83: trailing spaces
(trailing-spaces)
[error] 94-94: trailing spaces
(trailing-spaces)
[error] 102-102: trailing spaces
(trailing-spaces)
[error] 109-109: trailing spaces
(trailing-spaces)
[error] 113-113: trailing spaces
(trailing-spaces)
[error] 117-117: trailing spaces
(trailing-spaces)
[error] 119-119: trailing spaces
(trailing-spaces)
[error] 125-125: trailing spaces
(trailing-spaces)
[error] 144-144: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/link-checker.yml
[error] 26-26: trailing spaces
(trailing-spaces)
[error] 32-32: trailing spaces
(trailing-spaces)
[error] 36-36: trailing spaces
(trailing-spaces)
[error] 41-41: trailing spaces
(trailing-spaces)
[error] 46-46: trailing spaces
(trailing-spaces)
[error] 49-49: trailing spaces
(trailing-spaces)
[error] 52-52: trailing spaces
(trailing-spaces)
[error] 55-55: trailing spaces
(trailing-spaces)
[error] 58-58: trailing spaces
(trailing-spaces)
[error] 65-65: trailing spaces
(trailing-spaces)
[error] 75-75: trailing spaces
(trailing-spaces)
[error] 81-81: trailing spaces
(trailing-spaces)
[error] 84-84: trailing spaces
(trailing-spaces)
[error] 87-87: trailing spaces
(trailing-spaces)
[error] 93-93: trailing spaces
(trailing-spaces)
[error] 97-97: trailing spaces
(trailing-spaces)
[error] 100-100: trailing spaces
(trailing-spaces)
[error] 105-105: trailing spaces
(trailing-spaces)
[error] 108-108: trailing spaces
(trailing-spaces)
[error] 111-111: trailing spaces
(trailing-spaces)
[error] 114-114: trailing spaces
(trailing-spaces)
[error] 117-117: trailing spaces
(trailing-spaces)
[error] 121-121: trailing spaces
(trailing-spaces)
[error] 125-125: trailing spaces
(trailing-spaces)
[error] 137-137: trailing spaces
(trailing-spaces)
[error] 139-139: trailing spaces
(trailing-spaces)
[error] 144-144: trailing spaces
(trailing-spaces)
[error] 147-147: trailing spaces
(trailing-spaces)
[error] 155-155: trailing spaces
(trailing-spaces)
[error] 161-161: trailing spaces
(trailing-spaces)
[error] 168-168: trailing spaces
(trailing-spaces)
[error] 176-176: trailing spaces
(trailing-spaces)
[error] 181-181: trailing spaces
(trailing-spaces)
[error] 186-186: trailing spaces
(trailing-spaces)
[error] 188-188: trailing spaces
(trailing-spaces)
[error] 196-196: trailing spaces
(trailing-spaces)
[error] 209-209: trailing spaces
(trailing-spaces)
[error] 218-218: trailing spaces
(trailing-spaces)
[error] 220-220: trailing spaces
(trailing-spaces)
[error] 223-223: trailing spaces
(trailing-spaces)
[error] 225-225: trailing spaces
(trailing-spaces)
[error] 231-231: trailing spaces
(trailing-spaces)
[error] 237-237: trailing spaces
(trailing-spaces)
[error] 243-243: trailing spaces
(trailing-spaces)
[error] 251-251: trailing spaces
(trailing-spaces)
[error] 256-256: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/documentation.yml
[error] 31-31: trailing spaces
(trailing-spaces)
[error] 37-37: trailing spaces
(trailing-spaces)
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 46-46: trailing spaces
(trailing-spaces)
[error] 50-50: trailing spaces
(trailing-spaces)
[error] 53-53: trailing spaces
(trailing-spaces)
[error] 56-56: trailing spaces
(trailing-spaces)
[error] 59-59: trailing spaces
(trailing-spaces)
[error] 65-65: trailing spaces
(trailing-spaces)
[error] 81-81: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/validate-documentation.yml
[error] 20-20: trailing spaces
(trailing-spaces)
[error] 26-26: trailing spaces
(trailing-spaces)
[error] 31-31: trailing spaces
(trailing-spaces)
[error] 36-36: trailing spaces
(trailing-spaces)
[error] 45-45: trailing spaces
(trailing-spaces)
[error] 58-58: trailing spaces
(trailing-spaces)
[error] 64-64: trailing spaces
(trailing-spaces)
[error] 68-68: trailing spaces
(trailing-spaces)
[error] 72-72: trailing spaces
(trailing-spaces)
[error] 77-77: trailing spaces
(trailing-spaces)
[error] 82-82: trailing spaces
(trailing-spaces)
[error] 92-92: trailing spaces
(trailing-spaces)
[error] 100-100: trailing spaces
(trailing-spaces)
[error] 102-102: trailing spaces
(trailing-spaces)
[error] 106-106: trailing spaces
(trailing-spaces)
[error] 110-110: trailing spaces
(trailing-spaces)
[error] 113-113: trailing spaces
(trailing-spaces)
[error] 116-116: trailing spaces
(trailing-spaces)
[error] 119-119: trailing spaces
(trailing-spaces)
[error] 122-122: trailing spaces
(trailing-spaces)
[error] 127-127: trailing spaces
(trailing-spaces)
[error] 137-137: trailing spaces
(trailing-spaces)
[error] 140-140: trailing spaces
(trailing-spaces)
[error] 143-143: trailing spaces
(trailing-spaces)
[error] 147-147: trailing spaces
(trailing-spaces)
[error] 152-152: trailing spaces
(trailing-spaces)
[error] 155-155: trailing spaces
(trailing-spaces)
[error] 158-158: trailing spaces
(trailing-spaces)
[error] 162-162: trailing spaces
(trailing-spaces)
[error] 169-169: trailing spaces
(trailing-spaces)
[error] 171-171: trailing spaces
(trailing-spaces)
[error] 175-175: trailing spaces
(trailing-spaces)
[error] 186-186: trailing spaces
(trailing-spaces)
[error] 193-193: trailing spaces
(trailing-spaces)
[error] 195-195: trailing spaces
(trailing-spaces)
[error] 199-199: trailing spaces
(trailing-spaces)
[error] 209-209: trailing spaces
(trailing-spaces)
[error] 221-221: no new line character at the end of file
(new-line-at-end-of-file)
🪛 LanguageTool
bin/README.md
[grammar] ~1-~1: Use correct spacing
Context: # Ray.Di Documentation Build Scripts This directory contains utility scripts...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~3-~3: Use correct spacing
Context: ..., and managing the Ray.Di documentation website. ## Scripts Overview ### Development Scrip...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~5-~5: Use correct spacing
Context: ...y.Di documentation website. ## Scripts Overview ### Development Scripts #### `serve_local....
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~7-~7: Use correct spacing
Context: .... ## Scripts Overview ### Development Scripts #### serve_local.sh Serves the Jekyll site locally with aut...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~10-~10: Use correct spacing
Context: ... with automatic rebuilding and llms.txt compliance. bash ./bin/serve_local.sh What it does: - Builds the Jekyll sit...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~18-~18: Use prepositions correctly
Context: ...site with bundle exec jekyll build - Copies markdown files for llms.txt standard co...
(QB_NEW_EN_OTHER_ERROR_IDS_7)
[grammar] ~18-~18: There might be a mistake here.
Context: ...es markdown files for llms.txt standard compliance - Starts Jekyll development server with...
(QB_NEW_EN_OTHER)
[grammar] ~19-~19: Use articles correctly
Context: ...r llms.txt standard compliance - Starts Jekyll development server with --watch mode ...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~19-~19: There might be a mistake here.
Context: ...ekyll development server with --watch mode - Accessible at http://localhost:4000 ...
(QB_NEW_EN_OTHER)
[grammar] ~20-~20: There might be a mistake here.
Context: ...ver with --watch mode - Accessible at http://localhost:4000 Prerequisites: - Ruby 3.2.x - Bundler...
(QB_NEW_EN_OTHER)
[grammar] ~25-~25: Use correct spacing
Context: ...all bundler) - Dependencies installed (bundle install) #### serve_docker.sh` Serves the Jekyll site using Docker Com...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~28-~28: Use correct spacing
Context: ...sh` Serves the Jekyll site using Docker Compose. bash ./bin/serve_docker.sh What it does: - Starts Docker contain...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~35-~35: There might be a mistake here.
Context: ...* - Starts Docker container with Jekyll environment - Accessible at http://localhost:4000 ...
(QB_NEW_EN_OTHER)
[grammar] ~36-~36: There might be a mistake here.
Context: ...with Jekyll environment - Accessible at http://localhost:4000 Prerequisites: - Docker and Docker Co...
(QB_NEW_EN_OTHER)
[grammar] ~39-~39: Use correct spacing
Context: ...quisites:** - Docker and Docker Compose installed ### Build Scripts #### entrypoint.sh Doc...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~41-~41: Use correct spacing
Context: ...and Docker Compose installed ### Build Scripts #### entrypoint.sh Docker entrypoint script that builds an...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~44-~44: Use correct spacing
Context: ...point script that builds and serves the site. bash ./bin/entrypoint.sh What it does: - Builds the Jekyll sit...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~53-~53: Use correct spacing
Context: ... server with host 0.0.0.0 for container access ### Documentation Generation Scripts #### ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~55-~55: Use correct spacing
Context: ...er access ### Documentation Generation Scripts #### generate_llms_full.php Generates a comprehensive `llms-full.tx...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~58-~58: Use correct spacing
Context: ...llms.txt by expanding linked markdown files. bash php bin/generate_llms_full.php What it does: - Reads llms.txt from...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~69-~69: Use correct spacing
Context: ...hors - Generates llms-full.txt for AI assistants Output: - Creates llms-full.txt in ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~72-~72: There might be a mistake here.
Context: ...* - Creates llms-full.txt in the root directory - Typical file size: ~80,000 characters...
(QB_NEW_EN_OTHER)
[grammar] ~73-~73: There might be a mistake here.
Context: ... directory - Typical file size: ~80,000 characters #### merge_md_files.rb Merges all manual markdown files into s...
(QB_NEW_EN_OTHER)
[grammar] ~76-~76: Use correct spacing
Context: ...iles into single-page versions for each language. bash ruby bin/merge_md_files.rb What it does: - Reads navigation orde...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~86-~86: There might be a problem here.
Context: ...t - Generates single-page documentation files Output: - manuals/1.0/en/1page.md (English single-page version) - `manuals/1.0/ja/...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~89-~89:
Context: ...s/1.0/en/1page.md(English single-page version) -manuals/1.0/ja/1page.md(Japanese single-page version) ####copy_markdo...
(QB_NEW_EN_OTHER_ERROR_IDS_)
[grammar] ~90-~90: Use correct spacing
Context: .../1.0/ja/1page.md(Japanese single-page version) ####copy_markdown_files.shCopies markdown files to_site` direct...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~93-~93: Use articles correctly
Context: ...arkdown_files.shCopies markdown files to_site` directory for llms.txt standard...
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~93-~93: Use correct spacing
Context: ..._site directory for llms.txt standard compliance. bash ./bin/copy_markdown_files.sh What it does: - Copies all .md file...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~103-~103: Use correct spacing
Context: ...rts llms.txt standard for AI-accessible documentation ## GitHub Actions Integration The followi...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~105-~105: Use correct spacing
Context: ...ssible documentation ## GitHub Actions Integration The following scripts are suitable for ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~107-~107: Use correct spacing
Context: ...scripts are suitable for GitHub Actions automation: ### Recommended GitHub Actions #### 1. Doc...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~109-~109: Use correct spacing
Context: ...ons automation: ### Recommended GitHub Actions #### 1. Documentation Build and Deploy ```ya...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~111-~111: Use correct spacing
Context: ...ctions #### 1. Documentation Build and Deploy yaml name: Build and Deploy Documentation on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 bundler-cache: true - name: Build Jekyll site run: | bundle exec jekyll build ./bin/copy_markdown_files.sh - name: Generate llms-full.txt run: php bin/generate_llms_full.php - name: Generate single-page documentation run: ruby bin/merge_md_files.rb - name: Deploy to GitHub Pages uses: actions/deploy-pages@v3 with: path: _site #### 2. Documentation Validation ```yaml nam...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~144-~144: Use correct spacing
Context: ... path: _site #### 2. Documentation Validationyaml name: Validate Documentation on: pull_request: paths: - 'manuals/**' - 'llms.txt' jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.1' - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 bundler-cache: true - name: Validate llms-full.txt generation run: php bin/generate_llms_full.php - name: Validate single-page merge run: ruby bin/merge_md_files.rb - name: Check for broken links run: | bundle exec jekyll build # Add link checking tool here #### 3. Automated Documentation Updatesy...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~177-~177: Use correct spacing
Context: ...re #### 3. Automated Documentation Updatesyaml name: Update Documentation on: schedule: - cron: '0 2 * * *' # Daily at 2 AM workflow_dispatch: jobs: update: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.2 bundler-cache: true - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.1' - name: Regenerate documentation run: | php bin/generate_llms_full.php ruby bin/merge_md_files.rb ./bin/copy_markdown_files.sh - name: Create Pull Request uses: peter-evans/create-pull-request@v5 with: title: 'chore: update generated documentation files' body: 'Automated update of llms-full.txt and single-page documentation' branch: automated-doc-updates ``` ## llms.txt Standard Compliance This docu...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~212-~212: Use correct spacing
Context: ...d-doc-updates ``` ## llms.txt Standard Compliance This documentation follows the [llms.tx...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~214-~214: Use correct spacing
Context: ...ttps://llms-txt.org/) for AI-accessible documentation: - llms.txt: Index file with links to all document...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~219-~219: There might be a problem here.
Context: ...le at /manuals/1.0/{lang}/{file}.html URLs ## Dependencies - Ruby: 3.2.x (for Jekyll and Ruby scri...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~226-~226: Use correct spacing
Context: ...Docker: Optional, for containerized development ## Usage Examples ### Local Development `...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~228-~228: Use correct spacing
Context: ...for containerized development ## Usage Examples ### Local Development ```bash # Start local...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~230-~230: Use correct spacing
Context: ...velopment ## Usage Examples ### Local Development bash # Start local development server ./bin/serve_local.sh # Or with Docker ./bin/serve_docker.sh ### Documentation Updates ```bash # After u...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~239-~239: Use correct spacing
Context: .../serve_docker.sh ### Documentation Updatesbash # After updating manuals, regenerate derived files php bin/generate_llms_full.php ruby bin/merge_md_files.rb ### Production Buildbash # Build for pr...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~246-~246: Use correct spacing
Context: ...n/merge_md_files.rb ### Production Buildbash # Build for production bundle exec jekyll build ./bin/copy_markdown_files.sh php bin/generate_llms_full.php ruby bin/merge_md_files.rb ## File Structure bin/ ├── README.md ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~255-~255: Use correct spacing
Context: ...ruby bin/merge_md_files.rb ## File Structure bin/ ├── README.md # This file ├── serve_local.sh # Local development server ├── serve_docker.sh # Docker development server ├── entrypoint.sh # Docker entrypoint ├── generate_llms_full.php # Generate comprehensive AI documentation ├── merge_md_files.rb # Generate single-page documentation └── copy_markdown_files.sh # Copy markdown for llms.txt compliance ``` ## Contributing When adding new scripts: ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~268-~268: Use proper spacing conventions.
Context: ...llms.txt compliance ``` ## Contributing When adding new scripts: 1. Make script...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~270-~270: Use correct spacing
Context: ...e ``` ## Contributing When adding new scripts: 1. Make scripts executable: `chmod +x bin/...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~272-~272: There might be a mistake here.
Context: ...en adding new scripts: 1. Make scripts executable: chmod +x bin/script_name.sh 2. Add appropriate error handling with `set -e...
(QB_NEW_EN_OTHER)
[grammar] ~273-~273: There might be a mistake here.
Context: ...dling with set -euo pipefail for bash scripts 3. Include clear documentation in this ...
(QB_NEW_EN_OTHER)
[grammar] ~274-~274: There might be a mistake here.
Context: ... 3. Include clear documentation in this README 4. Consider GitHub Actions integration ...
(QB_NEW_EN_OTHER)
[grammar] ~275-~275: There might be a mistake here.
Context: ...tHub Actions integration for automation opportunities 5. Follow existing naming conventions a...
(QB_NEW_EN_OTHER)
[grammar] ~276-~276: Use a period to end declarative sentences
Context: ... existing naming conventions and coding standards
(QB_NEW_EN_OTHER_ERROR_IDS_25)
🪛 markdownlint-cli2 (0.17.2)
bin/README.md
20-20: Bare URL used
(MD034, no-bare-urls)
36-36: Bare URL used
(MD034, no-bare-urls)
257-257: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🪛 actionlint (1.7.7)
.github/workflows/link-checker.yml
190-190: the runner of "actions/upload-artifact@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
.github/workflows/documentation.yml
45-45: the runner of "actions/configure-pages@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
81-81: the runner of "actions/deploy-pages@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
There was a problem hiding this comment.
Hey @koriym - I've reviewed your changes - here's some feedback:
- There’s a placeholder in the Validate Documentation workflow (
# Add link checking tool here)—either implement the link-checker step or remove the comment to prevent a no-op validation phase. - You’re inlining nearly identical
lycherc.tomlconfigs in multiple workflows—consider moving it to a repo-level file and referencing it to avoid drift. - The daily update workflow pushes directly to master; you may want to switch to using
actions/create-pull-request(or another PR-based approach) so updates go through branch protections and review.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- There’s a placeholder in the Validate Documentation workflow (`# Add link checking tool here`)—either implement the link-checker step or remove the comment to prevent a no-op validation phase.
- You’re inlining nearly identical `lycherc.toml` configs in multiple workflows—consider moving it to a repo-level file and referencing it to avoid drift.
- The daily update workflow pushes directly to master; you may want to switch to using `actions/create-pull-request` (or another PR-based approach) so updates go through branch protections and review.
## Individual Comments
### Comment 1
<location> `.github/workflows/link-checker.yml:141` </location>
<code_context>
+ echo "✅ Internal link check completed"
+
+ - name: Check external links
+ if: github.event.inputs.check_external != 'false'
+ run: |
+ echo "🌐 Checking external links..."
</code_context>
<issue_to_address>
String comparison for boolean input may cause confusion.
Relying on string comparison here can lead to unexpected results if the input is missing or set to an unexpected value. Consider normalizing the input or converting it to a boolean to ensure correct behavior.
</issue_to_address>
<suggested_fix>
<<<<<<< SEARCH
- name: Check external links
if: github.event.inputs.check_external != 'false'
run: |
echo "🌐 Checking external links..."
=======
- name: Check external links
if: ${{ github.event.inputs.check_external && fromJSON(github.event.inputs.check_external) }}
run: |
echo "🌐 Checking external links..."
>>>>>>> REPLACE
</suggested_fix>
### Comment 2
<location> `.github/workflows/link-checker.yml:199` </location>
<code_context>
+ retention-days: 30
+
+ - name: Create issue for broken links
+ if: failure() && github.event_name == 'schedule'
+ uses: actions/github-script@v7
+ with:
</code_context>
<issue_to_address>
The 'failure()' condition may not trigger as expected if the job fails before this step.
If earlier steps exit the job on failure, this step may not run. Consider 'if: always() && ...' or adjust error handling to ensure this step executes as intended.
</issue_to_address>
<suggested_fix>
<<<<<<< SEARCH
- name: Create issue for broken links
+ if: failure() && github.event_name == 'schedule'
+ uses: actions/github-script@v7
+ with:
=======
- name: Create issue for broken links
+ if: always() && github.event_name == 'schedule'
+ uses: actions/github-script@v7
+ with:
>>>>>>> REPLACE
</suggested_fix>
### Comment 3
<location> `.github/workflows/validate-documentation.yml:70` </location>
<code_context>
+ find manuals -name "*.md" -type f | while read file; do
</code_context>
<issue_to_address>
The internal link checker does not handle links to directories or anchors.
Currently, only file existence is checked, which may miss valid directory or anchor links. Please update the logic to support these cases or clearly document this limitation.
Suggested implementation:
```
# Check internal markdown links (supports .md files, directories, and anchors)
find manuals -name "*.md" -type f | while read file; do
echo "Checking internal links in $file..."
# Extract all markdown links (including .md, directories, and anchors)
grep -oE '\]\([^)]+\)' "$file" | sed 's/](\([^)]*\))/\1/' | while read link; do
# Remove query parameters for path checks
clean_link=$(echo "$link" | sed 's/[?].*//')
# Skip external links
if [[ "$clean_link" =~ ^https?:// ]]; then
continue
```
```
# Remove anchors for file/directory existence check
path_only=$(echo "$clean_link" | sed 's/#.*//')
# If the link is empty, skip
if [[ -z "$path_only" ]]; then
continue
fi
# Check if the path exists (file or directory)
if [[ -e "$(dirname "$file")/$path_only" ]]; then
# If anchor is present, optionally check if anchor exists in the file
if [[ "$clean_link" =~ \#(.+) ]]; then
anchor=$(echo "$clean_link" | sed -n 's/.*#\(.*\)/\1/p')
target_file="$(dirname "$file")/$path_only"
# Only check anchor if target is a file
if [[ -f "$target_file" ]]; then
# Convert anchor to markdown heading format (case-insensitive, ignore punctuation)
anchor_regex=$(echo "$anchor" | sed 's/[-_]/ /g' | awk '{print tolower($0)}')
if ! grep -i -q "^#\+.*$anchor_regex" "$target_file"; then
echo "::warning file=$file::Anchor '#$anchor' not found in $target_file"
fi
fi
fi
continue
fi
# If the path does not exist, print a warning
echo "::error file=$file::Broken link: $link"
```
```
done
# Note: This script checks for the existence of files and directories, and attempts to validate anchors in markdown files.
# It does not validate anchors in non-markdown files or handle all possible anchor formats.
```
</issue_to_address>
### Comment 4
<location> `.github/workflows/update-documentation.yml:120` </location>
<code_context>
+
+ 🤖 Generated automatically"
+
+ git push origin master
+ echo "✅ Documentation updated and pushed"
+ else
</code_context>
<issue_to_address>
Pushing directly to 'master' may overwrite remote changes if the branch is stale.
Pull or rebase 'master' before pushing to prevent conflicts or overwriting remote changes, especially in collaborative environments.
</issue_to_address>
### Comment 5
<location> `.github/workflows/update-documentation.yml:95` </location>
<code_context>
+ changes_detected=true
+ fi
+
+ if [ "$changes_detected" = true ] || [ "${{ github.event.inputs.force_update }}" = "true" ]; then
+ echo "changes_detected=true" >> $GITHUB_OUTPUT
+ echo "Changes detected or force update requested"
</code_context>
<issue_to_address>
Mixing shell and GitHub Actions expressions may cause confusion.
Using both shell variables and GitHub Actions expressions in the same condition can lead to unexpected behavior. Set outputs explicitly to prevent subtle bugs.
Suggested implementation:
```
if [ "$changes_detected" = true ]; then
echo "changes_detected=true" >> $GITHUB_OUTPUT
echo "Changes detected"
else
echo "changes_detected=false" >> $GITHUB_OUTPUT
echo "No changes detected"
fi
```
```
- name: Commit changes
if: steps.changes.outputs.changes_detected == 'true' || github.event.inputs.force_update == 'true'
run: |
git add llms-full.txt
git add manuals/1.0/en/1page.md
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
- Add shared .lycherc.toml configuration file to avoid duplication - Fix update-documentation.yml output logic to separate shell and GitHub Actions expressions - Add git pull before pushing to master to prevent conflicts - Update GitHub Actions to latest versions (configure-pages@v5, deploy-pages@v5) - Fix jq command to use correct lychee JSON structure - Replace fragile grep/sed internal link checking with markdown-link-check - Change failure() to always() for issue creation to ensure it runs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
|
@sourcery-ai Review again, I think this is enough.
|
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
There was a problem hiding this comment.
Actionable comments posted: 5
♻️ Duplicate comments (1)
.github/workflows/link-checker.yml (1)
63-65: Use a proper boolean expression forcheck_external
workflow_dispatchinputs declared astype: booleanarrive as strings ("true","false", or an empty string when unset).
The current string inequality test silently evaluates to true on scheduled runs (input undefined) and can unintentionally perform the costly external-link sweep.- if: github.event.inputs.check_external != 'false' + # run only if the caller explicitly enabled it + if: ${{ github.event.inputs.check_external && fromJSON(github.event.inputs.check_external) }}
🧹 Nitpick comments (6)
.github/workflows/claude.yml (2)
40-55: Redundantactions: readpermission
actions: readis already declared at job level (lines 22-26).
Removing the duplicate entry inadditional_permissionssimplifies the config:- additional_permissions: | - actions: read + # additional_permissions not needed – already granted above
40-66: Trim trailing whitespace – fails strict lintersYAML-lint reports trailing spaces on several commented lines (42, 45, 48, 51, 54, 60).
Not critical for GitHub Actions, but many CI lint steps fail on these.
Recommend runningprettier --writeor similar..github/workflows/claude-code-review.yml (1)
20-78: Cosmetic: trailing spaces & superfluous blank lineYAML-lint flags multiple trailing spaces (lines 20, 27, 42, 51, 56, 64, 67, 70, 73) and an extra blank line at 78.
Doesn’t break the workflow, but cleaning this keeps the repo tidy..github/workflows/validate-documentation.yml (1)
69-110: Internal-link checker still flags anchors & images
markdown-link-checkwith the currentignorePatterns/replacementPatterns
fails on:
- links containing
#anchor- image links
- paths with spaces/parentheses
False positives will abort the job (
exit 1).
Consider switching tomarkdown-link-check --config .mlc-internal.jsonwith a regex that:
- strips
#.*before path existence checks- ignores
![]()matches- quotes filenames properly (or parse via a tiny Python AST).
Optional but will cut noisy CI failures.
.github/workflows/documentation.yml (1)
60-67: Guard against missing single-page files before copyIf
merge_md_files.rbfails, thecpstep exits the job. Addset -euo pipefail
at script top or bail out explicitly after generation so the build
doesn’t silently succeed without the pages..github/workflows/update-documentation.yml (1)
55-102: Useset -euo pipefailto fail fastThe comparison script relies on many commands (
cmp, array ops) where an
error should abort the job. Currently, a silent failure can mark
changes_detected=falseand skip commits.-run: | +run: | + set -euo pipefail echo "Checking for changes..."Minor but helps reliability in scheduled runs.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (10)
.github/workflows/claude-code-review.yml(1 hunks).github/workflows/claude.yml(1 hunks).github/workflows/documentation.yml(1 hunks).github/workflows/link-checker.yml(1 hunks).github/workflows/update-documentation.yml(1 hunks).github/workflows/validate-documentation.yml(1 hunks).lycherc.toml(1 hunks)llms-full.txt(4 hunks)manuals/1.0/en/1page.md(2 hunks)manuals/1.0/ja/1page.md(39 hunks)
✅ Files skipped from review due to trivial changes (1)
- .lycherc.toml
🧰 Additional context used
📓 Path-based instructions (3)
`manuals/1.0/{en,ja}/*.md`: Documentation files use descriptive names without nu...
manuals/1.0/{en,ja}/*.md: Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
Documentation files use Jekyll front matter with layout, title, category, and permalink
Permalinks for documentation files follow the pattern '/manuals/1.0/{lang}/{filename}.html'
URLs for markdown files follow the pattern '/manuals/1.0/{lang}/{filename}.md' (AI-accessible) and '/manuals/1.0/{lang}/{filename}.html' (human-readable)
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
manuals/1.0/en/1page.mdmanuals/1.0/ja/1page.md
`manuals/1.0/en/*.md`: English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
manuals/1.0/en/*.md: English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
manuals/1.0/en/1page.md
`manuals/1.0/ja/*.md`: Japanese documentation files use 'layout: docs-ja' in their front matter
manuals/1.0/ja/*.md: Japanese documentation files use 'layout: docs-ja' in their front matter
📄 Source: CodeRabbit Inference Engine (CLAUDE.md)
List of files the instruction was applied to:
manuals/1.0/ja/1page.md
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : Markdown files are manually copied to '_site' directory for direct access, supporting llms.txt standard for AI assistants
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use Jekyll front matter with layout, title, category, and permalink
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/bp/*.md : Best practices files in 'bp/' subdirectory use descriptive hyphenated names
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-07-01T03:22:13.790Z
Learning: The file `llms-full.txt` in the ray-di.github.io repository is a generated document that should not be reviewed for content issues.
.github/workflows/documentation.yml (11)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use Jekyll front matter with layout, title, category, and permalink
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : Markdown files are manually copied to '_site' directory for direct access, supporting llms.txt standard for AI assistants
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: If building manually without the scripts, run 'bundle exec jekyll build' followed by './bin/copy_markdown_files.sh'
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/bp/*.md : Best practices files in 'bp/' subdirectory use descriptive hyphenated names
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/serve_local.sh : Development scripts ('serve_local.sh' and Docker) automatically run the copy script after building the site
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to _config.yml : Configured for GitHub Pages compatibility in Jekyll
.github/workflows/update-documentation.yml (4)
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-07-01T03:22:13.790Z
Learning: The file `llms-full.txt` in the ray-di.github.io repository is a generated document that should not be reviewed for content issues.
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
.github/workflows/validate-documentation.yml (7)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/en/*.md : English documentation files use 'layout: docs-en', Japanese files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : Markdown files are manually copied to '_site' directory for direct access, supporting llms.txt standard for AI assistants
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/copy_markdown_files.sh : The 'bin/copy_markdown_files.sh' script copies all markdown files after Jekyll build to the '_site' directory for direct access
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to bin/merge_md_files.rb : The 'bin/merge_md_files.rb' script combines all manual markdown files into single-page versions for both languages
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : URLs for markdown files follow the pattern '/manuals/1.0/{lang}/{filename}.md' (AI-accessible) and '/manuals/1.0/{lang}/{filename}.html' (human-readable)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use Jekyll front matter with layout, title, category, and permalink
manuals/1.0/en/1page.md (1)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
manuals/1.0/ja/1page.md (3)
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/{en,ja}/*.md : Documentation files use descriptive names without numeric prefixes (e.g., 'installation.md', 'motivation.md')
Learnt from: CR
PR: ray-di/ray-di.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-06-30T16:36:41.125Z
Learning: Applies to manuals/1.0/ja/*.md : Japanese documentation files use 'layout: docs-ja' in their front matter
Learnt from: koriym
PR: ray-di/ray-di.github.io#0
File: :0-0
Timestamp: 2025-06-30T23:04:00.817Z
Learning: In the ray-di.github.io repository, files named `1page.md` (like `manuals/1.0/en/1page.md` and `manuals/1.0/ja/1page.md`) are generated files created by the `bin/merge_md_files.rb` script. These should not be reviewed for content issues. Instead, content reviews should focus on the original source markdown files located under the `manuals/` directory structure.
🪛 YAMLlint (1.37.1)
.github/workflows/claude-code-review.yml
[error] 20-20: trailing spaces
(trailing-spaces)
[error] 27-27: trailing spaces
(trailing-spaces)
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 51-51: trailing spaces
(trailing-spaces)
[error] 56-56: trailing spaces
(trailing-spaces)
[error] 64-64: trailing spaces
(trailing-spaces)
[error] 67-67: trailing spaces
(trailing-spaces)
[error] 70-70: trailing spaces
(trailing-spaces)
[error] 73-73: trailing spaces
(trailing-spaces)
[warning] 78-78: too many blank lines (1 > 0)
(empty-lines)
.github/workflows/claude.yml
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 45-45: trailing spaces
(trailing-spaces)
[error] 48-48: trailing spaces
(trailing-spaces)
[error] 51-51: trailing spaces
(trailing-spaces)
[error] 54-54: trailing spaces
(trailing-spaces)
[error] 60-60: trailing spaces
(trailing-spaces)
.github/workflows/documentation.yml
[error] 31-31: trailing spaces
(trailing-spaces)
[error] 37-37: trailing spaces
(trailing-spaces)
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 46-46: trailing spaces
(trailing-spaces)
[error] 50-50: trailing spaces
(trailing-spaces)
[error] 53-53: trailing spaces
(trailing-spaces)
[error] 56-56: trailing spaces
(trailing-spaces)
[error] 59-59: trailing spaces
(trailing-spaces)
[error] 67-67: trailing spaces
(trailing-spaces)
[error] 83-83: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/link-checker.yml
[error] 26-26: trailing spaces
(trailing-spaces)
[error] 32-32: trailing spaces
(trailing-spaces)
[error] 36-36: trailing spaces
(trailing-spaces)
[error] 41-41: trailing spaces
(trailing-spaces)
[error] 43-43: trailing spaces
(trailing-spaces)
[error] 47-47: trailing spaces
(trailing-spaces)
[error] 59-59: trailing spaces
(trailing-spaces)
[error] 61-61: trailing spaces
(trailing-spaces)
[error] 66-66: trailing spaces
(trailing-spaces)
[error] 69-69: trailing spaces
(trailing-spaces)
[error] 77-77: trailing spaces
(trailing-spaces)
[error] 83-83: trailing spaces
(trailing-spaces)
[error] 88-88: trailing spaces
(trailing-spaces)
[error] 93-93: trailing spaces
(trailing-spaces)
[error] 101-101: trailing spaces
(trailing-spaces)
[error] 106-106: trailing spaces
(trailing-spaces)
[error] 111-111: trailing spaces
(trailing-spaces)
[error] 113-113: trailing spaces
(trailing-spaces)
[error] 121-121: trailing spaces
(trailing-spaces)
[error] 134-134: trailing spaces
(trailing-spaces)
[error] 143-143: trailing spaces
(trailing-spaces)
[error] 145-145: trailing spaces
(trailing-spaces)
[error] 148-148: trailing spaces
(trailing-spaces)
[error] 150-150: trailing spaces
(trailing-spaces)
[error] 156-156: trailing spaces
(trailing-spaces)
[error] 162-162: trailing spaces
(trailing-spaces)
[error] 168-168: trailing spaces
(trailing-spaces)
[error] 176-176: trailing spaces
(trailing-spaces)
[error] 181-181: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/update-documentation.yml
[error] 23-23: trailing spaces
(trailing-spaces)
[error] 29-29: trailing spaces
(trailing-spaces)
[error] 34-34: trailing spaces
(trailing-spaces)
[error] 39-39: trailing spaces
(trailing-spaces)
[error] 46-46: trailing spaces
(trailing-spaces)
[error] 51-51: trailing spaces
(trailing-spaces)
[error] 54-54: trailing spaces
(trailing-spaces)
[error] 59-59: trailing spaces
(trailing-spaces)
[error] 61-61: trailing spaces
(trailing-spaces)
[error] 72-72: trailing spaces
(trailing-spaces)
[error] 83-83: trailing spaces
(trailing-spaces)
[error] 94-94: trailing spaces
(trailing-spaces)
[error] 102-102: trailing spaces
(trailing-spaces)
[error] 109-109: trailing spaces
(trailing-spaces)
[error] 113-113: trailing spaces
(trailing-spaces)
[error] 117-117: trailing spaces
(trailing-spaces)
[error] 119-119: trailing spaces
(trailing-spaces)
[error] 126-126: trailing spaces
(trailing-spaces)
[error] 145-145: no new line character at the end of file
(new-line-at-end-of-file)
.github/workflows/validate-documentation.yml
[error] 20-20: trailing spaces
(trailing-spaces)
[error] 26-26: trailing spaces
(trailing-spaces)
[error] 31-31: trailing spaces
(trailing-spaces)
[error] 36-36: trailing spaces
(trailing-spaces)
[error] 45-45: trailing spaces
(trailing-spaces)
[error] 58-58: trailing spaces
(trailing-spaces)
[error] 64-64: trailing spaces
(trailing-spaces)
[error] 68-68: trailing spaces
(trailing-spaces)
[error] 72-72: trailing spaces
(trailing-spaces)
[error] 102-102: trailing spaces
(trailing-spaces)
[error] 111-111: trailing spaces
(trailing-spaces)
[error] 113-113: trailing spaces
(trailing-spaces)
[error] 117-117: trailing spaces
(trailing-spaces)
[error] 119-119: trailing spaces
(trailing-spaces)
[error] 126-126: trailing spaces
(trailing-spaces)
[error] 128-128: trailing spaces
(trailing-spaces)
[error] 132-132: trailing spaces
(trailing-spaces)
[error] 143-143: trailing spaces
(trailing-spaces)
[error] 150-150: trailing spaces
(trailing-spaces)
[error] 152-152: trailing spaces
(trailing-spaces)
[error] 156-156: trailing spaces
(trailing-spaces)
[error] 166-166: trailing spaces
(trailing-spaces)
[error] 178-178: no new line character at the end of file
(new-line-at-end-of-file)
🪛 actionlint (1.7.7)
.github/workflows/link-checker.yml
115-115: the runner of "actions/upload-artifact@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🪛 LanguageTool
llms-full.txt
[grammar] ~361-~361: Use correct spacing
Context: ...[^dip]: Dependency Inversion Principle (DIP) ### Compile Time and Runtime Code under `b...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
[grammar] ~2285-~2285: Use correct spacing
Context: ... attribute to the parameter you want to qualify. php use Ray\Di\Di\Inject; use Ray\Di\Di\Named; public function __construct( #[Named('checkout')] private CreditCardProcessorInterface $processor, #[Named('backup')] private CreditCardProcessorInterface $subProcessor ){} ## Binding Annotation Ray.Di can be used ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
manuals/1.0/en/1page.md
[grammar] ~1090-~1090: Use correct spacing
Context: ... attribute to the parameter you want to qualify. php use Ray\Di\Di\Inject; use Ray\Di\Di\Named; public function __construct( #[Named('checkout')] private CreditCardProcessorInterface $processor, #[Named('backup')] private CreditCardProcessorInterface $subProcessor ){} ## Binding Annotation Ray.Di can be used ...
(QB_NEW_EN_OTHER_ERROR_IDS_5)
manuals/1.0/ja/1page.md
[uncategorized] ~662-~662: 「ことができる」という表現は冗長な可能性があります。
Context: ...方法で依存を構築したり、キャッシュから事前に計算されたインスタンスを返したりすることができます。値の型は限定されず、mixedです。 以下は 2 つの `Provide...
(DOUSI_KOTOGADEKIRU)
[uncategorized] ~1032-~1032: 「ことができる」という表現は冗長な可能性があります。
Context: ...スはシリアライズ保存されるため、シリアライズ不可能なものはインスタンス束縛を使うことができません。代わりにプロバイダー束縛を使用することができます。 *** ## プ...
(DOUSI_KOTOGADEKIRU)
[uncategorized] ~1032-~1032: 「ことができる」という表現は冗長な可能性があります。
Context: ...ものはインスタンス束縛を使うことができません。代わりにプロバイダー束縛を使用することができます。 *** ## プロバイダー束縛 プロバイダー束縛は型に対してそのプ...
(DOUSI_KOTOGADEKIRU)
[uncategorized] ~1217-~1217: 「ことができる」という表現は冗長な可能性があります。
Context: ...必要です。しかしPDOはPHP自体のビルトインクラスなのでアトリビュートを加えることができません。 toConstructor()の第2引数の$nameで識別子...
(DOUSI_KOTOGADEKIRU)
🪛 markdownlint-cli2 (0.17.2)
manuals/1.0/ja/1page.md
1185-1185: Emphasis used instead of a heading
(MD036, no-emphasis-as-heading)
🔇 Additional comments (6)
llms-full.txt (1)
1-2400: Generated artefact – skip content review
llms-full.txtis produced by automation (bin/merge_md_files.rb). We don’t review or manually edit generated outputs.manuals/1.0/en/1page.md (1)
1088-1093: Generated file – skipping content review
1page.mdis produced bybin/merge_md_files.rb; only source-markdown should be reviewed for wording/technical accuracy.
No action required here..github/workflows/documentation.yml (1)
47-50: Verifysteps.pages.outputs.base_pathexists in v5
actions/configure-pages@v5renamed its output tobase_url(no
base_path). Using the wrong key silently sets an empty--baseurl,
breaking internal links.Please double-check the action docs and adjust:
-bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" +bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_url }}"(or drop the flag if Jekyll’s
baseurlis blank)..github/workflows/update-documentation.yml (1)
104-122: Race condition when pushing tomasterA scheduled job might run in parallel with another push, making
git pull --rebase origin masterpotentially interactive/conflicting.
Mitigate by:
- fetching with
--rebase --autostash- limiting pushes with
--force-with-lease- or using the
peter-evans/create-pull-requestaction instead of
direct pushes.Consider updating before this lands in prod.
.github/workflows/link-checker.yml (1)
1-181: Clean up trailing whitespace & missing final newline
yamllintreports >30 trailing-space offences and a missing EOF newline.
These fail strict linters and clutter diffs—please runyamlfmtorsed -i 's/[ \t]*$//'on the file.manuals/1.0/ja/1page.md (1)
1-2510: Generated file – content review skipped
1page.mdis produced bybin/merge_md_files.rb; per repository policy, it’s excluded from manual content review.
… automation" This reverts commit 2847d6a.
- Update .lycherc.toml to exclude 1page.md files with exclude_file patterns - Modify validate-documentation.yml to skip 1page.md in internal link checks - Update link-checker.yml to exclude 1page.md from external link validation - Use find command with \! -name "1page.md" to filter out generated files This prevents validation errors on generated single-page documentation files. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Remove llms-full.txt from exclude_file list in .lycherc.toml - Keep only 1page.md files excluded from link validation - llms-full.txt is not a markdown file so doesn't need markdown-specific exclusion 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Replace deprecated --exclude-file with --exclude-path in .lycherc.toml - Create .lycheeignore file for URL patterns as recommended - Move URL exclusion patterns from .lycherc.toml to .lycheeignore - This fixes the "No such file or directory" error in link checking 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
…terface - Fix broken link https://google.github.io/Ray.Di/api-docs/latest/javadoc/com/google/inject/Provider.html - Replace with correct Ray.Di ProviderInterface link to GitHub - Update interface name from Provider to ProviderInterface to match Ray.Di implementation - Follow the same pattern as Japanese version which correctly references Ray.Di This resolves the 404 error found by the link checker. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Add PR comment functionality that only comments when issues are found - Update existing comments instead of creating new ones to reduce spam - Delete comments when all issues are resolved - Collect external link check results in JSON format - Parse broken links and display them with status information - Only trigger on pull_request events to avoid unnecessary comments - Clear indication that external link failures are warnings only This provides immediate visibility of link issues without cluttering the PR. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
…eck results - Remove intrusive PR comment system to avoid cluttering discussion - Use GitHub Actions summary (GITHUB_STEP_SUMMARY) for result display - Provide clear broken link information with status codes - Include timestamp and warning notes about external links - Simpler implementation without complex comment management logic - Better separation of CI results from human communication This follows GitHub's design philosophy and reduces bot noise in PRs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Only display link check results summary when broken links are detected - Remove unnecessary "All links working" messages for cleaner output - Keep the summary focused on actionable information - Reduces noise in successful validation runs This follows the principle of "silence is golden" for CI systems. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Summary
This PR adds comprehensive GitHub Actions workflows to automate documentation building, validation, and maintenance for the Ray.Di documentation website.
🚀 New Workflows Added
1. Documentation Build and Deploy (
documentation.yml)2. Documentation Validation (
validate-documentation.yml).mdfile links3. Scheduled Documentation Updates (
update-documentation.yml)4. Comprehensive Link Checker (
link-checker.yml)🔧 Key Features
📚 Documentation
Added comprehensive
bin/README.mddocumenting:Test plan
🤖 Generated with Claude Code
Summary by Sourcery
Add comprehensive GitHub Actions workflows to automate building, validating, updating, and link-checking Ray.Di documentation, and include a new bin/README.md that documents all utility scripts and usage.
Enhancements:
CI:
Documentation:
Summary by CodeRabbit