contract/ contains reviewed Django observations for the named cases in
harness/contract.go. Each observation includes the request, status, relevant
headers, response, and database state after restoring the small fixture.
To load database rows for local use, follow the fixture commands in the main README. The JSON files here are recorded HTTP expectations, not database imports.
Regeneration is explicit and must target the original Django logic. First run
bin/build and bin/reference setup from the repository root, then keep
bin/reference serve running in another terminal. The Python reference requires
Python 3.14 and uv. From the repository root:
cd harness
./harness capture --db 'dbname=assignment_harness_django' --url http://127.0.0.1:18000
./harness verify --db 'dbname=assignment_harness_django' --url http://127.0.0.1:18000
Review capture diffs. Never regenerate from the Go candidate to resolve a failure. The two Go modules are independent; the harness uses only HTTP and PostgreSQL.
The three go-service/compat_errors/*.txt assets are mechanically exported
representations of Django's debug failures. They are deliberately emulated legacy
responses, not actual Go stack traces. Stable trace contents remain in scope by
the agreed compatibility policy. These assets are coupled to the locked reference
framework versions and must be recaptured/reviewed if those change. Production
mode suppresses them and returns generic JSON errors.
The full synthetic fixture generator is a separate workload. Its fixed PRNG seed, fixed UTC time anchor, and ordered link insertion reproduce identical data in both target databases. It has 1,000 users, 50 tags, 100,000 posts, 500,000 comments, and 243,116 post/tag associations. It does not claim to reproduce Faker's exact output.