protonsystems/content-reviewer

Reusable Drupal module for plugin-based content issue scanning, admin review reporting, and deterministic fix commands.

Maintainers

Package info

gitlab.com/Proton.Systems/drupal/content-reviewer

Issues

Type:drupal-module

pkg:composer/protonsystems/content-reviewer

Transparency log

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

v1.1.0 2026-08-16 22:00 UTC

This package is auto-updated.

Last update: 2026-08-17 03:11:18 UTC


README

Reusable Drupal module for plugin-based content issue scanning, admin review reporting, and deterministic fix commands.

Purpose

The module is intended to be reused across Drupal 10 and Drupal 11 projects by installing it as a Composer package and enabling it in the target site.

Requirements

  • PHP 8.3+
  • Drupal 10 or 11
  • ProtonSystems qa package (bundles the qa_audit_core shared submodule)
  • Paragraphs

content-reviewer uses the shared scanner services from the bundled qa_audit_core submodule inside protonsystems/qa and layers UI, reports, and deterministic fix commands on top.

Features

  • Provides an admin review UI at /admin/reports/content-reviewer
  • Lists enabled issue plugins through drush content-reviewer:list
  • Scans issues and exports structured JSON through drush content-reviewer:scan
  • Applies deterministic fixes for auto-fixable issue plugins through drush content-reviewer:fix
  • Retains legacy orphan paragraph analysis and cleanup commands

Built-In Issue Types

  • orphan_paragraphs
  • broken_references
  • hardcoded_internal_absolute_urls
  • linkit_legacy_links
  • linkit_broken_uuids

Installation

composer require protonsystems/content-reviewer
drush en content_reviewer

Usage

Generic issue commands:

drush content-reviewer:list
drush content-reviewer:scan orphan_paragraphs --stdout
drush content-reviewer:fix orphan_paragraphs --dry-run

Useful options:

  • --output=<path>: write JSON output to a file
  • --stdout: print scan results to stdout
  • --pretty=0|1: control pretty-printed JSON output
  • --set=key=value: pass plugin-specific options, repeat as needed
  • --dry-run=0|1: control whether fix commands persist changes

Examples:

drush content-reviewer:scan broken_references --set=max_reference_fields=300 --stdout
drush content-reviewer:scan hardcoded_internal_absolute_urls --set=hosts=example.com,www.example.com --stdout
drush content-reviewer:fix hardcoded_internal_absolute_urls --dry-run=0 --set=hosts=example.com,www.example.com
drush content-reviewer:fix linkit_broken_uuids --dry-run=0

Legacy orphan paragraph commands:

drush content_reviewer:analyze-orphaned-paragraphs
drush content_reviewer:verify-orphans
drush content_reviewer:delete-orphaned-paragraphs

Releasing A New Version On Packagist

Packagist publishes versions of protonsystems/content-reviewer from git tags. Do not add a version field to composer.json; create and push a new release tag instead.

For the first public release, submit the public Git repository URL to Packagist. If you want automatic updates from GitLab, configure the Packagist integration in GitLab under Settings > Integrations using your Packagist username and API token.

Prepare the release commit on main:

git checkout main
git pull origin main
composer validate --no-check-publish --strict
git status
git add <files>
git commit -m "Release v1.0.0"
git push origin main

Create and push an annotated tag for the release:

git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

Use semantic version tags such as v1.0.0. After the tag is pushed, Packagist should detect the new version automatically. If it does not appear, open the package page in Packagist and trigger a manual update.

Notes

  • Keep a DB snapshot before non-dry-run cleanup commands
  • Prefer internal or entity-relative replacements for same-site links instead of hardcoded production URLs
  • protonsystems/qa must expose a compatible qa_audit_core submodule release line before external Packagist installs of this module will resolve