AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Skillshare Devcontainer

skill-runkids-skillshare-skillshare-devcontainer · by runkids

>-

No reviews yet
0 installs
37 views
0.0% view→install

Install

$ agentstack add skill-runkids-skillshare-skillshare-devcontainer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-runkids-skillshare-skillshare-devcontainer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Skillshare Devcontainer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Execute CLI commands and tests inside the devcontainer. The host machine is macOS but the project binary is Linux — running CLI commands on the host will silently produce wrong results or fail. This skill prevents that mistake.

When to Use This

  • Running ss / skillshare commands for verification
  • Running go test, make test, make check
  • Reproducing a bug report
  • Testing a feature you just implemented
  • Starting the web UI dashboard
  • Any command that needs the skillshare binary or Go toolchain

When NOT to Use This

  • Editing source code (do that on host via Read/Edit tools)
  • Running git commands (git works on host)
  • Running make fmt, make lint (host-safe Go toolchain commands; no container needed)
  • E2E test runbooks → use cli-e2e-test skill instead (it handles ssenv isolation)

Architecture: Two Layers of Isolation

Host (macOS)
  └─ Devcontainer (Linux, Debian-based)
       ├─ Default HOME: /home/developer (persistent volume)
       ├─ Source: /workspace (bind-mount of repo root)
       └─ ssenv environments: ~/.ss-envs// (isolated HOME dirs)

Devcontainer = Linux environment with Go, git, pnpm, air (hot-reload). Source code is at /workspace (bind-mount of the host repo). The ss / skillshare wrapper auto-builds from source on every invocation — no manual make build needed. Edit code on the host, then immediately docker exec to run it; the change is picked up automatically.

ssenv = Isolated HOME directories within the devcontainer. Each env gets its own ~/.config/skillshare/, ~/.claude/, etc. Use ssenv when you need a clean state (testing init, install, sync) without polluting the container's default HOME.

Zero-Rebuild Workflow

Source code is bind-mounted into the container at /workspace. The ss wrapper runs go build transparently on every invocation:

  1. Edit files on host (Read/Edit tools)
  2. docker exec $CONTAINER ss — picks up your changes instantly
  3. No make build, no restart, no rebuild step

This also applies to go test — tests always compile against the latest source. The Web UI backend uses air for hot-reload (same zero-rebuild experience).

Entering the Devcontainer

The quickest way — one command builds, initialises, and enters the shell:

make devc           # build + init + interactive shell (one step)
make devc-up        # start only (no shell)
make devc-down      # stop
make devc-restart   # restart + re-run start-dev.sh
make devc-reset     # full reset (remove volumes), then `make devc` to re-init
make devc-status    # show container status

Works with or without VS Code — make devc handles the full lifecycle autonomously.

Programmatic access (for docker exec workflows)

CONTAINER=$(docker compose -f .devcontainer/docker-compose.yml ps -q skillshare-devcontainer 2>/dev/null)

If $CONTAINER is empty, tell the user: > Devcontainer is not running. Start it with make devc-up.

Then verify the binary:

docker exec $CONTAINER bash -c \
  '/workspace/.devcontainer/ensure-skillshare-linux-binary.sh && ss version'

Running Commands

Simple command (uses container's default HOME)

docker exec $CONTAINER ss  [flags]

Good for: ss version, ss status, ss list, ss check, ss audit.

Command with isolated HOME (clean state)

ENV_NAME="test-$(date +%s)"
docker exec $CONTAINER ssenv create "$ENV_NAME" --init
docker exec $CONTAINER ssenv enter "$ENV_NAME" -- ss status
# Cleanup when done:
docker exec $CONTAINER ssenv delete "$ENV_NAME" --force

Good for: testing init, install, sync, uninstall — anything that modifies config/state.

Multi-command sequence

docker exec $CONTAINER ssenv enter "$ENV_NAME" -- bash -c '
  ss install runkids/demo-skills --track --force
  ss list
  ss sync
'

Always use bash -c '...' for multi-command sequences inside ssenv enter.

Go tests

# All tests (unit + integration)
docker exec $CONTAINER bash -c 'cd /workspace && make test'

# Unit tests only
docker exec $CONTAINER bash -c 'cd /workspace && make test-unit'

# Integration tests only
docker exec $CONTAINER bash -c 'cd /workspace && make test-int'

# Specific test
docker exec $CONTAINER bash -c 'cd /workspace && go test ./tests/integration -run TestInit_Fresh -count=1'

# Specific package
docker exec $CONTAINER bash -c 'cd /workspace && go test ./internal/install/... -count=1'

Always cd /workspace before Go commands — ssenv changes HOME which can break module resolution.

Go tests with auth disabled

Some tests (e.g., TestResolveToken, TestAuthEnv) need auth credentials removed:

docker exec $CONTAINER bash -c '
  eval "$(credential-helper --eval off)"
  cd /workspace
  go test ./internal/github -run TestResolveToken -count=1
  eval "$(credential-helper --eval on)"
'

Web UI Dashboard

# Start (global mode)
docker exec $CONTAINER ui

# Start (project mode — uses ~/demo-project)
docker exec $CONTAINER ui -p

# Stop
docker exec $CONTAINER ui stop

Dashboard accessible at http://localhost:5173 (Vite dev server with HMR). API backend at http://localhost:19420. Logs: /tmp/api-dev.log, /tmp/vite-dev.log.

ssenv Quick Reference

| Shortcut | Full form | Purpose | |----------|-----------|---------| | ssnew | ssenv create + enter | Create and enter isolated shell | | ssuse | ssenv enter | Enter existing isolated shell | | ssrm | ssenv delete --force | Delete environment | | ssls | ssenv list | List all environments | | ssback | ssenv reset | Leave isolated context | | sshelp | help | Show all devcontainer commands |

For automation (non-interactive), prefer ssenv enter -- over ssnew/ssuse (which launch subshells).

Ports

| Port | Service | Notes | |------|---------|-------| | 5173 | Vite dev server | React dashboard with HMR | | 19420 | Go API backend | skillshare ui server | | 3000 | Docusaurus | docs command in devcontainer |

Common Mistakes to Avoid

  1. Running ss on host — macOS binary won't match Linux container; always docker exec
  2. Forgetting cd /workspace — Go tests fail if HOME was changed by ssenv
  3. Using make test on host — builds macOS binary, then tests run against wrong arch
  4. Skipping --init on ssenv create — env won't have config; most commands will fail
  5. Not cleaning up ssenvssenv delete --force after done; or ask user
  6. Running from /workspace root without -g — the ss wrapper auto-redirects to ~/demo-project in project mode; use -g for global or set SKILLSHARE_DEV_ALLOW_WORKSPACE_PROJECT=1
  7. Running make build before testing — unnecessary; the ss wrapper auto-builds from source every time

Rules

  • All CLI execution inside devcontainer — no exceptions
  • Use ssenv for stateful tests — don't pollute default HOME
  • Always verify — run the command and check output; never assume it worked
  • Clean up — delete ssenv environments after use (or ask user)
  • Report container ID — set $CONTAINER at the start and reuse throughout

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.