add-settings-page

Creates and audits Sim settings pages against the shared SettingsPanel design system.

29.5k|3.8k|Updated Jan 5, 2025
One-click install
npx skills add https://github.com/simstudioai/sim --skill add-settings-page
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-settings-page
Source: https://github.com/simstudioai/sim/tree/main/.claude/skills/add-settings-page
Command: npx skills add https://github.com/simstudioai/sim --skill add-settings-page

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Settings pages in the Sim codebase can drift from the shared design system, producing hand-rolled shells, inconsistent titles, literal pixel text sizes, and duplicated save/discard logic. This Skill provides a repeatable procedure to add new settings pages correctly and audit existing ones for compliance.

Core Features & Use Cases

  • Add new settings pages: Register navigation metadata in navigation.ts, wire the section switch, and build the page body inside the shared SettingsPanel primitive with proper actions, search, and save/discard wiring.
  • Audit existing pages: Run grep-based checks to find hand-rolled shells, title blocks, literal pixel text sizes, and non-centralized unsaved-changes handling, then migrate pages structurally without touching logic.
  • Migrate list rows: Convert hand-rolled resource rows to the SettingsResourceRow primitive with correct trailing/badge/navigable semantics.
  • Use Case: When asked to add a new billing settings tab, follow Mode A to register the nav item, lazy-load the component in the section switch, and compose the page inside SettingsPanel with SaveDiscardActions and the unsaved-changes guard.

Quick Start

Add a new settings page for API keys following the SettingsPanel conventions and verify it with type-check and biome.

Frequently Asked Questions about add-settings-page

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new settings page in the Sim app?

Add the section id and a NavigationItem with a description in navigation.ts, wire the component into the effectiveSection switch in settings.tsx with lazy dynamic import, and build the body inside SettingsPanel using its actions and search props.

How do I audit Sim settings pages for design-system compliance?

Run the documented git grep checks for hand-rolled shells, title blocks, and literal pixel text sizes like text-[12px]. Confirm each page imports SettingsPanel, uses SaveDiscardActions, and routes dirty state through useSettingsUnsavedGuard.

When should I use SettingsResourceRow instead of a custom row?

Use SettingsResourceRow for standard list rows with a title, optional description, and trailing controls. Keep bespoke layouts only for genuinely different shapes like multi-line bodies, tabular columns, or grids.

Can I change page logic when migrating a settings page to SettingsPanel?

No. Mode B migrations must be purely structural: swap the shell to SettingsPanel, move header chips to actions, and delete the title block without touching handlers, state, queries, or conditional rendering.

How do I handle unsaved changes on editable settings pages?

Place SaveDiscardActions in the panel actions and call useSettingsUnsavedGuard before any early-return gate. Never hand-roll a Save button, beforeunload listener, or unsaved-changes modal since these are centralized.