Skip to content

Developer checklist

Owner: Developer experience team Scope: Every MVP release candidate must pass or document exceptions.

The developer journey covers: run locally → understand docs → add a runtime adapter → add a scenario → run tests → read debug output → file an issue.


Terminal window
# From repo root:
python -m pytest tests/acceptance/test_developer_flow.py -v
Test classWhat it verifiesCI label
TestMonorepoStructureExpected directories and entry-point scripts are present[setup]
TestSchemaLoadconvsim_core, convsim_prompt, runtime types, and JSON schemas all load[setup]
TestPackValidationCLIvalidate_pack_dir is callable; returns [] on valid pack; official packs pass[pack-valid]
TestRuntimeRegistryFake runtime ID is "fake", reports READY, lists at least one model[health]
TestDebugLoggingSession create emits at least one log record; health endpoint includes runtime and database[health]
TestAdapterStubA subclass of FakeChatRuntime satisfies the adapter interface[setup]
TestOfficialPackGateAll official packs pass validate_pack_dir[pack-valid]
TestBackendHealth/api/health returns status: ok; has status, database, runtime fields[health]

All automated checks must pass before any manual step begins.


Terminal window
git clone https://github.com/outrightmental/ConversationSimulator.git
cd ConversationSimulator
./scripts/setup.sh
./scripts/dev.sh
  • setup.sh completes without errors
  • dev.sh starts all services; logs show no error-level lines at startup
  • curl http://127.0.0.1:7355/api/health returns {"status": "ok", ...}

Read the repository README, Architecture, and Runtime adapters.

Follow Runtime adapters.

  • Create a minimal adapter class that extends FakeChatRuntime
  • Override id and display_name
  • Confirm the adapter’s health() returns READY
  • (Automated: TestAdapterStub above covers this)

Follow Scenario authoring.

  • Create a new scenario YAML under packs/local-dev/<my-pack>/scenarios/
  • Run node packages/scenario-schema/tests/validate-packs.js packs/local-dev/<my-pack> — exits 0
  • Scenario appears in the /api/scenarios list after restart
Terminal window
# Backend
cd services/convsim-core && python -m pytest -v
# Acceptance
cd ../.. && python -m pytest tests/acceptance/ -v
# Frontend
pnpm --filter @convsim/web test
pnpm --filter @convsim/cli test
  • All backend tests pass
  • All acceptance tests pass
  • Frontend tests pass (or known failures documented)
Terminal window
cd services/convsim-core
CONVSIM_LOG_LEVEL=DEBUG python -m convsim_core.main &
curl -s -X POST http://127.0.0.1:7355/api/sessions \
-H 'Content-Type: application/json' \
-d '{"scenario_id":"behavioral_interview","difficulty":"standard","player_role_name":"Dev","language":"en","input_mode":"text-only","tts_enabled":false,"show_state_meters":false,"save_transcript":true}'
  • DEBUG log lines appear in the terminal for the session create call
  • Log lines include session_id and scenario_id context
  • Developer can find the issue templates in .github/ISSUE_TEMPLATE/
  • Bug report template includes reproduction steps and environment fields
  • Developer can link to Contributing for guidelines

ItemResultTesterDateNotes
Automated suitePASS / FAIL
D-M1 Run locallyPASS / FAIL / SKIP
D-M2 Understand docsPASS / FAIL / SKIP
D-M3 Add adapterPASS / FAIL / SKIP
D-M4 Add scenarioPASS / FAIL / SKIP
D-M5 Run testsPASS / FAIL / SKIP
D-M6 Debug outputPASS / FAIL / SKIP
D-M7 File issuePASS / FAIL / SKIP

Release decision: All automated checks PASS + manual checks D-M1 through D-M7 PASS (or documented SKIP) required before MVP tag.