Skip to content

Makaric/pjq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PJQ — Public Judgment Quotient

A seismograph for public opinion. PJQ measures how an audience actually received a piece of media — separating genuine opinion from fan noise, bots, and self-promoters.

Live: pjq.life · License: Apache-2.0


What this is

PJQ takes the URL of a piece of content (YouTube today; Reddit, Telegram, and News next), samples the comments under it, and classifies every comment against a 7-category stance rubric. The output is a verdict: a numeric reception score (mood) plus a structured breakdown — how many people substantively agreed, how many pushed back, how many stayed neutral, and how much noise is drowning the signal.

Think of it as an observatory of media reception, exposed over two transports on one core:

  • a REST API (/api/v1/*) for analytics automation, and
  • an MCP server (/mcp/) so AI agents (Claude Desktop and friends) can run analyses and read verdicts directly inside a chat.

What's in this repository

This repo is the open client + specification of PJQ. The hosted analysis engine (sampling, classification, QA, the ONNX stance model and the prompt internals) stays closed — it is the product's moat. What's open here is everything you need to use, integrate with, and understand PJQ:

web/    — the full web client (React + TypeScript + Vite SPA, 5 languages)
spec/   — the conceptual specification
          ├── CONCEPT.md          what PJQ is and why
          ├── RUBRIC.md           the 7-category stance rubric (definitions)
          ├── domains.yaml        the 11-domain content taxonomy
          ├── FEATURED.md         the open, automatic showcase-ranking formula
          └── verdict-schema.md   the shape of a verdict (API output)
docs/   — integration reference
          ├── api-reference.md    REST API surface
          ├── mcp-reference.md    MCP tools and schemas
          └── user-guide/         end-user guide (EN + RU)

The 7-category rubric (in one breath)

Every comment gets exactly one of: SUP (substantive support), AGA (substantive against), NEU (neutral), OFF (off-topic), THIN (thin positive — praise without an argument), SUS (inorganic — bot / paid / coordinated), AGN (own agenda — the comment is a vehicle for the author's external goal).

Reporting rule: opinion metrics (mood, support) are computed strictly from SUP / AGA / NEU. THIN / OFF / SUS / AGN are counted separately and never inflate support percentages. See spec/RUBRIC.md.

Running the web client

The client is a standard Vite SPA. By default it talks to the hosted backend at pjq.life (same-origin in production).

cd web
npm install
npm run dev      # dev server with hot reload
npm run build    # production build (with build-time SEO prerender) -> dist/

To point the client at a different backend, copy web/.env.example and set VITE_API_BASE.

Integrating

  • REST API — get an API key from the Cabinet on pjq.life, then see docs/api-reference.md. Read-only tools cost no credits; a full analysis costs one credit.
  • MCP — point an MCP-capable client at https://pjq.life/mcp/ and see docs/mcp-reference.md for the exported tools.

Comment raw texts are never returned over the API — only aggregates, percentages, and a small set of representative exemplars, per PJQ's privacy policy.

Status

PJQ is live and in active development. The roadmap is public at pjq.life/flightlog. This repository tracks the client and the spec; engine changes ship to the hosted service.

License

Copyright 2026 PJQ (github.com/Makaric). Licensed under the Apache License, Version 2.0 — see LICENSE.

Русская версия: README_RU.md.

About

PJQ — Public Judgment Quotient: open web client + spec for an observatory of public media reception (REST + MCP). Hosted engine closed; client and integration reference open.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages