Skip to content

feat: added agent skills#34

Merged
mahimairaja merged 1 commit intomainfrom
feat/add-agent-skill
Feb 28, 2026
Merged

feat: added agent skills#34
mahimairaja merged 1 commit intomainfrom
feat/add-agent-skill

Conversation

@mahimairaja
Copy link
Contributor

@mahimairaja mahimairaja commented Feb 28, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added envoic skill for scanning, auditing, and cleaning Python virtual environments, node_modules, and development artifacts to recover disk space.
    • Integrated envoic with Claude, GitHub Copilot, and Cursor platforms.
  • Documentation

    • Added comprehensive usage guides, command references, safety guidelines, and troubleshooting documentation for the envoic skill.
  • Chores

    • Added CI validation workflow for skill metadata and synchronization.

@mahimairaja mahimairaja self-assigned this Feb 28, 2026
@mahimairaja mahimairaja added the enhancement New feature or request label Feb 28, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 28, 2026

📝 Walkthrough

Walkthrough

A 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

Cohort / File(s) Summary
Envoic Skill Core
skills/envoic/SKILL.md, skills/envoic/agents/openai.yaml
Defines the envoic skill documentation and OpenAI agent configuration with default prompt and descriptions for environment scanning and cleanup.
Envoic Reference Documentation
skills/envoic/references/commands.md, skills/envoic/references/safety.md, skills/envoic/references/troubleshooting.md
Provides command reference, safety guidelines with risk tiers, and troubleshooting guidance for envoic usage across platforms.
Envoic Platform Templates
skills/envoic/templates/claude-plugins.yaml, skills/envoic/templates/copilot-instructions.md, skills/envoic/templates/cursor.cursorrules
Template files for syncing envoic instructions to Claude, Copilot, and Cursor platforms with usage examples and safety notes.
Agent & Plugin Configuration
.agents/skills/envoic, .claude-plugin/plugins.yaml
Declares envoic as an available skill and Claude plugin with metadata and source references.
Platform Instructions (Synced)
.cursorrules, .github/copilot-instructions.md
Generated/synced documentation providing quick-reference commands and safety guidelines for Cursor and Copilot integration.
Validation & Sync Infrastructure
.github/workflows/skills.yml, scripts/validate-skill.py, scripts/sync-agent-instructions.py
New CI/CD workflow and scripts for validating skill metadata, layout, and ensuring agent instruction templates remain synchronized across platforms.
Documentation
README.md
Adds "Agent Skill" section documenting envoic installation, usage, and skill template structure.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰✨ A tidy warren needs spring cleaning too!
Envoic hops through folders, removing what's through—
Stale venvs and node_modules in piles,
We scan and we sweep with great care and good smiles!
Safely, of course—always dry-run with care! 🧹

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: added agent skills' clearly summarizes the main change—adding a new agent skill called 'envoic' with all necessary supporting files, documentation, and configurations.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/add-agent-skill

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

❤️ Share

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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 (since list is a Python builtin)
  • def {command}( for other commands

This 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

📥 Commits

Reviewing files that changed from the base of the PR and between f99e966 and 562fb80.

📒 Files selected for processing (16)
  • .agents/skills/envoic
  • .claude-plugin/plugins.yaml
  • .cursorrules
  • .github/copilot-instructions.md
  • .github/workflows/skills.yml
  • README.md
  • scripts/sync-agent-instructions.py
  • scripts/validate-skill.py
  • skills/envoic/SKILL.md
  • skills/envoic/agents/openai.yaml
  • skills/envoic/references/commands.md
  • skills/envoic/references/safety.md
  • skills/envoic/references/troubleshooting.md
  • skills/envoic/templates/claude-plugins.yaml
  • skills/envoic/templates/copilot-instructions.md
  • skills/envoic/templates/cursor.cursorrules

@mahimairaja mahimairaja merged commit f4f1acc into main Feb 28, 2026
2 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant