Skip to content

fix(onboard): clarify keyed vs keyless skill setup prompts#74407

Open
dwc1997 wants to merge 4 commits intoopenclaw:mainfrom
dwc1997:fix/onboard-skills-credential-clarity-74382
Open

fix(onboard): clarify keyed vs keyless skill setup prompts#74407
dwc1997 wants to merge 4 commits intoopenclaw:mainfrom
dwc1997:fix/onboard-skills-credential-clarity-74382

Conversation

@dwc1997
Copy link
Copy Markdown

@dwc1997 dwc1997 commented Apr 29, 2026

Made-with: Cursor

Summary

  • Problem: openclaw onboard can show keyless skill dependency install options (for example local openai-whisper) and later ask for API keys for different keyed skills, which is easy to misread as contradictory.
  • Why it matters: Users may think onboarding is requesting unnecessary secrets, reducing trust and increasing setup friction.
  • What changed: Added a dedicated "Skill credentials" note that explicitly separates dependency installation from credential setup, and lists only skills that actually require env secrets.
  • What did NOT change: No skill capability semantics changed; no security ACL logic changed; no install backend behavior changed.

Linked Issue/PR

Root Cause

  • Root cause: Onboarding mixed install and credential steps without an explicit transition note, so keyless/keyed skills appeared conflated in the user flow.
  • Missing guardrail: No regression test covered a mixed keyless (openai-whisper) + keyed (openai-whisper-api, sag) scenario.

Regression Test Plan

  • Coverage: Unit test
  • Target: src/commands/onboard-skills.test.ts
  • Scenario: Mixed keyless + keyed skills only prompts for keyed env vars and shows a credentials summary note.

User-visible / Behavior Changes

  • Onboarding now shows a "Skill credentials" note before secret prompts.
  • Secret prompts only target skills with missing required env vars.

Security Impact

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No (prompt clarity only)
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

@openclaw-barnacle openclaw-barnacle Bot added commands Command implementations size: S labels Apr 29, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 29, 2026

Greptile Summary

This PR refactors the onboard-skills credential setup flow: skills without a primaryEnv are now filtered up front into missingCredentialSkills, a summary note ("Skill credentials") is shown before any prompts, and a helper formatCredentialSetupMessage is extracted. A new test covers the keyless-vs-keyed separation.

  • The PR description and root-cause analysis describe a completely different change — a Windows ACL principal-classification fix involving src/security/windows-acl.test.ts — but the actual diff only touches src/commands/onboard-skills.ts and its test. The described security fix does not appear in this PR; please verify whether the description was copy-pasted from another PR and whether the Windows ACL bug is still unaddressed.

Confidence Score: 3/5

The onboarding code change itself is correct, but the PR description claims a Windows ACL security fix that is not present in the diff — needs verification before merging.

A P1 concern exists: the PR description describes a security fix (Windows ACL world-equivalent SID classification) that is absent from the code. If the described fix was intentional and security-relevant, merging this PR as-is would leave that bug unaddressed while falsely marking it resolved. The onboarding code change itself looks correct and well-tested.

No file-level code issues; the concern is the gap between the stated Windows ACL fix and the actual diff.

Prompt To Fix All With AI
This is a comment left during a code review.
Path: src/commands/onboard-skills.test.ts
Line: 190-291

Comment:
**PR description does not match the implemented change**

The PR description and root-cause analysis describe a Windows ACL principal-classification fix (expanding world-equivalent SIDs, files `src/security/windows-acl.test.ts` / `src/security/audit-filesystem-windows.test.ts`), but the actual diff only touches `src/commands/onboard-skills.ts` and its test. The described security fix — misclassifying `Anonymous Logon`, `S-1-5-7`, etc. — does not appear to be implemented in this PR. Please verify whether the description was copy-pasted from a different PR and whether the intended Windows ACL fix was accidentally omitted.

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: src/commands/onboard-skills.ts
Line: 50-52

Comment:
**Trivial wrapper used exactly once**

`formatCredentialSetupMessage` is a single-use, one-line string template that adds indirection without encapsulating any meaningful logic. The same template was already inline before this PR, and the helper is only called in one place. Consider inlining it to keep the code simpler.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "fix(onboard): clarify keyed vs keyless s..." | Re-trigger Greptile

Comment thread src/commands/onboard-skills.test.ts
Comment thread src/commands/onboard-skills.ts Outdated
@clawsweeper
Copy link
Copy Markdown
Contributor

clawsweeper Bot commented Apr 29, 2026

Codex review: needs changes before merge.

Summary
The PR adds a Skill credentials note in setupSkills, filters credential prompts to missing skills with primaryEnv, and adds a mixed keyless/keyed onboarding regression test.

Reproducibility: yes. Current main c136bb0e still moves from dependency installation directly into per-skill env prompts, and the skill metadata confirms the reported local Whisper versus API-backed Whisper/ElevenLabs split.

Next step before merge
A narrow automated repair can add the required changelog bullet to this PR branch; no product or security decision is blocking that fix.

Security
Cleared: The net diff only changes onboarding prompt framing and a unit test, with no workflow, dependency, install script, permission, or secret-storage semantic changes.

Review findings

  • [P3] Add the onboarding fix to the changelog — src/commands/onboard-skills.ts:205
Review details

Best possible solution:

Land this narrow setupSkills framing fix with the mixed regression test and a single-line CHANGELOG.md entry, then let #74382 close through the merged PR.

Do we have a high-confidence way to reproduce the issue?

Yes. Current main c136bb0e still moves from dependency installation directly into per-skill env prompts, and the skill metadata confirms the reported local Whisper versus API-backed Whisper/ElevenLabs split.

Is this the best way to solve the issue?

Yes, with the changelog repair. The PR keeps the fix in the onboarding owner function and avoids changing installer behavior, skill metadata, or secret storage semantics.

Full review comments:

  • [P3] Add the onboarding fix to the changelog — src/commands/onboard-skills.ts:205
    This changes user-facing onboarding prompt copy for a bug fix, but the PR only updates setupSkills and its test. Repo policy requires user-facing fixes to carry a changelog entry, so add a single-line CHANGELOG.md bullet before merge.
    Confidence: 0.92

Overall correctness: patch is correct
Overall confidence: 0.9

Acceptance criteria:

  • pnpm test src/commands/onboard-skills.test.ts
  • pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/commands/onboard-skills.ts src/commands/onboard-skills.test.ts
  • pnpm check:changed

What I checked:

Likely related people:

  • steipete: Local history shows Peter Steinberger introduced and repeatedly maintained the onboarding skill flow, including the expanded wizard, skip/install prompt behavior, skill-description display, brew-noise reduction, test isolation, and the recent lazy-loader refactor touching the same files. (role: introduced and recent maintainer; confidence: high; commits: 7c2c54172931, 867883453e11, 9b3aef356739; files: src/commands/onboard-skills.ts, src/commands/onboard-skills.test.ts, skills/openai-whisper/SKILL.md)
  • vincentkoc: Local file history shows Vincent Koc touched the same onboarding command/test area in the April cycle refactor, and existing ClawSweeper context links prior local-history work on this setupSkills flow and bundled skill metadata to Vincent as secondary routing evidence. (role: adjacent maintainer; confidence: medium; commits: 74e7b8d47b18, ad2516b1c876; files: src/commands/onboard-skills.ts, src/commands/onboard-skills.test.ts, skills/openai-whisper/SKILL.md)

Remaining risk / open question:

  • The PR still lacks the required user-facing changelog entry for the onboarding fix.
  • The PR base predates current main, so changed checks should be rerun after the changelog update or final rebase.

Codex review notes: model gpt-5.5, reasoning high; reviewed against c136bb0eafab.

@dwc1997 dwc1997 force-pushed the fix/onboard-skills-credential-clarity-74382 branch from 49e778f to 49fc2a7 Compare April 29, 2026 14:55
@dwc1997 dwc1997 force-pushed the fix/onboard-skills-credential-clarity-74382 branch from e38c7b4 to f61564e Compare April 29, 2026 15:05
@clawsweeper
Copy link
Copy Markdown
Contributor

clawsweeper Bot commented Apr 29, 2026

Codex review: needs maintainer review before merge.

What this changes:

This PR adds a Skill credentials note, filters onboarding credential prompts to missing skills with primaryEnv and missing env requirements, and adds a regression test for mixed local Whisper plus API-backed Whisper/ElevenLabs skills.

Maintainer follow-up before merge:

This is an open implementation PR with a plausible narrow fix, but the remaining decision is maintainer review and reconciliation with overlapping PR #74417, not an autonomous repair lane.

Best possible solution:

Pick one narrow implementation for #74382, keep the credential explanation in setupSkills, retain regression coverage for mixed keyless and API-backed skills, add any required changelog entry, and merge only after the targeted onboarding tests and changed checks are green.

Acceptance criteria:

  • pnpm test src/commands/onboard-skills.test.ts
  • pnpm test src/agents/skills.buildworkspaceskillstatus.test.ts
  • pnpm exec oxfmt --check --threads=1 src/commands/onboard-skills.ts src/commands/onboard-skills.test.ts CHANGELOG.md
  • pnpm check:changed

What I checked:

Likely related people:

  • Vincent Koc: Local blame on the credential prompt loop and the relevant bundled skill descriptors points to ad2516b1, which added the current setupSkills flow, tests, and Whisper/SAG skill metadata in this checkout. (role: recent maintainer / current-main importer; confidence: medium; commits: ad2516b1c876; files: src/commands/onboard-skills.ts, src/commands/onboard-skills.test.ts, skills/openai-whisper/SKILL.md)
  • steipete: The v2026.4.26 release-tag commit in local history also carries the same onboarding and skill descriptor additions, making this a relevant maintainer routing signal for shipped behavior. (role: release/current-main maintainer; confidence: medium; commits: be8c24633aaa; files: src/commands/onboard-skills.ts, src/commands/onboard-skills.test.ts, skills/openai-whisper/SKILL.md)
  • Ayaan Zaidi: The existing ClawSweeper context for the linked onboarding issue attributes earlier history for the setupSkills flow and bundled skill descriptors to 49f94db5; the local checkout history is compacted, so this is useful secondhand routing evidence. (role: introduced behavior in prior issue history; confidence: low; commits: 49f94db5d46b; files: src/commands/onboard-skills.ts, skills/openai-whisper/SKILL.md, skills/openai-whisper-api/SKILL.md)

Remaining risk / open question:

Codex review notes: model gpt-5.5, reasoning high; reviewed against 2d53b49b20e1.

@dwc1997
Copy link
Copy Markdown
Author

dwc1997 commented Apr 29, 2026

Codex审核:合并前需要维护者审核。

这将带来哪些变化:

此 PR 添加了一条Skill credentials注释,将入职凭证提示筛选为缺少技能primaryEnv和缺少环境要求,并为混合本地 Whisper 和 API 支持的 Whisper/ElevenLabs 技能添加了回归测试。

合并前维护者跟进:

这是一个开放实现 PR,其中包含一个合理的小范围修复方案,但剩余的决定是维护者审查并与重叠的 PR #74417进行协调,而不是一个独立的修复通道。

最佳解决方案:

为#74382选择一个狭窄的实现,保留凭证说明setupSkills,保留混合无密钥和 API 支持技能的回归覆盖率,添加任何所需的变更日志条目,并且只有在目标入职测试和变更检查都通过后才合并。

验收标准:

  • pnpm 测试 src/commands/onboard-skills.test.ts
  • pnpm 测试 src/agents/skills.buildworkspaceskillstatus.test.ts
  • pnpm exec oxfmt --check --threads=1 src/commands/onboard-skills.ts src/commands/onboard-skills.test.ts CHANGELOG.md
  • pnpm 检查:已更改

我检查了以下内容:

可能有关联的人:

  • **Vincent Koc:**本地问题归咎于凭证提示循环和相关的捆绑技能描述符ad2516b1,该问题指向[此处应填写提交记录],该提交记录在此检出版本中添加了当前setupSkills流程、测试和Whisper/SAG技能元数据。(角色:近期维护者/当前主要导入者;置信度:中等;提交记录:ad2516b1c876;文件:src/commands/onboard-skills.ts[此处应填写文件列表src/commands/onboard-skills.test.ts] skills/openai-whisper/SKILL.md
  • **steipete:**本地历史记录中的 v2026.4.26 发布标签提交也包含了相同的入门和技能描述符添加,这使其成为已发布行为的相关维护者路由信号。(角色:发布/当前主要维护者;置信度:中等;提交:be8c24633aaa 文件:src/commands/onboard-skills.ts,,src/commands/onboard-skills.test.tsskills/openai-whisper/SKILL.md
  • **Ayaan Zaidi:**现有 ClawSweeper 上下文中关联的入职问题属性包含setupSkills流程的早期历史记录和捆绑的技能描述符;本地检出历史记录已压缩,因此这是有用的二手路由证据。(角色:在先前问题历史记录中引入的行为49f94db5;置信度:低;提交:49f94db5d46b;文件:src/commands/onboard-skills.ts,,skills/openai-whisper/SKILL.mdskills/openai-whisper-api/SKILL.md

剩余风险/未决问题:

Codex 审查说明:模型 gpt-5.5,推理能力高;与2d53b49b20e1进行审查。

Thanks for the review and for calling out the overlap with #74417.

I’ve already addressed the actionable feedback on this PR:

On overlap with #74417:

I’m good with either direction—please pick whichever is easier to land.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands Command implementations size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Asks for OpenAI Whisper/ElevenLabs API key even though initial list says KEY not needed

1 participant