chore: consolidate agent skills from cloud into shared package#61
Conversation
Move 16 generic, reusable skills out of the AgentWorkforce/cloud repo (where they were duplicated across .claude/skills, .agents/skills, .factory/skills, and skills/) into this shared prpm package so there is a single source of truth installed via prpm. - Add 11 new skills to prpm.json (auto-merge-and-composition-safety, autonomous-run-contract, creating-claude-rules-skill, dormant-flip-and-rollback, instrument-dont-guess, swarm-blockers-and-gate-scoreboard, tiered-acceptance, building-nango-functions-locally, running-headless-orchestrator, trigger-autocomplete-catalog, shadcn). packages 15 -> 26. - The 5 skills already published here (choosing-swarm-patterns, orchestrating-agent-relay, relay-80-100-workflow, review-fix-signoff-loop, writing-agent-relay-workflows) keep their existing canonical versions; the cloud copies were older and were discarded. Cloud keeps only its cloud-specific skill (proactive-e2e-debug) and consumes the rest via prpm. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 14 minutes and 13 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThis PR adds 11 new skill documentation packages, updates the manifest and README to publish them, and provides extensive implementation and operational guidance for autonomous runs, diagnostics, trigger catalogs, Nango functions, Claude rules, and shadcn UI. ChangesSkills Knowledge Base Expansion
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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.
Code Review
This pull request registers and adds several new Claude skills under the skills/ directory, covering topics such as auto-merge safety, autonomous run contracts, local Nango function building, headless orchestration, and shadcn management. A high-severity issue was identified regarding a name and path mismatch for the creating-claude-rules skill in prpm.json compared to its actual file location and frontmatter name, which has been addressed with a code suggestion.
| { | ||
| "name": "creating-claude-rules-skill", | ||
| "version": "1.0.0", | ||
| "description": "Use when creating or fixing .claude/rules/ files - provides correct paths frontmatter (not globs), glob patterns, and avoids Cursor-specific fields like alwaysApply", | ||
| "format": "claude", | ||
| "subtype": "skill", | ||
| "files": [ | ||
| "skills/creating-claude-rules-skill/SKILL.md" | ||
| ] | ||
| }, |
There was a problem hiding this comment.
There is a name and path mismatch for the creating-claude-rules skill. The actual file added in this PR is located at skills/creating-claude-rules/SKILL.md and its frontmatter name is creating-claude-rules. However, in prpm.json it is registered as creating-claude-rules-skill with the path skills/creating-claude-rules-skill/SKILL.md. This mismatch will cause installation or loading failures. Please update the name and path to match the actual file.
| { | |
| "name": "creating-claude-rules-skill", | |
| "version": "1.0.0", | |
| "description": "Use when creating or fixing .claude/rules/ files - provides correct paths frontmatter (not globs), glob patterns, and avoids Cursor-specific fields like alwaysApply", | |
| "format": "claude", | |
| "subtype": "skill", | |
| "files": [ | |
| "skills/creating-claude-rules-skill/SKILL.md" | |
| ] | |
| }, | |
| { | |
| "name": "creating-claude-rules", | |
| "version": "1.0.0", | |
| "description": "Use when creating or fixing .claude/rules/ files - provides correct paths frontmatter (not globs), glob patterns, and avoids Cursor-specific fields like alwaysApply", | |
| "format": "claude", | |
| "subtype": "skill", | |
| "files": [ | |
| "skills/creating-claude-rules/SKILL.md" | |
| ] | |
| }, |
| @@ -0,0 +1,121 @@ | |||
| --- | |||
| name: creating-claude-rules | |||
There was a problem hiding this comment.
🟡 Package name mismatch between prpm.json and SKILL.md frontmatter for creating-claude-rules-skill
The prpm.json entry uses name: "creating-claude-rules-skill" (prpm.json:308) and the directory is skills/creating-claude-rules-skill/, but the SKILL.md frontmatter declares name: creating-claude-rules (without -skill). Every other skill in this repository has the prpm.json package name match the SKILL.md frontmatter name exactly (verified across all 20+ packages). This inconsistency could cause package resolution or activation failures if tooling uses the frontmatter name as the canonical identifier.
| name: creating-claude-rules | |
| name: creating-claude-rules-skill | |
Was this helpful? React with 👍 or 👎 to provide feedback.
| 2. **For spawning Codex agents**: Valid Anthropic credentials | ||
| - Set `ANTHROPIC_API_KEY` or authenticate via `Codex auth login` |
There was a problem hiding this comment.
🟡 Wrong credentials documented for spawning Codex agents — says Anthropic but should be OpenAI
The prerequisites section states Codex agents need "Valid Anthropic credentials" and suggests ANTHROPIC_API_KEY or Codex auth login. This appears to be a copy-paste error from skills/orchestrating-agent-relay/SKILL.md which correctly says ANTHROPIC_API_KEY or claude auth login for Claude agents. Codex is OpenAI's CLI agent tool and would need OpenAI credentials (e.g. OPENAI_API_KEY), not Anthropic. The Codex auth login command also doesn't follow any documented pattern — the Claude CLI uses claude auth login.
Prompt for agents
The prerequisites in skills/running-headless-orchestrator/SKILL.md lines 301-302 incorrectly state that spawning Codex agents requires Anthropic credentials. This appears to be a copy-paste from the orchestrating-agent-relay skill (which correctly pairs ANTHROPIC_API_KEY with claude auth login for Claude agents). The fix should update the credential type to match what the Codex harness actually requires (likely OPENAI_API_KEY or the appropriate auth command for the Codex CLI). Check what credentials the agent-relay spawn command actually needs when using the Codex harness and update accordingly.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Reviewed and fixed the PR locally. Changes made:
Validation run:
|
|
✅ pr-reviewer applied fixes — committed and pushed Reviewed and fixed the PR locally. Changes made:
Validation run:
|
There was a problem hiding this comment.
✅ pr-reviewer applied fixes — committed and pushed c86ee95 to this PR. The notes below describe what changed.
Reviewed and fixed the PR locally.
Changes made:
- Aligned
creating-claude-rules-skillfrontmatter name withprpm.json. - Shortened the Nango skill description in prpm.json and SKILL.md to stay within manifest limits.
- Updated README.md so the package version, skill table, and slash-command table match the expanded manifest.
Validation run:
jq empty prpm.json- manifest file existence + package/frontmatter name consistency check
- manifest description length check
skills/shadcn/agents/openai.ymlYAML parseskills/shadcn/evals/evals.jsonJSON parsenpx prpm publish --list
npx prpm publish --dry-run could not run because the CLI requires login even for dry-run.
There was a problem hiding this comment.
Actionable comments posted: 9
🧹 Nitpick comments (1)
skills/shadcn/rules/styling.md (1)
124-124: ⚡ Quick winClarify the icon-sizing exception to avoid conflicting guidance with
rules/icons.md.This line currently implies
size-*is preferred for icons everywhere, butskills/shadcn/rules/icons.mdprohibits sizing classes on icons inside shadcn components. Add an explicit exception here.Suggested wording tweak
-`size-10` not `w-10 h-10`. Applies to icons, avatars, skeletons, etc. +`size-10` not `w-10 h-10`. Applies to avatars, skeletons, and standalone icons. +For icons inside shadcn components (e.g., Button, DropdownMenuItem), follow `rules/icons.md` and avoid icon sizing classes.🤖 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/shadcn/rules/styling.md` at line 124, Update the sizing guidance to state that general UI elements (icons, avatars, skeletons) should use size-* rather than w-*/h-* but add an explicit exception that icons rendered inside shadcn components must not receive sizing classes here (see rules/icons.md), and instead follow the icons rule which prohibits applying size-* to icons inside shadcn components; reference the size-* token and the icons rule so readers know to consult rules/icons.md for the exception.
🤖 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/building-nango-functions-locally/references/actions.md`:
- Around line 214-218: The fenced code block showing the directory structure is
missing a language identifier which triggers MD040; update the block by adding a
language tag (e.g., "text") to the opening triple backticks so it becomes
```text ... ``` to satisfy the linter for the code block that contains the lines
"{integration}/", "proxy/", and "upload-file.ts".
In `@skills/creating-claude-rules-skill/SKILL.md`:
- Around line 99-105: The fenced directory-tree block showing ".claude/rules/"
is missing a fence language (triggers MD040); update the opening
triple-backticks for that directory-tree block to include a language token such
as text (e.g., change ``` to ```text) so the markdown linter recognizes it as a
plain text code block.
In `@skills/dormant-flip-and-rollback/SKILL.md`:
- Around line 65-72: The markdown fenced code blocks containing the "Pre-flip
statement, <run-name>, <ISO-utc> ..." block and the "Rollback executed,
<run-name>, <ISO-utc> ..." block (and the similar pair around lines 81-89) are
untyped and trigger MD040; update each opening triple-backtick to include a
language identifier (e.g., change ``` to ```text) for the blocks that start with
"Pre-flip statement..." and "Rollback executed..." so the fences read ```text to
satisfy the linter.
In `@skills/running-headless-orchestrator/SKILL.md`:
- Around line 84-90: The markdown fences in SKILL.md lack language tags and will
trigger MD040; update every triple-backtick block that contains
command/pseudocode examples to include a language tag (use "text") — e.g., the
blocks around mcp__relaycast__agent_add(...),
mcp__relaycast__message_inbox_check(), mcp__relaycast__agent_list(),
mcp__relaycast__agent_remove(name: "Worker1"),
mcp__relaycast__message_dm_list(to: "Worker1") and the explanatory paragraph
fences — add ```text at the start of each fenced block and keep closing ```
unchanged; apply the same change to the other occurrences mentioned (around
lines covering the other examples in the file).
In `@skills/shadcn/cli.md`:
- Around line 5-8: Remove the empty line separating the two adjacent blockquote
paragraphs so the two "**IMPORTANT:**" notes become a single continuous
blockquote; specifically, merge the second "**IMPORTANT:** Only use the
flags..." paragraph into the first "**IMPORTANT:** Always run commands..."
blockquote so there is no blank line between them, which fixes the MD028
`no-blanks-blockquote` error.
- Around line 159-169: The fenced code block in skills/shadcn/cli.md is
unlabeled (causing MD040); update the triple-backtick fence around the example
block (the block starting with "base radix" and including the input/button
entries) to include a language tag (e.g., use ```text) so the block is properly
labeled and the lint rule is satisfied.
In `@skills/shadcn/rules/styling.md`:
- Around line 10-11: Wrap wildcard utility names in code spans to satisfy
markdownlint MD037: replace occurrences like "No space-x-* / space-y-*" with "No
`space-x-*` / `space-y-*`" and "Prefer size-* over w-* h-*" with "Prefer
`size-*` over `w-*` `h-*`"; also update the same wildcard usages found later
(the entries referencing space-x-*/space-y-* and size-*/w-*/h-* at the other
occurrences) so every literal utility containing * is enclosed in backticks.
In `@skills/swarm-blockers-and-gate-scoreboard/SKILL.md`:
- Around line 43-54: The markdown fenced-code blocks for the "WS-<name>
sub-contract" stanza and the following table are missing language tags and
trigger MD040; update both opening fences to include a language (use "text") so
the blocks read "```text" rather than just "```"—specifically modify the block
that begins with "WS-<name> sub-contract" and the table block that starts with
"| # | Gate | State | Evidence ..." to use "```text" to satisfy the linter.
In `@skills/trigger-autocomplete-catalog/SKILL.md`:
- Line 32: Replace the ambiguous Markdown placeholder "npm test
--workspace=packages/<provider>" in SKILL.md with a literal-safe form so readers
can copy it reliably; update the command to either escape the angle brackets
(HTML entities) or use a clear placeholder style such as curly braces or a
backticked literal (e.g., packages/{provider} or `packages/<provider>`) so the
workspace path is unambiguous.
---
Nitpick comments:
In `@skills/shadcn/rules/styling.md`:
- Line 124: Update the sizing guidance to state that general UI elements (icons,
avatars, skeletons) should use size-* rather than w-*/h-* but add an explicit
exception that icons rendered inside shadcn components must not receive sizing
classes here (see rules/icons.md), and instead follow the icons rule which
prohibits applying size-* to icons inside shadcn components; reference the
size-* token and the icons rule so readers know to consult rules/icons.md for
the exception.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 5b7a6422-5403-4007-a534-41ac5b935e7f
⛔ Files ignored due to path filters (2)
skills/shadcn/assets/shadcn-small.pngis excluded by!**/*.pngskills/shadcn/assets/shadcn.pngis excluded by!**/*.png
📒 Files selected for processing (24)
prpm.jsonskills/auto-merge-and-composition-safety/SKILL.mdskills/autonomous-run-contract/SKILL.mdskills/building-nango-functions-locally/SKILL.mdskills/building-nango-functions-locally/references/actions.mdskills/building-nango-functions-locally/references/syncs.mdskills/creating-claude-rules-skill/SKILL.mdskills/dormant-flip-and-rollback/SKILL.mdskills/instrument-dont-guess/SKILL.mdskills/running-headless-orchestrator/SKILL.mdskills/shadcn/SKILL.mdskills/shadcn/agents/openai.ymlskills/shadcn/cli.mdskills/shadcn/customization.mdskills/shadcn/evals/evals.jsonskills/shadcn/mcp.mdskills/shadcn/rules/base-vs-radix.mdskills/shadcn/rules/composition.mdskills/shadcn/rules/forms.mdskills/shadcn/rules/icons.mdskills/shadcn/rules/styling.mdskills/swarm-blockers-and-gate-scoreboard/SKILL.mdskills/tiered-acceptance/SKILL.mdskills/trigger-autocomplete-catalog/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@README.md`:
- Line 30: Update the wording in the README table row that references
"building-nango-functions-locally" (the cell containing "CLI dryruns") to use
the standard phrase "CLI dry runs" instead of "CLI dryruns"; locate the table
entry that includes the description "Build, validate, test, and optionally
deploy local TypeScript Nango actions and syncs with CLI dryruns and generated
tests." and replace "dryruns" with "dry runs".
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 611f2e44-4f74-4a5e-85b3-3135d7ebf6ee
📒 Files selected for processing (4)
README.mdprpm.jsonskills/building-nango-functions-locally/SKILL.mdskills/creating-claude-rules-skill/SKILL.md
✅ Files skipped from review due to trivial changes (2)
- skills/creating-claude-rules-skill/SKILL.md
- skills/building-nango-functions-locally/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
- prpm.json
|
Reviewed PR #61 and fixed the valid findings. Changes made:
Validation run locally:
|
|
✅ pr-reviewer applied fixes — committed and pushed Reviewed PR #61 and fixed the valid findings. Changes made:
Validation run locally:
|
There was a problem hiding this comment.
✅ pr-reviewer applied fixes — committed and pushed 61e5c5a to this PR. The notes below describe what changed.
Reviewed PR #61 and fixed the valid findings.
Changes made:
- Added missing markdown fence language tags across the PR-touched docs.
- Fixed markdown blockquote spacing in
skills/shadcn/cli.md. - Wrapped wildcard Tailwind utility names in code spans and clarified the shadcn icon sizing exception.
- Replaced
packages/<provider>withpackages/{provider}. - Corrected Codex worker prerequisite docs from Anthropic credentials to OpenAI credentials.
- Wrapped bare reference URLs that were failing markdownlint.
- Confirmed the
creating-claude-rules-skillmanifest/frontmatter/path are now consistent; the older Gemini path comment is stale.
Validation run locally:
- Targeted markdownlint pass for the relevant rules:
0 error(s). prpm.jsonandskills/shadcn/evals/evals.jsonparse successfully.- Manifest structural check passed: package file paths exist and skill package names match
SKILL.mdfrontmatter. - README package/version/path checks passed.
npx prpm publish --listsucceeded.npx prpm publish --dry-runcould not run because this environment is not logged in to prpm.
There was a problem hiding this comment.
12 issues found across 26 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="skills/dormant-flip-and-rollback/SKILL.md">
<violation number="1" location="skills/dormant-flip-and-rollback/SKILL.md:66">
P3: This fenced announcement template needs a language identifier (e.g., `text`) to comply with MD040.</violation>
</file>
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
| 2. **Re-read the contract §5 + §6.** Confirm the flip command and rollback triggers. | ||
| 3. **Post the pre-flip statement** to the operator's channel: | ||
| ``` | ||
| Pre-flip statement, <run-name>, <ISO-utc> |
There was a problem hiding this comment.
P3: This fenced announcement template needs a language identifier (e.g., text) to comply with MD040.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/dormant-flip-and-rollback/SKILL.md, line 66:
<comment>This fenced announcement template needs a language identifier (e.g., `text`) to comply with MD040.</comment>
<file context>
@@ -0,0 +1,111 @@
+2. **Re-read the contract §5 + §6.** Confirm the flip command and rollback triggers.
+3. **Post the pre-flip statement** to the operator's channel:
+ ```
+ Pre-flip statement, <run-name>, <ISO-utc>
+ Gates: G1 GREEN <link>, G2 GREEN <link>, ... (full list)
+ Flip command: <verbatim>
</file context>
…trator, shadcn from consolidation shadcn stays in the cloud repo (with its symlinks); the nango and headless-orchestrator skills should not move into the shared package. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oud's lock) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oud repo) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="README.md">
<violation number="1" location="README.md:29">
P2: README advertises `openclaw-orchestrator` as a published skill, but it is not declared in `prpm.json` packages. This will mislead users about installable packages until either the manifest is updated or the README entry is removed.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| | [instrument-dont-guess](skills/instrument-dont-guess/SKILL.md) | 1.0.0 | Add temporary diagnostics after repeated failed fixes instead of continuing to guess at the same symptom. | | ||
| | [swarm-blockers-and-gate-scoreboard](skills/swarm-blockers-and-gate-scoreboard/SKILL.md) | 1.0.0 | Dispatch paired worker/reviewer agents for hard blockers and maintain RED/GREEN gate scoreboards for autonomous runs. | | ||
| | [tiered-acceptance](skills/tiered-acceptance/SKILL.md) | 1.0.0 | Split broad acceptance gates into deeply proven tier-1 coverage and explicitly accepted tier-2 smoke coverage. | | ||
| | [openclaw-orchestrator](skills/openclaw-orchestrator/SKILL.md) | 1.0.0 | Run headless multi-agent orchestration sessions via Agent Relay — spawn teams across Claude/Codex/Gemini/Pi/Droid, create channels, and manage agent lifecycle. | |
There was a problem hiding this comment.
P2: README advertises openclaw-orchestrator as a published skill, but it is not declared in prpm.json packages. This will mislead users about installable packages until either the manifest is updated or the README entry is removed.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 29:
<comment>README advertises `openclaw-orchestrator` as a published skill, but it is not declared in `prpm.json` packages. This will mislead users about installable packages until either the manifest is updated or the README entry is removed.</comment>
<file context>
@@ -22,15 +22,11 @@ Package metadata lives in [prpm.json](prpm.json). The repo currently publishes `
-| [running-headless-orchestrator](skills/running-headless-orchestrator/SKILL.md) | 1.0.0 | Self-bootstrap Agent Relay and manage a team of workers without human intervention. |
-| [trigger-autocomplete-catalog](skills/trigger-autocomplete-catalog/SKILL.md) | 1.0.0 | Register webhook events in the trigger autocomplete catalog when integrations add provider events. |
-| [shadcn](skills/shadcn/SKILL.md) | 1.0.0 | Work with shadcn/ui projects, registries, presets, component composition, styling, CLI commands, and MCP helpers. |
+| [openclaw-orchestrator](skills/openclaw-orchestrator/SKILL.md) | 1.0.0 | Run headless multi-agent orchestration sessions via Agent Relay — spawn teams across Claude/Codex/Gemini/Pi/Droid, create channels, and manage agent lifecycle. |
## Slash Commands
</file context>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
Consolidates 16 generic, reusable agent skills that had been duplicated inside
AgentWorkforce/cloud(scattered across.claude/skills,.agents/skills,.factory/skills, andskills/, with copies that had drifted out of sync) into this shared prpm package — establishing a single source of truth that cloud and other repos install via prpm.Changes
prpm.jsonandskills/(v1.0.0, descriptions sourced from eachSKILL.md):auto-merge-and-composition-safety,autonomous-run-contract,creating-claude-rules-skill,dormant-flip-and-rollback,instrument-dont-guess,swarm-blockers-and-gate-scoreboard,tiered-acceptance,building-nango-functions-locally,running-headless-orchestrator,trigger-autocomplete-catalog,shadcn.packagescount: 15 → 26.choosing-swarm-patterns,orchestrating-agent-relay,relay-80-100-workflow,review-fix-signoff-loop,writing-agent-relay-workflows) keep their existing canonical versions. The cloud copies were older/smaller and were discarded, not promoted.Notes
proactive-e2e-debug) and will consume the rest via prpm install; cloud does not own aprpm.json..DS_Store/ IDEsettings.local.jsonfiles were excluded from the moved trees.🤖 Generated with Claude Code