Skip to content

chore(CLAUDE): Adds fuckin claude files ig.#144

Merged
jhechtf merged 1 commit into
mainfrom
add-claude
Jul 24, 2026
Merged

chore(CLAUDE): Adds fuckin claude files ig.#144
jhechtf merged 1 commit into
mainfrom
add-claude

Conversation

@jhechtf

@jhechtf jhechtf commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Documentation
    • Added operational guidance for the repository and key workspaces, including development, testing, architecture, database workflows, and theming.
    • Added Claude Code docs for apps/website, packages/db, and packages/skeleton-plugin.
  • Chores
    • Updated pull request checks to use newer GitHub Actions and Node.js 24.x, plus increased linter memory.
    • Updated ignore rules to continue excluding build output and also exclude local Claude config.
  • Style
    • Reformatted PostCSS pseudo-class set and added a Svelte ESLint parser dev dependency.

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
bill-tracker-mono Ready Ready Preview, Comment Jul 24, 2026 6:11pm

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds repository and package-level CLAUDE.md guidance covering commands, architecture, workflows, and conventions. Updates .gitignore, pull request CI runtimes, website development dependencies, and PostCSS formatting.

Changes

Repository Guidance

Layer / File(s) Summary
Root guidance and local-file ignore
.gitignore, CLAUDE.md
Adds root-level Claude Code instructions, monorepo conventions, common commands, and an ignore rule for CLAUDE.local.md.
Workspace-specific guidance
apps/website/CLAUDE.md, packages/db/CLAUDE.md, packages/skeleton-plugin/CLAUDE.md
Documents website architecture and testing, database schema workflows and relationships, and Skeleton theme package usage and build behavior.

CI and Website Tooling

Layer / File(s) Summary
Pull request check runtime updates
.github/workflows/pr.yml
Updates formatter and linter actions to newer versions, switches both jobs to Node 24, and increases linter memory.
Website lint and PostCSS tooling
apps/website/package.json, apps/website/postcss.config.cjs
Adds svelte-eslint-parser and reformats the PostCSS pseudo-class set without changing its values.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • sungmanito/mono#126: Also changes website tooling dependencies and the pull request workflow’s Node.js version.

Poem

I’m a rabbit with notes in a tidy burrow,
Commands and paths now point the way tomorrow.
Claude files tucked where they belong,
CI hops with Node along.
Neat tools help the monorepo grow!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is related to the main change: adding CLAUDE guidance files and related updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-claude

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

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

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

Inline comments:
In @.github/workflows/pr.yml:
- Line 9: Update both checkout steps in the PR workflow to configure
persist-credentials as false through each action’s with settings, ensuring
subsequent dependency installation and checks cannot use a persisted
GITHUB_TOKEN.

In `@packages/db/CLAUDE.md`:
- Line 17: Update the database deployment guidance and the workflow behavior
around db:push so direct schema pushes from main are gated to non-production
environments. For production, replace the direct push path with generated,
reviewed migrations that include rollback support, preserving the existing
schema-change trigger while preventing unreviewed changes from applying
directly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d44d0858-4f42-41bf-a96f-c546720fdacd

📥 Commits

Reviewing files that changed from the base of the PR and between 97295bb and 018e2a7.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (8)
  • .github/workflows/pr.yml
  • .gitignore
  • CLAUDE.md
  • apps/website/CLAUDE.md
  • apps/website/package.json
  • apps/website/postcss.config.cjs
  • packages/db/CLAUDE.md
  • packages/skeleton-plugin/CLAUDE.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • CLAUDE.md
  • packages/skeleton-plugin/CLAUDE.md
  • apps/website/CLAUDE.md

Comment thread .github/workflows/pr.yml
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/checkout@v7

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.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== files =="
git ls-files .github/workflows || true

echo "== pr.yml =="
if [ -f .github/workflows/pr.yml ]; then
  nl -ba .github/workflows/pr.yml | sed -n '1,160p'
fi

echo "== action version pins =="
rg -n 'uses:\s*actions/checkout@|persist-credentials|pnpm i|pnpm lint|pnpm (install|run lint|lint)' .github/workflows .github 2>/dev/null || true

echo "== check pin metadata if gh available =="
if command -v gh >/dev/null 2>&1; then
  echo "gh version:"
  gh --version | head -3
  for ref in v7; do
    echo "== gh inspect actions/checkout@$ref =="
    obj=$(gh api repos/actions/checkout/git/refs/tags/$ref --jq '.object.sha' 2>/dev/null || true)
    typ=$(gh api repos/actions/checkout/git/refs/tags/$ref --jq '.object.type' 2>/dev/null || true)
    echo "tag ref object=$obj type=$typ"
    if [ "$typ" = "tag" ] && [ -n "$obj" ]; then
      commit=$(gh api repos/actions/checkout/git/tags/$obj --jq '.object.sha' 2>/dev/null || true)
      echo "dereferenced commit=$commit"
    fi
  done
else
  echo "gh not available"
fi

Repository: sungmanito/mono

Length of output: 294


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== pr.yml relevant contents =="
python3 - <<'PY'
from pathlib import Path
p=Path('.github/workflows/pr.yml')
for i,line in enumerate(p.read_text().splitlines(),1):
    print(f"{i:4}: {line}")
PY

echo "== checkout references in workflows =="
grep -RInE 'uses:\s*actions/checkout@|persist-credentials|pnpm (i|install|lint|run lint)' .github/workflows .github 2>/dev/null || true

echo "== available gh =="
command -v gh >/dev/null 2>&1 && gh --version | head -3 || echo "gh not available"

Repository: sungmanito/mono

Length of output: 2401


🌐 Web query:

actions/checkout v7 persist-credentials default value GITHUB_TOKEN

💡 Result:

The default value for the persist-credentials input in actions/checkout v7 is true [1][2]. When set to true (the default), the action configures the repository's local Git configuration to use the GITHUB_TOKEN (or an alternative token/SSH key if provided) to authenticate Git commands [3][4][2]. This allows your subsequent workflow steps to perform authenticated Git operations, such as git fetch or git push [3][5]. In v7, this credential persistence is handled more securely than in earlier versions by storing the credentials in a separate file under $RUNNER_TEMP rather than directly within.git/config [5][6]. The token is automatically removed during the post-job cleanup process [3][2]. To opt out of this behavior, you can explicitly set persist-credentials to false [3][4].

Citations:


🌐 Web query:

repository sungmanito mono package.json scripts prettier lint

💡 Result:

The sungmanito/mono repository is a monorepo containing the codebase for a bill-tracking application named Sungmanito [1]. While search results confirm the repository exists and utilizes technologies such as SvelteKit 2, Drizzle ORM, and Supabase [1][2], there is no specific public information available regarding the exact configuration of Prettier or linting scripts within its package.json files. The repository is structured with an apps directory, which currently contains a single SvelteKit application [1]. If you are looking to configure Prettier and linting in a similar SvelteKit monorepo environment, common industry practice involves installing the necessary dependencies (e.g., eslint, prettier, eslint-config-prettier, eslint-plugin-svelte) and defining scripts in your package.json, such as: { "scripts": { "lint": "eslint.", "format": "prettier --write." } } Since specific implementation details for this repository's linting and formatting configuration were not found in the available search data, you would need to inspect the package.json file directly within the sungmanito/mono repository to see their specific setup [1].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== checkout metadata files =="
git ls-files 'action.yml' 'package.json' 'pnpm-lock.yaml' package-lock.json yarn.lock 2>/dev/null || true

echo "== package workspace/package scripts =="
python3 - <<'PY'
from pathlib import Path
for p in list(Path('.').rglob('package.json'))[:50]:
    try:
        import json
        data=json.loads(p.read_text())
    except Exception as e:
        continue
    if p == Path('package.json') or (p.is_relative_to(Path('.')) and any(part in {'.github','node_modules'} for part in p.parts)):
        pass
    if data:
        print(f"-- {p} --")
        if 'scripts' in data:
            for k,v in data['scripts'].items():
                if k in {'lint','prettier','format','build','dev'} or 'lint' in k or 'prettier' in k:
                    print(f"{k}: {v}")
        if 'dependencies' in data or 'devDependencies' in data:
            deps={}
            deps.update(data.get('dependencies',{}))
            deps.update(data.get('devDependencies',{}))
            for d in ['eslint','prettier','svelte-check','typescript']:
                if d in deps:
                    print(f"dep {d}: {deps[d]}")
PY

echo "== .github/workflows/pr.yml with with block support =="
python3 - <<'PY'
from pathlib import Path
text=Path('.github/workflows/pr.yml').read_text().splitlines()
for i,line in enumerate(text,1):
    if 'uses: actions/checkout@' in line:
        print(f"{i}: {line}")
        cur=i
        while cur < len(text):
            nxt=cur+1
            if nxt <= len(text) and (text[nxt-1].startswith(' ') or text[nxt-1].startswith('\t')):
                print(f"{nxt}: {text[nxt]}")
                cur=nxt
            else:
                break
PY

Repository: sungmanito/mono

Length of output: 8443


Disable checkout credential persistence in PR checks.

Leave the repo checkout unauthenticated for PR workflows: add with: persist-credentials: false to both .github/workflows/pr.yml checkout steps. After checkout, pnpm i --frozen-lockfile followed by pnpm prettier:check or pnpm lint runs pull-request-controlled code with the default persisted GITHUB_TOKEN.

🧰 Tools
🪛 zizmor (1.26.1)

[warning] 9-9: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

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

In @.github/workflows/pr.yml at line 9, Update both checkout steps in the PR
workflow to configure persist-credentials as false through each action’s with
settings, ensuring subsequent dependency installation and checks cannot use a
persisted GITHUB_TOKEN.

Source: Linters/SAST tools

Comment thread packages/db/CLAUDE.md
- `pnpm db:generate` — `drizzle-kit generate` (emit SQL migration files into `./drizzle`)
- `pnpm db:studio` — `drizzle-kit studio`

No `build`, `lint`, `dev`, or `test` scripts are defined for this package. CI (`.github/workflows/db.yml`) runs `pnpm db:push` from this directory on every push to `main` that touches `packages/db/src/**/*.ts` — i.e. schema changes pushed to `main` apply directly to the database, there's no generate/review step in that workflow.

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.

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== repo files relevant =="
git ls-files | rg '(^\.github/workflows/db\.yml$|packages/db/CLAUDE\.md$|packages/db/.*)' | sed -n '1,120p'

echo
echo "== packages/db/CLAUDE.md context =="
if [ -f packages/db/CLAUDE.md ]; then
  nl -ba packages/db/CLAUDE.md | sed -n '1,80p'
fi

echo
echo "== .github/workflows/db.yml =="
if [ -f .github/workflows/db.yml ]; then
  nl -ba .github/workflows/db.yml | sed -n '1,220p'
fi

echo
echo "== package scripts / drizzle / database URLs =="
for f in packages/db/package.json pnpm-workspace.yaml; do
  if [ -f "$f" ]; then
    echo "--- $f"
    cat "$f"
  fi
done

echo
echo "== search db env/workflow refs =="
rg -n "DATABASE_|DB_|drizzle|db:push|schema|migration|main|push|production|staging|preview|heroku|vercel|railway|supabase|neon|rds|postgres|mysql" .github packages/db -S 2>/dev/null | sed -n '1,240p'

Repository: sungmanito/mono

Length of output: 1264


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== packages/db/CLAUDE.md context =="
if [ -f packages/db/CLAUDE.md ]; then
  cat -n packages/db/CLAUDE.md | sed -n '1,80p'
fi

echo
echo "== .github/workflows/db.yml =="
if [ -f .github/workflows/db.yml ]; then
  cat -n .github/workflows/db.yml | sed -n '1,220p'
fi

echo
echo "== package scripts / drizzle / database URLs =="
for f in packages/db/package.json pnpm-workspace.yaml; do
  if [ -f "$f" ]; then
    echo "--- $f"
    cat -n "$f"
  fi
done

echo
echo "== search db env/workflow refs =="
rg -n "DATABASE_|DB_|drizzle|db:push|schema|migration|main|push|production|staging|preview|heroku|vercel|railway|supabase|neon|rds|postgres|mysql" .github packages/db -S 2>/dev/null | sed -n '1,260p'

Repository: sungmanito/mono

Length of output: 10979


Avoid normalizing direct schema pushes from main.

.github/workflows/db.yml runs cd packages/db && pnpm db:push on every main push touching packages/db/src/**/*.ts, with no environment gate or migration/review step. If this targets a shared or production database, db:push can apply unreviewed schema changes directly; gate it to non-production, and generate/review migrations for production with rollback support.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: The official name of this software platform is spelled with a capital “H”.
Context: ...ripts are defined for this package. CI (.github/workflows/db.yml) runs pnpm db:push ...

(GITHUB)

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

In `@packages/db/CLAUDE.md` at line 17, Update the database deployment guidance
and the workflow behavior around db:push so direct schema pushes from main are
gated to non-production environments. For production, replace the direct push
path with generated, reviewed migrations that include rollback support,
preserving the existing schema-change trigger while preventing unreviewed
changes from applying directly.

@jhechtf
jhechtf merged commit 288b08e into main Jul 24, 2026
4 of 6 checks passed
@jhechtf
jhechtf deleted the add-claude branch July 24, 2026 18:17
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