Skip to content
adrianpeticilaPublic

Repository files navigation

grai logo mark

grai

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.

grai.page Methodology Study Comparisons llms.txt MIT License

grai: Your cadence. Measured. Then drafted.

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.

The Gate Contract

grai is not an editor and it is not a passive assistant. It is a gate with a fixed decision.

  1. Input: a raw draft, yours or a model's.
  2. Action: a binary PASS or FAIL against eight mechanical rules plus the sentence rhythm floor (CV = sigma / mu >= 0.32).
  3. 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>.

Why the Name and Mark (grai)

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:

  1. The calligraphic loop and ear of a lowercase typographic g (drawn from classic European press type).
  2. The mathematical symbol sigma (standard deviation). It anchors the core metric of our cadence engine: sentence-length burstiness (CV = sigma / mu).

1. The Blocklist Paradox (Empirical Audit of 134,522 LinkedIn Posts)

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).


2. Architecture: Harness over Fine-Tuning

grai deterministic signal chain and cockpit score comparison

Aligned with Google Research's Harness2 findings, grai keeps model weights frozen and wraps any frontier or local LLM inside a deterministic voice harness:

  1. 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.
  2. Premise Sparring (02 THE WRITING DESK): Before drafting a single line, grai challenges safe or unanchored ideas (Counter-Punch, Adopt Angle, or Bypass) 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.
  3. 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: Enforces CV = sigma / mu >= 0.32 across sentence word counts and strips zero-width Unicode watermarks (U+200B to U+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.


3. Repository Structure & Dual-Licence Model

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/)

Want the Full Local Workbench?

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.html in the ZIP): Ships with default-src 'none'; connect-src 'none' (allowing inline styles/scripts and data: fonts/images while blocking direct API connections) and runs out of the box in Copy-Paste ("Any AI") mode (< 1,800 char dense prompt builder).
  • Custom Source Build (source/src/app.html + scripts/build.py): Edit connect-src and rebuild with python3 scripts/build.py to 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 .grai local 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 .grai team 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.json profile, 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.

Arcade Mastery & Ghost Sweep

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.

Embeddable Audit Widget

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.

Free Scoring API

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.

MCP Server (Claude Desktop / Cursor / Cline / Windsurf)

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.

Directory listings

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:

Commercial Editions & 40% Partner Program

  • 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 .grai backup.
  • 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.json profile, 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.

Side-by-Side Comparisons


4. Author & Entity Grounding

Built by Adrian M. Peticila (peticila.ro Β· aah.monster Β· hydra.peticila.ro).

Releases

Packages

Contributors

Languages