Home

boring / v2

publicBoring-Software-Inc/v2
Overview Code History Branches Pull requestsIssuesInsights Campfire Docs
main
HomeOverview Code PRsIssues

feat(core): step 5 — rules registry, 8 rules, scoring

4 months ago

6760718
Authored
grim7/11/2026, 11:13:45 AM
- defineRule primitive + async evaluateRule producing RuleResult envelopes
  (skipped-not-thrown for bad config/evidence), typed registry keyed id@version
- rules @1: account-age, min-merged-prs, pr-rate-limit (interval CoV evidence),
  max-files-changed, english-only, crypto-address, honeypot, profile-readme
- scoring: abstract signal taxonomy (4 categories, missing categories degrade),
  0-100 composition; fast-check properties: range, red-flags-never-raise,
  determinism
- per-rule unit tests over fixture contexts (normalized captured events);
  contracts: RuleResult envelope

Parentdda5e16

33 files changed
  • DECISIONS.md+34−0
  • VERIFICATION-QUEUE.md+10−0
  • all-summaries.md+43−0
  • bun.lock+8−0
  • packages/contracts/src/rules.ts+20−0
  • packages/core/fixtures/change-request.opened.event.json+27−0
  • packages/core/fixtures/comment.created.event.json+24−0
  • packages/core/package.json+5−1
  • packages/core/src/context.ts+49−0
  • packages/core/src/index.ts+23−10
  • packages/core/src/rules/account-age.test.ts+55−0
  • packages/core/src/rules/account-age.ts+35−0
  • packages/core/src/rules/crypto-address.test.ts+56−0
  • packages/core/src/rules/crypto-address.ts+59−0
  • packages/core/src/rules/define.ts+100−0
  • packages/core/src/rules/english-only.test.ts+47−0
  • packages/core/src/rules/english-only.ts+63−0
  • packages/core/src/rules/honeypot.test.ts+56−0
  • packages/core/src/rules/honeypot.ts——
  • packages/core/src/rules/max-files-changed.test.ts+33−0
  • packages/core/src/rules/max-files-changed.ts+28−0
  • packages/core/src/rules/min-merged-prs.test.ts+32−0
  • packages/core/src/rules/min-merged-prs.ts+28−0
  • packages/core/src/rules/pr-rate-limit.test.ts+74−0
  • packages/core/src/rules/pr-rate-limit.ts+65−0
  • packages/core/src/rules/profile-readme.test.ts+44−0
  • packages/core/src/rules/profile-readme.ts+35−0
  • packages/core/src/rules/registry.test.ts+39−0
  • packages/core/src/rules/registry.ts+42−0
  • packages/core/src/rules/test-context.ts+67−0
  • packages/core/src/scoring/score.test.ts+65−0
  • packages/core/src/scoring/score.ts+49−0
  • packages/core/src/scoring/signals.ts+33−0