burnmydays's picture
Initial commit: Commitment Conservation Framework
2a64ad4
# Commitment Conservation Test Harness
This directory contains the test harness for validating the commitment conservation law under compression and recursive application.
## Overview
The harness implements a falsification framework that operationalizes commitment invariance using:
- Compression-based stress tests
- Lineage-aware evaluation
- Model-agnostic testing infrastructure
## Structure
- **src/** - Core harness implementation
- `harness.py` - Main test harness
- `test_harness.py` - Test framework
- `extraction.py` - Commitment extraction
- `metrics.py` - Evaluation metrics
- `samples.py` - Sample data management
- `plotting.py` - Visualization utilities
- `config.py` - Configuration management
- `deterministic_pipeline.py` - Deterministic testing pipeline
- `advanced_extractor.py` - Advanced extraction methods
- **tests/** - Unit and integration tests
- `test_harness.py` - Harness tests
- `test_full_harness.py` - Full integration tests
## Configuration Files
- `requirements.txt` - Python dependencies
- `pyproject.toml` - Project configuration
- `environment.yml` - Conda environment specification
- `Harnesstest.ini` - Harness configuration
## Quick Start
```bash
# Install dependencies
pip install -r requirements.txt
python -m spacy download en_core_web_sm
# Extract commitments from text
python analyze.py "You must complete this by Friday."
# Run experiments (compression/recursion tests)
python analyze.py run compression --signal "You must complete this by Friday."
python analyze.py run recursion --signal "Contract terms apply." --depth 5
```
### Installation
```bash
# Install dependencies
pip install -r requirements.txt
# Download spaCy model
python -m spacy download en_core_web_sm
```
### CLI Usage
**Quick test** — Extract commitments from text:
```bash
python analyze.py "You must complete this by Friday."
python analyze.py "Contract terms apply." --quiet
python analyze.py "You shall deliver by Monday." --json
```
**Experiments** — Run compression/recursion tests and generate receipts:
```bash
python analyze.py run compression --signal "You must complete this by Friday."
python analyze.py run recursion --signal "You must pay $100." --depth 5
python analyze.py run full
```
Experimental runs output timestamped JSON receipts to `outputs/` directory.
### Running Tests
```bash
# Run all tests
MPLBACKEND=Agg pytest tests/test_full_harness.py -v
# Quick test run
MPLBACKEND=Agg pytest tests/test_full_harness.py -q
```
## CLI Commands
### `compression`
Tests commitment conservation under compression transformations.
Options:
- `--signal TEXT` - Input signal text (required)
- `--out PATH` - Output receipt path (default: `outputs/compression_receipt.json`)
### `recursion`
Tests commitment drift under recursive transformations.
Options:
- `--signal TEXT` - Input signal text (required)
- `--depth N` - Recursion depth (default: 8)
- `--enforced` - Enable enforcement mode
- `--out PATH` - Output receipt path (default: `outputs/recursion_receipt.json`)
### `full`
Runs the complete deterministic pipeline.
Options:
- `--out PATH` - Output receipt path (default: `outputs/full_receipt.json`)
## Output
The CLI generates:
- JSON receipts in `outputs/` with all experimental data
- Compression fidelity plots (`fid_*.png`)
- Recursion drift plots (`delta_*.png`)
## Purpose
This harness is designed to test whether commitment content is conserved under:
1. **Compression** - Reduction to essential structure
2. **Recursion** - Repeated self-application with lineage tracking
The framework is model-agnostic and can be applied to both human and machine-generated language.
### Environment Notes
This harness specifies the structure and invariants of the evaluation.
Exact dependency resolution may vary across systems (OS, Python, backend).
Environment-related failures should be distinguished from invariant violations.
## Citation
If you use this harness, please cite the original paper:
```text
McHenry, D. J. (2026). A Conservation Law for Commitment in Language Under
Transformative Compression and Recursive Application. Zenodo.
DOI: 10.5281/zenodo.18267279
```