Skip to content

docs: point this repo at the published agent rules - #59

Open
decebal wants to merge 1 commit into
mainfrom
docs/agent-rules
Open

decebal wants to merge 1 commit into
mainfrom
docs/agent-rules

Conversation

@decebal

@decebal decebal commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Adds a CLAUDE.md naming the portable rule set at decebal-claude-skills → rules/, the subset that applies here, and the collapse-to-one-commit recipe.

Rules are referenced, not copied — copying the text into each repo forks it, and a rule written twice drifts in one copy without anyone noticing which.

This repo is already rebase-only with delete_branch_on_merge, so a PR cannot merge until its branch is a single commit.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Understand this PR’s impact

Explore downstream dependencies and potential security impact with Blast Radius.

View blast radius →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 7c7b32a2-ddfa-4d40-8c25-9c7319664a2d

📥 Commits

Reviewing files that changed from the base of the PR and between ac34792 and d1c3dc2.

📒 Files selected for processing (1)
  • CLAUDE.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⚠️ CI failures not shown inline (12)

GitHub Actions: Binary Size Monitoring / 0_Check Binary Sizes.txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run echo "## Binary Size Report" > $GITHUB_STEP_SUMMARY
 �[36;1mecho "## Binary Size Report" > $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1m# Minimal configuration�[0m
 �[36;1mMINIMAL_SIZE=$(stat -c%s "target/release/liballframe_core.rlib" 2>/dev/null || stat -f%z "target/release/liballframe_core.rlib" 2>/dev/null || echo "0")�[0m
 �[36;1mMINIMAL_MB=$(echo "scale=2; $MINIMAL_SIZE / 1048576" | bc)�[0m
 �[36;1mecho "Minimal (no features): ${MINIMAL_MB}MB" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1m# Check minimal size limit (< 5.0 MB)�[0m
 �[36;1m# Note: Updated Dec 2025 - auth/resilience features increased base size�[0m
 �[36;1mif (( $(echo "$MINIMAL_MB > 5.0" | bc -l) )); then�[0m
 �[36;1m  echo "::error::Minimal binary size (${MINIMAL_MB}MB) exceeds 5.0MB limit"�[0m

GitHub Actions: Binary Size Monitoring / Check Binary Sizes: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run echo "## Binary Size Report" > $GITHUB_STEP_SUMMARY
 �[36;1mecho "## Binary Size Report" > $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1m# Minimal configuration�[0m
 �[36;1mMINIMAL_SIZE=$(stat -c%s "target/release/liballframe_core.rlib" 2>/dev/null || stat -f%z "target/release/liballframe_core.rlib" 2>/dev/null || echo "0")�[0m
 �[36;1mMINIMAL_MB=$(echo "scale=2; $MINIMAL_SIZE / 1048576" | bc)�[0m
 �[36;1mecho "Minimal (no features): ${MINIMAL_MB}MB" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1m# Check minimal size limit (< 5.0 MB)�[0m
 �[36;1m# Note: Updated Dec 2025 - auth/resilience features increased base size�[0m
 �[36;1mif (( $(echo "$MINIMAL_MB > 5.0" | bc -l) )); then�[0m
 �[36;1m  echo "::error::Minimal binary size (${MINIMAL_MB}MB) exceeds 5.0MB limit"�[0m

GitHub Actions: Offline Quality Gates / 2_Dep Tree (allframe-tauri).txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-tauri"
 �[36;1mPACKAGE="allframe-tauri"�[0m
 �[36;1mFEATURES=""�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in allframe-tauri!"�[0m

GitHub Actions: Offline Quality Gates / Dep Tree (allframe-tauri): docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-tauri"
 �[36;1mPACKAGE="allframe-tauri"�[0m
 �[36;1mFEATURES=""�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in allframe-tauri!"�[0m

GitHub Actions: Offline Quality Gates / 6_Dep Tree (offline-first-desktop).txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-core"
 �[36;1mPACKAGE="allframe-core"�[0m
 �[36;1mFEATURES="cqrs,di,resilience,security"�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic|hyper"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in offline-first-desktop!"�[0m

GitHub Actions: Offline Quality Gates / Dep Tree (offline-first-desktop): docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-core"
 �[36;1mPACKAGE="allframe-core"�[0m
 �[36;1mFEATURES="cqrs,di,resilience,security"�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic|hyper"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in offline-first-desktop!"�[0m

GitHub Actions: Offline Quality Gates / 16_Dep Tree (offline-only-minimal).txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-core"
 �[36;1mPACKAGE="allframe-core"�[0m
 �[36;1mFEATURES="cqrs,di"�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic|hyper"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in offline-only-minimal!"�[0m

GitHub Actions: Offline Quality Gates / Dep Tree (offline-only-minimal): docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run PACKAGE="allframe-core"
 �[36;1mPACKAGE="allframe-core"�[0m
 �[36;1mFEATURES="cqrs,di"�[0m
 �[36;1mBANNED="reqwest|redis|opentelemetry-otlp|tonic|hyper"�[0m
 �[36;1m�[0m
 �[36;1m# Capture only stdout (dependency tree). Stderr has "Adding"/"Locking"�[0m
 �[36;1m# metadata lines that can false-match banned crate names.�[0m
 �[36;1mif [ -n "$FEATURES" ]; then�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" --no-default-features --features "$FEATURES" 2>/dev/null)�[0m
 �[36;1melse�[0m
 �[36;1m  TREE=$(cargo tree -p "$PACKAGE" 2>/dev/null)�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1mif echo "$TREE" | grep -qE "$BANNED"; then�[0m
 �[36;1m  echo "$TREE"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "Matched:"�[0m
 �[36;1m  echo "$TREE" | grep -E "$BANNED"�[0m
 �[36;1m  echo ""�[0m
 �[36;1m  echo "::error::Network dependencies found in offline-only-minimal!"�[0m

GitHub Actions: Offline Quality Gates / 17_allframe-tauri (macos-latest).txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run cargo check  -p allframe-tauri
 �[36;1mcargo check  -p allframe-tauri�[0m
 �[36;1mcargo test   -p allframe-tauri�[0m
 �[36;1mcargo clippy -p allframe-tauri -- -D warnings�[0m
 shell: /bin/bash -e {0}
 env:
   CARGO_HOME: /Users/runner/.cargo
   CARGO_INCREMENTAL: 0
   CARGO_TERM_COLOR: always
   CACHE_ON_FAILURE: false
 ##[endgroup]
 �[1m�[92m    Updating�[0m crates.io index
 �[1m�[92m     Locking�[0m 1009 packages to latest compatible versions
 �[1m�[92m      Adding�[0m allsource-core v0.10.5 �[1m�[33m(available: v0.25.0)�[0m
 �[1m�[92m      Adding�[0m async-compression v0.4.19 �[1m�[33m(available: v0.4.48)�[0m
 �[1m�[92m      Adding�[0m chrono v0.4.39 �[1m�[33m(available: v0.4.45)�[0m
 �[1m�[92m      Adding�[0m generic-array v0.14.7 �[1m�[33m(available: v0.14.9)�[0m
 �[1m�[92m      Adding�[0m governor v0.6.3 �[1m�[33m(available: v0.10.4)�[0m
 �[1m�[92m      Adding�[0m jsonwebtoken v9.3.1 �[1m�[33m(available: v11.1.0)�[0m
 �[1m�[92m      Adding�[0m matchit v0.8.4 �[1m�[33m(available: v0.8.6)�[0m
 �[1m�[92m      Adding�[0m mockall v0.13.1 �[1m�[33m(available: v0.15.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry v0.27.1 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry-otlp v0.27.0 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry_sdk v0.27.1 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m ort v2.0.0-rc.9 �[1m�[33m(available: v2.0.0-rc.13)�[0m
 �[1m�[92m      Adding�[0m ort-sys v2.0.0-rc.9 �[1m�[33m(available: v2.0.0-rc.13)�[0m
 �[1m�[92m      Adding�[0m proc-macro-crate v2.0.0 �[1m�[33m(available: v2.0.2)�[0m
 �[1m�[92m      Adding�[0m prometheus v0.13.4 �[1m�[33m(available: v0.14.0)�[0m
 �[1m�[92m      Adding�[0m rand v0.8.8 �[1m�[33m(available: v0.10.3)�[0m
 �[1m�[92m      Adding�[0m redis v0.27.6 �[1m�[33m(available: v1.7.0)�[0m
 �[1m�[92m      Adding�[0m reqwest v0.12.28 �[1m�[33m(available: v0.13.5)�[0m
 �[1m�[92m      Adding�[0m rusqlite v0.31.0 �[1m�[33m(available: v0.40.2)�[0m
 �...

GitHub Actions: Offline Quality Gates / allframe-tauri (macos-latest): docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run cargo check  -p allframe-tauri
 �[36;1mcargo check  -p allframe-tauri�[0m
 �[36;1mcargo test   -p allframe-tauri�[0m
 �[36;1mcargo clippy -p allframe-tauri -- -D warnings�[0m
 shell: /bin/bash -e {0}
 env:
   CARGO_HOME: /Users/runner/.cargo
   CARGO_INCREMENTAL: 0
   CARGO_TERM_COLOR: always
   CACHE_ON_FAILURE: false
 ##[endgroup]
 �[1m�[92m    Updating�[0m crates.io index
 �[1m�[92m     Locking�[0m 1009 packages to latest compatible versions
 �[1m�[92m      Adding�[0m allsource-core v0.10.5 �[1m�[33m(available: v0.25.0)�[0m
 �[1m�[92m      Adding�[0m async-compression v0.4.19 �[1m�[33m(available: v0.4.48)�[0m
 �[1m�[92m      Adding�[0m chrono v0.4.39 �[1m�[33m(available: v0.4.45)�[0m
 �[1m�[92m      Adding�[0m generic-array v0.14.7 �[1m�[33m(available: v0.14.9)�[0m
 �[1m�[92m      Adding�[0m governor v0.6.3 �[1m�[33m(available: v0.10.4)�[0m
 �[1m�[92m      Adding�[0m jsonwebtoken v9.3.1 �[1m�[33m(available: v11.1.0)�[0m
 �[1m�[92m      Adding�[0m matchit v0.8.4 �[1m�[33m(available: v0.8.6)�[0m
 �[1m�[92m      Adding�[0m mockall v0.13.1 �[1m�[33m(available: v0.15.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry v0.27.1 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry-otlp v0.27.0 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m opentelemetry_sdk v0.27.1 �[1m�[33m(available: v0.33.0)�[0m
 �[1m�[92m      Adding�[0m ort v2.0.0-rc.9 �[1m�[33m(available: v2.0.0-rc.13)�[0m
 �[1m�[92m      Adding�[0m ort-sys v2.0.0-rc.9 �[1m�[33m(available: v2.0.0-rc.13)�[0m
 �[1m�[92m      Adding�[0m proc-macro-crate v2.0.0 �[1m�[33m(available: v2.0.2)�[0m
 �[1m�[92m      Adding�[0m prometheus v0.13.4 �[1m�[33m(available: v0.14.0)�[0m
 �[1m�[92m      Adding�[0m rand v0.8.8 �[1m�[33m(available: v0.10.3)�[0m
 �[1m�[92m      Adding�[0m redis v0.27.6 �[1m�[33m(available: v1.7.0)�[0m
 �[1m�[92m      Adding�[0m reqwest v0.12.28 �[1m�[33m(available: v0.13.5)�[0m
 �[1m�[92m      Adding�[0m rusqlite v0.31.0 �[1m�[33m(available: v0.40.2)�[0m
 �...

GitHub Actions: Offline Quality Gates / 18_Binary Size (offline).txt: docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run cargo build --release -p allframe-core \
 �[36;1mcargo build --release -p allframe-core \�[0m
 �[36;1m  --no-default-features --features "cqrs,di,resilience,security"�[0m
 �[36;1m�[0m
 �[36;1mSIZE=$(stat -c%s "target/release/liballframe_core.rlib" 2>/dev/null || echo "0")�[0m
 �[36;1mSIZE_MB=$(echo "scale=2; $SIZE / 1048576" | bc)�[0m
 �[36;1m�[0m
 �[36;1mecho "## Offline Profile Binary Size" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "Features: \`cqrs,di,resilience,security\`" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "**Size: ${SIZE_MB}MB** (limit: 5.0MB)" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1mif (( $(echo "$SIZE_MB > 5.0" | bc -l) )); then�[0m
 �[36;1m  echo "::error::Offline binary ${SIZE_MB}MB exceeds 5.0MB"�[0m

GitHub Actions: Offline Quality Gates / Binary Size (offline): docs: point this repo at the published agent rules

Conclusion: failure

View job details

##[group]Run cargo build --release -p allframe-core \
 �[36;1mcargo build --release -p allframe-core \�[0m
 �[36;1m  --no-default-features --features "cqrs,di,resilience,security"�[0m
 �[36;1m�[0m
 �[36;1mSIZE=$(stat -c%s "target/release/liballframe_core.rlib" 2>/dev/null || echo "0")�[0m
 �[36;1mSIZE_MB=$(echo "scale=2; $SIZE / 1048576" | bc)�[0m
 �[36;1m�[0m
 �[36;1mecho "## Offline Profile Binary Size" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "Features: \`cqrs,di,resilience,security\`" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1mecho "**Size: ${SIZE_MB}MB** (limit: 5.0MB)" >> $GITHUB_STEP_SUMMARY�[0m
 �[36;1m�[0m
 �[36;1mif (( $(echo "$SIZE_MB > 5.0" | bc -l) )); then�[0m
 �[36;1m  echo "::error::Offline binary ${SIZE_MB}MB exceeds 5.0MB"�[0m
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: all-source-os/all-frame

Timestamp: 2026-09-21T12:22:53.062Z
Learning: A PR therefore cannot merge until its branch is a **single commit**.
Learnt from: CR
Repo: all-source-os/all-frame

Timestamp: 2026-09-21T12:22:53.062Z
Learning: One PR = one commit, merged by rebase.
Learnt from: CR
Repo: all-source-os/all-frame

Timestamp: 2026-09-21T12:22:53.062Z
Learning: Pin the lease to the old head you actually reviewed.
🔇 Additional comments (2)
CLAUDE.md (2)

42-42: State the one-commit rule as repository policy.

Line 42 repeats the previous review finding. The listed GitHub settings do not require one commit. Rebase and merge adds each head commit to the base individually, so a multi-commit branch can merge and land multiple commits. Change this sentence to describe the repository policy, not a platform gate. (docs.github.com)

Source: MCP tools


1-41: LGTM!

Also applies to: 45-53


📝 Summary

Summary by CodeRabbit

  • Documentation
    • Added repository guidance covering external rule sources, installation, imports, applicable rules, concurrent-agent workflows, and merge settings.
    • Documented the required reset, verification, and pinned force-with-lease push procedures.

Walkthrough

Changes

Repository Guidance

Layer / File(s) Summary
Guidance and workflow rules
CLAUDE.md
Adds instructions for loading external Claude rules, using optional concurrent-agent rules, enforcing rebase-only merges, collapsing branches to one commit, verifying changes, and pushing with a pinned --force-with-lease.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: documenting this repository's use of the published agent rules.
Description check ✅ Passed The description directly explains the added CLAUDE.md, the referenced rule set, applicable rules, and the single-commit workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

A rabbit reads the rules at dawn
Clear branch paths guide hops along
One commit rests beneath the moon
A lease-locked push arrives in tune
Claude’s careful guide is drawn

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

@mergestorm-vortex mergestorm-vortex Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review progress ██████████ 1/1 files

Comment — found 1 issue(s) at d1c3dc2.

Actionable comment posted: 1

🤖 Prompt for AI agents
Verify each finding against current code. Fix only still-valid concrete bugs, skip the
rest with a brief reason, keep changes minimal, and validate. Skip Decision required,
policy forks, and "consider X" alternatives. Do not add new features, refactors, or
architecture beyond the fix; prefer the smallest diff.

Findings to address:
1. In `@CLAUDE.md` (line 42, Important):
   `A PR therefore cannot merge until its branch is a **single commit**.`
   This does not follow from `allow_rebase_merge=true` / `allow_squash_merge=false` / `allow_merge_commit=false`: GitHub's "Rebase and merge" replays every commit of the branch onto the base individually, so a multi-commit PR still merges — it just lands N commits on the base branch. Nothing in those settings (or in `delete_branch_on_merge`) rejects a branch with more than one commit.
   
   The real consequence is that leaving several commits means several commits land on `main`, which is what `git-discipline`'s "one PR = one commit" rule exists to prevent. Stating the constraint as repo policy rather than as a platform gate keeps the doc truthful; as written, an agent that trusts the platform to refuse may skip the collapse (or force-push "unblock" a merge that was never blocked), and will stop believing the rest of the doc the first time a multi-commit PR merges fine.

Comment thread CLAUDE.md
Rebase-only — `allow_squash_merge=false`, `allow_merge_commit=false`,
`allow_rebase_merge=true` — with `delete_branch_on_merge=true`.

A PR therefore cannot merge until its branch is a **single commit**. Collapse

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue · Important

Rebase-only does not make a multi-commit PR unmergeable

A PR therefore cannot merge until its branch is a **single commit**.
This does not follow from allow_rebase_merge=true / allow_squash_merge=false / allow_merge_commit=false: GitHub's "Rebase and merge" replays every commit of the branch onto the base individually, so a multi-commit PR still merges — it just lands N commits on the base branch. Nothing in those settings (or in delete_branch_on_merge) rejects a branch with more than one commit.

The real consequence is that leaving several commits means several commits land on main, which is what git-discipline's "one PR = one commit" rule exists to prevent. Stating the constraint as repo policy rather than as a platform gate keeps the doc truthful; as written, an agent that trusts the platform to refuse may skip the collapse (or force-push "unblock" a merge that was never blocked), and will stop believing the rest of the doc the first time a multi-commit PR merges fine.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid concrete bugs, skip the
rest with a brief reason, keep changes minimal, and validate. Skip Decision required,
policy forks, and "consider X" alternatives. Do not add new features, refactors, or
architecture beyond the fix; prefer the smallest diff.

In `@CLAUDE.md` (line 42, Important):
`A PR therefore cannot merge until its branch is a **single commit**.`
This does not follow from `allow_rebase_merge=true` / `allow_squash_merge=false` / `allow_merge_commit=false`: GitHub's "Rebase and merge" replays every commit of the branch onto the base individually, so a multi-commit PR still merges — it just lands N commits on the base branch. Nothing in those settings (or in `delete_branch_on_merge`) rejects a branch with more than one commit.

The real consequence is that leaving several commits means several commits land on `main`, which is what `git-discipline`'s "one PR = one commit" rule exists to prevent. Stating the constraint as repo policy rather than as a platform gate keeps the doc truthful; as written, an agent that trusts the platform to refuse may skip the collapse (or force-push "unblock" a merge that was never blocked), and will stop believing the rest of the doc the first time a multi-commit PR merges fine.

This branch has not been deployed

No deployments
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