feat(cli): auto-stage when nothing staged for g m/g l/g o; docs: update README

This commit is contained in:
s41r4j
2025-10-02 12:48:16 +05:30
parent c0f4cd97eb
commit f7c07e1af1
21 changed files with 2200 additions and 447 deletions
+72
View File
@@ -0,0 +1,72 @@
# Project Structure
## Directory Layout
```
gims/
├── bin/
│ └── gims.js # Main CLI executable and entry point
├── node_modules/ # npm dependencies (auto-generated)
├── .npm-cache/ # npm cache directory (auto-generated)
├── .github/ # GitHub workflows and templates
├── .git/ # Git repository data
├── .kiro/ # Kiro AI assistant configuration
│ └── steering/ # AI guidance documents
├── package.json # Project metadata and dependencies
├── package-lock.json # Dependency lock file
├── README.md # Comprehensive project documentation
├── LICENSE # MIT license
└── .gitignore # Git ignore patterns
```
## Key Files
### `bin/gims.js`
- **Purpose**: Single-file CLI application containing all functionality
- **Structure**: Monolithic approach with utility functions, command handlers, and AI integration
- **Exports**: Executable binary via shebang (`#!/usr/bin/env node`)
- **Commands**: All CLI commands and subcommands defined in this file
### `package.json`
- **Binary entries**: `gims` and `g` both point to `bin/gims.js`
- **Main entry**: Points to `bin/gims.js`
- **Scripts**: Minimal test script placeholder
- **Keywords**: Focused on git, cli, ai, commit, developer-tools
### Configuration Files
- **`.gimsrc`**: Optional JSON config (project root or home directory)
- **Environment variables**: API keys and default settings
- **Git integration**: Uses existing `.git` directory and configuration
## Architecture Principles
### Single-File Design
- All functionality consolidated in `bin/gims.js` for simplicity
- No separate modules or complex directory structure
- Easy to understand, debug, and maintain
- Reduces complexity for a CLI tool
### Command Structure
- Uses commander.js for CLI parsing and command organization
- Short aliases for all commands (`g o`, `g s`, `g l`, etc.)
- Consistent option patterns across commands
- Global options available to all subcommands
### File Naming Conventions
- Executable files in `bin/` directory
- Configuration files use dotfile convention (`.gimsrc`)
- Standard npm project files (package.json, README.md, LICENSE)
- No custom file extensions or special naming schemes
## Development Guidelines
### Adding New Features
- Add new commands directly to `bin/gims.js`
- Follow existing pattern of command definition with commander.js
- Maintain consistent error handling and logging patterns
- Add appropriate help text and examples
### Configuration Management
- Environment variables for sensitive data (API keys)
- JSON config files for user preferences
- Runtime detection and fallback logic
- Validate configuration at startup when needed