Project Info
Inspiration
When a regulation changes, finding the new sentence is only the beginning. Teams must still identify every affected policy, procedure, control, system, test, and owner—and prove that the resulting changes are complete and approved. ChangeProof began with a fictional lender responding to an RBI complaint-handling requirement changing from 30 days to 21 days. We wanted an evidence-backed change workflow rather than another report, spreadsheet, or disconnected set of tickets.
What it does
ChangeProof converts an external obligation into a cited, reviewable, and tested organizational change package. It extracts the exact source quote, computes the affected workspace spans with evidence for every graph edge, and proposes coordinated changes across policies, procedures, controls, application logic, schedulers, interfaces, and tests. A reviewer can reject one impact with a rationale, inspect the revised plan while retaining the superseded version, and approve only the exact reviewed snapshot. ChangeProof then applies the approved package in an isolated workspace, runs verification, searches for obsolete requirements, and produces a hash-bound proof certificate containing citations, diffs, decisions, results, residuals, and exceptions. GPT-5.6 performs schema-constrained obligation extraction and coordinated redline drafting when an API key is configured. Model identity, prompt and schema versions, response hashes, token usage, and estimated cost are bound into the manifest. A deterministic offline fallback preserves the complete golden path with synthetic data and no credentials.
How we built it
Codex accelerated repository analysis, architecture, implementation, synthetic fixture design, tests, adversarial review, and release rehearsal. Human decisions set the fictional-lender scope, evidence standard, approval gates, safety boundaries, and product direction. The product uses Python standard-library runtime components, SQLite, SHA-256 content bindings, strict JSON schemas, a computed workspace scanner, and a responsive reviewer UI. GPT-5.6 is integrated through the OpenAI Responses API. The repository has 61 passing tests and an optional private AWS deployment overlay; a clean clone still runs the full offline workflow without private infrastructure or package installation.
Challenges we ran into
Our first impact list was fixture-driven, and our first patching approach relied on global replacement. A skeptical reviewer could reasonably see a rehearsed fixture rather than an analysis engine. We replaced both with computed workspace discovery, exact spans, per-edge evidence, and span-targeted patches. We also upgraded model metadata into tamper-evident, hash-bound proof links and built a genuine reject–revise–approve lifecycle. Every rejected plan remains viewable, every revision receives a new snapshot hash, and stale approvals fail.
Accomplishments we're proud of
Computed an eight-artifact blast radius from one cited obligation. Integrated GPT-5.6 with deterministic validation and offline fallback. Delivered a demonstrable human rejection, revision, approval, application, and verification workflow. Made cost-effective governance AI auditable through token, cache, execution-mode, estimated-cost, and cost-avoidance evidence. Pointed ChangeProof at ChangeProof: the self-compliance milestone passed 51 tests and 11/11 automated controls while disclosing two exceptions rather than hiding them. Kept the complete judge path portable, synthetic, and independent of private infrastructure. Published a processed, public 173-second Build Week demonstration video.
What we learned
Traceability must be structural, not explanatory prose added after generation. Every conclusion needs a source span, impact rationale, decision record, and stable hash. Human approval must bind to the exact content reviewed, and rejected plans must remain visible. Model identity, prompt and schema versions, usage, cost, and exceptions belong in the same evidence chain as the business change.
What's next
We will expand the scanner and framework catalog beyond the demonstration, add enterprise identity and workflow integrations, and gather broader real-world cost and accuracy evidence. The core direction remains the same: turn any external obligation into a human-governed, verifiable organizational change—without pretending that AI replaces legal judgment or accountable approval.
ChangeProof
Turn every external requirement into a verified internal change.
ChangeProof is a governed B2B change-management agent. It converts a new regulation, contract clause, security requirement, audit finding, or internal policy decision into a cited and reviewable change package spanning policies, controls, procedures, software, tests, owners, and verification evidence.
The initial project is being built for the OpenAI Build Week 2026 — Work & Productivity category.
Product promise
Most compliance tools tell a team what changed. ChangeProof completes the change—and proves it.
external obligation
-> cited structured requirement
-> organizational impact graph
-> coordinated document and code changes
-> human approval
-> tests and residual-risk checks
-> immutable evidence package
Initial demonstration
A fictional Indian lender receives an RBI circular reducing its complaint-response deadline from 30 days to 21 days. ChangeProof identifies every affected policy, SOP, control, service constant, scheduler, UI label, and test; produces coordinated redlines and patches; incorporates reviewer feedback; runs verification; and generates a source-to-change proof manifest.
Documentation
- Research and recommendation
- Product specification
- Architecture
- Build Week execution plan
- Delivery checklist
- Capital adequacy reference scenario
- Submission checklist
- Prior-work boundary
- Self-compliance obligations register
- Security policy and privacy boundary
Status
The deterministic offline vertical slice is implemented. It loads the synthetic lender workspace, computes cited artifact impacts and governed proposal history, applies only approved revisions to an isolated workspace, runs a real regression check and residual scan, and writes a hash-addressed proof record. A local reviewer UI binds approval to the exact displayed eight-artifact change plan.
Impact discovery is runtime analysis, not fixture lookup: ChangeProof scans the
workspace for obligation-relevant deadline spans and structural references,
records file/line/column evidence per edge, and constructs the impact graph. The
checked-in impacts.json is used only by tests as the expected-result oracle.
Offline edits target those evidenced offsets; unrelated occurrences are untouched.
Judge path — three commands
git clone https://github.com/SalilBhasinOfficial/changeproof.git
cd changeproof
PYTHONPATH=src python3 -m changeproof review --workspace /tmp/changeproof-review --database /tmp/changeproof-review.sqlite3
Open http://127.0.0.1:8000/. No package installation, API key, BBB service or
private data is required. Inspect the highlighted obligation and computed graph,
reject one impact with rationale, inspect the revised/superseded plan, then
approve the current plan to reach the proof certificate.
Run the CLI golden path
Requires Python 3.11 or newer. The demo runtime uses only the standard library. The workspace must be absent or empty.
PYTHONPATH=src python3 -m changeproof demo \
--workspace /tmp/changeproof-demo \
--database /tmp/changeproof-demo.sqlite3 \
--approve-as "$USER"
The command exits non-zero if the executable check fails or an obsolete 30
reference remains in the isolated workspace. --approve-as is the explicit
human authorization recorded before applying changes to that workspace; it
does not authorize production changes. Evidence is written to
/tmp/changeproof-demo/proof_manifest.json.
To run the reviewer flow from an existing checkout:
PYTHONPATH=src python3 -m changeproof review \
--workspace /tmp/changeproof-review \
--database /tmp/changeproof-review.sqlite3
Open http://127.0.0.1:8000/, inspect the cited obligation and eight diffs,
then enter a reviewer identity to authorize that exact plan. This applies only
to the isolated workspace and redirects to the resulting proof certificate.
Each impact can instead be rejected with reviewer identity and rationale. The review agent produces a revised proposal and new snapshot hash; the rejected snapshot remains viewable and is persisted as a rejected proposal revision. Only the latest exact snapshot can subsequently be approved.
Run the repository tests with:
python3 -m pytest -q
On a host whose system python3 is older than 3.11, create an isolated Python
3.12 environment with uv and run the same commands through it:
uv venv --python 3.12
uv sync --extra dev
uv run python -m pytest -q
The offline demo itself remains dependency-free. The optional AWS evidence sink
uses the separately declared hosted extra:
uv sync --extra dev --extra hosted
ChangeProof on ChangeProof
Before any video, screenshot or hosted demo, ChangeProof scans this repository and its hosting configuration against the cited M-SC controls:
PYTHONPATH=src python3 -m changeproof self-check --repo .
The command writes an ignored, locally generated manifest to
.changeproof/self_compliance_proof.json. It identifies frameworks checked,
file-hash evidence for each automated control and disclosed exceptions. This is a
self-assessment—not legal advice, certification, a penetration test, SOC 2 report
or independent audit. Public hosting and live uploads remain blocked.
Build Week implementation boundary
Before July 13, the repository contained product research, architecture and submission-planning documentation. The runnable Python package, synthetic lender fixture, reviewer UI, governed approval flow, integrity checks, executable tests and proof manifest were created during Build Week. Pre-existing BBB concepts informed the design, but the demo neither imports nor requires BBB code or data.
Codex accelerated repository analysis, implementation, deterministic fixture and test creation, adversarial review, documentation and end-to-end verification. The entrant retained the product decisions: the single fictional-lender scope, human approval boundary, evidence requirements, local-first architecture and final acceptance of every change.
Multi-agent Codex build
The primary Sol session decomposed and reviewed the architecture and final
integration. Terra implemented the exact-plan governance boundary; Luna built
integrity validation and adversarial tamper coverage. The primary session then
integrated, tested and accepted each increment. This mirrors ChangeProof itself:
specialized proposals, explicit boundaries, independent verification and a
human-controlled final decision. The dated record is in
docs/build-week/PROVENANCE.md.
GPT-5.6 integration
When OPENAI_API_KEY is configured, ChangeProof uses the OpenAI Responses API
and gpt-5.6-luna for schema-constrained obligation extraction. It rejects any
citation that is not copied byte-for-byte from the source and any deadline not
supported by that quote. Model, call time, response ID, prompt/schema/source and
validated-response hashes are preserved in the proof lineage.
The proof manifest promotes extraction and drafting into first-class model evidence records. Each record binds the phase, actual model or deterministic provider, prompt version, schema version and validated response hash under its own canonical SHA-256; the manifest also binds the combined evidence chain.
GPT-5.6 Terra also drafts a complete replacement proposal for each of the eight artifacts. ChangeProof binds every proposal to a known fixture ID and path, requires exact coverage, validates JSON/Python syntax and the 30-to-21 change, then displays locally generated diffs. These remain proposals until the reviewer approves the exact snapshot hash.
Without a key—or when either model output fails validation—the same full golden
path uses the checked-in deterministic obligation and proposal package and
records the fallback reason. Model tiers and the local cache are configured through
.env.example.
Cost-effective governance AI
ChangeProof treats model efficiency as proof evidence. Exact source-span SHA-256
keys root a local result cache, so an identical validated obligation can reuse its
bound response without another API call. Prompts keep system policy, schema and
static task text in a stable prefix and dynamic evidence at the end, with a stable
prompt_cache_key. Provider-reported input/output, cached and cache-write tokens
flow into the proof certificate alongside execution mode, estimated cost and cost
avoided. Missing provider usage remains “not reported”; it is never invented.
The default tier is GPT-5.6 Luna for structured extraction and Terra for redline reasoning; Sol is reserved for an explicit hard-reasoning choice. For non-urgent multi-artifact and multi-framework work, prepare a Responses Batch JSONL with:
PYTHONPATH=src python3 -m changeproof batch-plan --repo .
This command does not submit or require a key. Explicit submission is a separate credentialed API action. As verified 2026-07-16, OpenAI prompt caching applies at 1,024+ input tokens, exposes cache reads/writes, and recommends stable prefixes and keys; Batch advertises 50% lower cost with a 24-hour completion window. GPT-5.6 cache writes are billed at 1.25× uncached input, so the recommendation surface also flags low reuse. Sources: prompt caching, Batch API, model guidance, and pricing.
Runtime dependencies: Python 3.11+ only; the optional OpenAI call uses the Python
standard library. Development verification uses the dev extra; the optional
AWS evidence sink uses the hosted extra.
All fixture content is synthetic; no private services, credentials or third-party
data are required.
License
Licensed under the Apache License 2.0.
Analysis
View
Metric
- 54
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- PythonIn code
1 of 1 appear in the indexed code.
AI coding agents
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
382 KB
Source files
63
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
SalilBhasinOfficial/changeproof
87 files · 5.6 MB · @ 6bb5024
Structure
Application logic
26 files · 30%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Markdown51%
- Python49%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
pyproject.toml
pypi · 22 development-only dependencies.
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.