Branch
Purpose
main
For releases. Stable versions only.
develop
For development. Merge target for topic branches.
Create a topic branch from develop
After completing work, merge into develop
When releasing, merge develop into main
main ────●─────────────────●────
│ ↑
develop ─┴──●──●──●──●─────┴────
↑ ↑
feat/a feat/b
OS
Architectures
Notes
macOS
x64, ARM64
Homebrew available
Linux
x64, ARM64
.deb package available (Ubuntu/Debian)
Windows
x64
PowerShell installation
WSL2 is supported via Linux binaries.
Filesystem (Copy-on-Write Optimization)
Filesystem
Platform
CoW Support
APFS
macOS
Yes
Btrfs
Linux
Yes
XFS
Linux
Yes
Others
All
Fallback to standard copy
Zsh
Bash
Fish
Nushell
PowerShell
Runtime: Bun (setup with mise install)
Run: bun run main.ts
Compile: bun build --compile --minify --outfile vibe main.ts
Follow GNU Coding Standards for command-line interface design
Support --help and --version options
Use long options with -- prefix (e.g., --verbose)
Use short options with - prefix (e.g., -v)
Code should follow SOLID principles:
S ingle Responsibility Principle: A class or function should have only one
reason to change
O pen/Closed Principle: Open for extension, closed for modification
L iskov Substitution Principle: Subtypes must be substitutable for their
base types
I nterface Segregation Principle: Clients should not be forced to depend on
methods they do not use
D ependency Inversion Principle: High-level modules should not depend on
low-level modules; both should depend on abstractions
Lint check: pnpm run lint
Format check: pnpm run format:check
Type check: pnpm run typecheck
Run tests: pnpm run test
Run all checks: pnpm run check:core (runs format:check, lint, typecheck, and test)
All checks must pass before committing
Source code comments and documentation: English
*.ja.md files: Japanese
Title format: <type>: <description>
type: feat, fix, docs, refactor, test, chore
PR title and description must be written in English
Must pass pnpm run lint and pnpm run format:check
Add or update tests for changed code
After merging to main, create and publish a release on GitHub to trigger
GitHub Actions build
Steps:
GitHub → Releases → Draft a new release
Create a tag (e.g., v0.1.0)
Write release notes and click "Publish release"