Skip to content

Correct the README's four load-bearing false claims - #302

Merged
piyushmakhija28 merged 1 commit into
mainfrom
docs/fix-readme-accuracy
Aug 8, 2026
Merged

piyushmakhija28 merged 1 commit into
mainfrom
docs/fix-readme-accuracy

Conversation

@piyushmakhija28

Copy link
Copy Markdown
Collaborator

Every defect below was found by running something, not by reading.

1. The install instruction does not work

pip install claude-workflow-engine was the first command in Quick Start, marked "(recommended)". The package is not on PyPI:

$ curl -s -o /dev/null -w "%{http_code}" https://pypi.org/pypi/claude-workflow-engine/json
404

The badge above it linked to the same 404. Both removed; source install is now the only route and says so.

2. Every Run command was broken

v2.0.0 made --invoked-by=<command> mandatory. None of the three documented commands carried it. Running the first one exactly as printed:

[REFUSED] pipeline execution did not start: no --invoked-by= declaration was present.
[REFUSED] SRS FR-15 requires that a run begin only from an explicit SRS FR-17 command.
[REFUSED] Declare one with --invoked-by=<command>, where <command> is one of: plan,
          implement, review, document, release, run-pipeline.
[REFUSED] The supported route is the plugin dispatcher, which declares this for you.

Exit 0, nothing done. And the README did not mention the plugin at all — zero occurrences of the word in 845 lines, for the mechanism the refusal message itself calls "the supported route". The plugin commands are now documented first, with the direct-CLI form second for container entry points and manual runs.

3. The Hook System section described a deleted architecture

68 lines: a nine-row registration table, per-policy breakdowns, a Mermaid diagram, four findings. v2.0.0 deleted PreToolUse, PostToolUse and UserPromptSubmit — the section listed all three as Registered: Yes, and listed Notification as No when it is one of the two that survive.

Four of nine rows inverted. Being well-researched made it worse than a vague section: it reads as authoritative.

Replaced rather than patched, with what is true — which hooks remain, what replaced each deleted one (including that the MCP push gate was proved reachable before PreToolUse was deleted), that hooks/ still holds the now-unwired code, that the plugin ships zero hooks by ADR-010 with a CI job enforcing it, and the consequence stated plainly: nothing is enforced in a session where you do not invoke a command.

4. Step numbers predated the rename

References to Steps 10, 11, 12 and 13 — gone since the rename collapsed old 8–14 into 2–8. Mapped 10→4, 11→5, 12→6, 13→7 against CLAUDE.md's canonical list.

"8 active steps" appeared twice while the same file elsewhere said "9 active steps" and "Steps 0-8". Zero through eight is nine. The template fast-path was described as bypassing Step 0; it is Step 0 that detects the template and skips Step 1.

Also: the version badge read 1.20.3. sync-version.py rewrites the **Version:** footer but not the badge, so the badge had been drifting since 1.20.3 while the footer tracked every release. Now 2.1.0.

Verified

  • The two documented --invoked-by values pass the real authorize() gate; the flagless form still refuses
  • 57 documentation tests, all six CI gates
  • CRLF count identical before and after (845 both), so the 81/81 diff is content, not a line-ending flip — the defect test_sync_version.py exists to guard

🤖 Generated with Claude Code

Every defect below was verified by running something, not by reading.

THE INSTALL INSTRUCTION DOES NOT WORK. `pip install claude-workflow-engine` was
the first command in Quick Start and was marked "(recommended)". The package is
not on PyPI: https://pypi.org/pypi/claude-workflow-engine/json returns 404. The
badge above it linked to the same 404. Both are gone; source install is now the
only route, stated as such.

EVERY RUN COMMAND WAS BROKEN. v2.0.0 made `--invoked-by=<command>` mandatory, and
none of the three documented commands carried it. Running the first one as
printed produces four `[REFUSED]` lines and exits 0 having done nothing --
confirmed by executing it. The commands now carry the flag, and the plugin route
is documented first, because it is the supported one and the README did not
mention the plugin at ALL: zero occurrences of the word in 845 lines, for the
mechanism the refusal message itself calls "the supported route".

THE HOOK SYSTEM SECTION DESCRIBED A DELETED ARCHITECTURE. 68 lines: a nine-row
registration table, per-policy breakdowns, four findings. v2.0.0 deleted
`PreToolUse`, `PostToolUse` and `UserPromptSubmit`; the section listed all three
as registered, and listed `Notification` as NOT registered when it is one of the
two that survive. Four of nine rows inverted. Being well-researched made it worse
than a vague section would have been -- it reads as authoritative.

Replaced rather than patched, with what is actually true: which hooks remain,
what replaced each deleted one, that `hooks/` still holds the unwired code, that
the plugin ships zero hooks by ADR-010 with a CI job enforcing it, and the
consequence stated plainly -- nothing is enforced in a session where no command
is invoked.

STEP NUMBERS PREDATED THE RENAME. References to Steps 10, 11, 12 and 13, which
have not existed since the Level/Step rename collapsed old 8-14 into 2-8. Mapped
10->4, 11->5, 12->6, 13->7 against CLAUDE.md's canonical list. "8 active steps"
appeared twice while the same file said "9 active steps" and "Steps 0-8" -- 0
through 8 is nine. The template fast-path was described as bypassing Step 0; it
is Step 0 that detects the template and skips Step 1.

The version badge read 1.20.3. sync-version.py rewrites the `**Version:**`
footer but not the badge, so it had been drifting since 1.20.3 while the footer
tracked every release. Now 2.1.0.

Verified: the two documented `--invoked-by` values pass the real authorize()
gate and the flagless form still refuses; 57 documentation tests; all six CI
gates; CRLF count identical before and after (845 both), so the 81/81 diff is
content and not a line-ending flip.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@piyushmakhija28
piyushmakhija28 merged commit 70984e4 into main Aug 8, 2026
2 checks passed
@piyushmakhija28
piyushmakhija28 deleted the docs/fix-readme-accuracy branch August 8, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant