Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Agent Instructions

## Linting
Run `./bin/lint.sh` to lint the codebase (yamllint, actionlint, shellcheck, cargo fmt, clippy).
35 changes: 26 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,25 @@ mo optimize --whitelist # Manage protected optimization rules

Rust CLI for managing Ollama models. Run with `./bin/ollama-tool` or see [ollama/README.md](./ollama/README.md) for details.

### Graphite

Graphite revolutionizes Git workflows with stacked pull requests, enabling faster reviews and parallel development by breaking large changes into manageable, interdependent PRs.

Key commands:

```bash
gt branch create "feature-name" # Create a stacked branch
gt create --all --message "feat: add X" # Stage and commit all changes
gt submit --stack --reviewers alice,bob # Submit entire stack with reviewers
gt sync --restack # Sync and restack branches
gt up 2 # Navigate up 2 branches in stack
gt down # Move down the stack
gt stack # View current stack structure
gt repo sync # Sync all branches in repo
```

For PR reviews, visit https://app.graphite.com. For advanced usage, see [Graphite docs](https://graphite.dev/docs).

### Updating and Restoring Dotfiles

To update the repository and restore the latest dotfiles to your home directory:
Expand Down Expand Up @@ -135,15 +154,13 @@ The setup script automatically configures Git to use the hooks globally and make

## Features

- **Pre-commit checks**: Runs pre-commit hooks on push (includes Python linting with black/flake8/mypy/bandit/safety, C++ formatting/linting with clang-format and clang-tidy, Rust formatting/linting/compilation with rustfmt/clippy, Bash linting with shellcheck, Dockerfile linting with hadolint, YAML linting with yamllint, GitHub Actions linting with actionlint, Dart linting and testing, and general checks).
- **YAML linting**: Runs check-yaml from pre-commit.
- **Commit message validation**: Commit-msg hook ensures messages start with conventional type and are lowercase ≤60 chars. Pre-push hook enforces stricter format with scope, ≤40 chars.
- **Author identity verification**: Checks that commits are authored by "Niladri Das" with email "[email protected]".
- **Automated vulnerability scanning**: CodeQL and Trivy bots scan every push and PR for security issues, ensuring robust protection.
- **Ollama model management**: Rust tool for fetching, downloading, and running Ollama models from the internet.
- **Testing**: Comprehensive unit tests for the Dart CLI, run automatically in CI.
- **Version management**: Dart-powered version bump bot automates semantic versioning updates for the package.
- **Automation workflows**: GitHub Actions for automated version bumps via PRs and release creation. See [automation documentation](./.github/workflows/automation/README.md).
- **Code quality assurance**: Pre-commit hooks enforce linting, formatting, and testing across Python, Rust, C++, Bash, YAML, Docker, GitHub Actions, and Dart.
- **Commit standards**: Validates conventional commit messages and author identity for consistent history.
- **Security scanning**: Automated CodeQL and Trivy checks safeguard against vulnerabilities on every push and PR.
- **AI model management**: Rust-based Ollama tool for seamless model fetching, downloading, and execution.
- **Git workflow enhancement**: Graphite enables efficient stacked pull requests for parallel development and faster reviews.
- **Automated testing**: Comprehensive Dart CLI unit tests run in CI for reliability.
- **Version automation**: Dart-powered bot handles semantic versioning and release workflows via GitHub Actions.

## Handling errors

Expand Down