Skip to content

docs: refresh README for FOSS professionalism#1357

Open
ggfevans wants to merge 10 commits intomainfrom
fix/1353-readme-refresh
Open

docs: refresh README for FOSS professionalism#1357
ggfevans wants to merge 10 commits intomainfrom
fix/1353-readme-refresh

Conversation

@ggfevans
Copy link
Collaborator

@ggfevans ggfevans commented Feb 28, 2026

User description

Summary

  • Rewrites README with feature-forward structure and expanded audience positioning
  • Adds descriptive subtitle, flavour tagline, and conversational intro paragraph
  • Adds feature table with personality-driven descriptions
  • Adds screenshot gallery placeholders (to be captured in follow-up commit)
  • Adds "Who It's For" section covering homelabbers, sysadmins, AV techs, IT students
  • Moves deployment config to Self-Hosting Guide (link only in README)
  • Moves dev-facing badges (coverage, ratio, time) to Contributing section
  • Adds contributing callout with good-first-issue link
  • Adds light-mode logo support via <picture> element
  • Fixes production URL from app.racku.la to count.racku.la
  • Updates GitHub repo description to match new subtitle

Closes #1353

Screenshots still needed

The following placeholders need screenshots captured from the running app:

  • assets/screenshots/multi-rack.png
  • assets/screenshots/device-library.png
  • assets/screenshots/export.png
  • assets/screenshots/qr-share.png

Test plan

  • Verify all links resolve on GitHub preview
  • Verify both logo variants render in light/dark mode
  • Verify badges display correctly (header + contributing section)
  • Check mobile rendering of feature table
  • Capture and commit screenshots before merge

🤖 Generated with Claude Code


CodeAnt-AI Description

Refresh README to present Rackula as a polished, try-it-now FOSS project

What Changed

  • Rewrote README with a concise subtitle, flavour line, hero GIF, and a feature table that highlights drag-and-drop layout, exports, QR sharing, 600+ device images, multi-rack support, and offline use
  • Replaced header logo link with the production URL (count.racku.la) and added a light-mode logo so the correct variant displays in dark/light themes
  • Added a "See It In Action" screenshot gallery (placeholders), a clear "Who It's For" audience section, a prominent "Use it now" call-to-action linking to count.racku.la, and moved Self-Hosting and Contributing links into the Quick Start/Contributing area
  • Moved repository badges into the Contributing area and removed detailed deployment/env var instructions from the README, linking to the Self-Hosting Guide instead

Impact

✅ Clearer project pitch on GitHub
✅ Faster try-it-now access via direct count.racku.la link
✅ Easier discovery of self-hosting and contribution info

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

ggfevans and others added 8 commits February 27, 2026 18:00
Design spec for AUTH_MODE=local covering credential bootstrap,
Argon2id hashing, login API, rate limiting, login form architecture,
nginx integration, and security considerations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace SHA-256 hash-based timing-safe comparison with direct
timingSafeEqual on padded buffers — simpler and equally secure
since usernames are not secret values.

Addresses CodeRabbit review feedback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design for refreshing README with professional structure,
expanded audience positioning, and feature-forward layout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Step-by-step plan for rewriting README with feature-forward
structure, screenshot gallery, and expanded audience positioning.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace tagline with descriptive subtitle and flavour line
- Add feature table, screenshot gallery, use case section
- Add contributing callout with good-first-issue link
- Move deployment config to Self-Hosting Guide (link only)
- Move Built With Claude and Documentation sections up
- Condense Acknowledgements to one-liner with link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move dev-facing badges (coverage, ratio, time) to Contributing section
- Add conversational intro paragraph below hero
- Restore "serve the dist/ folder" guidance for build-from-source

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 28, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai
Copy link

coderabbitai bot commented Feb 28, 2026

📝 Walkthrough

Walkthrough

The PR includes a major README refresh restructuring content for modern FOSS presentation with a features table and streamlined documentation flow, plus a comprehensive design specification for implementing local authentication mode covering credential management, API endpoints, rate limiting, login UI, and security considerations.

Changes

Cohort / File(s) Summary
Documentation & Project Configuration
README.md, .gitignore
README reorganized with responsive hero image, feature table, and condensed documentation flow; removed deployment details in favor of cleaner structure. .gitignore adds docs/plans/ rule.
Design Specification
docs/plans/2026-02-27-local-auth-design.md
New comprehensive design doc for AUTH_MODE=local authentication, detailing credential bootstrap, Argon2id hashing, login API endpoint, in-memory rate limiting (60s window, 5 attempts), login form architecture, nginx integration, security safeguards, environment variables, migration paths, and testing/verification strategy.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • #1167: Introduces auth-architecture ADR and authentication-mode spike that the local-auth design specification builds upon and expands.
  • #1354: Commits the identical local-auth design document (docs/plans/2026-02-27-local-auth-design.md) with complete AUTH_MODE=local specification.
  • #148: Modifies README hero image markup and branding elements (image anchors, responsive picture elements) similarly to refresh visual presentation.

Suggested labels

size:L

Poem

🐰 A README refreshed with features bright,
Auth designs penned through local's light,
Modern FOSS, credentials hashed with care,
Rate limits guard against despair,
The warren's nest now shines so fair! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: refresh README for FOSS professionalism' accurately summarizes the main change—a comprehensive README rewrite to improve professional positioning while maintaining the project's tone.
Description check ✅ Passed The description is well-detailed and directly related to the changeset, covering the README rewrite objectives, screenshot placeholders, section reorganization, URL fixes, and test plan.
Linked Issues check ✅ Passed The PR comprehensively addresses all coding-related objectives from issue #1353: README restructured with subtitle, features table, 'Who It's For' section, contributor callout, light-mode logo support, URL fix, and deployment config removal with linking.
Out of Scope Changes check ✅ Passed All changes are directly aligned with issue #1353 objectives. The design document addition and .gitignore update support the README refresh effort and are appropriately scoped to the project refresh initiative.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/1353-readme-refresh

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.

@codeant-ai codeant-ai bot added the size:XL This PR changes 500-999 lines, ignoring generated files label Feb 28, 2026
@codeant-ai
Copy link
Contributor

codeant-ai bot commented Feb 28, 2026

CodeAnt AI finished reviewing your PR.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/plans/2026-02-27-local-auth-design.md`:
- Line 178: Clarify the trust boundary for using the x-real-ip header: update
the design text (reference "x-real-ip", "auth logger", and "rate limiting") to
require that x-real-ip is only used when requests traverse a verified trusted
proxy (e.g., our nginx), and otherwise fall back to the connection remote
address; specify how to validate the proxy (IP whitelist or proxy header
verification) and add a short note about rejecting or ignoring x-real-ip from
untrusted sources to prevent spoofing.
- Around line 79-86: The unlabeled fenced code blocks containing the argon2
parameter list (the block starting with "type: argon2id" and the other block
referenced later) should include explicit language identifiers to satisfy MD040;
update the opening backtick fences to include a language such as "text" or
"yaml" (e.g., ```text or ```yaml) so the blocks render consistently and pass
linting, and ensure both occurrences (the argon2 config block and the similar
block later in the document) are updated.
- Line 1: Move the document titled "Design Spec: Local Authentication Mode
(`#1117`)" out of the planning docs area into the reference docs area, updating
its frontmatter/category/tags to reflect "reference" rather than "planning",
adjust any site navigation/sidebar or mkdocs/nav entries that point to it, and
update internal links or cross-references to the document so they point to the
new location.
- Around line 311-312: The CSRF middleware exemption currently checks for
"/auth/login" but the login route is implemented at "POST /api/auth/login";
update the CSRF exemption logic in security.ts (or wherever the CSRF whitelist
is defined) to exempt "/api/auth/login" (or add both "/auth/login" and
"/api/auth/login") so the credential POST to the login handler is not blocked by
CSRF checks.

In `@docs/plans/2026-02-27-readme-refresh-design.md`:
- Around line 49-72: The ordered list beginning with "7. **See It In Action**"
(items currently numbered 7..15) should restart at 1 to satisfy markdownlint
MD029; update the numeric prefixes for "See It In Action", "Who It's For",
"Quick Start", "Documentation", "Contributing", "Built With Claude",
"Acknowledgements", "Star History", and "Licence" so they start at 1 (1..9)
instead of 7..15, ensuring the list numbering is normalized.

In `@docs/plans/2026-02-27-readme-refresh-plan.md`:
- Line 13: The heading "### Task 1: Add light-mode logo to header" causes a
level jump; either promote this heading to a second-level heading (change "###
Task 1: Add light-mode logo to header" to "## Task 1: Add light-mode logo to
header") or insert an appropriate intermediate parent section (a "##" heading)
above it so that "Task 1" is nested correctly and MD001 is resolved.
- Around line 149-175: The Quick Start/Documentation section has mismatched
fenced code blocks (notably the ````markdown opener and stray closing ````)
which breaks rendering; edit the block under the "## Quick Start" and "##
Documentation" headings to use standard triple-backtick fences: change the
initial ````markdown to ```markdown, keep the internal ```bash block as ```bash
... ```, and close both markdown blocks with ``` (remove extra ```` closures) so
the markdown and bash blocks are properly balanced.
- Line 171: Update the broken documentation link by replacing the reference
string "docs/reference/ARCHITECTURE.md" with "docs/ARCHITECTURE.md" wherever it
appears in the plan file and the README template so the high-level architecture
link points to the root overview; specifically modify the link text in the plan
entry that currently contains "docs/reference/ARCHITECTURE.md" and also update
the same string in README.md (the reused template) to ensure consistent, correct
propagation.

In `@README.md`:
- Around line 47-56: The README references four screenshot files that are
missing, causing broken images; add the four PNG files named multi-rack.png,
device-library.png, export.png, and qr-share.png into the assets/screenshots/
directory (matching the names used in README) and commit them, or alternatively
remove/replace those references in README.md if you cannot provide the images;
ensure the filenames exactly match the references in README.md so the image
links resolve.
- Around line 83-85: The README's "Architecture Overview" link currently points
to docs/reference/ARCHITECTURE.md; update that link target so it points to the
root-level docs/ARCHITECTURE.md instead (change the link for "Architecture
Overview" in README.md from docs/reference/ARCHITECTURE.md to
docs/ARCHITECTURE.md).

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9e37056 and cacfcd3.

📒 Files selected for processing (5)
  • README.md
  • assets/screenshots/.gitkeep
  • docs/plans/2026-02-27-local-auth-design.md
  • docs/plans/2026-02-27-readme-refresh-design.md
  • docs/plans/2026-02-27-readme-refresh-plan.md

@@ -0,0 +1,408 @@
# Design Spec: Local Authentication Mode (#1117)
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

Move this technical spec out of docs/plans/ to docs/reference/.

This file is a detailed system specification, not roadmap planning, so its current location conflicts with your docs taxonomy.
As per coding guidelines, “Organize documentation by purpose: ... reference/ for specifications and technical details, planning/ for roadmap.”

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-local-auth-design.md` at line 1, Move the document
titled "Design Spec: Local Authentication Mode (`#1117`)" out of the planning docs
area into the reference docs area, updating its frontmatter/category/tags to
reflect "reference" rather than "planning", adjust any site navigation/sidebar
or mkdocs/nav entries that point to it, and update internal links or
cross-references to the document so they point to the new location.

Comment on lines +79 to +86
```
type: argon2id
memoryCost: 65536 (64 MiB)
timeCost: 3 (iterations)
parallelism: 4 (threads)
hashLength: 32 (bytes)
saltLength: 16 (bytes, auto-generated)
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add explicit language identifiers to fenced code blocks.

The fences at Lines 79 and 143 are unlabeled (MD040). Use text (or yaml/bash where appropriate) for consistent rendering and lint compliance.

Also applies to: 143-151

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 79-79: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-local-auth-design.md` around lines 79 - 86, The
unlabeled fenced code blocks containing the argon2 parameter list (the block
starting with "type: argon2id" and the other block referenced later) should
include explicit language identifiers to satisfy MD040; update the opening
backtick fences to include a language such as "text" or "yaml" (e.g., ```text or
```yaml) so the blocks render consistently and pass linting, and ensure both
occurrences (the argon2 config block and the similar block later in the
document) are updated.

| Storage | In-memory Map | Resets on restart (acceptable for homelab) |
| Cleanup | Every 5 minutes, prune entries > 2 min old | Prevent memory bloat |

**IP extraction:** `x-real-ip` header (set by nginx) — same source as auth logger.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Define trust boundary for x-real-ip before using it for rate limiting.

Using x-real-ip directly is spoofable unless requests are guaranteed to come only through trusted nginx. The spec should state fallback/validation behavior (e.g., trusted proxy only, else remote address).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-local-auth-design.md` at line 178, Clarify the trust
boundary for using the x-real-ip header: update the design text (reference
"x-real-ip", "auth logger", and "rate limiting") to require that x-real-ip is
only used when requests traverse a verified trusted proxy (e.g., our nginx), and
otherwise fall back to the connection remote address; specify how to validate
the proxy (IP whitelist or proxy header verification) and add a short note about
rejecting or ignoring x-real-ip from untrusted sources to prevent spoofing.

Comment on lines +311 to +312
Login endpoint (`POST /api/auth/login`) must be **exempt from CSRF middleware** — the user doesn't have a session cookie yet (chicken-and-egg). The existing CSRF middleware in `security.ts` already exempts `/auth/login` from CSRF checks.

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

CSRF exemption path is inconsistent with the proposed login endpoint.

Line 311 says CSRF exempts /auth/login, but local auth design introduces credential POST at /api/auth/login (Line 106). If implemented as written, login can fail behind CSRF middleware.

Proposed spec correction
-Login endpoint (`POST /api/auth/login`) must be **exempt from CSRF middleware** — the user doesn't have a session cookie yet (chicken-and-egg). The existing CSRF middleware in `security.ts` already exempts `/auth/login` from CSRF checks.
+Login endpoint (`POST /api/auth/login`) must be **exempt from CSRF middleware** — the user doesn't have a session cookie yet (chicken-and-egg). Ensure CSRF exemptions include `/api/auth/login` (not only `/auth/login`).
📝 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.

Suggested change
Login endpoint (`POST /api/auth/login`) must be **exempt from CSRF middleware** — the user doesn't have a session cookie yet (chicken-and-egg). The existing CSRF middleware in `security.ts` already exempts `/auth/login` from CSRF checks.
Login endpoint (`POST /api/auth/login`) must be **exempt from CSRF middleware** — the user doesn't have a session cookie yet (chicken-and-egg). Ensure CSRF exemptions include `/api/auth/login` (not only `/auth/login`).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-local-auth-design.md` around lines 311 - 312, The CSRF
middleware exemption currently checks for "/auth/login" but the login route is
implemented at "POST /api/auth/login"; update the CSRF exemption logic in
security.ts (or wherever the CSRF whitelist is defined) to exempt
"/api/auth/login" (or add both "/auth/login" and "/api/auth/login") so the
credential POST to the login handler is not blocked by CSRF checks.

```markdown
## Documentation

- [Architecture Overview](docs/reference/ARCHITECTURE.md)
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Searching for ARCHITECTURE.md ==="
fd -a '^ARCHITECTURE\.md$' docs || echo "No ARCHITECTURE.md found"

echo ""
echo "=== Searching for SPEC.md ==="
fd -a '^SPEC\.md$' docs || echo "No SPEC.md found"

echo ""
echo "=== Checking path references ==="
if [ -f README.md ]; then
  rg -n "docs/reference/ARCHITECTURE\.md|docs/ARCHITECTURE\.md" README.md || echo "No references found in README.md"
fi

if [ -f docs/plans/2026-02-27-readme-refresh-plan.md ]; then
  rg -n "docs/reference/ARCHITECTURE\.md|docs/ARCHITECTURE\.md" docs/plans/2026-02-27-readme-refresh-plan.md || echo "No references found in plan file"
fi

echo ""
echo "=== Listing docs directory structure ==="
ls -la docs/ || echo "docs directory not found"

Repository: RackulaLives/Rackula

Length of output: 1120


Fix documentation path in plan to prevent incorrect link propagation.

Line 171 references docs/reference/ARCHITECTURE.md, but the high-level architecture overview resides at docs/ARCHITECTURE.md per organizational guidelines. This path also appears in README.md (line 83), indicating the plan template is already being reused with the incorrect link. Update to docs/ARCHITECTURE.md to align with guideline structure (high-level overview at root, reference/ for specifications and technical details).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-readme-refresh-plan.md` at line 171, Update the broken
documentation link by replacing the reference string
"docs/reference/ARCHITECTURE.md" with "docs/ARCHITECTURE.md" wherever it appears
in the plan file and the README template so the high-level architecture link
points to the root overview; specifically modify the link text in the plan entry
that currently contains "docs/reference/ARCHITECTURE.md" and also update the
same string in README.md (the reused template) to ensure consistent, correct
propagation.

Comment on lines +47 to +56
## See It In Action

See [Self-Hosting Guide](docs/guides/SELF-HOSTING.md) for details.
<!-- TODO: Capture and add screenshots for multi-rack, device library, export, QR sharing -->

For production/self-hosted API security:
| | |
| ------------------------------------------------------- | -------------------------------------------------------- |
| ![Multi-rack layout](assets/screenshots/multi-rack.png) | ![Device library](assets/screenshots/device-library.png) |
| _Multi-rack layouts_ | _600+ real devices_ |
| ![Export options](assets/screenshots/export.png) | ![QR sharing](assets/screenshots/qr-share.png) |
| _Export to PNG, PDF, SVG_ | _QR code sharing_ |
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# List all files in assets/screenshots directory
echo "=== Contents of assets/screenshots/ ==="
ls -la assets/screenshots/ 2>/dev/null || echo "Directory not found"

# Search for the specific PNG files
echo ""
echo "=== Searching for referenced PNG files ==="
fd -a 'multi-rack\.png|device-library\.png|export\.png|qr-share\.png' assets/screenshots 2>/dev/null || echo "PNG files not found"

# Verify README.md references
echo ""
echo "=== README.md references to screenshots ==="
rg -n 'assets/screenshots/(multi-rack|device-library|export|qr-share)\.png' README.md

Repository: RackulaLives/Rackula

Length of output: 602


Do not merge with missing screenshot files.

The README references four screenshot images (lines 53 and 55) that do not exist in the repository. The assets/screenshots/ directory is empty, so users will see broken image placeholders when viewing the project. Add the missing files before merge:

  • assets/screenshots/multi-rack.png
  • assets/screenshots/device-library.png
  • assets/screenshots/export.png
  • assets/screenshots/qr-share.png
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 47 - 56, The README references four screenshot files
that are missing, causing broken images; add the four PNG files named
multi-rack.png, device-library.png, export.png, and qr-share.png into the
assets/screenshots/ directory (matching the names used in README) and commit
them, or alternatively remove/replace those references in README.md if you
cannot provide the images; ensure the filenames exactly match the references in
README.md so the image links resolve.

Comment on lines 83 to +85
- [Architecture Overview](docs/reference/ARCHITECTURE.md)
- [Technical Specification](docs/reference/SPEC.md)
- [Contributing Guide](CONTRIBUTING.md)
- [Self-Hosting Guide](docs/guides/SELF-HOSTING.md)
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Finding ARCHITECTURE.md files ==="
fd -a '^ARCHITECTURE\.md$' docs

echo -e "\n=== Searching for references ==="
rg -n "Architecture Overview|docs/reference/ARCHITECTURE\.md|docs/ARCHITECTURE\.md" README.md docs/plans/2026-02-27-readme-refresh-plan.md

Repository: RackulaLives/Rackula

Length of output: 403


Update architecture link to point to root docs directory.

Line 83 links to docs/reference/ARCHITECTURE.md, but per documentation guidelines, docs/ARCHITECTURE.md (at the root level) is the designated location for high-level overview content. The reference directory contains technical specifications and details. Change to docs/ARCHITECTURE.md.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 83 - 85, The README's "Architecture Overview" link
currently points to docs/reference/ARCHITECTURE.md; update that link target so
it points to the root-level docs/ARCHITECTURE.md instead (change the link for
"Architecture Overview" in README.md from docs/reference/ARCHITECTURE.md to
docs/ARCHITECTURE.md).

ggfevans and others added 2 commits February 28, 2026 01:08
- Fix heading levels in plan (### -> ##) for MD001
- Fix 4-backtick fenced code blocks to 3-backtick
- Normalize ordered list numbering in design doc for MD029

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Plan files are working documents, not shipped artifacts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
docs/plans/2026-02-27-readme-refresh-plan.md (1)

166-171: ⚠️ Potential issue | 🟡 Minor

Use the correct Architecture doc path in the template block.

Line 169 points to docs/reference/ARCHITECTURE.md, but the architecture overview should link to docs/ARCHITECTURE.md. Keeping this in the plan risks reintroducing a broken path in README updates.

Proposed fix
 ## Documentation

-- [Architecture Overview](docs/reference/ARCHITECTURE.md)
+- [Architecture Overview](docs/ARCHITECTURE.md)
 - [Technical Specification](docs/reference/SPEC.md)
 - [Self-Hosting Guide](docs/guides/SELF-HOSTING.md)

As per coding guidelines, "docs/**/*.md: Start with docs/ARCHITECTURE.md for codebase overview and consult docs/reference/SPEC.md as the authoritative technical specification."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-02-27-readme-refresh-plan.md` around lines 166 - 171, Update
the documentation link in the template list that currently points to
"docs/reference/ARCHITECTURE.md" so it references the correct top-level file
"docs/ARCHITECTURE.md"; locate the markdown block containing the three bullets
(the entry that reads "Architecture Overview") and replace the path string to
the correct one to avoid broken links and ensure the plan uses the canonical
overview document.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/plans/2026-02-27-readme-refresh-plan.md`:
- Around line 166-171: Update the documentation link in the template list that
currently points to "docs/reference/ARCHITECTURE.md" so it references the
correct top-level file "docs/ARCHITECTURE.md"; locate the markdown block
containing the three bullets (the entry that reads "Architecture Overview") and
replace the path string to the correct one to avoid broken links and ensure the
plan uses the canonical overview document.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cacfcd3 and 711cc0a.

📒 Files selected for processing (2)
  • docs/plans/2026-02-27-readme-refresh-design.md
  • docs/plans/2026-02-27-readme-refresh-plan.md

Copy link

@coderabbitai coderabbitai bot left a comment

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 the current code and only fix it if needed.

Inline comments:
In @.gitignore:
- Line 43: Remove the broad ignore of docs/plans/ from .gitignore and either
commit the finalized design docs or replace the rule with a narrower pattern
(e.g., only ignore draft files) so that files like
2026-01-21-e2e-test-infrastructure-design.md,
2026-01-27-self-hosting-guide-refactor.md,
2026-02-10-container-selfhosting-audit-checklist.md, and
2026-02-27-local-auth-design.md are tracked; update the .gitignore entry by
deleting the line "docs/plans/" or changing it to a specific pattern such as
"docs/plans/**/*.draft.md" to preserve only temporary drafts.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 711cc0a and eff8965.

📒 Files selected for processing (1)
  • .gitignore

.claude/plans/
.planning/
docs/planning/
docs/plans/
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check for existing files in docs/plans/ and their status

# Check if docs/plans/ exists and list any files
if [ -d "docs/plans" ]; then
  echo "=== Files in docs/plans/ ==="
  find docs/plans/ -type f -exec ls -lh {} \;
  
  echo -e "\n=== File count in docs/plans/ ==="
  find docs/plans/ -type f | wc -l
  
  echo -e "\n=== File names in docs/plans/ ==="
  find docs/plans/ -type f
  
  echo -e "\n=== Git status of docs/plans/ ==="
  git status docs/plans/ 2>&1 || echo "Not yet tracked by git"
else
  echo "docs/plans/ directory does not exist"
fi

# Also check if .gitignore has been modified in this commit
echo -e "\n=== Current .gitignore content (lines 40-50) ==="
sed -n '40,50p' .gitignore

Repository: RackulaLives/Rackula

Length of output: 1120


Reconsidering whether docs/plans/ should be ignored.

The directory contains 4 significant design documents:

  • 2026-01-21-e2e-test-infrastructure-design.md
  • 2026-01-27-self-hosting-guide-refactor.md
  • 2026-02-10-container-selfhosting-audit-checklist.md
  • 2026-02-27-local-auth-design.md

These are substantial project artifacts (5.5K–20K each), not ephemeral working files. Ignoring them prevents version control tracking, which is problematic for team reference, historical context, and knowledge transfer. Consider either committing these design documents and selectively ignoring only temporary drafts, or using a more specific ignore pattern such as docs/plans/**/*.draft.md to preserve finalized designs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore at line 43, Remove the broad ignore of docs/plans/ from
.gitignore and either commit the finalized design docs or replace the rule with
a narrower pattern (e.g., only ignore draft files) so that files like
2026-01-21-e2e-test-infrastructure-design.md,
2026-01-27-self-hosting-guide-refactor.md,
2026-02-10-container-selfhosting-audit-checklist.md, and
2026-02-27-local-auth-design.md are tracked; update the .gitignore entry by
deleting the line "docs/plans/" or changing it to a specific pattern such as
"docs/plans/**/*.draft.md" to preserve only temporary drafts.

@ggfevans ggfevans force-pushed the main branch 2 times, most recently from 865509f to 84d4510 Compare March 1, 2026 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL This PR changes 500-999 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refresh README for FOSS professionalism and expanded audience

1 participant