Install
$ agentstack add skill-adaptocms-adapto-cms-agent-skills-adapto-install Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ 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.
About
adapto:install
The global bootstrap — like npm create. It makes the toolchain ready, then hands off to the right setup skill. It writes no CMS content (mutates: false), but it does perform host-level changes (installing/upgrading the CLI), which are gated by explicit consent per CLAUDE.md §3.12.
When to use
- First-time setup / the front door: "set up adapto", "get started", "adapto init". It preflights
(adapto:doctor), ensures the CLI, then routes to adapto:scaffold. (No separate adapto:init — this is it.)
- The
adaptoCLI is missing or out of date (e.g.adapto:doctorflagged it). - Starting a new Adapto project.
When not to use
- Routine content/schema/translation work → the specific skill.
- Only checking whether things are OK →
adapto:doctor(read-only; it never installs anything).
Inputs
- New project vs existing repo (auto-detect from cwd; confirm with the user).
- New projects: framework (
next|astro|sveltekit) and, optionally, a public API key. - Optional: a specific CLI version to install (defaults to the supported baseline,
>=0.0.7).
Outputs
adaptoCLI installed and at/above the baseline, verified viaadapto version.- The user routed to
adapto:scaffoldto create a new project. - (v1, spec-level) per-repo skill pack installed under
.claude/skills/+.adapto/skills.lockpins.
Preconditions
- A shell, network, and
curlorwget. Node 20+ for thecreate-adapto-apppath. - Does NOT require the CLI — installing/upgrading it is this skill's job (same self-bootstrapping
exception as adapto:doctor not requiring auth). The requires.cli range above is the target it ensures, not a gate that blocks the skill from running.
Flow
A. Ensure the CLI — consent-gated (CLAUDE.md §3.12)
- Check: run
adapto version. Three cases:
- Missing (
adaptonot found on PATH) → propose install. - Below baseline (
"Your Adapto CLI is`. I'd like to install it by running:
> curl -sSL https://raw.githubusercontent.com/adaptocms/adapto-cms-cli/main/scripts/install.sh | bash > This downloads the latest release binary to /usr/local/bin/adapto and may prompt for your password. Run it?"
- On consent: run the command, then re-verify with
adapto versionand report the new version.
If declined: stop, and print the command so the user can run it themselves.
⚠️ install.sh installs latest, which may be newer than the verified baseline (v0.0.7). If the result is ahead of the baseline, say so and recommend re-running adapto:doctor and re-syncing shared/cli-cheatsheet.md (the CLI is pre-1.0 — module names can change between releases). To install the exact pinned version instead, download https://github.com/adaptocms/adapto-cms-cli/releases/download/v0.0.7/adapto-- and place it on PATH (advanced; bypasses install.sh). Either way, the §3.12 consent flow still applies.
B. Authenticate — register or log in (the ONLY step until auth succeeds)
Probe auth with adapto auth me --json 2>&1 || true. Append || true (or branch on the JSON) so the expected "not logged in" result — which exits non-zero — doesn't surface as a red Error: Exit code 1; a not-authenticated state is a normal branch here, not a failure. Don't chain it after adapto version in one compound command: the compound takes the last command's exit code, so a clean version check looks failed.
If the probe shows not authenticated, present exactly these two items and nothing else yet — no API-key step, no npm run dev (the API-key step comes after auth, because its URL needs the tenant id that only auth provides):
- New to Adapto? Register:
https://app.adaptocms.com/auth/register?ref=agent-skills
(offer to open it — macOS open / Linux xdg-open / Windows start ). Registering does not log you in — once it's done, run the Log in command below.
- Log in — run this in the prompt, replacing the placeholders with your own credentials:
`` ! adapto auth login --email --password ` Interactive login isn't available inside the agent session (no TTY), so credentials go on the command line. ⚠ That records the password in session history — to avoid it, run **adapto auth login** (bare) in a **separate terminal**, where it prompts securely. Headless/CI: set ADAPTOTOKEN + ADAPTOTENANT_ID`.
The agent never fills in real values — only the user types into the placeholders. After login, re-run the probe (adapto auth me --json 2>&1 || true) to confirm.
Then — as part of this auth check — establish the working tenant. Don't assume the saved/active one (CLAUDE.md §3.5). List with adapto auth orgs --json:
- 2+ tenants → present a specific picker: the tenants as pickable options under **"Which Adapto
project do you want to work in?"** — every flow. Never inherit the active one or merely confirm it; show the full picker. Then adapto auth switch-tenant --tenant-id .
- Exactly one → state it and proceed (nothing to pick).
Only then continue (→ scaffold / API-key step). The chosen tenant scopes everything downstream. (See adapto:doctor.)
C. Route the project
- Route to
adapto:scaffold(wrapscreate-adapto-app; the read-client ships with it). This variation
supports new projects only — there is no existing-repo/retrofit flow.
D. Install the per-repo skill pack — v1, spec-level
Copy the per-repo skills into .claude/skills/ and write .adapto/skills.lock with version pins. (Detailed in a later build pass.)
Errors and recovery
- No
curl/wget→ instruct a manual download from GitHub Releases (no silent fallback). install.shneeds sudo / permission denied → surface the prompt; the user types their password.
The agent never fabricates, echoes, or logs it.
- Version still below baseline after install → likely a stale PATH shadow; suggest
which -a adapto. - User declines the upgrade → proceed with the manual command printed;
adapto:doctorwill keep
flagging the version until it's upgraded.
Forbidden actions
- Never run the install/upgrade (or any host-modifying command) without explicit per-command consent
(CLAUDE.md §3.12 / [forbidden-actions.md](../../shared/forbidden-actions.md)): inform → show command → consent → run → verify.
- Never echo or log a
sudopassword or any secret value. - Never replace or modify the read-client that
create-adapto-appprovides (incl. editing its endpoint
paths). If the generated frontend misbehaves, report it to the user — don't patch the client (§3.11).
- Never write CMS content (
mutates: false).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: adaptocms
- Source: adaptocms/adapto-cms-agent-skills
- License: MIT
- Homepage: https://adaptocms.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.