Documents solution folder structure for AI agents
Adds AGENTS.md as the canonical description of the Application/Tests/Clients solution layout, mirrored into CLAUDE.md, .junie/guidelines.md, and .github/copilot-instructions.md so Claude, Junie, and Copilot all pick it up. Also un-ignores .junie/ so guidelines.md is tracked. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wi5qHAuq8UbzN4NLUFeKkJ
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
# SlpModularCms — Solution Structure
|
||||
|
||||
> Canonical copy: `AGENTS.md` (also mirrored in `CLAUDE.md` and `.github/copilot-instructions.md`). Update all four together.
|
||||
|
||||
This solution is organized into three top-level Solution Folders. Any agent working in this repo should respect this layout when adding, moving, or referencing projects.
|
||||
|
||||
- **Application** — Development versions of the applications: the Master and Slave APIs, plus a nested **Modules** solution folder containing the individual CMS modules (e.g. `SlpModularCms.Modules.Master`, `SlpModularCms.Modules.Identity`, `SlpModularCms.Modules.Availability`).
|
||||
- **Tests** — Test projects mirroring the structure of **Application**, with the same nested **Modules** grouping — except the Slave API, which has no test project.
|
||||
- **Clients** — The actual buildable/shippable API projects (e.g. `SlpModularCms.Api`).
|
||||
|
||||
When adding a new project:
|
||||
- A new module goes under `Application/Modules`, with its test project under `Tests/Modules`.
|
||||
- A new deployable API/client goes under `Clients`.
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
sessionId: session-260607-224229-1f53
|
||||
---
|
||||
|
||||
# Overzicht
|
||||
|
||||
### Doel
|
||||
|
||||
Genereer de user stories en persona's voor SlpModularCms.Api op basis van het goedgekeurde story generation plan.
|
||||
|
||||
### Goedgekeurde beslissingen
|
||||
|
||||
Vraag | Beslissing |
|
||||
---|---|
|
||||
Story organisatie | Feature-gebaseerd (Authenticatie, Gebruikersbeheer, Autorisatie, Setup, Modules, Beschikbaarheidscontrole) |
|
||||
Granulariteit | Standaard — "Als [rol] wil ik [actie] zodat [doel]" + basisacceptatiecriteria |
|
||||
Gebruiker standaard rechten | Alleen lezen + eigen profiel bewerken (behalve e-mail/rol) |
|
||||
Eigenaarschap overdracht | Meerdere eigenaars mogelijk (huidige behoudt rol) |
|
||||
Initieel wachtwoord | Uitnodigingslink per e-mail — gebruiker stelt zelf wachtwoord in |
|
||||
Refresh token | Rotation (eenmalig bruikbaar) |
|
||||
Eerste Eigenaar | Combinatie: seed script (dev) + setup-endpoint (productie) |
|
||||
Module rechten | Modules kunnen eigen rechten definiëren per Gebruiker |
|
||||
|
||||
### Te genereren artifacts
|
||||
|
||||
- `aidlc-docs/inception/user-stories/personas.md` — 3 persona's
|
||||
- `aidlc-docs/inception/user-stories/stories.md` — INVEST-compliant stories met feature-mapping, persona-mapping en acceptatiecriteria
|
||||
|
||||
# Stappen
|
||||
|
||||
### Uitvoeringsplan
|
||||
|
||||
**Stap 1**: Persona's definiëren (Eigenaar, Beheerder, Gebruiker)
|
||||
|
||||
**Stap 2**: User stories genereren per feature-domein:
|
||||
- Authenticatie (login, token refresh, logout, uitnodigingsflow)
|
||||
- Gebruikersbeheer (aanmaken via uitnodiging, bewerken, verwijderen, profielbeheer)
|
||||
- Autorisatie (rolbeheer, hiërarchische bevoegdheden, eigenaarschap overdracht)
|
||||
- Setup (eerste Eigenaar — seed + setup-endpoint)
|
||||
- Modules (laden, uitschakelen, module-specifieke rechten)
|
||||
- Beschikbaarheidscontrole (placeholder/stub)
|
||||
|
||||
**Stap 3**: Acceptatiecriteria toevoegen (INVEST-compliant)
|
||||
|
||||
**Stap 4**: Feature-story mapping (elke story getagd met feature-domein)
|
||||
|
||||
**Stap 5**: Persona-story mapping (elke story gelinkt aan persona('s))
|
||||
|
||||
**Stap 6**: Artifacts opslaan
|
||||
|
||||
# Delivery Steps
|
||||
|
||||
### ✓ Step 1: Stap 1-3: Persona's definiëren en stories genereren met acceptatiecriteria
|
||||
personas.md en stories.md zijn aangemaakt met alle INVEST-compliant user stories en acceptatiecriteria.
|
||||
|
||||
- Maak `aidlc-docs/inception/user-stories/personas.md` aan met 3 persona's: Eigenaar, Beheerder, Gebruiker
|
||||
- Maak `aidlc-docs/inception/user-stories/stories.md` aan met stories per feature-domein:
|
||||
- **Authenticatie**: login, token refresh (rotation), logout, uitnodigingsflow wachtwoord instellen
|
||||
- **Gebruikersbeheer**: gebruiker aanmaken via uitnodiging, bewerken, verwijderen, profielbeheer
|
||||
- **Autorisatie**: rol wijzigen, eigenaarschap overdragen, hiërarchische bevoegdheidsgrenzen
|
||||
- **Setup**: eerste Eigenaar via seed script (dev) en setup-endpoint (productie)
|
||||
- **Modules**: module laden bij startup, module uitschakelen, module-specifieke rechten per Gebruiker
|
||||
- **Beschikbaarheidscontrole**: stub/placeholder interactie
|
||||
- Elke story volgt het formaat: "Als [rol] wil ik [actie] zodat [doel]"
|
||||
- Elke story heeft basisacceptatiecriteria (Given/When/Then of bullet-stijl)
|
||||
- Checkboxes in story-generation-plan.md markeren als [x] na voltooiing
|
||||
|
||||
### ✓ Step 2: Stap 4-6: Feature-story mapping, persona-story mapping en state bijwerken
|
||||
Alle stories zijn getagd met feature-domein en persona('s), en de workflow state is bijgewerkt.
|
||||
|
||||
- Voeg feature-tag toe aan elke story (bijv. `[Feature: Authenticatie]`)
|
||||
- Voeg persona-koppeling toe aan elke story (bijv. `[Personas: Eigenaar, Beheerder]`)
|
||||
- Markeer resterende checkboxes in `story-generation-plan.md` als [x]
|
||||
- Werk `aidlc-docs/aidlc-state.md` bij: User Stories → IN PROGRESS → VOLTOOID
|
||||
- Log voltooiing in `aidlc-docs/audit.md`
|
||||
- Presenteer completion message met review links
|
||||
Reference in New Issue
Block a user