estebanmatias92/ooad-workflow

ooad-architect

C4 (Simon Brown) + UML + RDD/CRC (Wirfs-Brock) + GRASP (Larman) + GoF (Gamma) + Clean Architecture (Robert C.

Voir la source

Mode d’emploi

  1. Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
  2. Consultez le document original pour les outils, identifiants et environnements requis.
  3. Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/estebanmatias92/ooad-workflow --skill ooad-architect

Avant de commencer

  • L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
  • Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

OOAD Architect — Design

Transforms validated RE into architecture: C4/UML, RDD→GRASP responsibility assignment, data model, GoF selection, Clean 4 Layers layout with ADR-MADR. See references/ooad-vocabulary.md.

Preconditions

  • docs/02-requirements/ baselined (SRS or backlog).
  • docs/agents/workflow.md + docs/agents/architecture.md.
  • CONTEXT.md + conceptual-model.puml exist.

Process

1. Review RE

Read docs/02-requirements/SRS.md or backlog/US-*.md + UC-*.md + RTM.csv + conceptual-model.puml + context.puml.

Done when: every FR/UC/US is mapped to a conceptual class in RTM.csv and all NFRs that drive architecture are highlighted.

2. Propose architecture — do not proceed without human approval

Propose:

  • Style: Clean 4 Layers (Entities → Use Cases → Interface Adapters → Frameworks) default; alternatives MVC (Reenskaug) or Hexagonal (Cockburn) per docs/agents/architecture.md.
  • C4 (Simon Brown): L1 Context, L2 Container, L3 Component (per size).
  • UML (OMG): class-diagram.puml, sequence-diagram.puml per critical UC, state-diagram.puml if applicable.
  • Data model: ER → relational schema + normalization.
  • GoF (Gamma et al.): selection matrix Factory/Singleton | Adapter/Decorator/Proxy/Composite | Observer/Strategy/State/Command — justify each (problem solved, discarded alternative, and the tradeoff accepted — GoF's Mission is named solutions with evaluated consequences, not fashion).
  • Responsibility assignment — RDD → GRASP (Wirfs-Brock → Larman): start from docs/02-requirements/crc-cards.md; map every sequence message to a class operation and cite one GRASP pattern per mapping (default: Information Expert; creation: Creator; system events: Controller = UseCase, never UI/Framework; variation points: Protected Variations + the GoF that implements it; no-fit helpers: Pure Fabrication with cohesion rationale). Each mapping states the pattern's Mission: from references/ooad-vocabulary.md (one line — why this owner, not another). Reject God-controllers and feature-envy assignments (Low Coupling / High Cohesion check).
  • Modules/packages: responsibility per package.
  • Dependency Rule (Martin): imports point inward (Frameworks → Adapters → UseCases → Entities); flag violations.

Done when: user explicitly approves style, C4 levels, responsibility assignment (CRC→GRASP map), and GoF choices (ask: architecture OK? preferred pattern? add/remove?).

3. Produce artifacts (after approval)

docs/03-architecture/
├── c4-context.puml / c4-container.puml
├── class-diagram.puml       (→ .svg)
├── sequence-diagram-UC-001.puml
├── data-model-er.puml
├── adrs/
│   ├── 0001-clean-4-layer-architecture.md  (MADR — Starke)
│   ├── 0002-strategy-for-rules.md
│   └── 0003-orm-vs-sql.md
└── README.md

MADR format: Context → Decision → Consequences → Alternatives. Templates: templates/adr-madr.md, templates/c4.puml, templates/class-diagram.puml. Pre-render plantuml -tsvg docs/03-architecture/*.puml.

Done when: all PUML render to SVG; each ADR has Context/Decision/Consequences/Alternatives and references a motivating NFR-xxx; every sequence message cites its GRASP pattern; RTM.csv updated with FR→Class→ADR.

4. Update scaffold README

Create/update docs/03-architecture/README.md embedding SVGs:

markdown
![C4 Context](c4-context.svg)
![Classes](class-diagram.svg)

Done when: README.md renders both SVGs and explains layer responsibilities in 3 lines per layer.

Reference

Verify

  • [ ] C4/UML in PlantUML and SVGs rendered (plantuml -tsvg green)
  • [ ] Every ADR has context/decision/consequences/alternatives; justified GoF matrix
  • [ ] Every sequence-message → operation mapping cites a GRASP pattern plus its one-line Mission:; Controller is a UseCase; Protected Variations names its GoF
  • [ ] No God-controller / feature envy (Low Coupling + High Cohesion reviewed against CRC cards)
  • [ ] Dependency Rule respected; no Entities imports Frameworks
  • [ ] Every class/module traced FR/UC/US → RTM.csv; NFR → ADR
  • [ ] Human approval recorded

Gates by profile

  • RUP (Jacobson): Elaboration delivers executable architectural baseline.
  • Waterfall (Royce): Complete heavy SDD, detailed UML, signed.
  • Agile: Just-enough C4 + ADR per significant decision, UML only as needed.

Rules

Do not invent a layer outside docs/agents/architecture.md without new ADR.

Tâches connexes