本文へ移動
cccskills
無料GitHub で公開

skillshare-windows-utm

Verify skillshare on a real Windows guest running in local UTM: build a pinned commit in the devcontainer, push it into the VM, and either run the Windows E2E runbook with full and basic-user tokens or hand the maintainer a one-line hands-on setup. Use this whenever a change touches Windows links, junctions, file symlinks, Developer Mode, copy fallback, Windows paths, or the dashboard on Windows, or when the user asks to test or accept something on Windows / UTM.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Linux tests cannot show Windows link behavior. This skill drives the local UTM guest with scripts/windows/utm.sh. Before acting, run python3 scripts/ai-context.py testing and follow its "Windows Verification" section; it is the source of truth for the rules below.

Rules

  • Build in the devcontainer from a pinned commit (utm.sh build <ref>), never from the working tree: other work may be editing it. Report the commit hash with every result.
  • The host only drives the VM (utmctl). Never run ss, go or pnpm on the host.
  • utmctl exec runs as SYSTEM, which can always create symlinks. Product behavior must run as the desktop user through utm.sh task (Interactive scheduled task). Use --basic for the basic-user token (runas /trustlevel:0x20000), which has no symlink right. Never switch to S4U: its token differs from a real user's.
  • Isolate automated runs under C:\Users\Public\sstest\. Clean up with utm.sh clean, which uses rmdir (it does not follow junctions).
  • Report which token (full or basic) and architecture each result came from.

1. Preflight

scripts/windows/utm.sh probe
OutputMeaning and action
stoppedutmctl start Windows, then probe again after boot.
OSStatus -1712macOS Automation permission for the terminal app is missing; ask the user to allow it.
OSStatus -2700 / guest agent errorGuest still booting or agent not up. Wait, then retry.
desktopUser= emptyNobody is logged in; Interactive tasks will not start. Ask the user to log in in the UTM window. Restarting the VM logs the user out.
arch=ARM64 / AMD64Use it as the build arch (arm64 / amd64).
devMode=1Developer Mode is on; the basic token may still create symlinks. Say so in the report.

2. Build and push

scripts/windows/utm.sh build <ref> <arm64|amd64>   # ss.exe, ss-ui-dist.zip, ss-version.txt in $OUT

The UI zip is unpacked into %APPDATA%\skillshare\ui\<version> so ss ui never downloads it. utmctl file push needs an existing guest folder; create one with utm.sh ps first, or push to C:\Users\Public\.

3a. Automated acceptance (auto)

  1. Create C:\Users\Public\sstest\ (via utm.sh ps), push ss.exe and scripts/windows/e2e-file-links.ps1 into it.
  2. Run the runbook script once per token:
    scripts/windows/utm.sh task sstest-full  'C:\Users\Public\sstest\e2e-file-links.ps1' -- \
      -Exe C:\Users\Public\sstest\ss.exe -Root C:\Users\Public\sstest\run-full -Out C:\Users\Public\sstest\out-full.txt -Extended
    scripts/windows/utm.sh task sstest-basic 'C:\Users\Public\sstest\e2e-file-links.ps1' --basic -- \
      -Exe C:\Users\Public\sstest\ss.exe -Root C:\Users\Public\sstest\run-basic -Out C:\Users\Public\sstest\out-basic.txt -Extended
    
  3. Poll utm.sh pull 'C:\Users\Public\sstest\out-full.txt' until the last line is DONE (pull exits 0 even when the file is missing).
  4. For scenarios the script does not cover, write a small .ps1, push it, and run it with utm.sh task. Check reparse tags with fsutil reparsepoint query (0xa0000003 junction, 0xa000000c symlink) and read the file back.
  5. utm.sh clean, then report per token: pass/fail, commit, arch, exact failing output.

3b. Hands-on test for the maintainer (manual)

scripts/windows/utm.sh push-manual

Give the user exactly one line to run in a normal (non-admin) PowerShell on the guest. A normal shell tests the copy fallback that users without Developer Mode get; an admin shell can create symlinks:

powershell -ExecutionPolicy Bypass -File C:\Users\Public\ss-setup.ps1

It works in an isolated home, C:\Users\Public\sstest\manual (it overrides USERPROFILE, HOME, APPDATA, LOCALAPPDATA), so the real profile is never touched. It installs ss.exe and the UI, creates sample .claude\CLAUDE.md and .codex\AGENTS.md there, runs init, and opens the dashboard. Tell the user which files to inspect under that folder, then list 4–6 things to try for the change under test, each with what they should see. Cleanup removes only that folder:

powershell -ExecutionPolicy Bypass -File C:\Users\Public\ss-setup.ps1 -Clean

Keep the instructions short. Do not paste multi-line setup blocks for the user to type.

On a Windows host (no UTM)

The same scripts run natively; only the transport changes.

  1. Build with the devcontainer (Docker Desktop) as in step 2, or run the docker exec part of utm.sh build directly, then copy ss.exe, ss-ui-dist.zip and ss-version.txt into one folder.
  2. Hands-on: powershell -ExecutionPolicy Bypass -File scripts\windows\manual-setup.ps1 -Dir <that folder>. It stays isolated under -Root, so it is safe on a real profile.
  3. Automated: run scripts\windows\e2e-file-links.ps1 directly (it isolates under -Root too). For the basic-user token, launch it through runas /trustlevel:0x20000 "powershell ..." from a normal shell.
  4. A developer machine often has Developer Mode on, which lets even the basic token create symlinks. Check whoami /priv and state it in the report; the no-symlink fallback needs it off.

Gotchas

  • Call ~/Applications/UTM.app/Contents/MacOS/utmctl directly; the Homebrew symlink reports "Application not found". utm.sh does this.
  • zsh echo eats backslashes in Windows paths; write guest scripts with a quoted heredoc.
  • Under x64 emulation on ARM64, $env:PROCESSOR_ARCHITECTURE and .NET both say x64. probe reads the native value from the registry.
  • A PowerShell 5 script without a BOM is read as the system code page; keep .ps1 files ASCII.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Manage skills, agents, extras, hooks, plugins, and MCP connection settings with the Skillshare CLI. Use when the user asks to configure or run Skillshare, install or sync resources across AI tools, manage shared memory notes, import MCP settings, manage targets, audit skills, recover backups, or troubleshoot Skillshare configuration and sync. Covers global and project modes, noninteractive automation, and guidance for the terminal UI.

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

Generate CHANGELOG.md entry from recent commits in conventional format. Also syncs the website changelog page. Use this skill whenever the user asks to: generate a changelog, document what changed between tags, or create a new CHANGELOG entry. If you see requests like "write the changelog for v0.17", "what changed since last release", this is the skill to use. Do NOT manually edit CHANGELOG.md without this skill — it ensures proper formatting, user-perspective writing, and website changelog sync. For full release workflows (Release PR review, tests, draft assets, publication, announcements), use /release instead.

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

Run isolated E2E tests in devcontainer from ai_docs/tests runbooks. Use this skill whenever the user asks to: run an E2E test, execute a test runbook, validate a feature end-to-end, create a new runbook, or test CLI behavior in isolation. If you need to run a multi-step CLI validation sequence (init → install → sync → verify), this is the skill — it handles ssenv isolation, flag verification, and structured reporting. Prefer this over ad-hoc docker exec sequences for any test that follows a runbook or needs reproducible isolation.

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

Cross-validate CLI flags, docs, tests, and targets for consistency across the codebase. Use this skill whenever the user asks to: audit the codebase, check for consistency issues, find undocumented flags, verify test coverage, validate targets.yaml, check handler split conventions, or verify oplog instrumentation. This is a read-only audit — it reports issues but never modifies files. Use after large refactors, before releases, or whenever you suspect docs/code/tests have drifted out of sync.

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

Run CLI commands, tests, and debugging inside the skillshare devcontainer. Use this skill whenever you need to: execute skillshare CLI commands for verification, run Go tests (unit or integration), reproduce bugs, test new features, start the web UI, or perform any operation that requires a Linux environment. All CLI execution MUST happen inside the devcontainer — never run skillshare commands on the host. If you are about to use Bash to run `ss`, `skillshare`, `go test`, or `make test`, stop and use this skill first to ensure correct container execution.

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

Implement a feature from a spec file or description using TDD workflow. Use this skill whenever the user asks to: add a new CLI command, implement a feature from a spec, build new functionality, add a flag, create a new internal package, or write Go code for skillshare. This skill enforces test-first development, proper handler split conventions, oplog instrumentation, and dual-mode (global/project) patterns. If the request involves writing Go code and tests, use this skill — even if the user doesn't explicitly say "implement".

日本語の概要は準備中です。原文の説明を表示しています。

runkids/skillshare2,7672026年10月10日 更新

runkids のスキルをすべて見る

このスキルの問題を報告する