Context
Conventions (submission targets that bundle schema + hooks + file requirements) currently live in domain/deposition/. Both the deposition and ingest pathways reference conventions equally — conventions are shared infrastructure, not deposition-specific.
What
Extract ConventionService, Convention model, and convention commands/queries into their own domain/convention/ bounded context.
Files to move:
deposition/model/convention.py → convention/model/convention.py
deposition/service/convention.py → convention/service/convention.py
deposition/command/create_convention.py → convention/command/create.py
deposition/query/get_convention.py, list_conventions.py → convention/query/
deposition/port/convention_repository.py → convention/port/repository.py
- Convention-related routes from deposition router → convention router
Why
- Ingest references conventions equally with deposition
- Having conventions in
deposition/ creates a false ownership signal
- Clean bounded context with its own API, commands, queries
Effort
M — mechanical extraction, no logic changes. (human: ~1 day / CC: ~20 min)
Priority
P3 — cosmetic improvement, not blocking. Pairs well with #118 (enrichment rename).
Context
Conventions (submission targets that bundle schema + hooks + file requirements) currently live in
domain/deposition/. Both the deposition and ingest pathways reference conventions equally — conventions are shared infrastructure, not deposition-specific.What
Extract ConventionService, Convention model, and convention commands/queries into their own
domain/convention/bounded context.Files to move:
deposition/model/convention.py→convention/model/convention.pydeposition/service/convention.py→convention/service/convention.pydeposition/command/create_convention.py→convention/command/create.pydeposition/query/get_convention.py,list_conventions.py→convention/query/deposition/port/convention_repository.py→convention/port/repository.pyWhy
deposition/creates a false ownership signalEffort
M — mechanical extraction, no logic changes. (human: ~1 day / CC: ~20 min)
Priority
P3 — cosmetic improvement, not blocking. Pairs well with #118 (enrichment rename).