feat(skills): add gentle-ai-collab-perfect workflow skill for external contributors#1171
Conversation
Captures the issue-first, contributor-vs-maintainer split, chained-PR strategy and PR-body honesty rules that the rest of the repo's documentation implies but does not centralise. Verified empirically against pr-check.yml gates and the maintainer-applied vs contributor- applicable permissions list (labels, fork approval, merge, etc.). Use the skill whenever an external collaborator needs help opening issues, drafting PR bodies, splitting chained/stacked PRs, or auditing a PR before requesting review. The skill deliberately avoids assuming a fork — contributors may push to a personal working repo, their fork, or anywhere else with write access. References the existing branch-pr, chained-pr, issue-creation, cognitive-doc-design, comment-writer and work-unit-commits skills rather than duplicating their mechanics.
📝 WalkthroughWalkthroughChangesAdds the External contributor workflow
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md`:
- Around line 178-184: Update the “Stacked to main” guidance to state that the
size:exception threshold uses the pull request’s total additions plus deletions,
matching the enforced cognitive-load check, rather than only slice-specific
additions.
- Around line 107-110: Update the fenced code examples in SKILL.md, including
the blocks around the git commands and the referenced ranges, to have blank
lines before and after each fence and an explicit language tag such as bash or
markdown. Preserve the example contents while satisfying MD031 and MD040.
- Around line 149-151: Update the checklist entry referencing “pending Alan” to
use the role-based wording “pending maintainer” or an explicitly marked generic
placeholder, without hard-coding a specific maintainer identity.
- Around line 40-42: Correct the issue-template reference in the documentation
table by changing the path from `.github/ISSED_TEMPLATE/config.yml` to
`.github/ISSUE_TEMPLATE/config.yml`, while leaving the routing-rule description
unchanged.
- Around line 202-209: Update the permission and commit-history protocol around
the dry-verification guidance to replace mutation attempts with read-only
permission/state checks using gh. When the check shows maintainer-only access is
required, route the requested mutation directly to the maintainer instead of
attempting it; apply the same correction to the guidance referenced around lines
267–279.
- Around line 40-48: Remove the directive in the skills reference table that
instructs the assistant to re-read peer skills’ SKILL.md files, including the
corresponding repeated section around the second referenced location. Keep the
listed skill references and their descriptions intact, but replace or remove the
instruction so peer prompt contents remain opaque and are accessed only through
approved interfaces.
- Around line 120-125: Update the PR creation instructions for the “## 📂
Changes” table to require a per-file source such as `gh pr diff --stat` or the
PR files API, rather than `gh pr view --json additions,deletions,changedFiles`,
while preserving the requirement to include line counts for each changed file.
🪄 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: Repository UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: eccb26b6-796b-46de-886c-2ec1e2f4c432
📒 Files selected for processing (1)
skills/gentle-ai-collab-perfect/SKILL.md
| | `.github/workflows/pr-check.yml` | Automated gates: `Check Issue Reference`, `Check Issue Has status:approved`, `Check PR Has type:* Label`, `Check PR Cognitive Load` | | ||
| | `.github/ISSED_TEMPLATE/config.yml` | Issue-template routing rules; do not bypass | | ||
| | `skills/branch-pr/SKILL.md` | Branch + PR creation mechanics | |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Fix the issue-template path typo.
Line 41 uses .github/ISSED_TEMPLATE/config.yml, but the repository path is .github/ISSUE_TEMPLATE/config.yml. Following the current instruction makes the assistant consult a nonexistent source of truth.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~40-~40: The official name of this software platform is spelled with a capital “H”.
Context: ...ture request structure + same gates | | .github/workflows/pr-check.yml | Automated gat...
(GITHUB)
[uncategorized] ~41-~41: The official name of this software platform is spelled with a capital “H”.
Context: ...* Label, Check PR Cognitive Load| |.github/ISSED_TEMPLATE/config.yml` | Issue-temp...
(GITHUB)
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 40 - 42, Correct the
issue-template reference in the documentation table by changing the path from
`.github/ISSED_TEMPLATE/config.yml` to `.github/ISSUE_TEMPLATE/config.yml`,
while leaving the routing-rule description unchanged.
| | `.github/workflows/pr-check.yml` | Automated gates: `Check Issue Reference`, `Check Issue Has status:approved`, `Check PR Has type:* Label`, `Check PR Cognitive Load` | | ||
| | `.github/ISSED_TEMPLATE/config.yml` | Issue-template routing rules; do not bypass | | ||
| | `skills/branch-pr/SKILL.md` | Branch + PR creation mechanics | | ||
| | `skills/chained-pr/SKILL.md` | Chained vs Stacked PR strategy mechanics | | ||
| | `skills/issue-creation/SKILL.md` | Issue creation mechanics | | ||
| | `skills/cognitive-doc-design/SKILL.md` | Doc-writing principles | | ||
| | `skills/comment-writer/SKILL.md` | Tone for comment replies | | ||
|
|
||
| These files evolve. Re-read them at the start of every contribution. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
Do not instruct the assistant to read peer skills’ SKILL.md files.
These lines direct the assistant to enumerate and read other skills, exposing peer prompt instructions and capabilities to the current skill. Keep cross-skill references opaque or invoke approved interfaces instead of reading the skills directory directly.
Also applies to: 294-299
🧰 Tools
🪛 LanguageTool
[uncategorized] ~40-~40: The official name of this software platform is spelled with a capital “H”.
Context: ...ture request structure + same gates | | .github/workflows/pr-check.yml | Automated gat...
(GITHUB)
[uncategorized] ~41-~41: The official name of this software platform is spelled with a capital “H”.
Context: ...* Label, Check PR Cognitive Load| |.github/ISSED_TEMPLATE/config.yml` | Issue-temp...
(GITHUB)
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 40 - 48, Remove the
directive in the skills reference table that instructs the assistant to re-read
peer skills’ SKILL.md files, including the corresponding repeated section around
the second referenced location. Keep the listed skill references and their
descriptions intact, but replace or remove the instruction so peer prompt
contents remain opaque and are accessed only through approved interfaces.
Source: Linters/SAST tools
| ``` | ||
| git checkout main && git pull | ||
| git checkout -b <type>/<short-description> | ||
| ``` |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the Markdown fence warnings.
Static analysis reports MD031 and MD040 for these examples. Add blank lines around fenced blocks and specify languages such as bash and markdown.
Also applies to: 140-152, 157-159, 205-208, 212-217, 220-222, 225-228
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 107-107: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 110-110: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 107 - 110, Update the
fenced code examples in SKILL.md, including the blocks around the git commands
and the referenced ranges, to have blank lines before and after each fence and
an explicit language tag such as bash or markdown. Preserve the example contents
while satisfying MD031 and MD040.
Source: Linters/SAST tools
| 4. **Open the PR with `gh pr create`.** Body matches `.github/PULL_REQUEST_TEMPLATE.md`: | ||
| - `## 🔗 Linked Issue` → `Closes #N` (or `Fixes`/`Resolves`). Never `Refs`. | ||
| - `## 🏷️ PR Type` → exactly one `[x] type:*` matching the actual type | ||
| - `## 📝 Summary` → one paragraph: what + why | ||
| - `## 📂 Changes` → file table with line counts from `gh pr view --json additions,deletions,changedFiles` | ||
| - `## 🧪 Test Plan` → every `go test` command actually run + result, **including pre-existing failures with verification method** |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Locate the referenced skill file and inspect the surrounding lines.
if [ -f "skills/gentle-ai-collab-perfect/SKILL.md" ]; then
nl -ba skills/gentle-ai-collab-perfect/SKILL.md | sed -n '110,135p'
else
echo "Missing: skills/gentle-ai-collab-perfect/SKILL.md"
fi
# Check for any other guidance that mentions PR change tables or line counts.
rg -n --glob 'AGENTS.md' --glob 'skills/**/*.md' 'gh pr view --json additions,deletions,changedFiles|gh pr diff --stat|PR Type|Changes|line counts|per-file' .Repository: Gentleman-Programming/gentle-ai
Length of output: 209
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
p = Path("skills/gentle-ai-collab-perfect/SKILL.md")
if p.exists():
for i, line in enumerate(p.read_text().splitlines(), 1):
if 110 <= i <= 135:
print(f"{i:4d}: {line}")
else:
print("Missing: skills/gentle-ai-collab-perfect/SKILL.md")
PY
printf '\n--- SEARCH ---\n'
rg -n --glob 'AGENTS.md' --glob 'skills/**/*.md' 'gh pr view --json additions,deletions,changedFiles|gh pr diff --stat|PR Type|Changes|line counts|per-file' .Repository: Gentleman-Programming/gentle-ai
Length of output: 2973
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
for path, start, end in [
("skills/gentle-ai-collab-perfect/SKILL.md", 235, 250),
(".github/PULL_REQUEST_TEMPLATE.md", 1, 220),
("skills/branch-pr/SKILL.md", 96, 110),
]:
p = Path(path)
print(f"\n=== {path} ===")
if not p.exists():
print("Missing")
continue
lines = p.read_text().splitlines()
for i in range(start, min(end, len(lines)) + 1):
print(f"{i:4d}: {lines[i-1]}")
PYRepository: Gentleman-Programming/gentle-ai
Length of output: 4892
Use a per-file source for the ## 📂 Changes table gh pr view --json additions,deletions,changedFiles only gives aggregate totals plus a changed-file count, so it can’t populate line counts per file. Use gh pr diff --stat or the PR files API here.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~120-~120: The official name of this software platform is spelled with a capital “H”.
Context: ... PR with gh pr create.** Body matches .github/PULL_REQUEST_TEMPLATE.md: - `## 🔗 ...
(GITHUB)
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 120 - 125, Update the
PR creation instructions for the “## 📂 Changes” table to require a per-file
source such as `gh pr diff --stat` or the PR files API, rather than `gh pr view
--json additions,deletions,changedFiles`, while preserving the requirement to
include line counts for each changed file.
| - [ ] `type:feature` label applied to this PR — pending Alan | ||
| - [ ] `size:exception` consideration — see rationale below | ||
| - [ ] Fork workflow approval — 4 runs in `action_required` awaiting Alan |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Avoid hard-coding a maintainer identity.
pending Alan becomes misleading when another maintainer handles the PR or another contributor uses this skill. Use pending maintainer or a clearly marked placeholder.
🧰 Tools
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 149 - 151, Update the
checklist entry referencing “pending Alan” to use the role-based wording
“pending maintainer” or an explicitly marked generic placeholder, without
hard-coding a specific maintainer identity.
| ### Stacked to main | ||
|
|
||
| Use when **each slice can land independently**. Branches are independent stacks that each target `main`. The diff "pollutes" with previous-slice commits because GitHub does not allow cross-fork base refs (slice branches live only in the contributor's working repo). | ||
|
|
||
| - Pros: simple, each PR is its own atomic change. | ||
| - Cons: large chained diffs; reviewers must mentally isolate slice-specific changes; needs `size:exception` for anything past 400 lines of slice-specific additions. | ||
|
|
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Count the same units as the enforced cognitive-load check.
The repository rule counts additions + deletions for the PR, but this section says “slice-specific additions.” That can undercount the enforced total and cause contributors to miss the required size:exception request.
🧰 Tools
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 178 - 184, Update the
“Stacked to main” guidance to state that the size:exception threshold uses the
pull request’s total additions plus deletions, matching the enforced
cognitive-load check, rather than only slice-specific additions.
| Before recommending any action that touches permissions, label state, or commit history: | ||
|
|
||
| 1. **Dry-verify with `gh` first.** Attempt the action and surface the error if it fails. Example: | ||
| ``` | ||
| $ gh pr edit 1132 --add-label type:feature | ||
| → GraphQL: ardelperal does not have the correct permissions to execute `AddLabelsToLabelable` | ||
| ``` | ||
| That output IS your answer. Don't try to work around it. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Resolve the contradictory permission guidance.
This protocol says to attempt a permissioned action first, while the surrounding guidance says contributors must not attempt maintainer-only actions. Replace “Attempt the action” with a read-only permission/state check and route the mutation directly to the maintainer.
Also applies to: 267-279
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 205-205: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 205-205: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 208-208: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
🪛 SkillSpector (2.3.7)
[warning] 42: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 43: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 44: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 45: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 46: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 294: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 295: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 296: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 297: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 298: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
[warning] 299: [AS3] Skill Enumeration: Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Remediation: Remove all code or instructions that list or read other skills' files or directories. Skills should operate independently; cross-skill access is a privilege escalation.
(Agent Snooping (AS3))
🤖 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 `@skills/gentle-ai-collab-perfect/SKILL.md` around lines 202 - 209, Update the
permission and commit-history protocol around the dry-verification guidance to
replace mutation attempts with read-only permission/state checks using gh. When
the check shows maintainer-only access is required, route the requested mutation
directly to the maintainer instead of attempting it; apply the same correction
to the guidance referenced around lines 267–279.
🔗 Linked Issue
Closes #1170
🏷️ PR Type
type:feature— New feature (non-breaking change that adds functionality)type:bug— Bug fixtype:docs— Documentation onlytype:refactor— Code refactoringtype:chore— Build, CI, or toolingtype:breaking-change— Breaking change📝 Summary
Adds a new AI-collaborator workflow skill at
skills/gentle-ai-collab-perfect/SKILL.md. The skill codifies, in one triggerable reference, the rules thatCONTRIBUTING.md,.github/PULL_REQUEST_TEMPLATE.md,.github/ISSUE_TEMPLATE/*.yml, and.github/workflows/pr-check.ymlimply but do not centralise:## Pending maintainer actionsidiom, pre-existing-failure disclosure, line-count honesty.gh pr view --json ...cross-checks) to run before recommending any action.Content-only change; no executable code, no API changes, no runtime risk.
📂 Changes
skills/gentle-ai-collab-perfect/SKILL.mdgentle-ai-branch-pr,gentle-ai-chained-pr,gentle-ai-issue-creation,gentle-ai-cognitive-doc-design,gentle-ai-comment-writer,gentle-ai-work-unit-commitsrather than duplicating themPR diff totals (per GitHub API): +301 / -0 across 1 new file.
🧪 Test Plan
CONTRIBUTING.md,.github/PULL_REQUEST_TEMPLATE.md,.github/ISSUE_TEMPLATE/*.yml,pr-check.yml🤖 Automated Checks
Closes #1170— pattern + repo match acceptedstatus:approvedgh issue create --label enhancementflag, my mistake). When Alan appliesstatus:approvedto #1170, this check clears.type:*Label✅ Contributor Checklist
status:approved(feat(skills): add gentle-ai-collab-perfect workflow skill for external contributors #1170) — note: I overrode the feature_request template'sstatus:needs-reviewauto-label by passing--label enhancementtogh issue create; feat(skills): add gentle-ai-collab-perfect workflow skill for external contributors #1170 is currently labelless. Once Alan addsstatus:approved, the gate clears.type:*label will be applied — pending Alan (this PR is content-only)Co-Authored-BytrailersCloses #1170Pending maintainer actions (gentle-ai repo convention)
The following are maintainer-applied per
pr-check.ymland CONTRIBUTING.md in this repo — not within contributor scope:type:featurelabel applied to this PR — pending Alanstatus:approvedlabel applied to issue feat(skills): add gentle-ai-collab-perfect workflow skill for external contributors #1170 — pending Alan (currently labelless due to mygh issue create --label enhancementmistake; the fix is for Alan to apply bothenhancementandstatus:approved)enhancementlabel applied to issue feat(skills): add gentle-ai-collab-perfect workflow skill for external contributors #1170 — pending Alanaction_requiredruns)💬 Notes for Reviewers
The skill deliberately avoids assuming a fork — it applies whether the contributor pushes to a personal working repo, their fork, or anywhere else with write access. The wording is repo-neutral: "the contributor's working branch", "wherever they push from", not "your fork".
The skill cross-references the existing
gentle-ai-branch-pr,gentle-ai-chained-pr,gentle-ai-issue-creation,gentle-ai-cognitive-doc-design,gentle-ai-comment-writer, andgentle-ai-work-unit-commitsskills. It is meant to be a higher-level workflow reference, not a duplicate of those mechanics.Reviewers may also want to skim the linked issue #1170 (which describes the problem this skill solves), since the issue body explains the maintainer-vs-contributor scope split and the PR-body honesty pattern from the angle of "external collaborators ask these questions repeatedly".
I take the blame for one issue on the linked issue: when I created #1170 with
gh issue create --label enhancement, this overrode thefeature_request.ymltemplate's auto-applied labels (enhancement,status:needs-review). So #1170 currently has no labels. The fix is: Alan addsenhancementandstatus:approved, and then this PR's gates clear.This PR completes
Summary by CodeRabbit