Parent roadmap: #82
Cross-link: Phase 6 safety work #269
Background
Public output safety is one of Gittensory's core trust boundaries. It should be tested centrally instead of relying on scattered checks.
Goal
Create a unified public/private safety proof suite for comments, checks, mention replies, PR packets, MCP public output, generated issue/PR text, extension public panels, and copied snippets.
Current behavior
Several sanitization tests exist, but the forbidden language boundary should be harder to regress as new surfaces are added.
Desired behavior
A single helper and fixture set validates every public-output producer against the same forbidden concepts. Private authenticated output remains separately tested so it can carry allowed private context without leaking it into public surfaces.
Implementation requirements
- Centralize forbidden concept checks.
- Add helper for public-output assertions.
- Cover GitHub comments, minimal checks, mention replies, PR packets, MCP public-safe text, extension public panels, generated issue/PR text, and copied public snippets.
- Keep private API/MCP tests separate.
- Avoid brittle exact-copy snapshots where semantic checks are better.
Public/private output boundaries
Public GitHub output must stay quiet-by-default and sanitized. It must not include private reviewability, scoreability, reward/risk, raw trust, wallet/hotkey, public score estimates, or farming language.
Acceptance criteria
Testing requirements
- npm run test:ci must pass.
- Global coverage must remain at or above 97% for lines, statements, functions, and branches.
- Aim for 98%+ branch coverage locally to avoid CI variance.
- Add tests for every new branch, fallback path, sanitizer rule, and regression.
- Add invariant/property-style tests when behavior depends on sorting, gating, scoring, queue pressure, source-upload safety, public/private boundaries, or upstream drift.
- Public GitHub output must be tested against forbidden language: wallet, hotkey, raw trust score, payout, reward estimate, farming, private reviewability, private scoreability, and public score estimate.
- MCP/local tooling must prove source contents are not uploaded.
Additional test scenarios
- Comment fixture.
- Check-run fixture.
- Mention reply fixture.
- PR packet fixture.
- MCP public-safe fixture.
- Extension public-panel fixture.
- Generated issue/PR body fixture.
- Negative control for private API.
Parent roadmap: #82
Cross-link: Phase 6 safety work #269
Background
Public output safety is one of Gittensory's core trust boundaries. It should be tested centrally instead of relying on scattered checks.
Goal
Create a unified public/private safety proof suite for comments, checks, mention replies, PR packets, MCP public output, generated issue/PR text, extension public panels, and copied snippets.
Current behavior
Several sanitization tests exist, but the forbidden language boundary should be harder to regress as new surfaces are added.
Desired behavior
A single helper and fixture set validates every public-output producer against the same forbidden concepts. Private authenticated output remains separately tested so it can carry allowed private context without leaking it into public surfaces.
Implementation requirements
Public/private output boundaries
Public GitHub output must stay quiet-by-default and sanitized. It must not include private reviewability, scoreability, reward/risk, raw trust, wallet/hotkey, public score estimates, or farming language.
Acceptance criteria
Testing requirements
Additional test scenarios