battlecommand-forge 0.2.0

Quality-first AI coding army: single Rust binary that generates production-grade projects via a 9-stage TDD pipeline with a complexity-scaled quality gate (up to 9.2/10)
Documentation
[package]
name = "battlecommand-forge"
version = "0.2.0"
edition = "2021"
description = "Quality-first AI coding army: single Rust binary that generates production-grade projects via a 9-stage TDD pipeline with a complexity-scaled quality gate (up to 9.2/10)"
authors = ["mrdushidush <mrdushidush@gmail.com>"]
license = "Apache-2.0"
repository = "https://github.com/mrdushidush/battle-command-forge"
homepage = "https://github.com/mrdushidush/battle-command-forge"
documentation = "https://docs.rs/battlecommand-forge"
readme = "README.md"
keywords = ["ai", "codegen", "ollama", "llm", "cli"]
categories = ["command-line-utilities", "development-tools"]
rust-version = "1.95"
# Keep the published tarball lean — operator docs and demo HTML aren't
# needed by `cargo install` consumers, and the .battlecommand/.grok
# directories are user-runtime state.
exclude = [
    "site/",
    "scripts/",
    "BMORE.md",
    "CLAUDE.md",
    ".battlecommand/",
    ".grok/",
]

[dependencies]
clap = { version = "4.5", features = ["derive"] }
# tokio "full" pulls net/signal/io-std/parking_lot which BCF doesn't use.
# Narrow to what `grep tokio:: src/` actually exercises.
tokio = { version = "1", default-features = false, features = [
    "rt-multi-thread",
    "macros",
    "sync",
    "process",
    "fs",
    "time",
] }
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# rustls-tls drops the OpenSSL build dependency entirely — meaningfully
# faster cross-compile + no openssl-sys vendored crate in the dep tree.
reqwest = { version = "0.12", default-features = false, features = [
    "json",
    "stream",
    "rustls-tls",
] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
chrono = "0.4"
ratatui = "0.29"
crossterm = "0.28"
futures-util = "0.3"
toml = "0.8"
dotenvy = "0.15"
shell-words = "1"

[profile.release]
opt-level = "z"
lto = true
strip = true
# panic = abort drops unwind tables (smaller binary, tighter security
# boundary) and matches claudette's release profile.
panic = "abort"
codegen-units = 1