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.
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_baseresearch mode. - A site-level Context module or
AGENTS.mdcan 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
- Copy the
Radardirectory to/site/modules/Radar/. - In ProcessWire Admin, choose Modules → Refresh.
- Install Radar. ProcessWire installs the companion
ProcessRadaradmin module automatically. - Open Setup → Radar → Diagnostics and run database maintenance if the Radar tables are not ready.
- Open Content Types, confirm field mappings, and run a Page Scan.
- 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.phpandProcessRadar.module.phpare 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/, andsrc/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
Ichiban (SEO control center)
Comprehensive SEO module: meta/OG/schema, audit, redirects, revisions, email reports.8Added 2 months ago by Maxim SemenovAlly (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.7Added 2 months ago by Maxim Semenov- Added 4 months ago by Maxim Semenov
- Added 3 months ago by Maxim Semenov
Install and use modules at your own risk. Always have a site and database backup before installing new modules.
