Pjq — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Pjq (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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
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:
/api/v1/*) for analytics automation, and/mcp/) so AI agents (Claude Desktop and friends) can runanalyses and read verdicts directly inside a chat.
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)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.
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.
then see docs/api-reference.md. Read-only tools cost no credits; a full analysis costs one credit.
https://pjq.life/mcp/ and seedocs/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.
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.
Copyright 2026 PJQ (github.com/Makaric). Licensed under the Apache License, Version 2.0 — see LICENSE.
Русская версия: [README_RU.md](README_RU.md).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.