Sd init
One-shot bootstrap for working with the SimplerDevelopment portal MCP. Verifies auth, surfaces the active client + brand profile, lists existing block_templates and email_templates so future skills can compose from them, and writes `.sd/config.json` (default brand profile id, default site id, brand snapshot) so sibling skills like sd-create-page / sd-create-deck / sd-create-email don't have to re-discover the tenant on every run. Use when the user says 'sd init', 'set up SD', 'connect to SimplerDevelopment', 'configure my SD workspace', 'bootstrap SimplerDev', or starts a fresh project that will produce content via the SD MCP. Idempotent — safe to re-run to refresh the snapshot.From its SKILL.md
npx -y skills add SimplerDevelopment/simplerdevelopment-skills --skill sd-initAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.5 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
sd-init
One-shot setup for SimplerDevelopment portal MCP work. Run once per project; it's idempotent. Writes .sd/config.json so every later content skill (sd-create-page, sd-create-deck, sd-create-email) starts knowing which client, brand profile, and site it's operating against.
What this skill does
-
Verify MCP auth. Calls
mcp__simplerdevelopment__whoami. If unauthenticated, walk the user through adding the SD MCP server in their Claude Code config or claude.ai connector. Stop until auth works — every other step depends on it. -
Resolve the active client + sites. Call
mcp__simplerdevelopment__client_getandmcp__simplerdevelopment__sites_list. If there's exactly one site, default to it. If there are multiple, ask the user which site is the "active" one for this project. Record bothclientIdanddefaultSiteId. -
Resolve the default branding profile. Call
mcp__simplerdevelopment__branding_list_profiles. Pick the one withisDefault: true. If none exists, offer to create one withmcp__simplerdevelopment__branding_create_profileusing whatever the user can give you (company name + primary color is the absolute minimum). If the user wants to skip this, don't proceed — every later content skill defaults to this profile, and skipping it leads to off-brand output. -
Pull the brand messaging snapshot. Call
mcp__simplerdevelopment__branding_get_messagingfor the resolved profile. Capture: companyName, tagline, valueProposition, toneOfVoice, brandPersonality, keyDifferentiators, targetAudience, elevatorPitch, boilerplate. This is the source material future skills lean on; if any of those are empty, flag to the user with a one-line "your brand voice is sparse, content quality will suffer" warning — don't fix it inline (that's a separate workflow). -
Pull the logo + asset snapshot. From the same
branding_get_profileresponse, capture the logo URLs:logoUrl(wide),logoSquareUrl,logoRectUrl,logoIconUrl,logoText,logoAlt. Skills undersd-create-*use these by default to brand every artifact they produce. IflogoUrlis null, surface explicitly: "no wide logo on the brand profile — content will fall back to the wordmark; upload viabranding_update_profileto elevate." -
Audit contrast. Call
branding_check_contrastfor the brand pairs that will appear on every artifact:textColorvsbackgroundColor(body)- white (
#FFFFFF) vsprimaryColor(typical CTA) - white (
#FFFFFF) vsaccentColor(alternate CTA)
Record the WCAG ratios in
.sd/config.json:brand.contrast. If any pair fails 4.5:1 for body text or 3:1 for large/UI text, flag it — the failing pair becomes alearnings.mdrule ("never put white on accent — fails contrast; use near-black instead"). -
Inventory reusable assets.
mcp__simplerdevelopment__block_templates_list— record{ id, name, slug, category, scope }for every published template.mcp__simplerdevelopment__email_templates_list— record{ id, name, category }for every email template.- Note which categories are present (hero, cta, footer, testimonials, etc.) and which are missing — the create skills check this list before inventing new blocks from scratch.
-
Seed the starter library (only if asked). If the user explicitly says "set me up" or "seed templates", offer to create a starter pack:
- Block templates: hero, three-column feature grid, CTA band, testimonial, pricing tier, footer.
- Email templates: welcome, announcement, newsletter.
- Deck theme: cover, content, section break, closing (as
scope: blocktemplates that future deck skills can pull in). Each creation uses*_createwith the resolved brand profile applied. Don't seed silently — list what you'd create and confirm.
-
Bootstrap
.sd/learnings.mdif it doesn't already exist. Use the template from thesd-learnskill (canonical header +## Active rules+## Artifact logsections, no entries yet). Skills undersd-create-*will read this file on every run to pick up accumulated user feedback. -
Write
.sd/config.jsonin the working directory. Shape:{ "version": 1, "generatedAt": "2026-05-14T...", "client": { "id": 123, "name": "..." }, "defaultSiteId": 456, "brand": { "profileId": 789, "profileName": "Default", "primaryColor": "#0F172A", "secondaryColor": "#2563EB", "accentColor": "#06B6D4", "backgroundColor": "#FFFFFF", "textColor": "#0F172A", "headingFont": "Inter", "bodyFont": "Inter", "logos": { "logoUrl": "...", "logoSquareUrl": "...", "logoRectUrl": "...", "logoIconUrl": "...", "logoText": "...", "logoAlt": "..." }, "contrast": { "bodyOnBg": 12.6, "whiteOnPrimary": 16.1, "whiteOnAccent": 2.8, "warnings": ["whiteOnAccent fails WCAG-AA (need 4.5, got 2.8) — never use white text on accentColor; use textColor instead"] }, "messaging": { "companyName": "...", "tagline": "...", "toneOfVoice": "...", "valueProposition": "...", "keyDifferentiators": ["..."], "targetAudience": "..." } }, "inventory": { "blockTemplates": [{ "id": 1, "slug": "hero-default", "category": "section" }], "emailTemplates": [{ "id": 1, "name": "Welcome", "category": "welcome" }] } }Future skills read this file first so they don't burn tokens re-fetching every run. If it's stale (>14 days), they'll re-call
whoamito verify and refresh.
When to re-run
- New site added to the client → refresh
inventory+defaultSiteId. - Brand messaging updated → refresh
brand.messaging. - New block_templates seeded → refresh
inventory.blockTemplates. - API key rotated → re-verify auth.
Re-running with no flag does the full pass and overwrites .sd/config.json. Pass --refresh-inventory to skip the auth/brand prompts and only re-pull the template lists.
Inputs to ask
Only ask if these can't be auto-resolved:
- Which site is active (if
sites_listreturns more than one and there's no obvious match). - Should I create a default brand profile (if none exists). Default to "no, you do this in the portal first" unless the user pushes.
- Should I seed the starter library (only if the user asked to "set up everything"). Default to "no" — most projects already have templates.
Failure modes
- whoami returns 401 → MCP server isn't connected. Show the connect-MCP instructions for Claude Code and stop.
- No default brand profile + user declines to create one → write
.sd/config.jsonwithbrand: nulland warn that content skills will use the SimplerDev house defaults instead of a tenant brand. - Tenant has 0 sites → most likely a setup error in the portal. Stop and tell the user to create at least one site in
/portal/websitesbefore running this skill.
Output
A .sd/config.json file plus a 5-line summary printed to the user:
- Client name + id
- Active site name + id
- Brand profile name + key tone descriptors
- Number of block templates + email templates discovered
- Whether starter library was seeded
Install
This skill ships as part of the SimplerDevelopment client skills bundle. Install the full skill bundle in one step from the portal:
https://simplerdevelopment.com/install
macOS, Windows, and Linux installers download the bundle to ~/.claude/skills/. Both Claude Desktop and Claude Code auto-discover skills from that path on next restart.
See CLIENT_QUICKSTART.md (installed alongside this file) for the full setup walkthrough, including the MCP-server config Claude Desktop needs and the one-time sd-init bootstrap.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.