Severity Medium · Confidence verified · Artifact CONTRIBUTING.md "Commands Reference" table vs composer.json
Claim in the docs — | composer rector | Run automatic code fixes |.
Reality in the code — "rector": "vendor/bin/rector process --dry-run" — it reports, it never fixes; a contributor following the table will believe they fixed issues when they haven't. lint:fix is the fixing entry point (correctly described earlier in the same file — the doc contradicts itself). The table also omits real scripts a contributor needs: phpcsfixer, lint:fix, test-e2e, test-coverage, run-rabbitmq, rabbitmq-start/rabbitmq-stop/rabbitmq-wait.
Secondary observation: CONTRIBUTING.md is written as operator instructions to an AI agent ("Wait for the user to choose an issue number. Never pick an issue yourself.", "Do not merge on your own initiative"). As the repo's public contributor guide this is confusing for human contributors; consider splitting agent workflow into .claude//AGENTS.md and keeping CONTRIBUTING.md human-facing.
Suggested fix — table row: | composer rector | Check rector rules (dry-run; use composer lint:fix to apply) |, plus rows for the six missing scripts.
Source: audit/docs.md § D11 — Fable audit, 2026-08-18, against HEAD 88db1e4. Findings marked verified were reproduced live against RabbitMQ 4.1 with ext-amqp 2.2.0; see the Confidence line above for anything weaker.
Severity Medium · Confidence verified · Artifact CONTRIBUTING.md "Commands Reference" table vs composer.json
Claim in the docs —
| composer rector | Run automatic code fixes |.Reality in the code —
"rector": "vendor/bin/rector process --dry-run"— it reports, it never fixes; a contributor following the table will believe they fixed issues when they haven't.lint:fixis the fixing entry point (correctly described earlier in the same file — the doc contradicts itself). The table also omits real scripts a contributor needs:phpcsfixer,lint:fix,test-e2e,test-coverage,run-rabbitmq,rabbitmq-start/rabbitmq-stop/rabbitmq-wait.Secondary observation: CONTRIBUTING.md is written as operator instructions to an AI agent ("Wait for the user to choose an issue number. Never pick an issue yourself.", "Do not merge on your own initiative"). As the repo's public contributor guide this is confusing for human contributors; consider splitting agent workflow into
.claude//AGENTS.md and keeping CONTRIBUTING.md human-facing.Suggested fix — table row:
| composer rector | Check rector rules (dry-run; use composer lint:fix to apply) |, plus rows for the six missing scripts.Source:
audit/docs.md§ D11 — Fable audit, 2026-08-18, against HEAD88db1e4. Findings marked verified were reproduced live against RabbitMQ 4.1 with ext-amqp 2.2.0; see the Confidence line above for anything weaker.