--- phase: 03-module-system-domaincheck plan: 04 type: execute wave: 3 depends_on: ["03-02", "03-03"] files_modified: [] autonomous: false requirements: - MOD-01 - MOD-02 - MOD-03 - MOD-04 - DCHK-01 - DCHK-02 - DCHK-03 must_haves: truths: - "All phase success criteria verified by human" - "Module system works end-to-end with domaincheck as proof" artifacts: [] key_links: [] --- Human verification that the complete module system and domaincheck module work as intended — admin activation, lazy loading, domain checking with colored results. Purpose: Final validation before marking Phase 3 complete. Output: Human approval or issues list for gap closure. @/home/vicolab/.claude/gsd-core/workflows/execute-plan.md @/home/vicolab/.claude/gsd-core/templates/summary.md @.planning/phases/03-module-system-domaincheck/03-01-SUMMARY.md @.planning/phases/03-module-system-domaincheck/03-02-SUMMARY.md @.planning/phases/03-module-system-domaincheck/03-03-SUMMARY.md ## Phase Goal **As a** platform admin, **I want to** discover, register, and activate modules dynamically, **so that** tenants get access to new functionality without application restarts. Task 1: Verify Module System End-to-End Complete module system with SDK, database registry, per-tenant activation, lazy-loaded frontend, and working Domaincheck module. 1. Start the Docker Compose stack: docker compose up -d 2. Log in as Admin user 3. Verify module registry API: - GET http://localhost:3001/modules — should show domaincheck module in list - GET http://localhost:3001/modules/active — should show activated modules for tenant 4. If domaincheck not yet activated, activate it: - POST http://localhost:3001/modules/{domaincheck-id}/activate 5. Navigate to http://localhost:3000/modules/domain-tools - Should see category page with Domaincheck card (icon, name, description) - Card should look good as a standalone module in the grid (D-05a) 6. Click "Open" on the Domaincheck card (or navigate to /modules/domain-tools/domaincheck) - Should see expanded view with input field (D-05b) 7. Enter "google" in the domain input and click "Check" - Should see results for google.de, google.com, google.net, google.org - google.com and google.de should show RED "Registered" badge (D-01) 8. Enter a clearly available domain (e.g. "xyzabc123randomtest") and check - Some TLDs should show GREEN "Available" badge 9. Verify i18n: switch language to English - All labels should change to English equivalents 10. Verify theme: switch to dark mode - Module UI should respect dark theme 11. Deactivate the module: - POST http://localhost:3001/modules/{domaincheck-id}/deactivate - Refresh /modules/domain-tools — domaincheck card should disappear - Direct access to /modules/domain-tools/domaincheck should be blocked (403 from API) .planning/phases/03-module-system-domaincheck/03-01-SUMMARY.md, .planning/phases/03-module-system-domaincheck/03-02-SUMMARY.md, .planning/phases/03-module-system-domaincheck/03-03-SUMMARY.md - Module registry shows domaincheck in database - Admin can activate/deactivate without restart (MOD-03) - Category page renders with lazy-loaded cards (MOD-04) - Domaincheck accepts input and returns colored results (DCHK-01, DCHK-02, DCHK-03) - Deactivated module is inaccessible - i18n and theming work correctly Type "approved" or describe issues to fix ## Trust Boundaries | Boundary | Description | |----------|-------------| | N/A | Verification-only plan, no new code | ## STRIDE Threat Register | Threat ID | Category | Component | Disposition | Mitigation Plan | |-----------|----------|-----------|-------------|-----------------| | T-03-12 | N/A | N/A | accept | No new attack surface — verification only | Human confirms all 11 verification steps pass. - Human types "approved" after verifying all success criteria from Phase 3 roadmap - Or provides specific issues that will generate gap closure plans ## Artifacts this phase produces | Symbol | Location | Type | |--------|----------|------| | (none — verification only) | | | Create `.planning/phases/03-module-system-domaincheck/03-04-SUMMARY.md` when done