# Agent Instructions — Adobe Sign → DocuSign Migrator ## Definition of Done A task or phase is **not complete** until all of the following are true: - [ ] Feature works as specified - [ ] Tests written and passing (unit + integration + regression as applicable) - [ ] **README.md updated** with any new setup steps, CLI usage, flags, or endpoints - [ ] EXECUTION-BOARD.md updated — items checked off, results/lessons recorded - [ ] Changes committed and pushed to Gitea ## Execution Board See [EXECUTION-BOARD.md](EXECUTION-BOARD.md) for the current task list. ## Test Strategy | Layer | Tool | Location | |---|---|---| | Field mapping unit tests | pytest + responses | `tests/test_upload_upsert.py`, `tests/test_mapping.py` | | API endpoint tests | pytest + httpx TestClient + respx | `tests/test_api_*.py` | | End-to-end pipeline | pytest + respx mocks | `tests/test_e2e.py` | | Regression (compose output) | pytest snapshots | `tests/test_regression.py` | Run all tests: `pytest tests/ -v` Regenerate regression snapshots after intentional changes: `pytest tests/test_regression.py --update-snapshots` ## Branching / Commit Conventions - Work on `master` (small project, no feature branches needed unless scope is large) - Commit message format: `type: short description` (feat, fix, chore, docs, test) - Push to Gitea after every logical milestone ## Documentation Conventions - `README.md` — user-facing: setup, CLI usage, web UI usage, project structure - `docs/IMPLEMENTATION-PLAN.md` — design spec for features - `docs/agent-harness/EXECUTION-BOARD.md` — living kanban - `field-mapping.md` — Adobe Sign → DocuSign field type reference - `tests/PLATFORM-QUIRKS.md` — documented API bugs and workarounds - `CLAUDE.md` — persistent Claude Code instructions (definition of done, key files, run commands)