openclaw/skills
Ayaan Zaidi f9c7173b20
fix(skills): keep sag available with alternate credentials (#147685)
AI-assisted.

Supersedes #147381 by @LiuwqGit.
Closes #147346.

## What Problem This Solves

A working `sag` skill appears unavailable, and `doctor --fix` disables it, when its installed CLI obtains credentials outside the Gateway environment.

## User Impact

Installed `sag` stays available with alternate credentials. The executable checks credentials when it runs. Optional configured-key injection remains available.

Doctor does not automatically re-enable entries disabled by an earlier run. The saved flag does not distinguish Doctor repair from an intentional user choice. If the earlier disablement was incorrect, run `openclaw config set skills.entries.sag.enabled true`. Refresh the Skills list; the next agent turn uses the refreshed skill settings.

## Why This Change Was Made

The bundled skill declaration keeps its executable requirement and removes the incorrect environment prerequisite. The original metadata fix and authorship are preserved. The regression now runs registered `skills info sag --json` and stopped-Gateway `doctor --fix`, including the saved enable flag, instead of calling the status helper directly.

## Evidence

| Check | Main | This change |
| --- | --- | --- |
| Real CLI and Gateway `skills.status` | Needs setup; not visible | Ready; visible |
| Control UI Skills list | Under Needs Setup | Under Ready |
| Skill details | Missing-variable warning | Warning gone; key editor retained |
| Stopped-Gateway Doctor | Saves `enabled=false` | Preserves absent or explicitly true enablement |
| Registered CLI regression | Four expected failures | Four passes |

Correlated request/response frames confirm that both the browser and CLI received `skills.status` from the Gateway. The installed executable's alternate key-file check uses a local test endpoint; live-account validity and audio production are not claimed.

Fresh merge `489365ccffab2e043d676ed3b01cb2e0b5a203d4` has candidate parent `40632360f3ff8162fa27503e08c636223c8cc852` and main parent `4750ff8d2b`. It passes 4 registered CLI regressions, 44 skill tests, 10 Doctor tests, and 153 test-registration checks. Changed-file lint, formatting, and whitespace checks pass. Main's regression run used `d0cf628ff2` with the same test and unchanged main metadata.

The process test uses the existing isolated CLI project. Fixed test owners and CI job counts remain unchanged; generated compact group placement can change as the test inventory grows. Readiness does not establish live-account validity or successful audio output.

### Skills list

| Before | After |
| --- | --- |
| ![sag under Needs Setup](https://gist.githubusercontent.com/obviyus/847a6af1eb35eb2c2d2fa4347bb6843d/raw/dcfea44f39bef00958bd6ef53f80029358f3ec32/base-skills-list.png) | ![sag under Ready](https://gist.githubusercontent.com/obviyus/847a6af1eb35eb2c2d2fa4347bb6843d/raw/dcfea44f39bef00958bd6ef53f80029358f3ec32/candidate-skills-list.png) |

### Missing requirement and key editor

| Before | After |
| --- | --- |
| ![Missing requirement with key editor](https://gist.githubusercontent.com/obviyus/847a6af1eb35eb2c2d2fa4347bb6843d/raw/dcfea44f39bef00958bd6ef53f80029358f3ec32/base-skill-detail.png) | ![Eligible with key editor retained](https://gist.githubusercontent.com/obviyus/847a6af1eb35eb2c2d2fa4347bb6843d/raw/dcfea44f39bef00958bd6ef53f80029358f3ec32/candidate-skill-detail.png) |

## Consumers

- Discovery, Gateway and CLI status, both Doctor skill checks, onboarding, summaries, and recommendations read the same prerequisite declaration.
- The Control UI list and agent controls consume the corrected status; the optional key editor remains available.
- Runtime selection reads the same metadata. New snapshots preserve optional key injection; existing snapshot refresh rules remain unchanged.
- Native clients consume the existing response. The macOS binary-trust reader uses the unchanged binary requirement.
- Explicit disablement, allowlists, agent filters, configured-secret isolation, and automatic-update Doctor protection remain unchanged.

## Compatibility

No new configuration key, schema, protocol, dependency, or runtime credential reader. Existing disabled entries are not automatically re-enabled. The skill prose assigns credential checking to the executable; readiness does not promise valid account credentials or successful speech generation.

Co-authored-by: LiuwqGit <liu.weiqin@xydigit.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-14 08:26:59 +05:30
..
1password
apple-notes
apple-reminders
bear-notes
blogwatcher
blucli
camsnap fix(nodes): report camera positions the hardware actually reached (#128595) 2026-08-24 01:56:12 -07:00
clawhub
coding-agent
control-ui feat: load CDN libraries and fonts in widgets (#147265) 2026-09-13 12:50:45 -07:00
diagram-maker
eightctl
gemini
gh-issues
gifgrep
github fix: stop injecting Git co-author attribution into every turn (#143198) 2026-09-09 10:48:08 -07:00
gog docs(skills): clarify remote gog OAuth setup for Gateway hosts (#145945) 2026-09-14 02:39:09 +08:00
goplaces
healthcheck fix(skills): correct read-only diagnosis and channel setup (#136600) 2026-09-02 14:56:33 -07:00
himalaya
mcporter
meme-maker refactor(deps): remove Sharp dependency chains (#134923) 2026-08-31 23:54:37 -07:00
model-usage refactor(tests): remove duplicate model usage aggregation test (#142990) 2026-09-10 02:07:11 +09:00
nano-pdf
node-connect fix: keep phone Control UI recovery out of node pairing (#123767) 2026-08-14 12:17:33 -06:00
node-inspect-debugger
notion
obsidian
openai-whisper
openai-whisper-api
openhue
oracle
ordercli
peekaboo fix(peekaboo): correct removed commands in bundled skill (#124061) 2026-09-07 00:04:19 -07:00
python-debugpy
sag fix(skills): keep sag available with alternate credentials (#147685) 2026-09-14 08:26:59 +05:30
sherpa-onnx-tts chore(deps): refresh dependencies after seven-day cooldown (#129941) 2026-08-26 01:37:37 -07:00
skill-creator
songsee
sonoscli
spike
spotify-player
summarize
taskflow docs: make TaskFlow skill examples runnable (#139314) 2026-09-05 13:47:21 -07:00
taskflow-inbox-triage docs: make TaskFlow skill examples runnable (#139314) 2026-09-05 13:47:21 -07:00
things-mac
tmux
trello
visualize fix(widgets): use the available presentation surface after restart (#147533) 2026-09-13 16:57:00 -07:00
weather
xurl
pyproject.toml