docs: document the undocumented command and the ones with no dry-run - #120
Merged
Conversation
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>
martinsifra
approved these changes
Sep 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes:
Found by auditing the README against every registered command's real
getDefinition()(instantiated through Symfony, not regexed out ofconfigure()). 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-featureswas 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 againstconnection.keboola.com/connection.eu-central-1.keboola.com(exit 1), and it skipstest-feature-exclude/test-feature-override, which match a test prefix but are declarative features synced fromkbc-stacks.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-retentionis the sharpest case: it reads CSV from STDIN and updates each project as it reads the row.-fmeans something different in one command. In 23 commands-fis--force. Inmanage:mass-project-enable-dynamic-backendsit is the shortcut for--force-new-trans, which only suppresses a confirmation prompt - and that command has no dry-run at all. Typing-fthere 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
🤖 Generated with Claude Code