add-sample-data
Installation
SKILL.md
π Shared instructions: shared-instructions.md β read first.
Add Sample Data
Populate Dataverse tables with realistic sample records so a freshly-scaffolded code app shows real-looking data on first launch. Generates rows from each table's schema and inserts them in dependency order. Use after /add-dataverse (or /setup-datamodel) has created the tables.
Core principles
- Coverage over volume β every table in the manifest gets seeded. The #1 failure mode of a freshly-scaffolded code app is a home / dashboard / list screen that renders an empty state on first launch because its source table has zero rows. An empty downstream table is worse than a 3-row table. Default to minimal-but-complete: small counts everywhere, no table left empty. Volume is a secondary knob β coverage is the contract.
- Insertion order matters. Parent / referenced tables must be inserted before child / referencing tables so lookup IDs are available.
- Contextual data, not Lorem Ipsum. Generate values that match column names + types. A
cr3e9_sitenamecolumn in an inspection app gets "Westside Construction Site", not "Sample Name 1". - Scenario-aware rows. Read
native-app-plan.md, especially### Shared Conventionsand per-screenOperational patternvalues defined in screen-templates.md. Seed rows should exercise the app's actual workflow: statuses, dates, relationships, priority/severity, media metadata, and edge cases that make the planned first viewport light up. - Fail gracefully. On insertion failure, log the error and continue with remaining records β never auto-rollback. The user can re-run after fixing the issue.
- Idempotent re-runs. If a previous run partially completed, the second run reads
memory-bank.md's seeded-data table and skips records already inserted. - Solution-scoped inserts. Always pass
--solution <uniqueName>so records land in our solution, not the default.
Workflow
- Verify project + auth β 2. Discover tables β 3. Select tables + count β 4. Generate + preview β 5. Insert β 6. Summary