| 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
.env from the main checkout using cp.
- Copy
AGENTS.override.md from the main checkout using cp.
Local Command Environment
- Never use
mise exec.
- If the task depends on mise-provided tools or environment, run
mise trust && mise install first.
- If a Mix command fails because
DATABASE_URL, TYPESENSE_URL, or another runtime env var is missing, first fix local mise/environment setup yourself before reporting a blocker.
Start Docker Compose
- Run
docker compose up -d.
Setup 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:123 or 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 down to 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.ts when 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
Self-review
- Run
mix format.
- Run
mix check.
- Run Dialyzer checks locally (for example
mix dialyzer when 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 modify docker-compose.yml.