# fledge.toml -- fledge uses its own CLI for development workflows
# Detected project type: rust

[tasks]
build = "cargo build"
test = "cargo test"
lint = "cargo clippy -- -D warnings"
fmt = "cargo fmt --check"
fmt-fix = "cargo fmt"
spec-check = "cargo run -- spec check"
docs-build = "mdbook build docs"
docs-serve = "mdbook serve docs --open"

[tasks.validate-templates]
cmd = "cargo run -- validate-template templates/"
description = "Validate all built-in templates"

[lanes.ci]
description = "Full CI pipeline"
steps = ["fmt", "lint", "test", "build", "spec-check", "validate-templates"]

[lanes.check]
description = "Quick quality check"
steps = [
  { parallel = ["fmt", "lint"] },
  "test",
]

[lanes.pre-commit]
description = "Run before committing"
steps = [
  { parallel = ["fmt", "lint"] },
  "test",
  "spec-check",
]

[lanes.docs]
description = "Build and validate documentation"
steps = ["docs-build"]

[lanes.release]
description = "Pre-release validation"
steps = ["fmt", "lint", "test", "build", "spec-check", "validate-templates", "docs-build"]
[tasks.audit]
cmd = "cargo audit"
description = "Check dependencies for known vulnerabilities"

[lanes.audit]
description = "All quality checks and security audit (reports all failures)"
fail_fast = false
steps = ["lint", "fmt", "test", "audit"]

[lanes.ci-fast]
description = "CI with parallel static checks (faster on multi-core)"
steps = [{ parallel = ["fmt", "lint"] }, "test", "build"]
