Skip to content

docs: document the undocumented command and the ones with no dry-run - #120

Merged
jirkasemmler merged 1 commit into
mainfrom
jirka/readme-safety-fixes
Sep 8, 2026
Merged

docs: document the undocumented command and the ones with no dry-run#120
jirkasemmler merged 1 commit into
mainfrom
jirka/readme-safety-fixes

Conversation

@jirkasemmler

Copy link
Copy Markdown
Contributor

Changes:

Found by auditing the README against every registered command's real getDefinition() (instantiated through Symfony, not regexed out of configure()). This PR carries the three findings where following the docs could cause harm; the presentational ones are split into a follow-up.

  • manage:cleanup-leaked-test-features was not documented at all - the only registered command with no mention anywhere in the README, despite AGENTS.md requiring new commands to be documented. Added a section covering the two behaviours a reader needs: it refuses to run against connection.keboola.com / connection.eu-central-1.keboola.com (exit 1), and it skips test-feature-exclude / test-feature-override, which match a test prefix but are declarative features synced from kbc-stacks.
  • Three mutating commands have no dry-run and the README never said so: storage:set-data-retention, storage:notify-projects, queue:terminate-project-jobs. None defines -f/--force; they act immediately. AGENTS.md calls dry-run-by-default "the dominant convention" in this repo, which is exactly why the exceptions need stating - someone reasoning from the convention would expect a safe first run. set-data-retention is the sharpest case: it reads CSV from STDIN and updates each project as it reads the row.
  • -f means something different in one command. In 23 commands -f is --force. In manage:mass-project-enable-dynamic-backends it is the shortcut for --force-new-trans, which only suppresses a confirmation prompt - and that command has no dry-run at all. Typing -f there out of habit does something other than what the muscle memory expects.

Docs only, no code touched.

On wording: I deliberately did not claim what lowering retention does to stored data. The command only calls updateProject, and the platform-side consequence is not something this repo establishes, so the warning stays with what is verifiable - it applies per row, immediately, with no dry-run - and advises confirming the value with whoever owns the projects.


Additional notes

⚠️ Don't forget to release new version after merge

🤖 Generated with Claude Code

A README audit against every registered command's real definition turned up
three things that can bite someone following the docs.

manage:cleanup-leaked-test-features was not in the README at all - it is the
only registered command with no mention anywhere. Documented, including the two
behaviours a reader needs to know about: it refuses to run against the two
production hosts, and it skips the declarative features that happen to match a
test prefix.

storage:set-data-retention, storage:notify-projects and
queue:terminate-project-jobs all mutate and none of them has a --force flag, so
they act immediately. AGENTS.md says dry-run-by-default is the dominant
convention here, which makes their absence exactly the thing worth stating out
loud rather than leaving to be discovered.

manage:mass-project-enable-dynamic-backends binds -f to --force-new-trans, not
to --force. Every other command in this repo uses -f for "stop the dry-run", so
typing it here out of habit does something else entirely.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jirkasemmler
jirkasemmler merged commit e00d9e1 into main Sep 8, 2026
1 check passed
@jirkasemmler
jirkasemmler deleted the jirka/readme-safety-fixes branch September 8, 2026 08:44
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.

2 participants