Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Audit AI reviews every draft against your approved guidelines, facts and assets before it goes live. Each finding shows its source, and a person makes the final call.
BusinessPython · TypeScriptGitHub @Audit-AIIIOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
TechCircuit
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Audit AI checks content before it is published against a brand's own approved documents (brand guide, fact sheet, product specs). Every finding shows the evidence it is based on: the exact quote from the approved document. When no approved document covers a claim, the claim is marked "unverified", never "false". Audit AI only suggests; a person makes the final call on every draft.
Built by team CodeNinjas for the Inkloom AI hackathon.
One email is one private account that owns one or more brands. The owner writes, checks and approves their own content; nothing is ever approved for them, and every decision is saved with who, when and which version. Roles, risk routing and invites are deferred to the roadmap. See DECISIONS.md for the reasoning.
| Built today | Planned |
|---|---|
| Factual-claim checking: claims in a draft are extracted and checked against the brand's approved documents (supported / contradicted / unverified / documents disagree), with the quote behind each verdict | Tone checks |
| Upload brand documents (PDF, Word, text) and drafts (paste or upload) | Visual (logo and colour) checks |
| Terminology and accessibility checks run on every review, with a brand rules editor | Multi-user roles (separate writers, reviewers, approvers) |
| Suggestions: evidence-backed corrections, and a labelled "safer wording, not evidence-backed" for unverified claims | |
| Decide on each review: approve, send back with a note, or reject; every decision is recorded | |
| Versions: edit a draft, save a new version, check it again; an old approval never applies to a newer version | |
| Source Watch: withdrawing or replacing an approved document sends dependent approvals back for review | |
| Intent-lock: must-keep phrases saved on the server; no suggestion that removes one is offered, and an edit that drops one is warned about | |
| Dismiss and restore a finding (the verdict stays as it was), and comments on findings | |
| Trust Scorecard: run the verifier's labelled evaluation from the page and see the run's numbers (needs an AI provider key; none is configured yet) |
The landing page (components/sections/Checks.tsx) still marks terminology and accessibility as "Coming next" although they now run on every review; it needs updating (frontend).
| Part | Folder | Stack |
|---|---|---|
| Frontend | audit-ai-final/frontend | Next.js (App Router), React, TypeScript, Tailwind v4, GSAP, Lenis (landing page only) |
| Backend API | services/api | FastAPI, SQLAlchemy 2, Alembic, PostgreSQL 16 |
| Verification engine | services/verification | inkloom_verify (Python package): claim extraction, BM25 evidence retrieval, verification, citation guard, corrections |
How a review flows:
Browser (Next.js)
│ paste text or upload a file
▼
FastAPI POST /api/reviews ──► stores a content version (PostgreSQL)
│
▼
inkloom_verify
1. extract claims from the draft (LLM)
2. retrieve evidence passages (BM25 over the brand's APPROVED documents)
3. verify each claim against them (LLM) → supported / contradicted / unverified
4. check every citation is a real quote, propose evidence-backed corrections
│
▼
FastAPI stores findings + evidence ──► Browser shows each finding with its quote
a person approves / sends back / rejects
No AI provider configured? Reviews still complete, with one clearly labelled placeholder finding instead of a real check.
Requirements: Python 3.11+, Node.js, Docker Desktop (for PostgreSQL). Commands below are from
services/api/README.md and services/verification/README.md; on macOS/Linux use
.venv/bin/python instead of .venv/Scripts/python.
1. Backend (from services/api)
cp .env.example .env # then set AUTH_SECRET_KEY (see the comment in the file)
docker compose up -d # local PostgreSQL
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev]"
.venv/Scripts/python -m pip install -e ../verification
.venv/Scripts/python -m alembic upgrade head
.venv/Scripts/python scripts/seed.py # demo data
.venv/Scripts/python -m uvicorn inkloom_api.main:app --reload
The API runs on http://localhost:8000 (interactive docs at /docs). Seed data is labelled
[SEEDED] in its names, and the script prints the demo login. A full pytest run wipes it; run
scripts/seed.py --reset afterwards.
2. Frontend (from audit-ai-final/frontend)
cp .env.example .env.local # only NEXT_PUBLIC_API_URL; never put secrets here
npm install
npm run dev
Open http://localhost:3000. The backend only accepts browser calls from that address by default
(CORS_ALLOW_ORIGINS).
3. Engine tests (from services/verification)
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev]"
.venv/Scripts/python -m pytest
No secrets are committed. Every setting is documented in the .env.example files:
services/api/.env.example, services/verification/.env.example,
audit-ai-final/frontend/.env.example.
All optional; set in services/api/.env. The backend tries them in this fixed order and falls
through to the next on any failure:
GEMINI_API_KEY, GEMINI_MODELGROQ_API_KEY, GROQ_MODEL:free models): OPENROUTER_API_KEY, INKLOOM_LLM_MODELSOLLAMA_MODEL (no key, nothing leaves the machine)With a key set, draft text is sent to that provider. Documents marked confidential are meant
to stay on the local model (Ollama), which is the only provider allowed for them; Ollama is not
set up in the current environment. Model ids change over time, so read them from each provider's
live model list (the .env.example comments explain how).
| Step | Deterministic (no model) | Uses a language model |
|---|---|---|
| Evidence retrieval | BM25 over the brand's approved documents only | |
| Claim extraction | spans and atomicity checked against the draft | proposes claims |
| Verdict | proposes supported / contradicted / not enough evidence, with quotes | |
| Citation guard | every quote must exist verbatim in a retrieved passage of an authorised document; instruction-like text is never evidence; conflicting documents downgrade the verdict | |
| Corrections | added words and figures must come from the cited quote; the fix is re-verified; Intent-lock phrases may not be removed | proposes the fix |
| Rules (engine) | terminology, disclaimers, numeric limits, accessibility |
Anything the model says that fails a deterministic check is downgraded, never trusted. Provider errors and invalid output become "unverified, needs review", never a verdict. Every non-supported finding goes to a person.
The engine has a labelled, synthetic benchmark (80 records: 55 dev, 25 held-out) and a runner that
writes reports to services/verification/eval/reports/. From services/verification:
.venv/Scripts/python -m pytest -q # engine tests (no network)
.venv/Scripts/python eval/run_eval.py --check-baseline # CI gates (no model)
.venv/Scripts/python eval/run_eval.py --verdicts oracle --check-baseline # engine ceiling (scripted gold answers)
.venv/Scripts/python eval/run_eval.py --verdicts openrouter --pipeline verifier --check-baseline # live model
No live-model accuracy has been established. The oracle and default runs measure what the code
enforces, not a model. Live runs so far were blocked by provider availability (see
services/verification/EVAL.md, "Live evaluation status").
services/api/DISCLOSURE.md (Darsh to confirm).services/verification/DISCLOSURE.md
(draft: Krish to confirm).The visual style ("pressed paper") is inspired by the public style of relevovinco.com. It was re-implemented from scratch; no text, images, code or brand assets were copied.
| Person | Area | |
|---|---|---|
| Chahit | Frontend | TODO: confirm |
| Darsh | Backend API | TODO: confirm |
| Krish | AI verification engine (services/verification): claim extraction, evidence retrieval, verification, citation guard, corrections, softening, Intent-lock checks, terminology/accessibility rules, evaluation harness | Krish to confirm |
From docs/backend.md ("Known limitations"), plus two frontend notes:
RULES_HANDOFF.md).services/api/AI_PROVIDER_KEYS.md) and run a real evaluation.