The gatekeeper and proof engine for human voice.
Input raw text. Get a binary PASS or FAIL against eight mechanical rules and a sentence rhythm floor. Output clean text plus a signed audit a client can verify.
Deterministic cadence harness, Voice DNA profiler, and local-first HTML5 writing workbench.
Scope. Calibrated on non-fiction prose, from 134,522 posts. Dialogue-heavy fiction inflates sentence-length variation, so a pass on fiction is not evidence of anything.
grai is not an editor and it is not a passive assistant. It is a gate with a fixed decision.
- Input: a raw draft, yours or a model's.
- Action: a binary PASS or FAIL against eight mechanical rules plus the sentence rhythm floor (
CV = sigma / mu >= 0.32). - Output: the clean text plus an ECDSA P-256 signed audit card with the score, the CV and the defect count. Share the card as
https://grai.page/seal#<record>.
grai (always written in lowercase) is the archaic Romanian word for the physical grain and living timbre of a human voice. It describes the unmistakable way a specific person speaks and thinks.
The grai mark fuses two symbols into a single broadsheet proofreader's glyph:
- The calligraphic loop and ear of a lowercase typographic
g(drawn from classic European press type). - The mathematical symbol
sigma(standard deviation). It anchors the core metric of our cadence engine: sentence-length burstiness (CV = sigma / mu).
Across 3.5 years of continuous empirical tracking, we audited 134,522 organic LinkedIn posts across 1,499 verified founder profiles (LigoSocial dataset: continuous publishing over 3.5 years, minimum 2,000 followers, primary language English).
As awareness of synthetic copy spread, founders scrubbed mocked vocabulary words from their drafts. Yet structural and rhythmic predictability surged by 400%:
| Linguistic Signal | Q1 2023 | Q3 2026 | Observed Delta |
|---|---|---|---|
Opening Formula ("Here is why" / "The truth is") |
1.3% |
9.6% |
+7.4x |
Forced Opposition ("Not X, but Y") |
1.2% |
5.9% |
+4.9x |
Arrow & Emoji Bullet Cascades (->, β³, π) |
0.6% |
12.3% |
+20.5x |
| Mocked ClichΓ© Vocabulary | 4.2% |
0.5% |
-88.1% |
Mean Sentence Burstiness (CV = sigma / mu) |
0.48 |
0.23 |
-52.1% |
Writers deleted the words everyone mocked. They kept the sentence rhythm that gives a language model away.
Read the full research paper at grai.page/methodology (Markdown mirror for agents).
Aligned with Google Research's Harness2 findings, grai keeps model weights frozen and wraps any frontier or local LLM inside a deterministic voice harness:
- Voice DNA Extraction (
03 VOICE DNA PROFILER): Ingests 5 to 20 of your real posts and computes quantitative baselines: median sentence length, burstiness coefficient (CV = sigma / mu), sentence starters, punctuation density, and forbidden angles. - Premise Sparring (
02 THE WRITING DESK): Before drafting a single line, grai challenges safe or unanchored ideas (Counter-Punch,Adopt Angle, orBypass) and drafts three structural galleys simultaneously:- THE SCALPEL: Compressed hook, high-contrast cadence.
- THE BROADSHEET: Concrete scene first, takeaway last.
- THE LEDGER: Empirical evidence and numbers first.
- Deterministic Cadence Gate (
01 CADENCE GATE): Audits every draft in your browser outside the LLM against eight syntactic rules plus a mathematical burstiness floor (CV >= 0.32). It scores drafts from 4 to 100, highlights matching spans (<mark class="slop-mark">), and offers targeted span repair (buildSurgicalTargets/applySurgicalReplacements) while leaving the final decision to edit or copy with you:CONTRASTIVE_NEGATION: Flags synthetic strawman antithesis ("It's not X, it's Y").LESS_MORE_SYMMETRY: Flags corporate symmetry cliches ("Less X, more Y","Stop X, start Y").EPIPHANY_OPENER: Flags throat-clearing hooks ("Here is why","The harsh truth is","Let that sink in").ARROW_BULLET_SLOP: Flags template arrow and emoji cascades (->,β³,β,π,1/).TRIADIC_PADDING: Flags empty slogan triads ("No X. No Y. Just Z.").LEXICAL_SLOP: Flags remaining synthetic vocabulary tells while protecting domain nouns.VERDICT_COLON: Flags pompous summary colons ("The reality is:","The takeaway:").PROSE_TRIAD: Flags rhetorical question cascades and tricolons in prose.SMOOTH_BRIDGE: Flags chained explanatory transitions between paragraphs.FLAT_BURSTINESS: EnforcesCV = sigma / mu >= 0.32across sentence word counts and strips zero-width Unicode watermarks (U+200BtoU+200D,U+FEFF).
This is a style gate, not an authorship detector. It flags structural patterns; it does not prove who wrote a text.
Test your last published post for free in the live browser scorer at grai.page/#test.
This repository ships the open-core MIT layer of grai so developers and AI agents can inspect the linguistic specifications and load the skill directly into Claude Code or Cursor (plus Antigravity and Custom GPTs):
grai/
βββ assets/ # Brand mark (grai-logo.svg), architecture diagram, and social card
βββ instructions/ # MIT Licensed: LLM-agnostic 5-file instruction harness
β βββ SYSTEM-PROMPT.md # Core operating contract and mode definitions
β βββ voice.md # Quantitative Voice DNA extraction spec & 2023-2026 empirical table
β βββ write.md # Premise sparring and 3-galley drafting rules
β βββ platforms.md # Sourced platform character limits and fold cuts
β βββ visuals.md # Typography card and visual prompt specifications
βββ skill/grai/ # MIT Licensed: Ready-to-mount Agent Skill
β βββ SKILL.md # Agent skill manifest
β βββ references/ # Reference specifications
βββ research/
β βββ methodology.md # Linguistic Audit of 134,522 LinkedIn Posts (LigoSocial dataset)
βββ llms.txt # AI agent quick-start index
βββ llms-full.txt # Complete technical specification for LLM grounding
βββ persona.json # Canonical entity graph & author grounding
βββ LICENSE # MIT License (scoped to instructions/ and skill/)
The standalone grai desktop application (grai.html, 618 KB single-file HTML5 workbench, v3.3.0) is commercial software available at grai.page.
- Signed seal and Style Lock (v3.3.0): export a hash-only seal payload and sign it at grai.page/seal, so a client can verify a report without ever seeing the draft; share a style rule file across a team without moving any draft text.
- Free browser scorer, no signup: test the 8-rule gate and the burstiness floor on your own text at grai.page/#test. The page runs the same engine locally, with no account and no upload. When a draft passes, issue a signed audit card at grai.page/seal and send the link to a client.
- Shipped Pre-Built Kit (
grai.htmlin the ZIP): Ships withdefault-src 'none'; connect-src 'none'(allowing inline styles/scripts anddata:fonts/images while blocking direct API connections) and runs out of the box in Copy-Paste ("Any AI") mode (< 1,800 chardense prompt builder). - Custom Source Build (
source/src/app.html+scripts/build.py): Editconnect-srcand rebuild withpython3 scripts/build.pyto enable direct browser-to-API calls (BYOK) or local Ollama (http://localhost:11434). - Solo Offline Edition ($79/yr): Watermarked local HTML5 workbench, Voice DNA profiler with 1 voice profile, 8-rule Cadence Gate, and 1-click
.grailocal backup. Billed annually. - Agency Verification Protocol ($99/mo or $790/yr): Commercial licence for client work, up to 10 executive client voice profiles, white-label A4 Client Voice DNA Dossiers, live ECDSA P-256 seals at grai.page/verify/:hash, and offline
.graiteam sync. Annual link: https://buy.stripe.com/dRmfZb2FWalP42d5c3ds402 - Executive Voice DNA Architecture ($950 one-time): 50 executive posts calibrated by hand in 24h, locked
.grai.jsonprofile, A4 reference dossier, and 1 year of Solo Workbench. - Voice DNA Archetype Presets ($39 once): Four pre-calibrated baseline models (The Contrarian Founder, The Technical Architect, The Boutique Ghostwriter, The Cold Outreach Closer).
- Affiliate program (40% commission): For newsletters, communities and consultants who recommend tools to writers.
Version 3.2.0 introduces the Cadence Mastery Arcade directly inside the desk:
- Six mechanical locks tracking real writing habits (Burstiness, Filler-Free, Anti-Corporate, Syntax, Concrete Nouns, Ghost-Clean).
- 1-Click Ghost Sweep: scrubs invisible zero-width unicode artifacts (
\u200B-\u200D,\uFEFF, soft hyphens) and converts typographic dashes into clean punctuation. - Season 0 A4 Recap: deterministic single-page printable progress dossier with local SHA-256 integrity verification.
Agencies embed the calibrator with one iframe: <iframe src="https://grai.page/embed?ref=PARTNER_ID" width="100%" height="520" frameborder="0"></iframe>. The ref parameter appends the partner code to eligible checkout links, so the agency earns 40% on eligible referrals.
GET https://grai.page/api/score?text=... or POST https://grai.page/api/score with {"text": "..."} returns the score, the cadence CV against the 0.32 floor, the failed rules and the checkout links. Stateless, no key, no storage.
Published on PyPI as grai-mcp. Every client below runs the same stdio server, no clone and no local path.
{
"mcpServers": {
"grai-gate": {
"command": "uvx",
"args": ["--from", "grai-mcp", "grai-gate-mcp"]
}
}
}Claude Desktop: save the block to ~/Library/Application Support/Claude/claude_desktop_config.json.
Cursor: save it to .cursor/mcp.json.
Cline: add it in the MCP Servers panel.
Windsurf: save it to ~/.codeium/windsurf/mcp_config.json.
Without uv, install once with pip install grai-mcp and use "command": "grai-gate-mcp" with an empty args.
Every surface the server lives on, including Docker, the registry name and the LobeHub listing: MCP.md.
Smithery's proxy, accounts and publisher dashboard shut down on 31 October 2026. The listing instructions it used to need no longer apply. The server is distributed through PyPI (grai-mcp) and the official MCP Registry (io.github.adrianpeticila/grai-mcp).
The server exposes grai_score_draft, grai_issue_agency_seal and grai_verify_seal. Every call returns the score, the failed rules and the four canonical Stripe upgrade links:
- Solo Offline Edition ($79/yr): https://buy.stripe.com/3cIaERgwM9hLbuF33Vds400
- Agency Verification Protocol Monthly ($99/mo): https://buy.stripe.com/3cI28lbcs51v2Y9bArds401
- Agency Verification Protocol Annual ($790/yr): https://buy.stripe.com/dRmfZb2FWalP42d5c3ds402
- Executive Voice DNA Architecture DFY ($950 once): https://buy.stripe.com/aFa5kx1BS2Tn8it47Zds403
- Solo Offline Edition ($79/yr): Get Solo Offline. Watermarked local workbench, Voice DNA profiler with 1 voice profile, 8-rule Cadence Gate, and 1-click
.graibackup. - Agency Verification Protocol ($99/mo or $790/yr): Monthly or Annual. Commercial licence, up to 10 executive client voice profiles, white-label A4 Dossiers, and live ECDSA P-256 seals at grai.page/verify/:hash.
- Executive Voice DNA Architecture ($950 one-time): Book the calibration. 50 executive posts calibrated by hand in 24h, locked
.grai.jsonprofile, A4 reference dossier, and 1 year of Solo Workbench. - Pre-calibrated Voice DNA Presets Pack ($39 one-time): Get the 4 Archetypes. The Brutalist Engineer, The Contrarian Bootstrapper, The B2B Cold Sniper, and The Substack Essayist.
- Legacy lifetime licences: Existing $149 Agency lifetime licences are grandfathered with their promised client profiles and permanent verification links. No migration payment is required.
- Earn 40% per eligible referral. Open the partner program.
- All Comparisons Hub (
grai.page/vs/) - grai vs. Claude Projects & Custom GPTs
- grai vs. ContentIn & Cloud LinkedIn SaaS
- grai vs. Retainer Ghostwriting Agencies
- grai vs. Taplio & Cloud LinkedIn Automation
- grai vs. AuthoredUp & LinkedIn Text Formatters
- grai vs. Jasper AI & Enterprise Copywriting
- grai vs. Typefully & Cloud Publishing
- grai vs. Copy.ai & GTM Workflows
- grai vs. AI Detectors & Humanizers
- grai vs. Supergrow & LinkedIn SaaS
- grai vs. Hypefury & Social Schedulers
- grai for LinkedIn Ghostwriters
- grai vs. Grammarly & Tone Flatteners
- grai vs. Writesonic & SEO Generators
- grai vs. Manual Client Voice Onboarding Docs
- grai for Substack & Beehiiv Writers
- grai for Executive PR Agencies
- grai vs. Buffer AI Assistant
- grai vs. Hootsuite OwlyWriter AI
Built by Adrian M. Peticila (peticila.ro Β· aah.monster Β· hydra.peticila.ro).
- Canonical Entity:
https://peticila.ro/#person - Wikidata:
Q140362129 - ORCID:
0009-0005-9601-9527