Repository navigation
ci: one file per openadapt-flow command for the capability map - #1345
Merged
Merged
Conversation
CAPABILITIES.md listed each capability's commands on one line, so any two pull requests that added commands to the same capability conflicted. Each command now has packages/flow/docs/commands/<group>/<verb>.md (Markdown, so outside the flow artifact inventory). scripts/build_command_map.py renders the "Every command, by capability" list from those files, one command per line. tests/test_capabilities_map.py reads the command names from the files, fails on a command without a file, a file without a command, or a stale list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s-per-file # Conflicts: # CAPABILITIES.md
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.
Why
CAPABILITIES.md's "Every command, by capability" listed each capability's commands on one line. Any two pull requests that added commands to the same capability edited that line and conflicted. Each conflict meant another push and a full PR pipeline rerun (about 40 jobs). Since 2026-10-17, PR branches have made 17 commits to CAPABILITIES.md, not counting the PR merges themselves.
What changes
packages/flow/docs/commands/<group>/<verb>.md.README.mdholds the title, and the numeric prefix sets the order.serve-rewardandundohave notes.scripts/build_command_map.py(--check) renders the list between generated markers in CAPABILITIES.md. It writes one command per line, sorted within each capability.packages/flow/tests/test_capabilities_map.pyreads the command names from those files. It fails when:openadapt-flowcommand has no file;All 65 commands keep their current capability groups. Within a group, the list is now alphabetical instead of hand-ordered.
Verified
tests/test_capabilities_map.py: 2 passed. Withseal.mdremoved, both tests fail with an "add the file / run the script" message.scripts/check_release_consistency.pyand the roottests/test_source_boundary.py: pass.llms-full.txt. It is already stale onmain, and refreshing it would pull in unrelated changes. The pre-release refresh picks this list up.Savings
Two pull requests that each add a command now edit different files. They touch the same line of CAPABILITIES.md only when both commands land in the same capability and sort next to each other. That avoids a rebase and a full PR pipeline rerun (about 40 jobs) per collision.
Not covered
The hand-written map table rows above this list still conflict when two PRs add rows next to each other. Those rows are prose, not generated data, so I left them alone.
No changes to
packages.yml,desktop-release.ymlormain.yml.🤖 Generated with Claude Code