Skip to content

Improve tooling and documentation - #229

Merged
bubacoder merged 8 commits into
mainfrom
feature/fix-tools
Nov 22, 2025
Merged

Improve tooling and documentation#229
bubacoder merged 8 commits into
mainfrom
feature/fix-tools

Conversation

@bubacoder

@bubacoder bubacoder commented Nov 22, 2025

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Documentation

    • Improved clarity, grammar, punctuation, links and terminology across READMEs, setup guides and runbooks.
    • Added a documentation-improvement workflow to automate linting, fixes and QA for Markdown content.
  • Chores

    • Updated container image to v3.6.2.
    • Added/adjusted development environment and linting configurations and editor workspace settings.
    • Expanded allowed script actions in local tooling permissions.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Nov 22, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Adds an AI-driven Markdown documentation improvement workflow and workspace settings; introduces flake8 and pre-commit adjustments; updates Traefik image tag and a script path; and applies minor grammar, wording, link, and formatting fixes across multiple docs.

Changes

Cohort / File(s) Summary
AI Documentation Workflow & Configuration
.claude/commands/improve-docs.md, .claude/settings.json
Adds a markdown-focused documentation improvement workflow with analysis, fix, QA, and summary steps; adds a Bash allow entry (Bash(scripts/labctl.py service logs:*)) to .claude/settings.json.
Linting & Pre-commit Configuration
.flake8, .pre-commit-config.yaml
Adds .flake8 ignoring E501 (line too long); fixes comment typo ("pendling" → "pending") and adjusts ansible-lint pinned rev from v25.11.0 → v25.9.0.
IDE & Workspace Settings
.vscode/settings.json
Adds VSCode workspace settings disabling Copilot and configuring SpellRight for English on markdown/latex/plaintext.
Top-level Documentation Edits
AGENTS.md, README.md
Minor punctuation, capitalization, and phrasing edits for clarity and consistency.
Nested Documentation Edits
ansible/README.md, docker/README.md, docs/ai/README.md, docs/runbooks.md, docs/setup.md
Typo fixes, link target correction, terminology and capitalization standardization (e.g., "devcontainer" → "Dev Container"), and prose improvements; some file path example updates.
Infra & Script Changes
docker/security/traefik.yaml, scripts/copy-repo-template.sh
Bumps Traefik image tag v3.6.0 → v3.6.2; updates copy target in script from ../../repo-template../repo-template.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Workflow as Improve-Docs Workflow
  participant Repo as Repository Files
  participant Linter as QA/Lint Tools
  participant Summary

  rect rgba(0,128,96,0.06)
    User->>Workflow: Trigger with FILES arg
    Workflow->>Repo: Identify Markdown files
    Workflow->>Repo: Read file contents
    Workflow->>Repo: Analyze for spelling/grammar/style/links
    Workflow->>Repo: Apply non-destructive fixes
  end

  rect rgba(0,96,192,0.06)
    Workflow->>Linter: Run linting/docs checks
    Linter-->>Workflow: Report issues
    Workflow->>Repo: Re-apply fixes if needed
  end

  rect rgba(192,96,0,0.06)
    Workflow->>Summary: Produce modified-files list and notes
    Summary-->>User: Output report of changes
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Review points:
    • Verify scripts/copy-repo-template.sh path change aligns with repository layout.
    • Confirm ansible-lint rev downgrade (v25.11.0 → v25.9.0) and compatibility implications.
    • Spot-check docs/setup.md edits for any unintended technical alterations.

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Improve tooling and documentation' accurately reflects the changeset, which includes tooling updates (flake8, .pre-commit-config.yaml, .claude/settings.json, VSCode settings, Traefik version bump, copy script path fix) and documentation improvements (README files, docs, AGENTS.md).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/fix-tools

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

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (4)
.flake8 (1)

1-2: Clarify line‑length policy across linters

Right now E501 is fully ignored, which is fine if you don’t want flake8 enforcing line length, but it can diverge from whatever Ruff or other tools enforce for max line length.

If you still want a soft cap while avoiding noisy false positives, consider configuring an explicit max-line-length and only ignoring E501 where needed, so tools stay aligned:

 [flake8]
-extend-ignore = E501 # Line too long
+extend-ignore = E501  # Line too long (generally handled elsewhere)
+# Example, if you still want a guideline:
+# max-line-length = 100

Adjust or drop max-line-length to match your actual standard.

docs/setup.md (2)

44-44: Consider replacing weak adjective "quite" for stronger phrasing.

Line 44 uses "quite large" to describe the container image size. LanguageTool suggests this is a weak intensifier. Consider using more specific language, such as:

  • "The resulting container image is substantial (4+ GB)..."
  • "The resulting container image is large (4+ GB)..."
  • "The resulting container image exceeds 4 GB..."

107-109: TODO items should be tracked separately.

Lines 107-109 and 135-137 contain TODO comments about missing documentation sections. While these acknowledge incomplete work, consider:

  1. Opening GitHub issues to track these documentation gaps
  2. Using a more structured tracking mechanism (e.g., GitHub Projects)

This ensures visibility and helps prioritize future documentation work.

Would you like me to help identify and open GitHub issues for these TODO items?

Also applies to: 135-137

.claude/commands/improve-docs.md (1)

35-35: Capitalize "Markdown" for consistency with proper noun conventions.

Line 35 references "markdown formatting." Per standard style conventions and LanguageTool, the word "Markdown" should be capitalized as it is a proper noun (the name of the markup language).

Apply this minor fix:

-   - Ensure consistent markdown formatting
+   - Ensure consistent Markdown formatting
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 802d5e8 and e5bcff4.

📒 Files selected for processing (14)
  • .claude/commands/improve-docs.md (1 hunks)
  • .claude/settings.json (1 hunks)
  • .flake8 (1 hunks)
  • .pre-commit-config.yaml (2 hunks)
  • .vscode/settings.json (1 hunks)
  • AGENTS.md (1 hunks)
  • README.md (2 hunks)
  • ansible/README.md (1 hunks)
  • docker/README.md (1 hunks)
  • docker/security/traefik.yaml (1 hunks)
  • docs/ai/README.md (1 hunks)
  • docs/runbooks.md (1 hunks)
  • docs/setup.md (5 hunks)
  • scripts/copy-repo-template.sh (1 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
**/*.sh

📄 CodeRabbit inference engine (AGENTS.md)

Shell scripts must pass ShellCheck linting

Files:

  • scripts/copy-repo-template.sh
.pre-commit-config.yaml

📄 CodeRabbit inference engine (AGENTS.md)

Contributors must follow the pre-commit rules defined in .pre-commit-config.yaml

Files:

  • .pre-commit-config.yaml
**/*.{yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

All YAML files must be linted and validated

Files:

  • docker/security/traefik.yaml
{terraform/**/*.tf,docker/**/*.{yml,yaml}}

📄 CodeRabbit inference engine (AGENTS.md)

Run KICS security scanning on IaC files (Terraform and Docker Compose)

Files:

  • docker/security/traefik.yaml
docker/**/*.{yml,yaml}

📄 CodeRabbit inference engine (AGENTS.md)

Define each Docker service in a YAML file within the appropriate category under docker/

Files:

  • docker/security/traefik.yaml
🧠 Learnings (6)
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Applies to ansible/**/*.{yml,yaml} : Ansible playbooks and roles must pass Ansible linting

Applied to files:

  • .pre-commit-config.yaml
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Applies to .pre-commit-config.yaml : Contributors must follow the pre-commit rules defined in .pre-commit-config.yaml

Applied to files:

  • .pre-commit-config.yaml
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Applies to scripts/**/*.py : Python code (e.g., labctl.py) must pass Ruff linting

Applied to files:

  • .pre-commit-config.yaml
  • .claude/settings.json
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Host-specific Docker service configuration must live at config/docker/<hostname>/services.yaml

Applied to files:

  • docker/README.md
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Applies to docker/**/*.{yml,yaml} : Define each Docker service in a YAML file within the appropriate category under docker/

Applied to files:

  • docker/README.md
📚 Learning: 2025-10-13T20:02:07.433Z
Learnt from: CR
Repo: bubacoder/infra PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-10-13T20:02:07.433Z
Learning: Environment variables for services must be provided via .env files in the config directory

Applied to files:

  • docker/README.md
🧬 Code graph analysis (1)
.claude/commands/improve-docs.md (1)
docs/web/update-docs.py (1)
  • process (355-365)
🪛 LanguageTool
docs/setup.md

[style] ~22-~22: To elevate your writing, try using an alternative expression here.
Context: ...w.ovhcloud.com/en/) - but the registrar does not matter, see next step 2. Transfer the DNS Zone...

(MATTERS_RELEVANT)


[style] ~44-~44: As an alternative to the over-used intensifier ‘quite’, consider replacing this phrase.
Context: ... Note: The resulting container image is quite large (4+ GB) as it includes all software con...

(EN_WEAK_ADJECTIVE)

.claude/commands/improve-docs.md

[uncategorized] ~35-~35: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ... and readability - Ensure consistent markdown formatting - Fix any broken internal...

(MARKDOWN_NNP)

🔇 Additional comments (17)
docs/ai/README.md (1)

15-15: Text tweak looks good

Pluralization to “CPU and GPU modes are supported” reads better and is clearer; no further changes needed.

.claude/settings.json (1)

16-16: Consider log sensitivity for new permission

Allowing scripts/labctl.py service logs:* is consistent with the existing service commands, but log output can include secrets or PII. Please double‑check that exposing logs to Claude Code is acceptable for your environments and that any especially sensitive services are handled appropriately (e.g., by redaction or limiting where this is used).

docs/runbooks.md (1)

16-16: Capitalization change is appropriate

“Apply Ansible …” matches the proper noun and aligns with the rest of the docs.

ansible/README.md (1)

25-25: Typo fix is correct

“Install Ansible …” is the right spelling; change is good as-is.

AGENTS.md (1)

8-8: Sentence punctuation improvement is good

The added comma after “services” improves readability without changing the meaning.

scripts/copy-repo-template.sh (1)

6-6: ShellCheck passed; confirm production directory layout

ShellCheck verification passed (exit code 0). The script uses safe practices (set -euo pipefail, proper quoting, safe array handling).

The path change moves TARGET from the repo root (SOURCE) to a sibling repo-template directory one level up. The logic is correct, but verify your actual production directory structure has repo-template as a sibling to this repository. In the test environment, we cannot confirm the sibling directory exists, but the script itself is production-ready.

docker/security/traefik.yaml (1)

11-11: YAML linting passed; traefik:v3.6.2 is verified—no further action needed

The image tag traefik:v3.6.2 is a legitimate release from November 18, 2025, and the Docker Compose file passes YAML syntax validation. This straightforward minor version bump introduces no structural changes. The file already includes KICS security scanning directives in the configuration, so continue to verify IaC security requirements through your standard local tooling.

.pre-commit-config.yaml (2)

52-52: Minor comment fix approved.

Corrected typo from "pendling" to "pending" in the ruff-check block comment. This improves code documentation clarity.


91-91: Reconsider the ansible-lint version pinning strategy — the downgrade does not address the stated Python incompatibility.

PR #4796 (which pins the pre-commit hook to Python 3.13) was first included in v25.9.1, not v25.9.0. Downgrading to v25.9.0 therefore does not resolve the Python incompatibility issue cited in the comment. Additionally, v25.9.1 itself introduces dependency issues, as it depends on ansible-core versions requiring Python 3.14 (not yet released).

Before finalizing this version pin:

  • Verify which ansible-lint version actually resolves your Python environment requirements
  • Consider whether a stable, recent version (e.g., v25.11.0+) with proper dependency resolution is preferable to an older patch that may not include the necessary fixes
  • Test compatibility with your pre-commit hook environment explicitly
.vscode/settings.json (1)

1-13: New VSCode workspace configuration approved.

This new settings file appropriately configures the development environment by:

  • Disabling GitHub Copilot for consistency across the project
  • Setting up SpellRight for English language documentation with focused scope (markdown, LaTeX, plaintext)

The configuration supports the PR's documentation and tooling improvements.

README.md (3)

8-9: Documentation improvements enhance clarity.

The introductory sentences have been refined to better explain the repository's purpose:

  • Clarified that the repository contains IaC configuration and documentation
  • Explicitly stated the goals of creating a self-hosted environment and knowledge organization

51-62: Table formatting and content updates look good.

The Cloud Services table has been updated with:

  • Consistent markdown formatting
  • Improved readability of entries
  • Updated terminology and descriptions

All changes maintain the information hierarchy and accuracy.


66-66: Setup recommendation clarified.

The phrasing has been improved to more clearly describe the recommended configuration approach.

docs/setup.md (2)

15-15: Documentation improvements enhance clarity and consistency.

These changes improve the documentation:

  • Line 15: Corrected terminology to "additional infrastructure services"
  • Line 19-20: Rewording clarifies the domain name and TLS setup approach
  • Line 27: Improved description of the recommended Proxmox + Ubuntu setup
  • Line 38: Proper capitalization of "Dev Container" (product name)

Also applies to: 19-20, 27-27, 38-38


61-61: Script path change verified as accurate.

All verification checks passed:

  • Script exists at the new path proxmox/create-ubuntu-server-vm.sh
  • Old path infra/proxmox/create-ubuntu-server-vm.sh has no references anywhere in the codebase ✓
  • Old directory structure no longer exists ✓

The path change is complete and clean—no stale references or broken paths.

docker/README.md (1)

19-19: Documentation link corrections approved.

The host-specific configuration reference has been improved:

  • Fixed link text from "Setting Started" to "Getting Started"
  • Updated anchor to point to the specific section #5-configure-docker-environment-files instead of the generic #setup

This provides users with a more precise reference to the relevant documentation section.

.claude/commands/improve-docs.md (1)

1-60: New documentation improvement workflow is well-structured and comprehensive.

This new file establishes a clear, multi-part workflow for improving markdown documentation:

  • Part 1: Identifies which documentation files to process
  • Part 2: Systematic approach to analyzing and fixing spelling, grammar, clarity, formatting, and links
  • Part 3: Quality Assurance checks to ensure technical accuracy and no broken builds
  • Part 4: Summary of changes with explicit notes to preserve terminology and structure

The workflow appropriately emphasizes maintaining technical accuracy and original meaning while improving clarity and professionalism. This aligns well with the PR's goal of improving documentation tooling and quality.

@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

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5bcff4 and 0d1a282.

📒 Files selected for processing (1)
  • .claude/commands/improve-docs.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.claude/commands/improve-docs.md

[uncategorized] ~35-~35: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ... and readability - Ensure consistent markdown formatting - Fix any broken internal...

(MARKDOWN_NNP)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: build-test-push (ubuntu, ubuntu:24.04)
  • GitHub Check: build-test-push (debian, debian:trixie-slim)
  • GitHub Check: build
  • GitHub Check: check
🔇 Additional comments (1)
.claude/commands/improve-docs.md (1)

1-60: Well-structured documentation improvement workflow with one minor capitalization fix.

This is a comprehensive and well-organized workflow file that provides clear, actionable instructions for improving documentation. The structure follows a logical progression from file identification through quality assurance and summary. The emphasis on preserving technical terminology and accuracy (lines 56-60) is particularly valuable.

The only issue identified is a minor capitalization inconsistency flagged by static analysis (addressed in the separate comment below). Otherwise, the workflow is complete, practical, and ready for use.

Comment thread .claude/commands/improve-docs.md
@bubacoder
bubacoder merged commit 8794800 into main Nov 22, 2025
6 of 7 checks passed
@bubacoder
bubacoder deleted the feature/fix-tools branch November 22, 2025 11:03
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