Skip to content

Overhaul README documentation#12

Merged
tomas-stefano merged 5 commits intomainfrom
docs/readme-overhaul
Feb 5, 2026
Merged

Overhaul README documentation#12
tomas-stefano merged 5 commits intomainfrom
docs/readme-overhaul

Conversation

@tomas-stefano
Copy link
Copy Markdown
Collaborator

  1. Restructure with clear Table of Contents and In Depth sections
  2. Add architecture diagram and data flow diagrams
  3. Add tutorial wizard with conditional branching (nationality → visa flow)
  4. Document all conditional edge types (simple, conditional, multiple, custom)
  5. Add In Depth sections for Repositories, Steps, Conditional Edges, Route Strategies
  6. Document all repository types with examples and encryption
  7. Add WizardState migration example
  8. Document step attribute uniqueness requirement
  9. Add Step Operators documentation with use: and add: examples
  10. Add performance caveat about caching API calls in predicates
  11. Update views to use GOV.UK Design System form builder
  12. Add Advanced section for custom implementations

1. Restructure with clear Table of Contents and In Depth sections
2. Add architecture diagram and data flow diagrams
3. Add tutorial wizard with conditional branching (nationality → visa flow)
4. Document all conditional edge types (simple, conditional, multiple, custom)
5. Add In Depth sections for Repositories, Steps, Conditional Edges, Route Strategies
6. Document all repository types with examples and encryption
7. Add WizardState migration example
8. Document step attribute uniqueness requirement
9. Add Step Operators documentation with use: and add: examples
10. Add performance caveat about caching API calls in predicates
11. Update views to use GOV.UK Design System form builder
12. Add Advanced section for custom implementations
Copy link
Copy Markdown

@inulty-dfe inulty-dfe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work cleaning this up 👍

I would explain what methods are available in the StateStore:

  • Dynamic method look up of the current step
    - methods are called on any step (first_name is "declared" but can only be evaluated on the step that defines first_name as an attribute.
    - dynamic methods = step attributes
    - repository is available, dynamic step attributes are available, what else?

  • transform_for_(read|write) on repository is key to knowing how to turn data in the system into data for the data store and vica versa. Especially as a way of dealing the step attribute uniqueness constraint (contact_email, other_email)

  • I'd name this memoization rather than caching

def thing
	@thing ||= method_call
end
  • Mention backlinks using @wizard.previous_step_path

1. Move Getting Started tutorial to be first section after Installation
2. Add inspect output example to Wizard section
3. Add Back Links section with previous_step_path(fallback:) usage
4. Change "caching" to "memoization" for predicates performance section
5. Remove duplicate Skip Steps section (keep detailed In Depth version)
6. Fix encryption documentation to use correct encrypted:/encryptor: API
7. Add Multiple Wizard Instances section explaining state_key usage
8. Expand DynamicRoutes documentation with complete example
9. Add Custom Repository Transform section for transform_for_read/write
10. Update StateStore section with available methods table
11. Fix code indentation issues
@tomas-stefano
Copy link
Copy Markdown
Collaborator Author

Thanks for the feedback. All actions actioned!

Copy link
Copy Markdown
Contributor

@avinhurry avinhurry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README is getting a bit long (~2200 lines). It's fine for now but if it keeps expanding, it might be worth splitting into docs/.

Overall solid improvement. It's much clearer and more complete now. The tutorial flow and in depth sections will hopefully help new users a lot.

@tomas-stefano tomas-stefano merged commit 32fae74 into main Feb 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants