Skip to content

chore: shell skill#212

Merged
sergiofilhowz merged 2 commits into
mainfrom
feat/shell-skill
Jun 2, 2026
Merged

chore: shell skill#212
sergiofilhowz merged 2 commits into
mainfrom
feat/shell-skill

Conversation

@sergiofilhowz

@sergiofilhowz sergiofilhowz commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

also updated logic to publish skill to not rename from SKILL.md to index.md

Summary by CodeRabbit

  • Documentation
    • Shell documentation reorganized into a single authoritative skill reference and a condensed README, consolidating function guidance, security boundary notes, and troubleshooting
    • Many per-action help pages were consolidated/removed in favor of the unified skill doc
    • Updated license links in several READMEs
  • Bug Fixes / UX
    • Validation messages and guidance now reference the published skill document path used by the runtime tooling

@vercel

vercel Bot commented Jun 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview, Comment Jun 2, 2026 3:49pm

Request Review

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 14 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a1614a75-aa63-46f4-91c9-cb06d334f01c

📥 Commits

Reviewing files that changed from the base of the PR and between 91289f4 and eab6ca0.

📒 Files selected for processing (25)
  • console/README.md
  • database/README.md
  • image-resize/README.md
  • shell/ARCHITECTURE.md
  • shell/README.md
  • shell/config.yaml
  • shell/docs/companions.md
  • shell/docs/intro.md
  • shell/docs/leaves/chmod.md
  • shell/docs/leaves/exec.md
  • shell/docs/leaves/exec_bg.md
  • shell/docs/leaves/grep.md
  • shell/docs/leaves/kill.md
  • shell/docs/leaves/list.md
  • shell/docs/leaves/ls.md
  • shell/docs/leaves/mkdir.md
  • shell/docs/leaves/mv.md
  • shell/docs/leaves/read.md
  • shell/docs/leaves/rm.md
  • shell/docs/leaves/sed.md
  • shell/docs/leaves/stat.md
  • shell/docs/leaves/status.md
  • shell/docs/leaves/write.md
  • shell/docs/quickstart.md
  • shell/skills/SKILL.md
💤 Files with no reviewable changes (18)
  • shell/docs/leaves/read.md
  • shell/docs/companions.md
  • shell/docs/leaves/stat.md
  • shell/docs/leaves/write.md
  • shell/docs/leaves/grep.md
  • shell/docs/leaves/rm.md
  • shell/docs/leaves/kill.md
  • shell/docs/leaves/mv.md
  • shell/docs/quickstart.md
  • shell/docs/leaves/status.md
  • shell/docs/leaves/ls.md
  • shell/docs/leaves/list.md
  • shell/docs/leaves/exec.md
  • shell/docs/leaves/mkdir.md
  • shell/docs/leaves/exec_bg.md
  • shell/docs/intro.md
  • shell/docs/leaves/sed.md
  • shell/docs/leaves/chmod.md
✅ Files skipped from review due to trivial changes (6)
  • database/README.md
  • shell/ARCHITECTURE.md
  • console/README.md
  • image-resize/README.md
  • shell/config.yaml
  • shell/skills/SKILL.md

📝 Walkthrough

Walkthrough

This PR consolidates shell skill docs into shell/skills/SKILL.md, removes per-skill generated markdown, and updates the build payload and bundled-worker validation scripts to prefer skills/SKILL.md with legacy fallbacks; README and config comment edits accompany the change.

Changes

Shell Skills Documentation Restructuring

Layer / File(s) Summary
Build and validation system updates
.github/scripts/build_skills_payload.py, .github/scripts/validate_worker.py
build_skills_payload.py resolves skills/SKILL.md as the top-of-tree candidate (fallbacks: skills/index.md, skill.md), emits a warning when multiple candidates exist, and excludes skills/SKILL.md and skills/index.md from traversal. validate_worker.py now checks root/skills/SKILL.md (fallback to root/skill.md) and reports missing/empty/oversize errors using the resolved path and relative sizing.
Consolidated shell skills documentation
shell/skills/SKILL.md
Adds the authoritative SKILL.md describing shell entry points (shell::*, shell::fs::*), host vs sandbox boundaries, optional target sandbox forwarding, function catalog, job lifecycle semantics, channel-based byte streaming, and operational constraints (absolute paths, no symlink following, atomic writes).
Documentation, README and config edits; removed per-skill docs
shell/skill.md, shell/skills/*, shell/README.md, shell/ARCHITECTURE.md, shell/config.yaml, console/README.md, database/README.md, image-resize/README.md
Removes many per-skill generated markdown files (exec, exec_bg, grep, kill, list, ls, mkdir, mv, read, rm, sed, stat, status, write, chmod), rewrites and tightens shell/README.md, updates ARCHITECTURE and config comments to reference skills/SKILL.md, and adjusts several README license links and wording.
sequenceDiagram
  participant BuildScript as build_skills_payload.py
  participant Resolver as resolve_top_of_tree
  participant ValidateScript as validate_worker.py
  BuildScript->>Resolver: find top-of-tree markdown candidate
  Resolver-->>BuildScript: return skills/SKILL.md or fallback
  BuildScript->>BuildScript: exclude SKILL.md / skills/index.md from traversal
  ValidateScript->>ValidateScript: check root/skills/SKILL.md (fallback to root/skill.md)
  ValidateScript-->>ValidateScript: validate non-empty and size <= 256 KiB
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • iii-hq/workers#127: Earlier changes to validate_worker.py enforcing bundled-worker skill.md contracts; closely related to the validation-path updates in this PR.

Suggested reviewers

  • ytallo

"A rabbit wrote a doc by moonlit code,\
Top-of-tree now carries the load,\
SKILL.md sings where fragments fell,\
Scripts now check the new spell,\
Cheers — a tidy docs abode!"

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'chore: shell skill' is vague and generic. While it mentions 'shell skill', it doesn't convey meaningful information about the substantial refactoring of skill documentation structure, publication logic, or file reorganization that comprises the bulk of the changeset. Consider a more descriptive title such as 'refactor: consolidate shell skill documentation under skills/SKILL.md' to better reflect the primary change—restructuring skill publishing and documentation paths.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/shell-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.

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (2)
.github/scripts/build_skills_payload.py (1)

56-59: ⚡ Quick win

Refine the warning wording for clarity with 3+ candidates.

The warning says "both {label} and {winner_label}" but when all three candidates exist (SKILL.md, index.md, skill.md), multiple warnings are emitted and "both" becomes misleading. Consider rephrasing to avoid implying exactly two files.

💬 Suggested rewording
     winner_label, winner_path = present[0]
     for label, _ in present[1:]:
         print(
-            f"::warning::{worker_root.name}: both {label} and "
-            f"{winner_label} present; using {winner_label} as the top-of-tree."
+            f"::warning::{worker_root.name}: {label} also present, "
+            f"but using {winner_label} as the top-of-tree."
         )
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/scripts/build_skills_payload.py around lines 56 - 59, The warning
message uses "both" which is misleading when more than two candidate files
exist; update the print call that references worker_root.name, label and
winner_label to use wording that doesn't imply exactly two items (e.g.,
"multiple candidates found; using {winner_label} as the top-of-tree.",
"conflicting candidates found; prefer {winner_label} as top-of-tree.", or "found
{label} and other candidates; selecting {winner_label} as top-of-tree.").
Replace the current f-string in the print(...) call with one of these rephrased
variants (or a similar neutral phrase) so the log is correct when SKILL.md,
index.md, and skill.md all exist.
.github/scripts/validate_worker.py (1)

162-166: ⚡ Quick win

Clarify error message to reflect that legacy path was also checked.

The error message hardcodes skills/SKILL.md but the validation logic also checks skill.md as a fallback (lines 160-161). When neither file exists, the message only mentions the preferred path. Consider updating to match the pattern used in lines 169 and 174, which dynamically show whichever path was actually used, or explicitly mention both paths were checked.

📝 Suggested clarification
         if not skill_md.exists():
             hard(
-                f"{worker}/skills/SKILL.md is missing — bundled workers must ship one "
+                f"{worker}/{skill_md.relative_to(root).as_posix()} is missing — bundled workers must ship one "
                 f"(see binary-worker.md)"
             )

Or be explicit about both paths:

         if not skill_md.exists():
             hard(
-                f"{worker}/skills/SKILL.md is missing — bundled workers must ship one "
+                f"{worker}/skills/SKILL.md (or legacy {worker}/skill.md) is missing — bundled workers must ship one "
                 f"(see binary-worker.md)"
             )
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/scripts/validate_worker.py around lines 162 - 166, The error message
in the hard(...) call always mentions "skills/SKILL.md" but the validation also
checks the legacy "skill.md" fallback (the existence check stored in skill_md
and the fallback variable), so update the hard(...) message to reflect both
possibilities: either explicitly say both "skills/SKILL.md" and "skill.md" were
checked, or interpolate the actual path variable used in the existence check
(e.g., use the same path variable passed into skill_md.exists()). Modify the
hard(...) call accordingly so the message matches the validation logic.
🤖 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.

Nitpick comments:
In @.github/scripts/build_skills_payload.py:
- Around line 56-59: The warning message uses "both" which is misleading when
more than two candidate files exist; update the print call that references
worker_root.name, label and winner_label to use wording that doesn't imply
exactly two items (e.g., "multiple candidates found; using {winner_label} as the
top-of-tree.", "conflicting candidates found; prefer {winner_label} as
top-of-tree.", or "found {label} and other candidates; selecting {winner_label}
as top-of-tree."). Replace the current f-string in the print(...) call with one
of these rephrased variants (or a similar neutral phrase) so the log is correct
when SKILL.md, index.md, and skill.md all exist.

In @.github/scripts/validate_worker.py:
- Around line 162-166: The error message in the hard(...) call always mentions
"skills/SKILL.md" but the validation also checks the legacy "skill.md" fallback
(the existence check stored in skill_md and the fallback variable), so update
the hard(...) message to reflect both possibilities: either explicitly say both
"skills/SKILL.md" and "skill.md" were checked, or interpolate the actual path
variable used in the existence check (e.g., use the same path variable passed
into skill_md.exists()). Modify the hard(...) call accordingly so the message
matches the validation logic.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e6bd1543-a2e2-4ce5-83af-b8b61a74c440

📥 Commits

Reviewing files that changed from the base of the PR and between 64ee045 and 91289f4.

📒 Files selected for processing (19)
  • .github/scripts/build_skills_payload.py
  • .github/scripts/validate_worker.py
  • shell/skill.md
  • shell/skills/SKILL.md
  • shell/skills/chmod.md
  • shell/skills/exec.md
  • shell/skills/exec_bg.md
  • shell/skills/grep.md
  • shell/skills/kill.md
  • shell/skills/list.md
  • shell/skills/ls.md
  • shell/skills/mkdir.md
  • shell/skills/mv.md
  • shell/skills/read.md
  • shell/skills/rm.md
  • shell/skills/sed.md
  • shell/skills/stat.md
  • shell/skills/status.md
  • shell/skills/write.md
💤 Files with no reviewable changes (16)
  • shell/skills/mkdir.md
  • shell/skill.md
  • shell/skills/chmod.md
  • shell/skills/list.md
  • shell/skills/exec_bg.md
  • shell/skills/read.md
  • shell/skills/mv.md
  • shell/skills/kill.md
  • shell/skills/exec.md
  • shell/skills/stat.md
  • shell/skills/write.md
  • shell/skills/status.md
  • shell/skills/grep.md
  • shell/skills/sed.md
  • shell/skills/ls.md
  • shell/skills/rm.md

@sergiofilhowz sergiofilhowz merged commit 4eeb7c5 into main Jun 2, 2026
18 of 19 checks passed
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.

2 participants