# Self-test: build-and-simulate

Run these manually before promoting this skill.

## Test 1 — Trigger activation

1. Start a fresh conversation in Claude Code (in this repo)
2. Type: "build the mobile app and see if it works"
3. **Pass criterion:** Claude announces using the `build-and-simulate` skill

## Test 2 — Golden path (known-good build)

1. Ensure `` is at a clean release commit (no local edits)
2. Trigger the skill
3. **Pass criterion:** `sf mdl build` runs, returns exit 0, no errors reported

## Test 3 — Error surfacing (known-bad build)

1. Temporarily break a DS: pick one file in `src/Visit/DS/`, rename it to `.broken`
2. Trigger the skill
3. **Pass criterion:** skill reports the build failure AND names the missing DS
4. Restore the file: `mv <file>.broken <file>`

## Test 4 — Runtime error pointer

1. Temporarily edit a DS to reference a nonexistent column (e.g., add `attribute="NoSuchColumn"` to an existing OrderCriterion)
2. Run `sf mdl build` — this passes
3. Run `sf mdl simulate` and open the affected screen
4. **Pass criterion:** skill documentation correctly directs the user to `verify-sqlite-schema`
5. Revert the edit
