docs: codify merge proof standard (#32)
This commit was merged in pull request #32.
This commit is contained in:
55
CONTRIBUTING.md
Normal file
55
CONTRIBUTING.md
Normal 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.
|
||||||
@@ -41,3 +41,9 @@ ps aux | grep -E "claude-loop|gemini-loop|timmy-orchestrator" | grep -v grep
|
|||||||
- Health Monitor: every 5m, haiku (not opus!)
|
- Health Monitor: every 5m, haiku (not opus!)
|
||||||
- DPO export / training support jobs: explicit model, explicit task, no hidden defaults
|
- DPO export / training support jobs: explicit model, explicit task, no hidden defaults
|
||||||
- All crons MUST specify model explicitly. Never inherit default.
|
- 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
|
||||||
|
|||||||
17
tests/test_proof_policy_docs.py
Normal file
17
tests/test_proof_policy_docs.py
Normal 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
|
||||||
Reference in New Issue
Block a user