Add OpenClaw skill in ClawHub format - #1
Conversation
Adds openclaw/ifttt/SKILL.md — the existing ifttt-setup and ifttt-build-applet skills plus the ifttt-lifecycle guardrails, restructured into ClawHub's single-file skill format with OpenClaw-specific setup (mcp.servers config + openclaw mcp login). Extends scripts/validate.mjs to check the frontmatter, documents publishing in openclaw/README.md, and adds the OpenClaw install path to README, AGENTS.md, llms.txt, and CONTRIBUTING.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: IFTTT/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe repository adds a ClawHub-format OpenClaw IFTTT skill, documents its installation and publishing workflows, and extends validation to check skill directories and frontmatter metadata. ChangesOpenClaw skill support
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (1)
openclaw/ifttt/SKILL.md (1)
56-59: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winList
connect_servicein the tool overview.The authentication workflow depends on
connect_service, but the discovery/tool list omits it. Add a connection-recovery entry so agents can discover the required call instead of only encountering it later in the prose.Proposed tool overview adjustment
Discovery (read-only): - `get_user_info` — account, plan tier, and limits - `search_services` / `get_services` — find services by keyword or list them - `get_steps` — fetch triggers, queries, and actions for one or more services in a single call - `get_triggers` / `get_queries` / `get_actions` — per-service, per-type variants - `my_applets` / `search_applets` / `get_applet` — inspect the user's existing Applets +Connection recovery: +- `connect_service` — start or restore an individual service connection + Applet lifecycle:Also applies to: 72-78
🤖 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 `@openclaw/ifttt/SKILL.md` around lines 56 - 59, Update the tool overview in SKILL.md to include connect_service as a discoverable connection-recovery tool, alongside the existing tool entries. Ensure the overview identifies its role in handling unconnected or expired service accounts, matching the workflow described in the Layer 2 instructions.
🤖 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 `@openclaw/ifttt/SKILL.md`:
- Around line 41-43: Fix the MD040 warnings by adding the sh language identifier
to all three shell-command fences: openclaw/ifttt/SKILL.md lines 41-43,
openclaw/README.md lines 7-9, and openclaw/README.md lines 17-26.
- Around line 5-8: Change the frontmatter’s nested metadata.openclaw block to a
single-line JSON object, preserving both the emoji and homepage fields so the
OpenClaw skill parser reads them correctly.
- Around line 21-45: Update the “Connect the MCP server” instructions after the
IFTTT server configuration block to include `openclaw mcp reload` before
`openclaw mcp login ifttt`, ensuring the current OpenClaw process recognizes the
new server before authentication.
In `@README.md`:
- Around line 17-23: Align the publication references across README.md lines
17-23, AGENTS.md lines 21-22, and llms.txt line 23: either publish `@ifttt/ifttt`
before retaining the ClawHub install guidance or replace it with a temporary
local-install workflow; remove or defer the ClawHub command in AGENTS.md, and
replace “Published at” in llms.txt with the intended pre-publication location.
- Around line 19-21: Label the shell command code fence containing `openclaw
skills install `@ifttt/ifttt`` with `sh` or `shell` on its opening delimiter,
leaving the command unchanged.
In `@scripts/validate.mjs`:
- Around line 294-295: Replace the regex validation in the parsed.version check
within validate.mjs with a real SemVer parser that accepts valid prerelease and
build metadata, while rejecting leading-zero versions and other invalid SemVer
values. Preserve the existing addError message behavior, and add tests covering
valid values such as 1.0.0-rc.1 and 1.0.0+build plus invalid values such as
01.2.3.
- Around line 273-295: Update the frontmatter parsing used before the validation
loop around parseFrontmatter so it parses SKILL.md metadata as YAML rather than
splitting key-value lines. Ensure quoted scalars and block values are returned
as their actual YAML values, while preserving the existing missing-frontmatter,
required-field, name, and version validation behavior.
---
Nitpick comments:
In `@openclaw/ifttt/SKILL.md`:
- Around line 56-59: Update the tool overview in SKILL.md to include
connect_service as a discoverable connection-recovery tool, alongside the
existing tool entries. Ensure the overview identifies its role in handling
unconnected or expired service accounts, matching the workflow described in the
Layer 2 instructions.
🪄 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: IFTTT/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 2a98fb39-53a0-43ae-a9e0-71001673d43e
📒 Files selected for processing (7)
AGENTS.mdCONTRIBUTING.mdREADME.mdllms.txtopenclaw/README.mdopenclaw/ifttt/SKILL.mdscripts/validate.mjs
There was a problem hiding this comment.
Pull request overview
Adds an OpenClaw/ClawHub-format skill distribution to the repo (alongside the existing Cursor plugin), plus documentation and CI validation to support shipping and maintaining that skill.
Changes:
- Added
openclaw/ifttt/SKILL.mdas a single-file ClawHub skill for OpenClaw agents. - Extended
scripts/validate.mjsto validateopenclaw/<name>/SKILL.mdpresence and required frontmatter fields. - Updated top-level and contributor/agent docs to describe the OpenClaw install path and repository layout.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/validate.mjs | Adds OpenClaw skill directory validation and hooks it into the main validator run. |
| README.md | Documents OpenClaw install path and adds openclaw/ to the repo layout overview. |
| openclaw/README.md | Provides user install + maintainer publishing instructions for ClawHub/OpenClaw skills. |
| openclaw/ifttt/SKILL.md | Introduces the ClawHub-format OpenClaw skill content for the IFTTT MCP server. |
| llms.txt | Adds the OpenClaw skill link to the LLM discovery index. |
| CONTRIBUTING.md | Documents OpenClaw skill structure requirements and points to the OpenClaw README. |
| AGENTS.md | Updates agent orientation and file map to include the OpenClaw skill path. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Serialize metadata.openclaw as single-line JSON so OpenClaw's fallback frontmatter parser keeps emoji/homepage - Add openclaw mcp reload before mcp login in setup steps - List connect_service in the skill's tool overview - Mark the ClawHub install path as pending first publish in README, AGENTS.md, and llms.txt - Strip surrounding quotes from frontmatter values in validate.mjs - Replace the version check with the full SemVer 2.0.0 pattern (accepts prerelease/build, rejects leading zeros) - Add language identifiers to shell code fences
|
Addressed all review feedback in 2c6289b:
|
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Summary
Adds an official IFTTT skill for OpenClaw agents, packaged in the format ClawHub (OpenClaw's public registry) expects, so this repo now carries the client-side pieces for one more ecosystem alongside the Cursor plugin.
OpenClaw natively supports remote streamable-HTTP MCP servers with OAuth (
openclaw mcp login), so no code plugin is needed — a skill that teaches the agent to connect tohttps://ifttt.com/mcpand use it well covers the whole integration.What's in the skill
openclaw/ifttt/SKILL.mdis the existing plugin guidance restructured into ClawHub's single-file format:mcp.serversconfig block,openclaw mcp login ifttt, headless--codeflow) and server-level auth recovery via the OpenClaw CLIplugins/ifttt/: the two-layer authentication model, IFTTT concepts and tool overview (ifttt-setup), the Applet build/edit/test workflow (ifttt-build-applet), and the safety guardrails (ifttt-lifecycle.mdc, folded into the skill since OpenClaw has no separate always-on rules artifact)Other changes
openclaw/README.md— install command for users, publish steps for maintainers (kept outside the skill folder so it isn't part of the published bundle)scripts/validate.mjs— validates eachopenclaw/<name>/folder:SKILL.mdpresent, frontmattername/description/versionset, name matches the directory and ClawHub's lowercase naming rules, version is semverREADME.md,AGENTS.md,llms.txt,CONTRIBUTING.md— document the new install path and directoryTesting
node scripts/validate.mjspasses on the treeNotes
Publishing to ClawHub (org publisher setup and
clawhub skill publish) is a separate maintainer step documented inopenclaw/README.md; nothing in this PR depends on it. ClawHub distributes published skills under MIT-0.Summary by CodeRabbit
New Features
@ifttt/iftttexample.Documentation
openclaw/<name>/SKILL.mdstructure and required frontmatter.Bug Fixes
SKILL.mdfrontmatter, supporting quoted values and enforcing required keys, naming, and semver rules.