Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 9 additions & 19 deletions .flowr/flows/architecture-flow.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
flow: architecture-flow
version: 5.0.0
version: 6.0.0
exits:
- complete
- needs_discovery
Expand All @@ -15,21 +15,18 @@ states:
in:
- product_definition.md
- domain_model.md
- system.md
- technical_design.md
- context_map.md
- "technical_design.md" # optional
- "context_map.md" # optional
out:
- product_definition.md:
- deployment
- quality_attributes
conditions:
architecture_complete:
system_md: ==exists
technical_design_md: ==exists
context_map_md: ==exists
deployment_matches_codebase: ==verified
architecture_exists:
system_md: ==exists
technical_design_md: ==exists
context_map_md: ==exists
no_architecture_exists:
Expand Down Expand Up @@ -74,7 +71,7 @@ states:

- id: technical-design
attrs:
description: "SA designs the technical solution — architectural style, stack, module structure, API/event contracts, interface definitions — and updates the system overview"
description: "SA designs the technical solution — architectural style, stack, module structure, API/event contracts, interface definitions"
owner: SA
git: main
skills:
Expand All @@ -83,8 +80,8 @@ states:
- context_map.md
- domain_model.md
- glossary.md
- system.md
- product_definition.md
- "technical_design.md" # optional
out:
- technical_design.md:
- architectural_style
Expand All @@ -97,18 +94,13 @@ states:
- c4_diagrams
- dependencies
- configuration_keys
- system.md:
- context
- container
- module_structure
- delivery
next:
done: review-signoff
needs_decisions: adr-draft

- id: adr-draft
attrs:
description: "SA documents architecturally significant decisions as ADRs and records key decisions and active constraints in system.md"
description: "SA documents architecturally significant decisions as ADRs and records key decisions and active constraints in technical_design.md"
owner: SA
git: main
skills:
Expand All @@ -119,9 +111,8 @@ states:
- domain_model.md
- product_definition.md
- glossary.md
- system.md
out:
- system.md:
- technical_design.md:
- key_decisions
- active_constraints
- adr/<slug>.md
Expand All @@ -138,8 +129,7 @@ states:
in:
- context_map.md
- technical_design.md
- system.md
- adr/*.md
- "adr/*.md" # optional
- product_definition.md
- domain_model.md
- glossary.md
Expand All @@ -157,4 +147,4 @@ states:
- architecture_approved
- committed_to_main_locally
inconsistent: architecture-assessment
needs_discovery: needs_discovery
needs_discovery: needs_discovery
5 changes: 2 additions & 3 deletions .flowr/flows/development-flow.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
flow: development-flow
version: 5.0.0
version: 6.0.0
params: [feature_name]
exits:
- done
Expand All @@ -19,7 +19,6 @@ states:
- domain_model.md
- glossary.md
- context_map.md
- adr/*.md
- product_definition.md
out:
- git_branch
Expand Down Expand Up @@ -53,7 +52,7 @@ states:
description: "R independently verifies implementation across three tiers — design, structure, and conventions — before commit"
git: feature
flow: review-gate-flow
flow-version: "^3"
flow-version: "^4"
next:
pass: commit
fail: tdd-cycle
Expand Down
14 changes: 7 additions & 7 deletions .flowr/flows/discovery-flow.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
flow: discovery-flow
version: 5.0.0
version: 6.0.0
exits:
- complete

Expand All @@ -12,7 +12,7 @@ states:
skills:
- conduct-interview
in:
- interview-notes/*.md
- "interview-notes/*.md" # optional
out:
- interview-notes/<session>.md:
- pain_points
Expand All @@ -34,7 +34,7 @@ states:
in:
- interview-notes/*.md
out:
- domain_model.md:
- event_storming.md:
- event_map
- context_candidates
- aggregate_candidates
Expand All @@ -51,7 +51,8 @@ states:
- define-ubiquitous-language
in:
- interview-notes/*.md
- domain_model.md
- event_storming.md
- "domain_model.md" # optional
out:
- glossary.md
next:
Expand All @@ -67,7 +68,7 @@ states:
- model-domain
in:
- glossary.md
- domain_model.md
- event_storming.md
out:
- domain_model.md:
- bounded_contexts
Expand Down Expand Up @@ -116,8 +117,7 @@ states:
- product_definition.md
- domain_model.md
- glossary.md
- interview-notes/*.md
- technical_design.md
- "technical_design.md" # optional
out:
- features/<feature_name>.feature:
- title
Expand Down
201 changes: 201 additions & 0 deletions .flowr/flows/document-dependencies.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
flow: document-dependencies
version: 6.0.0
exits: [standalone]

states:
- id: interview-notes
attrs:
description: "Raw stakeholder research — pain points, goals, terms, quality attributes"
role: raw-source
audience: business
produced_by: "discovery → stakeholder-interview"
observation: "Only read by synthesis states (domain-model, glossary). Downstream states read synthesized documents instead of raw notes."
sections:
- "General (Q&A)"
- "Feature: <feature-stem> (Q&A)"
- "Quality Attributes"
- "Pain Points Identified"
- "Business Goals Identified"
- "Terms to Define"
- "Action Items"
next:
standalone: standalone

- id: domain-model
attrs:
description: "The WHAT — bounded contexts, entities, relationships, aggregate boundaries, and the WHY for each"
role: specification
audience: "business, architect, developer"
produced_by: "discovery → domain-modeling"
observation: "Absorbed system.md's rationale columns. Why Separate and Why Grouped capture architectural reasoning that previously lived in a separate document. Event storming intermediate sections live in event-storming.md — not here."
sections:
- "Summary"
- "Bounded Contexts (Context, Responsibility, Key Entities, Integration Points, Why Separate)"
- "Entities"
- "Relationships"
- "Aggregate Boundaries (Aggregate, Root Entity, Invariants, Bounded Context, Why Grouped)"
- "Changes"
next:
"← Event Map, Context Candidates, Aggregate Candidates": event-storming

- id: event-storming
attrs:
description: "Workshop output — domain events, commands, read models, context/aggregate candidates"
role: raw-source
audience: "business, architect"
produced_by: "discovery → event-storming"
observation: "Ephemeral workshop file kept as separate document. Not part of domain_model.md. Preserved in git for traceability but not consumed downstream after domain-modeling completes."
sections:
- "Domain Events"
- "Commands"
- "Read Models"
- "Context Candidates"
- "Aggregate Candidates"
next:
standalone: standalone

- id: glossary
attrs:
description: "Shared language — term definitions, aliases, examples. Universally read for naming consistency."
role: specification
audience: "business, architect, developer"
produced_by: "discovery → language-definition"
sections:
- "Term entries (append-only: Term, Definition, Aliases, Example, Source)"
next:
"← Terms to Define": interview-notes
"← Bounded Contexts, Entities, Context Candidates": domain-model
"← Domain Events, Commands": event-storming

- id: product-definition
attrs:
description: "The WHY & WHO — scope, users, delivery order, quality attributes, DoD"
role: specification
audience: "business, architect, developer"
produced_by: "discovery → scope-boundary, architecture → architecture-assessment, planning → definition-of-done"
sections:
- "What IS / What IS NOT"
- "Why"
- "Users"
- "Quality Attributes"
- "Out of Scope"
- "Delivery Order"
- "Project Conventions (DoD, Deployment, Branch Strategy)"
- "Scope Changes"
next:
"← Summary, Bounded Contexts → What IS, Users, Delivery Order": domain-model

- id: context-map
attrs:
description: "DDD strategic design — context relationships, integration patterns, ACLs"
role: specification
audience: architect
produced_by: "architecture → context-mapping"
sections:
- "Context Relationships"
- "Context Map Diagram"
- "Integration Points"
- "Anti-Corruption Layers"
- "Changes"
next:
"← Bounded Contexts, Integration Points → Context Relationships, Integration, ACLs": domain-model
"← Quality Attributes, Deployment → integration patterns (sync/async)": product-definition

- id: technical-design
attrs:
description: "The HOW — architecture, stack, API/event contracts, interfaces, modules, constraints, key decisions"
role: specification
audience: "architect, developer"
produced_by: "architecture → technical-design"
observation: "Absorbed system.md's ADR summaries (Active Constraints, Key Decisions). Now the single architect reference — no separate summary document needed."
sections:
- "Feature"
- "Architectural Style"
- "Quality Attributes"
- "Stack"
- "Module Structure"
- "API Contracts"
- "Event Contracts"
- "Interface Definitions"
- "C4 Diagrams"
- "Dependencies"
- "Configuration Keys"
- "Active Constraints [from ADRs]"
- "Key Decisions [from ADRs]"
- "Changes"
next:
"← Context Relationships, Integration Points, ACLs → API/Event Contracts, Interfaces": context-map
"← Bounded Contexts, Entities, Relationships → Module Structure, API Contracts": domain-model
"← Quality Attributes, Deployment → Stack, Dependencies, QA mapping": product-definition

- id: adr
attrs:
description: "Decision records — context, alternatives, rationale, consequences, risk"
role: specification
audience: "architect, developer"
produced_by: "architecture → adr-draft"
observation: "Read by review-signoff and design-review (optional). All other states read technical-design's Active Constraints + Key Decisions instead of raw ADRs."
sections:
- "Status"
- "Context"
- "Interview"
- "Decision"
- "Reason"
- "Alternatives Considered"
- "Consequences"
- "Risk Assessment"
next:
"← Architectural Style, Stack, Module Structure, QA → Context, Interview, Risk": technical-design
"← Context Relationships → Context": context-map
"← Bounded Contexts, Aggregate Boundaries → Context": domain-model
"← Quality Attributes, Scope → Context, Risk": product-definition

- id: features
attrs:
description: "The BEHAVIOR — per-feature rules, BDD examples, constraints"
role: specification
audience: "business, developer"
produced_by: "discovery → feature-discovery, planning → feature-breakdown, planning → feature-examples"
sections:
- "Title"
- "Description"
- "Rules (Business) [superseded by Rules]"
- "Constraints"
- "Questions"
- "Rules (refined, INVEST-validated)"
- "Examples (Given/When/Then with @id tags)"
- "Changes"
next:
"← Delivery Order, Quality Attributes, What IS/IS NOT → priority, Constraints, scope": product-definition
"← Entities, Relationships, Aggregate Boundaries → feature scope, boundaries": domain-model
"← API Contracts, Interface Definitions → feature scope": technical-design
"← Integration Points, ACLs → project skeleton structure": context-map

- id: branding
attrs:
description: "Brand identity — personality, visual, wording, release naming"
role: specification
audience: business
produced_by: "branding → setup-branding, branding → design-colors"
sections:
- "Identity"
- "Visual (Logo, Banner)"
- "Release Naming"
- "Wording"
next:
standalone: standalone

- id: post-mortem
attrs:
description: "Failure records — root cause, missed gate, fix, restart check"
role: operational
audience: developer
produced_by: "post-mortem → document-findings, extract-lessons, action-items"
sections:
- "Failed At"
- "Root Cause"
- "Missed Gate"
- "Fix"
- "Restart Check"
next:
standalone: standalone
4 changes: 2 additions & 2 deletions .flowr/flows/feature-development-flow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ states:
description: "Plan feature breakdown, BDD scenarios, and development readiness"
git: main
flow: planning-flow
flow-version: "^6"
flow-version: "^7"
next:
complete: development
needs_architecture: needs_architecture
Expand All @@ -24,7 +24,7 @@ states:
description: "Implement the feature through TDD cycles, review, and commit"
git: feature
flow: development-flow
flow-version: "^5"
flow-version: "^6"
next:
done: delivery
needs_planning: planning
Expand Down
Loading
Loading