fix(skills): add single entry skill#1432
Conversation
📝 WalkthroughWalkthroughIntroduces a single root-level ChangesRoot-Level Umbrella Skill Model
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 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: 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 `@SKILL.md`:
- Around line 1-13: The root SKILL.md (skill name: lark-suite) isn't included by
the current embed whitelist which only matches skills/*/SKILL.md, so the
lark-suite entry skill won't be embedded; update the embed whitelist/pattern to
also include the repository-root SKILL.md (or add a pattern like SKILL.md at
root) so the "lark-suite" skill is packaged, or explicitly confirm in config
that root SKILL.md should remain source-only. Target the embed whitelist/config
entry that defines the included paths/patterns and add a rule to include the
root SKILL.md.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 8d528af1-e25b-4bc6-b210-b85005590ab8
📒 Files selected for processing (9)
.github/workflows/skill-format-check.ymlREADME.mdREADME.zh.mdSKILL.mdcmd/root.goscripts/skill-format-check/README.mdscripts/skill-format-check/index.jsscripts/skill-format-check/test.shscripts/skill-format-check/tests/good-root-skill/SKILL.md
| --- | ||
| name: lark-suite | ||
| version: 1.0.0 | ||
| description: "Use lark-cli to operate Lark/Feishu across messaging, docs, drive, sheets, base, calendar, mail, tasks, wiki, meetings, approvals, events, and more. This is the single entry skill; load domain docs only when needed." | ||
| metadata: | ||
| requires: | ||
| bins: ["lark-cli"] | ||
| cliHelp: "lark-cli --help" | ||
| --- | ||
|
|
||
| # Lark/Feishu CLI | ||
|
|
||
| Use `lark-cli` to operate Lark/Feishu resources. This skill is the default entry point and keeps the installed skill list small. Domain-specific details remain available on demand through the CLI-embedded skill content, so agents should load only the domain they need for the current user request. |
There was a problem hiding this comment.
Root skill needs to be shipped with the embedded skill set.
The current embed path still only includes skills/*/SKILL.md, so this repo-root SKILL.md will be invisible to the built CLI. If lark-suite is meant to be the default entry skill, please extend the embed whitelist or confirm this file is intentionally source-only.
🤖 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 `@SKILL.md` around lines 1 - 13, The root SKILL.md (skill name: lark-suite)
isn't included by the current embed whitelist which only matches
skills/*/SKILL.md, so the lark-suite entry skill won't be embedded; update the
embed whitelist/pattern to also include the repository-root SKILL.md (or add a
pattern like SKILL.md at root) so the "lark-suite" skill is packaged, or
explicitly confirm in config that root SKILL.md should remain source-only.
Target the embed whitelist/config entry that defines the included paths/patterns
and add a rule to include the root SKILL.md.
|
Thanks for this PR — it's definitely aimed at the right problem (#1385 / #1392). After evaluating it, though, it diverges from the direction we're driving on a few key points, so I'm closing it with an explanation:
Your work on the root |
Background
Fixes #1385.
The repository currently exposes every
skills/lark-*domain skill by default. In skill pickers/search UIs this floods the global skill list with Lark-specific entries and long domain descriptions, especially for large domains such as IM.Changes
lark-suiteSKILL.mdas the default single entry skill.skills/lark-*docs and route agents to them throughlark-cli skills read <domain-skill>only when needed.--full-depthfor users who still want direct nested domain skill discovery.SKILL.mdis validated alongsideskills/.Verification
npx -y skills add . --list --json: passed — reportsFound 1 skilland listslark-suite.npx -y skills add . --list --full-depth --json: passed — nested domain skills such aslark-imandlark-calendarremain discoverable when explicitly requested.npx -y skills use . --skill lark-suite: passed — renders the new entry skill.bash scripts/skill-format-check/test.sh: passed.node scripts/skill-format-check/index.js .: passed.node scripts/skill-format-check/index.js skills: passed.go test -count=1 -timeout=3m ./cmd/skill ./internal/skillscheck ./cmd/update: passed.gofmt -l cmd/root.go internal/skillscheck/sync.go cmd/update/update.go: no output.git diff --check origin/main...HEAD: passed.Risk and rollback
Default
npx skills add larksuite/clinow installs the single entry skill instead of every nested domain skill. This intentionally reduces global skill-list noise. Existing domain skills remain in the repository and can still be discovered with--full-depthor read vialark-cli skills read. Rollback is reverting this PR.Summary by CodeRabbit
SKILL.mddocumentation with skill metadata and command guidance.