Conversation
📝 WalkthroughWalkthroughA new Agent Skill "envoic" is introduced for scanning and cleaning Python virtual environments, node_modules, and development artifacts. Includes skill documentation, agent configurations, validation scripts, templates for multiple platforms, and CI/CD workflow integration. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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: 2
🧹 Nitpick comments (3)
scripts/sync-agent-instructions.py (1)
44-44: Specify encoding for consistent cross-platform behavior.
read_text()without an explicit encoding uses the system default, which may vary across platforms. For consistent behavior, especially with UTF-8 content, specify the encoding explicitly.📝 Suggested fix
- if src.read_text() != dst.read_text(): + if src.read_text(encoding="utf-8") != dst.read_text(encoding="utf-8"):🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@scripts/sync-agent-instructions.py` at line 44, The comparison using src.read_text() and dst.read_text() should specify an explicit encoding to avoid platform-dependent defaults; update both calls (the read_text() invocations in the equality check) to use encoding='utf-8' so the line becomes if src.read_text(encoding='utf-8') != dst.read_text(encoding='utf-8'): to ensure consistent cross-platform behavior.skills/envoic/references/troubleshooting.md (1)
13-15: Consider making the permission error guidance more actionable.The current text describes tool behavior rather than providing user guidance. Consider rephrasing to help users resolve the issue.
📝 Suggested improvement
## Permission Errors -- Skip inaccessible paths and report what could not be scanned or deleted. +- Run with elevated permissions if needed, or exclude inaccessible paths. +- The tool will report paths it could not access; review and fix permissions as needed.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@skills/envoic/references/troubleshooting.md` around lines 13 - 15, Update the "## Permission Errors" section to be actionable: replace the current sentence "- Skip inaccessible paths and report what could not be scanned or deleted." with guidance that tells users how to resolve permission issues—e.g., explain how to check which paths were reported as inaccessible, suggest running the tool with elevated privileges (sudo / Administrator), verify and change file ownership or permissions (chown/chmod or OS GUI), and recommend retrying the operation or providing the reported paths to support if problems persist; reference the header "## Permission Errors" and the bullet about skipping inaccessible paths when making these changes.scripts/validate-skill.py (1)
56-66: Command detection logic is fragile and may produce false positives/negatives.The marker detection assumes specific code patterns:
@app.command(name="list")for the "list" command (sincelistis a Python builtin)def {command}(for other commandsThis approach may break if:
- The function uses a decorator for non-list commands (e.g.,
@app.command(name="scan"))- The "list" command handler is named differently than expected
Consider using a more robust pattern that handles both styles uniformly.
♻️ Suggested improvement for more robust detection
for command in EXPECTED_COMMANDS: - py_marker = ( - f'@app.command(name="{command}")' - if command == "list" - else f"def {command}(" - ) + # Check for either decorator-based or function-name-based command registration + py_decorator = f'@app.command(name="{command}")' + py_func = f"def {command}(" + if py_decorator not in py_text and py_func not in py_text: + fail(f"expected Python command '{command}' not found in {PYTHON_CLI}") js_marker = f'.command("{command}")' - if py_marker not in py_text: - fail(f"expected Python command '{command}' not found in {PYTHON_CLI}") if js_marker not in js_text: fail(f"expected JS command '{command}' not found in {JS_CLI}")
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/skills.yml:
- Line 10: The workflow trigger currently only includes the recursive path
pattern '.agents/skills/envoic/**' which will miss changes when
'.agents/skills/envoic' is a file or symlink; update the workflow's on.push and
on.pull_request paths filters to include the direct path '.agents/skills/envoic'
in addition to the recursive pattern so edits to the file/symlink also trigger
the workflow (look for the paths list in the skills.yml workflow and add the
literal '.agents/skills/envoic' entry alongside '.agents/skills/envoic/**').
In `@README.md`:
- Around line 54-57: Replace the indented code block around the marketplace
command with a fenced code block to satisfy markdownlint MD046: locate the line
containing the command "/plugin marketplace add mahimailabs/envoic" in README.md
and surround it with triple-backtick fences before and after the command so the
command is rendered as a fenced code block.
---
Nitpick comments:
In `@scripts/sync-agent-instructions.py`:
- Line 44: The comparison using src.read_text() and dst.read_text() should
specify an explicit encoding to avoid platform-dependent defaults; update both
calls (the read_text() invocations in the equality check) to use
encoding='utf-8' so the line becomes if src.read_text(encoding='utf-8') !=
dst.read_text(encoding='utf-8'): to ensure consistent cross-platform behavior.
In `@skills/envoic/references/troubleshooting.md`:
- Around line 13-15: Update the "## Permission Errors" section to be actionable:
replace the current sentence "- Skip inaccessible paths and report what could
not be scanned or deleted." with guidance that tells users how to resolve
permission issues—e.g., explain how to check which paths were reported as
inaccessible, suggest running the tool with elevated privileges (sudo /
Administrator), verify and change file ownership or permissions (chown/chmod or
OS GUI), and recommend retrying the operation or providing the reported paths to
support if problems persist; reference the header "## Permission Errors" and the
bullet about skipping inaccessible paths when making these changes.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (16)
.agents/skills/envoic.claude-plugin/plugins.yaml.cursorrules.github/copilot-instructions.md.github/workflows/skills.ymlREADME.mdscripts/sync-agent-instructions.pyscripts/validate-skill.pyskills/envoic/SKILL.mdskills/envoic/agents/openai.yamlskills/envoic/references/commands.mdskills/envoic/references/safety.mdskills/envoic/references/troubleshooting.mdskills/envoic/templates/claude-plugins.yamlskills/envoic/templates/copilot-instructions.mdskills/envoic/templates/cursor.cursorrules
Summary by CodeRabbit
Release Notes
New Features
Documentation
Chores