Skip to content
Merged
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
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added - Praxis 1.2.x Support

- **Enhanced Model Documentation**:
- Support for field validation rules (required, min, max, pattern)
- Support for model-level constraints (unique, check, foreign keys)
- Support for database indexes (btree, hash, fulltext)
- Support for relationships (one-to-one, one-to-many, many-to-many)
- Support for optional fields and default values

- **Enhanced Logic Documentation**:
- Support for business rules with conditions (`when`) and actions (`then`)
- Support for runtime constraints with validation checks
- Support for rule priorities
- Support for event triggers in rules
- Documentation for rule execution flow

- **Enhanced Component Documentation**:
- Support for component props with types and defaults
- Support for component events with payload types
- Support for layout configuration (stack, grid, flex, absolute)
- Support for styling (CSS classes, inline styles, theme tokens)
- Enhanced component type documentation

- **Orchestration Support**:
- Support for orchestration node configuration
- Support for node bindings to PluresDB paths
- Support for synchronization configuration
- Support for health check configuration
- Documentation for distributed system architecture

- **Schema Metadata Support**:
- Support for additional metadata in schemas
- Version information in generated documentation

- **New Example**: Task Management v2 demonstrating all Praxis 1.2.x features

### Changed

- **Parser**: Updated to parse Praxis 1.2.x schema format
- **Templates**: Enhanced default templates to display new Praxis 1.2.x features
- **Type Definitions**: Updated `PraxisSchema` types to match Praxis 1.2.x
- **README**: Updated to highlight Praxis 1.2.x compatibility

### Documentation

- Added comprehensive example showing all Praxis 1.2.x features
- Updated documentation generation to include rules, constraints, and orchestration
- Enhanced Mermaid diagram generation for complex state machines

## [2.0.0] - 2025-12-27

### 🚨 Breaking Changes
Expand Down
38 changes: 28 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,19 @@

praxisdoc automatically generates human-readable documentation from your [Praxis](https://github.com/plures/praxis) application schemas. It transforms declarative schema definitions into clear documentation that anyone can understand—perfect for product teams, QA engineers, and stakeholders.

**Now supports Praxis 1.2.x** with enhanced features including business rules, constraints, orchestration, and more.

### About Praxis

**Praxis** is a schema-driven application framework for building local-first, distributed applications. It uses declarative schemas to define:

- **Models**: Data structures with fields, types, and indexes
- **Logic**: Business rules, events, facts, and state transitions
- **Components**: UI elements auto-generated from schemas
- **Models**: Data structures with fields, types, indexes, constraints, and relationships
- **Logic**: Business rules, events, facts, state transitions, and runtime constraints
- **Components**: UI elements auto-generated from schemas with props, events, and layouts
- **Orchestration**: Distributed node configuration with PluresDB integration
- **Documentation**: Automatically synchronized with your code

praxisdoc leverages Praxis's schema format to generate comprehensive documentation including state diagrams, event flows, and data models.
praxisdoc leverages Praxis's schema format to generate comprehensive documentation including state diagrams, event flows, data models, business rules, and orchestration diagrams.

## Installation

Expand Down Expand Up @@ -118,14 +121,23 @@ praxisdoc gen --config=.praxisDoc.json

## Real-World Example

See the [Task Management Example](./examples/task-management/README.md) for a comprehensive demonstration:
See the examples directory for comprehensive demonstrations:

- **[Task Management Example](./examples/task-management/README.md)**: Basic Praxis schema with state transitions
- **[Task Management v2 Example](./examples/task-management-v2/README.md)**: Enhanced Praxis 1.2.x features
- Business rules with conditions and actions
- Runtime constraints and validation
- Enhanced component definitions
- Orchestration configuration
- **[Shopping Cart Example](./examples/shopping-cart/README.md)**: Legacy XState machine (auto-converted)

- **Before**: Praxis schema definitions in TypeScript
Each example includes:
- **Before**: Praxis/XState schema definitions in TypeScript
- **After**: Clear Markdown documentation with Mermaid diagrams
- **Use Cases**: Product planning, QA testing, stakeholder communication
- **CLI Output**: See exactly what the tool generates

[View the complete example →](./examples/task-management/README.md)
[View all examples →](./examples/)

## Supported Formats

Expand Down Expand Up @@ -211,9 +223,13 @@ See the [Task Management Example](./examples/task-management/README.md) for a co

### What praxisdoc Does

- ✅ Parses Praxis schema definitions (models, logic, components)
- ✅ Parses Praxis schema definitions (models, logic, components, orchestration)
- ✅ Supports Praxis 1.2.x enhanced features (rules, constraints, relationships, orchestration)
- ✅ Generates Markdown documentation from schemas
- ✅ Creates Mermaid state diagrams from logic transitions
- ✅ Documents business rules and runtime constraints
- ✅ Documents model constraints, indexes, and relationships
- ✅ Documents component props, events, layouts, and styling
- ✅ Supports customizable templates
- ✅ Works with TypeScript and JavaScript
- ✅ Converts legacy XState machines to Praxis format
Expand Down Expand Up @@ -312,13 +328,15 @@ We welcome contributions! Whether you're fixing bugs, adding features, or improv

1. 📖 Read the [CONTRIBUTING.md](./CONTRIBUTING.md) guide
2. 🗺️ Check the [ROADMAP.md](./ROADMAP.md) for planned features
3. 🏷️ Look for issues tagged with **`good first issue`**
4. 💬 Join the discussion on open issues
3. 📚 Review [Praxis 1.2.x Support](./docs/PRAXIS_V2_SUPPORT.md) for latest features
4. 🏷️ Look for issues tagged with **`good first issue`**
5. 💬 Join the discussion on open issues

### Quick Links

- [CONTRIBUTING.md](./CONTRIBUTING.md) - Contribution guidelines and development setup
- [ROADMAP.md](./ROADMAP.md) - Future plans and feature requests
- [Praxis 1.2.x Support](./docs/PRAXIS_V2_SUPPORT.md) - Enhanced Praxis features documentation
- [Issue Templates](./.github/ISSUE_TEMPLATE/) - Bug reports, feature requests, documentation
- [ADR Process](./docs/adr/README.md) - Architectural decision records

Expand Down
9 changes: 6 additions & 3 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,14 @@ This document outlines the planned features and improvements for praxisdoc. We u

**Focus**: Deeper integration with Praxis framework features

- [x] ✅ **Support enhanced model definitions** (constraints, indexes, relationships)
- [x] ✅ **Support business rules in logic** (conditions, actions, priorities)
- [x] ✅ **Support runtime constraints** (validation checks and error messages)
- [x] ✅ **Enhanced component documentation** (props, events, layout, styling)
- [x] ✅ **Orchestration support** (nodes, bindings, sync, health)
- [ ] Support YAML schema definitions
- [ ] Support JSON schema definitions
- [ ] Parse Praxis facts and rules documentation
- [ ] Generate component documentation from schema
- [ ] Add support for Praxis constraints and validations
- [ ] Parse Praxis facts and rules documentation (partial - rules done)
- [ ] Integrate with Praxis CLI for seamless workflow
- [ ] Add watch mode for continuous documentation generation

Expand Down
Loading