Summary
Add benchmark/integration fixtures for rules-nlp so realistic marketing-copy samples can catch diagnostic drift across releases.
Proposal
Create a packages/rules-nlp/test/fixtures/ directory with representative copy samples, then add an integration test that runs the rule suite over each fixture and asserts the diagnostic count stays stable.
Fixture Coverage Ideas
- SaaS homepage hero copy
- Product launch announcement
- Enterprise feature page
- Lifecycle email or onboarding copy
- Short social/ad copy
Expected Test Shape
- Load fixture files from
packages/rules-nlp/test/fixtures/.
- Run the configured
rules-nlp registry against each fixture.
- Assert diagnostic counts per fixture and, where useful, per rule.
- Keep expected counts explicit so intentional rule behavior changes require deliberate snapshot/count updates.
Risk Note
Fixture tests can become noisy if they assert too much detail. Start with stable diagnostic counts and only add exact range assertions for high-value regression cases.
Implementation Reference
Use existing rules-nlp tests and no-buzzword-stacks coverage as the wiring reference:
https://github.com/omniaura/faircopy/blob/main/packages/rules-nlp/test/rules.test.mjs
Summary
Add benchmark/integration fixtures for
rules-nlpso realistic marketing-copy samples can catch diagnostic drift across releases.Proposal
Create a
packages/rules-nlp/test/fixtures/directory with representative copy samples, then add an integration test that runs the rule suite over each fixture and asserts the diagnostic count stays stable.Fixture Coverage Ideas
Expected Test Shape
packages/rules-nlp/test/fixtures/.rules-nlpregistry against each fixture.Risk Note
Fixture tests can become noisy if they assert too much detail. Start with stable diagnostic counts and only add exact range assertions for high-value regression cases.
Implementation Reference
Use existing
rules-nlptests andno-buzzword-stackscoverage as the wiring reference:https://github.com/omniaura/faircopy/blob/main/packages/rules-nlp/test/rules.test.mjs