Skip to main content

Harness engineering framework for AI coding agents -- the invisible skeleton that shapes agent output

Project description

Armature

The invisible skeleton that gives shape to what AI coding agents produce.

Armature is a harness engineering framework for AI coding agents. It wraps agents (Claude Code, Cursor, Copilot, Windsurf, Aider) in automated guides, sensors, budget controls, architectural enforcement, garbage collection, and self-healing pipelines.

Quick Start

pip install armature

# Initialize in your project
cd your-project/
armature init

# Run quality checks
armature check

# Wire into Claude Code
armature hooks --claude-code

# Self-heal lint violations
armature heal --failures lint

The 6 Pillars

Pillar What CLI
Budget Token/cost tracking per spec/phase, optimization suggestions armature budget
Quality Lint + type + test checks, quality gates (draft/review/merge), shift-left hooks armature check
Context CLAUDE.md/AGENTS.md generation, progressive disclosure, cross-session memory armature hooks
Architecture Layer boundary enforcement, class conformance, schema sync armature check
GC Architecture drift, stale docs, dead code, budget audit armature gc
Self-Heal Auto-fix lint, report type/test errors, circuit breaker escalation armature heal

Configuration

Everything is configured in armature.yaml:

project:
  name: "my-project"
  language: python
  src_dir: "src/"

quality:
  enabled: true
  checks:
    lint: { tool: ruff, weight: 25 }
    type_check: { tool: mypy, weight: 25 }
    test: { tool: pytest, weight: 20, coverage_min: 85 }
  post_write:
    enabled: true  # shift-left: check on every file write

architecture:
  enabled: true
  layers:
    - { name: models, dirs: ["src/models/"] }
    - { name: services, dirs: ["src/services/"] }
    - { name: routes, dirs: ["src/routes/"] }
  boundaries:
    - { from: models, to: [routes] }

heal:
  enabled: true
  healers:
    lint: { auto_fix: true }

integrations:
  claude_code: { enabled: true }

IDE Integrations

armature hooks --claude-code      # .claude/settings.local.json
armature hooks --cursor           # .cursor/rules
armature hooks --copilot          # .github/copilot-instructions.md
armature hooks --github-actions   # .github/workflows/armature.yml
armature hooks --pre-commit       # .pre-commit-config.yaml

The Harness Engineering Model

Armature implements the harness engineering 2x2 grid:

Computational (fast, deterministic) Inferential (LLM-based)
Feedforward (guides) armature.yaml rules, architecture config, type hints CLAUDE.md rules, spec constraints
Feedback (sensors) ruff, mypy, boundary checks, conformance, GC sweeps LLM code review, eval judges

Claude Code Skills

Armature provides slash commands for Claude Code:

  • /armature-check -- Run quality sensors
  • /armature-heal -- Self-healing pipeline
  • /armature-gc -- Garbage collection sweep
  • /armature-budget -- Cost tracking and reporting

Budget Control

Track and optimize AI coding costs:

# Log usage
armature budget --spec SPEC-001 --phase build --tokens 50000 --cost 1.25

# Generate report
armature budget --report SPEC-001

Armature analyzes phase distribution, per-request token usage, and suggests optimizations: batch file reads, narrow context, progressive disclosure.

References

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

armature_harness-0.1.1.tar.gz (499.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

armature_harness-0.1.1-py3-none-any.whl (119.4 kB view details)

Uploaded Python 3

File details

Details for the file armature_harness-0.1.1.tar.gz.

File metadata

  • Download URL: armature_harness-0.1.1.tar.gz
  • Upload date:
  • Size: 499.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for armature_harness-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a621a046bdf7c28bf92bd8721c6c6e44d8139b37c41b042882c01656351755c5
MD5 426d0e4a2dad763e838368630d392ddb
BLAKE2b-256 14851e8656635a37b18f76e5e901cea1d9b92c9c0c240f0e0ecbdeef66bb5d15

See more details on using hashes here.

File details

Details for the file armature_harness-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for armature_harness-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d24ed8da7cc790b66f4e8098f06478c1e307744b3deca2fd67e2fc90e87efa51
MD5 19de42aa2cee0cfd4e46624c5842d56b
BLAKE2b-256 37310b29bf1d19c334a216431c6193eb33df5054e7cd8933b6a18d9c2c5daa48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page