docs: codify merge proof standard

This commit is contained in:
Alexander Whitestone
2026-03-28 10:02:30 -04:00
parent 3be3a6ed4f
commit 415f1229c6
3 changed files with 78 additions and 0 deletions

55
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,55 @@
# Contributing to timmy-home
## Proof Standard
This is a hard rule.
- visual changes require screenshot proof
- keep screenshots and binary media out of Gitea backup unless explicitly required
- CLI/verifiable changes must reference the exact command output, log path, or observable state that proves acceptance criteria were met
- compile-only validation is not enough when stronger runtime or world-state proof is available
- no proof, no merge
## How to satisfy the rule
### Visual changes
Examples:
- browser UI
- dashboards
- render/layout changes
- skins or visible presentation changes landed through this workspace
Required proof:
- provide screenshot proof
- store screenshots outside the repo by default
- explain what the screenshot proves
### CLI / docs / scripts / harness-adjacent changes
Examples:
- scripts under `scripts/`
- training/export utilities
- report generators
- operational documentation that claims a system behavior is true
Required proof:
- cite the exact command used, and its output, or
- cite the exact log path, artifact path, or observable world-state proving the claim
Good:
- `python3 -m pytest tests/test_x.py -q``2 passed`
- `/Users/apayne/.timmy/reports/...`
- `/Users/apayne/.timmy/heartbeat/...`
Bad:
- "looks correct"
- "compiled fine"
- "should be working"
## Merge gate
A PR is only ready when the reader can answer:
1. what changed
2. what acceptance criteria were targeted
3. what proof demonstrates those criteria were met
If the proof is absent, the work is not ready to merge.

View File

@@ -41,3 +41,9 @@ ps aux | grep -E "claude-loop|gemini-loop|timmy-orchestrator" | grep -v grep
- Health Monitor: every 5m, haiku (not opus!)
- DPO export / training support jobs: explicit model, explicit task, no hidden defaults
- All crons MUST specify model explicitly. Never inherit default.
## Proof Standard
- visual changes require screenshot proof
- keep screenshots and binary media out of Gitea backup unless explicitly required
- CLI/verifiable changes must reference the exact command output, log path, or observable state proving the claim
- see `CONTRIBUTING.md` for the merge gate

View File

@@ -0,0 +1,17 @@
from pathlib import Path
def test_contributing_sets_workspace_proof_rule() -> None:
doc = Path("CONTRIBUTING.md").read_text()
assert "visual changes require screenshot proof" in doc
assert "keep screenshots and binary media out of Gitea backup" in doc
assert "CLI/verifiable changes must reference the exact command output, log path, or observable state" in doc
assert "no proof, no merge" in doc
def test_operations_mentions_proof_standard() -> None:
ops = Path("OPERATIONS.md").read_text()
assert "Proof Standard" in ops
assert "CONTRIBUTING.md" in ops