Forge-cli v1 Sprint 8: wrapper + completion sync + README crosslink#399
Merged
Conversation
…rosslink - Add wrappers/forge-cli mirroring wrappers/git-cli with auto / debug / installed modes that route to the cargo build or the brew-installed binary depending on NILS_WRAPPER_MODE, so the bump skill picks up the new binary alongside the existing nils-cli surface. - Add 4 completion-sync integration tests that compare the live forge-cli completion bash|zsh output to the checked-in snapshots byte-for-byte, failing CI if a flag addition forgets to regenerate. - Cross-link forge-cli from the workspace README CLI surface map and Git-tooling section so brew users discover the new binary alongside git-cli and friends.
- Update Task 8.1 / 8.2 to completed (Task 8.3 release flow happens post-merge via nils-cli-bump-version-tag-release) and refresh the session log; this is the final implementation PR for forge-cli v1.
CoverageTotal line coverage: 85.44% (75426/88276 lines hit). |
- Sprint 8 PR #399 CI tripped markdownlint MD013 on README.md:61 (202 > 140 chars); wrap the new git-tooling bullet for forge-cli onto three lines so rumdl --strict passes alongside the existing surface-map exception for long table rows.
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.
Summary
Sprint 8 of the forge-cli v1 plan is the final implementation milestone: ship
forge-clias a first-class workspace binary with the same wrapper / completion / brew install path the other CLIs use. After this PR merges, Task 8.3 (nils-climinor bump + tap formula bump) runs through the existingnils-cli-bump-version-tag-releaseskill as a post-merge release action.Changes
wrappers/forge-cli(new) — bash wrapper mirroringwrappers/git-cliline-for-line. Three modes viaNILS_WRAPPER_MODE:installed(resolve via$HOME/.local/nils-cli/forge-clithenPATH),debug(alwayscargo run -q -p nils-forge-cli),auto(installed first, cargo fallback). The bump skill that shipsgit-clipicksforge-cliup automatically because the wrapper layout is identical.crates/forge-cli/tests/integration/completion_sync.rs(new) — 4 tests pin the completion contract:forge-cli completion bashsucceeds, non-empty, contains_forge-climarker.forge-cli completion zshsucceeds, non-empty, contains#compdef forge-climarker.completions/bash/forge-cliis byte-equal to the live binary output.completions/zsh/_forge-cliis byte-equal to the live binary output.Tests (3) and (4) fail loudly when a new flag is added but the snapshot isn't regenerated, with the error message telling the contributor exactly which command to run.
README.md— workspace cross-link. Added aForge automation | forge-clirow to the CLI surface map and acrates/forge-clientry in the Git-tooling section so brew users discover the new binary alongsidegit-cli,git-scope,git-summary,git-lock.Execution ledger —
docs/plans/forge-cli/forge-cli-execution-state.mdrecords Tasks 8.1 + 8.2 as completed. Task 8.3 (nils-climinor bump + tag + tap formula bump) is the only remaining row and runs post-merge through the existingnils-cli-bump-version-tag-releaseskill — it is intentionally NOT bundled into this PR per Sprint 8's plan.Test-First Evidence
cargo test -p nils-forge-cli— 219 lib + 93 integration green (was 219 + 89 at end of Sprint 7).cargo clippy -p nils-forge-cli --all-targets -- -D warnings— clean.bash scripts/ci/completion-asset-audit.sh— pass.bash scripts/ci/completion-flag-parity-audit.sh— pass.bash scripts/ci/cli-output-contract-lint.sh— pass.bash scripts/ci/forge-cli-fixture-lint.sh --strict— pass.bash scripts/ci/docs-{hygiene,placement}-audit.sh— pass.NILS_WRAPPER_STATUS_HINTS=0 wrappers/forge-cli --help— produces the canonical help output.Testing
cargo test -p nils-forge-cli(312 total).cargo clippy -p nils-forge-cli --all-targets -- -D warnings.nils-climinor version bump — runs throughnils-cli-bump-version-tag-releaseafter this PR merges.Risk / Notes
wrappers/git-cli, so the brew tap install hooks pick it up without any tap-side change. The actual tap formula bump still happens vianils-cli-bump-version-tag-release.cli.rsbut forgets to regenerate the staticcompletions/{bash,zsh}/snapshots. The test message gives them the exact regen command.mainonce this merges.