Sd init
Claude Code skills for the SimplerDevelopment.com portal — draft pages, decks, emails, surveys, and full websites via MCP, all human-in-the-loop.
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.
What its author says it does
Copied from the file, not written here
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.
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.