@atharvasingh7007/commitforge
v1.0.5
Published
Local-first, fail-safe, CLI-based project timeline rebuilder with optional GitHub commit/push scheduling
Maintainers
Readme
Committer
Committer is an advanced, local-first, CLI-based project timeline rebuilder. It takes an existing complete codebase and dynamically deconstructs it into a realistic, step-by-step development timeline. It natively supports Git commit scheduling and automated GitHub pushes to construct a realistic contribution graph over days or weeks.
🌟 Key Features
- Architectural Slicing: Rebuild your project file-by-file OR completely surgically via the new
--symbol-mode(AST function/class level). - Intelligent Dependency Graph: Uses Kahn's algorithm and AST deep traversal to ensure that your project is runnable at every single intermediate step.
- Syntactic Stubbing: In symbol mode, future functions and classes are injected as syntactically valid stubs using Babel, preventing compilation errors while only delivering partial logic.
- Micro-Commits & Transactions: Automatically breaks daily steps into multiple micro-transactions, generating humanized, Conventional Commits (e.g.,
feat: implement parseData) for maximum realism. - Fail-Safe Transactions: Every step is applied atomically. If an external scheduler or process dies mid-apply, Committer auto-recovers and rolls back to keep your source pristine.
- Automated Git & Push: Configure it once, and let it build your git history automatically.
📦 Installation
npm install -g @atharvasingh7007/commitforge🚀 Quick Start
Initialize a project to be rebuilt over 10 days:
committer init ./my-completed-project -o ./my-rebuild --days 10 --symbol-modeNavigate to the output directory and preview your plan:
cd ./my-rebuild
committer planApply the first step of the project:
committer next --commit --push🛠 Command Reference
| Command | Description |
|---|---|
| init <source> | Scans the source project, builds the dependency graph, and generates the timeline plan. |
| plan | Displays the generated step-by-step reconstruction plan. Use --repair to fix broken plans. |
| next | Applies the files/symbols for the next step to the output folder. Supports --dry-run, --commit, and --push. |
| status | Shows the current progress (e.g., Step 3 of 10). |
| graph | Exports the dependency graph. Use --format html for an interactive 2D visualization! |
| config | Toggles internal settings like gitEnabled and autoPush. |
| schedule | Setup local background scheduling. |
🧩 Symbol Mode vs File Mode
By default, Committer operates in File Mode—it groups whole files into steps based on import graphs.
If you pass --symbol-mode during initialization, Committer switches to a granular AST engine. It reads the internal CallExpressions of your code, dynamically generating partial files where functions from future steps are replaced with empty stubs (e.g., export function getUser() { /* added in step 5 */ }). This creates a remarkably realistic, iterative coding timeline.
🤝 Contributing
Contributions, issues, and feature requests are welcome!
📄 License
ISC
