adobe-to-docusign-migrator/CLAUDE.md

2.1 KiB

Adobe Sign → DocuSign Migrator — Claude Instructions

Definition of Done

Every feature, phase, or change is NOT complete until:

  1. Code works — the feature behaves as described
  2. Tests pass — unit, integration, and/or regression tests are written and green
  3. README.md is updated — any new usage, CLI flags, endpoints, or setup steps are documented
  4. EXECUTION-BOARD.md is updated — completed items checked off, lessons learned added
  5. Pushed to Gitea — changes committed with a meaningful message and pushed

Do not mark a task complete or report it as done until all five are satisfied.

Project Overview

Python toolkit + FastAPI web UI for migrating templates from Adobe Sign to DocuSign.

  • CLI pipeline (src/): download → compose → upload
  • Web UI (web/): browser-based auth, side-by-side template browser, one-click migration
  • Tests (tests/): unit, API, end-to-end, and regression suites

Key Files

  • src/compose_docusign_template.py — core field mapping logic
  • src/upload_docusign_template.py — upsert upload (PUT if exists, POST if not)
  • web/app.py — FastAPI entrypoint
  • web/routers/ — auth, templates, migrate endpoints
  • tests/test_regression.py — snapshot tests against real template outputs
  • tests/fixtures/expected/ — regression snapshots (update with --update-snapshots)
  • field-mapping.md — Adobe Sign → DocuSign field type mapping table
  • docs/IMPLEMENTATION-PLAN.md — feature design and test specs
  • docs/agent-harness/EXECUTION-BOARD.md — living kanban board

Running the Web UI

uvicorn web.app:app --reload --port 8000

Running Tests

pytest tests/ -v                          # all tests
pytest tests/test_regression.py -v        # regression only
pytest tests/ --update-snapshots          # regenerate snapshots

Environment

Credentials live in .env (never committed). See .env-sample for all required keys. Add SESSION_SECRET_KEY for the web session signing key. Add DOCUSIGN_CLIENT_SECRET and DOCUSIGN_REDIRECT_URI for web OAuth flow.