name: "vmemo-development" description: "Unified Vmemo local development workflow: setup-state check, reset decision, and temporary port conflict handling."
Vmemo Development Skill
This skill is the source of truth for local environment bootstrap commands, reset flow, and temporary port-conflict handling.
Focus only on:
- whether environment is already setup
- whether reset is required
- temporary port remap when conflicts exist
Prepare
- Run
mise trust && mise install. - Copy
.envfrom the main checkout usingcp. - Copy
AGENTS.override.mdfrom the main checkout usingcp.
Start Docker Compose
- Run
docker compose up -d.
Setup mix
- Run
mix setup.
Reset
- Run
mix reset.
Test
- Run
docker compose --profile test up -d. - Default: run only modified test cases (for example
mix test test/path/to_case_test.exs:123or targeted files). - When test files are modified, rerun only failed tests first with
mix test --failed. - Run full test suite only when explicitly requested.
- Run
docker compose --profile test downto clean up.
Debug And Local UI Validation
- Prefer real data and real UI interactions when debugging.
- For upload-related tests, use files under
test/support/fixtures/images/. - For Playwright e2e, keep one page per
*.spec.tswhen adding new page-level coverage. - Prefer visible text, roles, and labels selectors before CSS-detail selectors.
- Use headed browser mode locally for UI debugging when available.
- Use screenshot snapshot assertions for visual checks when visual behavior is under test.
Local shared test account:
email = "test@example.com"
password = "pass123456"
Check
- Run
mix check.
Self-review
- Run
mix format. - Run
mix check. - Run Dialyzer checks locally (for example
mix dialyzerwhen configured). - Run ElixirLS diagnostics in local editor/workspace and review warnings/errors.
- Fix all errors and warnings found by the checks above before finishing the task.
Notes
- Temporary port handling must be done via
docker-compose.override.yml; do not modifydocker-compose.yml.