# GovOPlaN Campaign Codex Guide ## Documentation Contract - Treat documentation as part of every behavior change. Update this module's manifest-driven `DocumentationTopic` contributions for affected user and administrator behavior. - Keep feature content here; `govoplan-docs` projects it without importing Campaign internals. - Maintain a static user/admin baseline and run `/mnt/DATA/git/govoplan/tools/checks/check-manifest-shapes.py` after behavior or manifest changes. ## Scope This repository owns the `campaigns` module: campaign authoring, validation, message building, attachment resolution, queue/review/send control, reports, campaign module manifest, and `@govoplan/campaign-webui`. Core owns auth, tenants, RBAC, database/session primitives, CSRF/API helpers, shared components, and shell layout. Files and mail integrations are optional and must be accessed through core module metadata or capabilities. ## Local Commands Install and run through core: ```bash cd /mnt/DATA/git/govoplan-core ./.venv/bin/python -m pip install -r requirements-dev.txt ``` Focused WebUI tests: ```bash cd /mnt/DATA/git/govoplan-campaign/webui PATH=/mnt/DATA/git/govoplan-core/webui/node_modules/.bin:/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run test:policy-ui PATH=/mnt/DATA/git/govoplan-core/webui/node_modules/.bin:/home/zemion/.nvm/versions/node/v22.22.3/bin:$PATH /home/zemion/.nvm/versions/node/v22.22.3/bin/npm run test:template-preview ``` For combined checks, run: ```bash cd /mnt/DATA/git/govoplan tools/checks/check-focused.sh ``` ## Working Rules - Do not add required files/mail imports for campaign startup. - Use core-provided capabilities or module metadata for optional file chooser, managed file usage, mail profile, delivery, and mailbox behavior. - Shared WebUI components belong in core; campaign WebUI should consume them through `@govoplan/core-webui`. - Avoid DataGrid changes unless explicitly requested.