You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Testing — How to Write Tests That Matter (this epic)
Customer story
A platform lead drops three files into their repo: .forge/product-vision.md, .forge/quality-manifesto.md, .forge/testing-manifesto.md. The PO reads vision to file the right tickets. The worker reads quality to write the feature the right way. The worker reads testing to write tests that catch the right bugs. Every shipped PR has explicit citations from all three. When a bug ships and gets fixed, forge-loop manifesto suggest --from-pr <N> proposes manifesto deltas so the bug can't recur.
Customer-owned files
.forge/quality-manifesto.md
Free-form + structured rules. Examples:
"No shared mutable module-level state. Use a Container or per-instance State."
"Every external I/O boundary lives behind a typed Protocol with a Fake for tests."
Why
Three repeated failure shapes during the dogfood week:
Insight: each bug is valuable feedback. The manifestos turn that feedback into a permanent gate that future workers must follow.
Per-project, customer-tunable, version-controlled manifestos for:
Customer story
Customer-owned files
.forge/quality-manifesto.mdFree-form + structured rules. Examples:
.forge/testing-manifesto.mdThe "how to write tests that catch real bugs" playbook. Examples (informed by THIS week's bugs):
The feedback loop
forge-loop manifesto suggest --from-pr <N>— reads the merged fix PR, analyzes the failure shape, proposes manifesto deltas (new quality rule? new testing pattern?).Acceptance
.forge/quality-manifesto.md+.forge/testing-manifesto.md(mirror feat(brainstormer): .forge/product-vision.md + axes.yaml discovery + schema #122 pattern)forge-loop manifesto suggestCLI command — bug PR in → manifesto delta outSub-tickets (this epic's children) — filed in this PR
forge-loop manifesto suggest --from-prfeedback-loop CLIConnection to today's bugs
Each iteration-probe bug would have been caught by these manifesto rules: