89f559ce62
4 plans across 3 waves: SDK + registry (W1), Domaincheck module + lazy loading (W2), visual verification (W3). Covers MOD-01..04, DCHK-01..03. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
131 lines
4.7 KiB
Markdown
131 lines
4.7 KiB
Markdown
---
|
|
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: []
|
|
---
|
|
|
|
<objective>
|
|
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.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
@/home/vicolab/.claude/gsd-core/workflows/execute-plan.md
|
|
@/home/vicolab/.claude/gsd-core/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.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
|
|
</context>
|
|
|
|
## 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.
|
|
|
|
<tasks>
|
|
|
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
<name>Task 1: Verify Module System End-to-End</name>
|
|
<what-built>
|
|
Complete module system with SDK, database registry, per-tenant activation, lazy-loaded frontend, and working Domaincheck module.
|
|
</what-built>
|
|
<how-to-verify>
|
|
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)
|
|
</how-to-verify>
|
|
<read_first>
|
|
.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
|
|
</read_first>
|
|
<acceptance_criteria>
|
|
- 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
|
|
</acceptance_criteria>
|
|
<resume-signal>Type "approved" or describe issues to fix</resume-signal>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<threat_model>
|
|
## 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 |
|
|
</threat_model>
|
|
|
|
<verification>
|
|
Human confirms all 11 verification steps pass.
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
- Human types "approved" after verifying all success criteria from Phase 3 roadmap
|
|
- Or provides specific issues that will generate gap closure plans
|
|
</success_criteria>
|
|
|
|
## Artifacts this phase produces
|
|
|
|
| Symbol | Location | Type |
|
|
|--------|----------|------|
|
|
| (none — verification only) | | |
|
|
|
|
<output>
|
|
Create `.planning/phases/03-module-system-domaincheck/03-04-SUMMARY.md` when done
|
|
</output>
|