Contributing to Flow Framework
October 4, 2025 ยท View on GitHub
Thank you for your interest in improving Flow! ๐ฏ
For Users
If you just want to use the Flow framework, no forking needed:
# Download the distribution file
wget https://raw.githubusercontent.com/khgs2411/flow/master/flow.sh
chmod +x flow.sh
# Run in your project
./flow.sh
That's it! The framework will be installed in your project.
For Contributors
Want to improve the framework? Here's how:
1. Fork & Clone
# Fork this repository on GitHub first (click "Fork" button)
# Then clone YOUR fork
git clone https://github.com/YOUR-USERNAME/flow.git
cd flow
2. Understand the Structure
flow/
โโโ README.md # Documentation
โโโ flow.sh # Distribution file (GENERATED - don't edit directly!)
โโโ build-standalone.sh # Build script (generates flow.sh)
โโโ framework/ # SOURCE FILES (edit these!)
โโโ DEVELOPMENT_FRAMEWORK.md # Methodology guide
โโโ EXAMPLE_PLAN.md # Reference example
โโโ SLASH_COMMANDS.md # Command definitions
Important:
- โ
Edit files in
framework/directory - โ Don't edit
flow.shdirectly (it's generated)
3. Make Your Changes
# Create a feature branch
git checkout -b feature/my-improvement
# Edit source files
vim framework/DEVELOPMENT_FRAMEWORK.md
vim framework/EXAMPLE_PLAN.md
vim framework/SLASH_COMMANDS.md
# Rebuild the distribution file
./build-standalone.sh
# Test the generated flow.sh
cd /tmp/test-project
~/flow/flow.sh
# Verify installation works correctly
4. Commit & Push
# Stage your changes
git add -A
# Commit with descriptive message
git commit -m "Add: Description of your improvement
- Bullet point 1
- Bullet point 2"
# Push to YOUR fork
git push origin feature/my-improvement
5. Create Pull Request
- Go to your fork on GitHub:
https://github.com/YOUR-USERNAME/flow - Click "Pull Request" button
- Select:
YOUR-USERNAME:feature/my-improvementโkhgs2411:master - Describe your changes
- Submit!
Development Workflow
Building
# After editing source files in framework/
./build-standalone.sh
# This regenerates flow.sh with your changes embedded
Testing
# Test in a clean directory
mkdir /tmp/test-flow
cd /tmp/test-flow
/path/to/flow/flow.sh
# Verify:
# - .claude/commands/ has 15 files
# - .flow/DEVELOPMENT_FRAMEWORK.md exists
# - .flow/EXAMPLE_PLAN.md exists
Commit Message Format
Use descriptive commits:
[Type]: Short description (50 chars max)
- Detailed bullet point 1
- Detailed bullet point 2
- Reference to issue if applicable
Types:
Add:New feature or contentFix:Bug fixUpdate:Improve existing contentRefactor:Code restructure (no behavior change)Docs:Documentation only
What to Contribute
Ideas Welcome
- ๐ Bug fixes - Found an issue? Fix it!
- ๐ Documentation improvements - Clarify confusing sections
- โจ New patterns - Discovered useful workflow patterns?
- ๐จ Example improvements - Better examples in EXAMPLE_PLAN.md
- ๐ง New slash commands - Useful automation commands
Before Starting Big Changes
Open an issue first to discuss:
- Major architectural changes
- New slash commands
- Significant pattern changes
This prevents wasted effort if the change doesn't align with the framework philosophy.
Philosophy
Flow framework is built on these principles:
- Plan before code - Brainstorming โ Implementation
- Preserve context - PLAN.md is memory across sessions
- Iterative refinement - Skeleton โ Flesh โ Fibers
- Single source of truth - One PLAN.md per feature
- AI-friendly - Patterns that work across different AI models
Keep these in mind when proposing changes!
Releasing (Maintainers Only)
Single Source of Truth: VERSION File
The VERSION file is the single source of truth for versioning:
# VERSION file contains just the version number
1.1.1
All other files read from this:
build-standalone.shreads VERSION to build flow.shrelease.shreads VERSION for git tags and GitHub releases
Release Process
Option 1: Automatic version increment (recommended)
# Patch release (1.1.2 โ 1.1.3) - Bug fixes, minor changes
./release.sh --patch
# Minor release (1.1.2 โ 1.2.0) - New features, backward compatible
./release.sh --minor
# Major release (1.1.2 โ 2.0.0) - Breaking changes
./release.sh --major
Option 2: Manual version (if you want specific version)
# 1. Update VERSION file manually
echo "1.5.0" > VERSION
# 2. Run release script (uses VERSION as-is)
./release.sh
The release.sh script automates:
- โ Builds flow.sh with VERSION number
- โ Prompts for changelog entry
- โ Updates CHANGELOG.md
- โ Creates git commit
- โ Creates git tag (v1.1.1)
- โ Pushes to GitHub
- โ Creates GitHub release with flow.sh asset
What to Include in Changelog
Follow this format:
**v1.1.1** - Feature Name (YYYY-MM-DD)
**Changes**:
- Added new feature X
- Fixed bug Y
- Improved documentation Z
See the [v1.1.1 release](https://github.com/khgs2411/flow/releases/tag/v1.1.1) for full details.
Version Numbering
Flow follows semantic versioning: MAJOR.MINOR.PATCH
- MAJOR (X.0.0): Breaking changes to framework structure or commands
- MINOR (0.X.0): New features, new commands, significant enhancements
- PATCH (0.0.X): Bug fixes, documentation updates, minor improvements
Examples:
1.0.0 โ 1.0.1: Fixed bug in/flow-statuscommand (patch)1.0.1 โ 1.1.0: Added backlog management commands (minor)1.1.0 โ 2.0.0: Changed PLAN.md structure (breaking - major)
Pre-Release Checklist
Before running ./release.sh:
- All tests pass
- Documentation updated
- EXAMPLE_PLAN.md reflects new features
- Rebuilt flow.sh (
./build-standalone.sh) - Tested installation (
./flow.sh --forcein test directory) - Git status is clean (commit everything first)
Post-Release Tasks
After release is published:
- Verify GitHub release shows correct version
- Verify flow.sh download works
- Update README.md if needed (screenshots, feature list)
- Announce in project channels
Questions?
- ๐ฌ Open an issue for questions or discussions
- ๐ง Email (if you prefer private communication - add your email if desired)
- ๐ Bug reports - Include steps to reproduce
Code of Conduct
Be respectful and constructive. We're all here to build better development tools.
Thank you for contributing to Flow! ๐
This framework was born from real-world usage on the RED RPG project. Every pattern here was battle-tested in organic development.