pushword/page-scanner
Pushword Page Scanner helps you crawl and inspect your site’s pages, making it easy to surface broken links, missing content, and other page-level issues so you can keep your website clean, reliable, and user-friendly.
PushwordEvents.php, tagged provider interfaces) suggest QA hooks are meant to be extension points, not bolt-ons — so a "scan as part of publish" bet is architecturally coherent here.AgentOutputTrait plus a --format auto|agent|text option on commands, with a maintained list in docs/content/agent-output.md. That is evidence a machine-readable CLI is a designed surface. It justifies funding "every command has a stable machine output" as a roadmap commitment with an acceptance test, rather than a demo.doctrine:schema:update --force instead of migrations. This supports a "small team, single site, low infrastructure" product posture — and rules out a multi-tenant or regulated-environment posture without investment.packages/docs/content/, slugs tied to paths, redirects tracked in redirection.csv, and an upgrade note required in the same commit as any change that asks something of an upgrading site. That is a self-serve onboarding strategy encoded in process; it supports a product-led growth motion over sales-led, and makes docs completeness a release gate you can actually check.page-scanner. No feature list, rule set, or output format for the scanner is present. That argues for a time-boxed spike before any roadmap commitment — this assessment can ground platform-level decisions, not scanner-level ones.Consider it when:
Look elsewhere when:
For executives (one minute). This is an MIT-licensed PHP/Symfony content platform with a page-scanning component, small and self-hostable. The strategic value is not the scanner feature — it is the pattern: quality checks run inside the publish flow, and every admin command emits machine-readable output so AI agents and CI can drive the CMS. That is a credible differentiator if our roadmap is "content operations for small teams with automation," and it is irrelevant if our roadmap is "enterprise CMS." The cost side is real: 30 stars, zero dependents, no migration tooling, and a Laravel-shaped gap if our stack isn't Symfony. Recommendation: a two-week spike, not an adoption decision. Success criteria: the scanner's output format is usable in our publish gate, and the CLI's --format agent output is stable enough to script against.
For engineering (what you'd actually own). You inherit a monorepo of Symfony bundles with strong internal conventions: composer stan|rector|test as gates, cache clearing after every change, version constants that must be bumped whenever rendered output changes, and a hard rule that no entropy (random()) may enter a render path. Those rules exist because the static build skips unchanged pages — violate them and you get silent full rebuilds or stale content. There is also a documented requirement to add an upgrade note in the same commit as any change that asks something of an upgrading site. Budget for that discipline; it is the price of the determinism guarantee, and it is not optional overhead you can defer.
The ask. Approve a scoped spike: run the CMS in the dev app, exercise the page-scan path on ten representative pages, and confirm (a) scan findings are actionable, (b) the agent-format output is parseable, (c) the no-migration schema story is acceptable for our environments. If any of the three fails, we stop at spike cost rather than platform cost.
How can I help you explore Laravel packages today?