Radar

Universal content intelligence and content operations for ProcessWire.

Radar is a content-intelligence and content-operations module for ProcessWire. It audits pages and complete sites, explains priorities, supports evidence-backed research, and creates reviewable AI drafts without silently changing published content.

Radar

Version: 1.0.0
Author: Maxim Semenov
Website: smnv.org
License: MIT

If Radar helps your work, you can support its development through GitHub Sponsors or smnv.org/sponsor.

Features


  • Resolves ProcessWire pages into reusable Content Types with field mappings, schemas, policies, goals, workflows, and scoring rules.
  • Scans a page, section, template, Content Type, or complete site.
  • Provides focused quality, freshness, accessibility-content, conversion, duplicate, taxonomy, and internal-relation scans.
  • Finds missing mapped content, weak structure, coverage gaps, duplicate content, broken content flows, and optional orphan pages.
  • Runs internal, external-source, competitor, official-source, catalog, and Atlas knowledge-base research.
  • Generates field, multi-field, section, rewrite, expansion, shortening, summary, CTA, FAQ, metadata, taxonomy, relation, and translation drafts.
  • Shows current and proposed values before any ProcessWire field is changed.
  • Supports immediate application or a persistent review queue with author, reviewer, status, and timestamps.
  • Saves structured reports and compares compatible snapshots.
  • Includes deterministic CLI scans and hooks for project-specific context, research sources, rules, and opportunities.
  • Bundles ProcessWire admin-interface translations for French, German, and Spanish; English is the source interface language.

Admin workspace


Installing Radar adds Setup → Radar with these primary areas:

  • Dashboard — current saved site snapshot, readiness, workflows, recent reports, and setup guidance.
  • Analysis — Page Scan, Generate, Template, Content Type, Site, Quality, Conversion, Duplicates, Relations, and Taxonomy.
  • Research — source-based and Atlas-backed evidence workflows.
  • Reports — saved scan history, report details, reruns, and comparisons.
  • Drafts — Pending, Applied, and Rejected editorial proposals.
  • Content Types — mappings and content rules managed without editing JSON.
  • Definitions — reusable schemas, policies, goals, and workflows.
  • Diagnostics — configuration, runtime, integrations, storage, AI readiness, and database maintenance.

The interface uses native ProcessWire Inputfields, UIkit, and current --pw-* variables. It supports light and dark admin themes and responsive mobile layouts.

Safe by design


Deterministic scans only read content. AI generation creates a proposal and never silently writes a page. A draft records the current value, proposed value, target field, language where applicable, and a hash used to detect stale content.

Applying a draft requires an explicit action and permission to edit the target page. Rejecting a queued draft closes the proposal without changing the page.

AI and integrations


Radar owns an independent catalog of 14 providers and 71 models. Its default is configured in Modules → Configure → Radar → Radar AI, and every Page Scan, Research, or Generate request may choose another catalog model. Changing Squad's default provider or model does not change Radar.

  • Squad supplies provider credentials and sends requests. Radar explicitly passes its selected provider and model.
  • Atlas supplies knowledge-base retrieval for the knowledge_base research mode.
  • A site-level Context module or AGENTS.md can inform an agent about the live architecture; Radar itself builds normalized page context from its Content Types and mapped ProcessWire fields.
  • ProcessWire Language Support enables language-aware checks and translation drafts.

AI integrations are optional. Page, site, quality, conversion, duplicate, relation, and taxonomy analysis remain deterministic unless an AI option is explicitly enabled.

Requirements


  • ProcessWire 3.0.244 or newer
  • PHP 8.3 or newer
  • Squad for AI analysis, research interpretation, and generation
  • Atlas only for knowledge-base research

Installation


  1. Copy the Radar directory to /site/modules/Radar/.
  2. In ProcessWire Admin, choose Modules → Refresh.
  3. Install Radar. ProcessWire installs the companion ProcessRadar admin module automatically.
  4. Open Setup → Radar → Diagnostics and run database maintenance if the Radar tables are not ready.
  5. Open Content Types, confirm field mappings, and run a Page Scan.
  6. For AI workflows, choose Radar's default model in the Radar module settings and add an active key for that provider in Squad.

Admin interface languages

English is built into Radar. With ProcessWire Language Support installed, open Modules → Radar → install translations, assign French.csv, German.csv, or Spanish.csv to the matching ProcessWire language, and submit. Radar then uses the current admin user's language automatically, following the same native module-translation workflow as Cookie.

Public API


$radar = $modules->get('Radar');

$pageScan = $radar->scanPage($page);
$siteScan = $radar->scanSite([
    'limit' => 1000,
    'relationScan' => true,
]);

// Creates a proposal; it does not modify the page.
$result = $radar->generateField($page, 'summary', [
    'instruction' => 'Explain the value proposition clearly.',
]);

if ($result['success']) {
    // Apply only after human review.
    $applied = $radar->applyDraft($page, $result['draft']);
}

generateFields() creates a coherent multi-property proposal, and generateTask() exposes Radar's named generation workflows. applyDrafts() applies a reviewed multi-property proposal while performing the same permission and stale-value checks.

CLI


Run commands from the ProcessWire site root:

php index.php --radar-scan-page=123
php index.php --radar-scan-quality=123 --radar-save
php index.php --radar-scan-template=service --radar-limit=250 --radar-save
php index.php --radar-scan-relations --radar-limit=1000 --radar-save
php index.php --radar-scan-taxonomy --radar-limit=1000 --radar-save
php index.php --radar-scan-site --radar-relations --radar-save
php index.php --radar-help

Commands write structured JSON to stdout. A failed optional AI request does not remove a completed deterministic scan result.

Documentation


  • AGENTS.md — AI-agent contract, website-building workflow, public calls, safety levels, hooks, and contribution rules.
  • DOCUMENTATION.md — complete administrator, integration, API, CLI, and maintenance guide.
  • CHANGELOG.md — public release history.
  • LICENSE — MIT license terms.

Source layout


  • Radar.module.php and ProcessRadar.module.php are thin ProcessWire entrypoints.
  • src/Core/ contains the public Radar API concerns: lifecycle, definitions, scanning, and generation.
  • src/Config/ contains native module configuration fields.
  • src/Admin/Routes/, src/Admin/Forms/, src/Admin/Rendering/, and src/Admin/Support/ contain the admin workspace by responsibility.
  • assets/css/ separates workspace, Dashboard, component, Diagnostics, and responsive styles.
  • assets/js/ contains admin behavior and module-configuration behavior.
  • tests/ contains core, acceptance, and installed-ProcessWire smoke coverage.

Support


Report reproducible problems through the repository issue tracker. Include the ProcessWire and PHP versions, the Radar workflow involved, and sanitized diagnostic output. Never publish provider keys or private page content.

More modules by Maxim Semenov

  • Context

    Export ProcessWire site context for AI development (JSON + TOON formats)
  • WireWall

    Advanced traffic firewall with VPN/Proxy/Tor detection, rate limiting, and JS challenge
  • Ichiban (SEO control center)

    Comprehensive SEO module: meta/OG/schema, audit, redirects, revisions, email reports.
  • Ally (a11y)

    Self-hosted accessibility widget powered by Sienna (MIT). Adds font, contrast, language, and navigation tools to any page. No external CDN — the JS bundle is served from your own server.
  • Subscribe

    Newsletter subscription handler with lists, double opt-in, honeypot, rate limiting and unsubscribe link.
  • Robots.txt

    Manage robots.txt file through the admin UI with presets and visual editor.
  • Dimensions

    Stores product dimensions (L×W×H) and weight with selectable units of measurement.
  • Squad

    AI integration for ProcessWire. Supports Anthropic, OpenAI, Google, xAI, and OpenRouter.
  • Rapid

    EditorJS block editor fieldtype for ProcessWire. Stores content as JSON, renders HTML server-side via pluggable block renderers.

All modules by Maxim Semenov

Install and use modules at your own risk. Always have a site and database backup before installing new modules.