Skip to content

feat(manifestos): seed quality+testing manifestos for forge-loop (#135)#139

Merged
hadamrd merged 1 commit into
trunkfrom
loop/135-feat-manifestos-seed-quality-testing-man
May 28, 2026
Merged

feat(manifestos): seed quality+testing manifestos for forge-loop (#135)#139
hadamrd merged 1 commit into
trunkfrom
loop/135-feat-manifestos-seed-quality-testing-man

Conversation

@hadamrd
Copy link
Copy Markdown
Owner

@hadamrd hadamrd commented May 28, 2026

Closes #135. Part of #130.

Summary

  • Adds .forge/quality-manifesto.md — 5 rules + rationale, each citing the issue that motivated it.
  • Adds .forge/testing-manifesto.md — 6 rules + rationale, drawn from this week's iteration-probe bugs.
  • Adds tests/test_manifestos_discovery.py — meta-validates both files (discoverability, rule structure, rationale presence, required issue references, anti-stub guard).
  • Updates .gitignore to un-ignore exactly these two seed files while keeping the rest of .forge/ operator-local.

Acceptance criteria — coverage

Quality manifesto rules (with rationale citing source issue):

Testing manifesto rules:

Test plan

  • pytest tests/test_manifestos_discovery.py — 22 passed
  • Meta: this PR's own diff is intended to be reviewed against the new manifestos (dogfood loop).

Dogfood the manifestos system on forge-loop itself by writing the seed
quality and testing manifestos that every future forge-loop change is
gated against.

quality-manifesto.md codifies five rules drawn from this week's
persistent-worker work: no shared module-level state (#100), typed
Protocol+Fake at every I/O boundary (#104), single Settings source of
truth (#98), typed events instead of untyped **fields (#99), and no
subprocess.run for SDK-able services (#103, #105). Each rule names the
concrete issue it came from so future contributors know the *why*.

testing-manifesto.md codifies six rules drawn from this week's
iteration-probe bugs: one test per state-machine edge plus a fallthrough
adversarial (would have caught #97/#120/#128), an adversarial test for
the false case of every external-dep assumption, both ==0 and !=0
branches for every subprocess.returncode (specifically #128), a
contract test pinning every Fake to its Real, hypothesis property
tests on >4-branch / user-input functions (#102), and an adversarial
test that every infinite-loop guard actually fires.

tests/test_manifestos_discovery.py is the meta-validation gate: it
discovers and parses both files, asserts each rule has a rationale,
asserts the spec-mandated issue references are present, and includes
adversarial tests that stubs and missing files are detectable. 22
tests, all pass.
@hadamrd hadamrd merged commit 1d3f057 into trunk May 28, 2026
1 check passed
@hadamrd
Copy link
Copy Markdown
Owner Author

hadamrd commented May 28, 2026

Source issue #135 was closed mid-flight (state: closed). Loop refusing auto-merge. Reopen the issue OR merge manually.

@hadamrd hadamrd deleted the loop/135-feat-manifestos-seed-quality-testing-man branch May 28, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(manifestos): seed quality+testing manifestos for forge-loop itself (dogfood)

1 participant