Try a signup
Drop-in install (for ACG / any signup form)
Add two lines to your existing signup form. No build step. No backend. Runs entirely client-side.
<!-- 1. Load the module --> <script src="https://sjgant80-hub.github.io/fall-vetter/fall-vetter.js"></script> <!-- 2. Wire it to your form (one line) --> <script> FallVetter.attach({ button: document.getElementById('guildSubmit'), onAllow: (v) => submitMyForm(v), onReview: (v) => flagForHumanReview(v), onBlock: (v) => showError(v.reasons) }); </script>
Or call directly
const result = FallVetter.vet({ name: "Simon Gant", email: "sjgant80@gmail.com", linkedin: "https://linkedin.com/in/simon-gant", github: "https://github.com/sjgant80", message: "I build sovereign software." }); // → { score: 100, decision: 'allow', reasons: [], audit: {...} }
What it checks
- name · length, letters present, no URLs, wind-up patterns, profanity, keyboard mash, all-caps
- email · syntax, disposable domains, role accounts, profanity/wind-up in local part, numeric throwaways
- linkedin · URL format +
/in/path · soft penalty if absent - social fallback · GitHub / X / Substack / Medium / personal domain accepted in lieu of LinkedIn
- identity floor · at least ONE social link required — pure email signups are blocked
- message body · profanity, hacker bait, sarcasm signals, excessive caps/exclamation
- coherence · soft check that name and email local overlap
Decision matrix
- allow score ≥ 70 and no block-level findings → submit straight through
- review score 40-69 → human reviews the borderline signal
- block score < 40 or any block-level finding → polite rejection
Audit results broadcast on fall-signal (kind fall_vetter_result) for estate-wide review queues. No PII stored — just an 8-char hash of name+email.