feat: report/annotate/lock commands, semantic diff, multi-doc YAML, pagination, envsubst, CI guards#12
Merged
Merged
Conversation
…oc YAML, pagination, envsubst, and CI guards
New command groups:
- report: parse JUnit XML / lcov / cobertura into markdown summaries,
GITHUB_OUTPUT counts, and threshold gates (--fail-on-failures, --min)
- annotate: emit inline PR annotations on GitHub (plain file:line
fallback elsewhere) and convert any linter's JSON findings
- lock: file-based mutex (acquire/release/run) with timeout and stale
takeover for serializing steps on shared runners
Extended commands:
- json/yaml diff: semantic diff ignoring key order and formatting;
text/json/markdown output, --ignore prefixes, --exit-code gate
- yaml get/set/del --doc: address one document in a multi-doc stream by
index or field match; edits leave sibling documents byte-identical
and compose with --preserve
- http get --paginate: follow Link rel=next headers and merge pages
(--items for nested arrays, --max-pages cap)
- render --envsubst: $VAR / ${VAR} / ${VAR:-default} substitution with
--strict unset-variable gate
- assert versions-match: monorepo version-sync guard across manifests
- artifact assert --max-size/--min-size: size budgets with human units
- version next: line-anchored conventional-commit parsing (feat/fix/
perf/refactor/revert, ! bang, BREAKING CHANGE footers in bodies)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
Batch of CI/CD time-savers that replace common bash/python/jq glue in pipelines.
New command groups
report junit/report coveragebccoverage math, hand-rolled step summaries — markdown summary,GITHUB_OUTPUTcounts,--fail-on-failures/--mingatesannotate error|warning|notice+annotate from-jsonfile:line:fallback elsewhere; converts any linter's JSON findings via--*-keyfield mappinglock acquire|release|runflock+ trap gymnastics — portable file mutex with--timeout,--staletakeover, holder pid/timestamp recordedExtended commands
json diff/yaml diff— semantic diff (key order/formatting ignored);text/json/markdownoutput,--ignoreprefixes,--exit-code,--to-summaryyaml get/set/del --doc— address one document in a multi-doc stream by index or field match (kind=Deployment,metadata.name=api); sibling documents stay byte-identical, composes with--preserve(yq can't do this)http get --paginate— followLink: rel="next"headers, merge pages;--itemsfor nested arrays,--max-pagescaprender --envsubst—$VAR/${VAR}/${VAR:-default}/$$drop-in envsubst replacement;--strictlists all unset varsassert versions-match— monorepo version-sync guard (package.json vs Chart.yaml vs …)artifact assert --max-size/--min-size— size budgets with human units (5MB,100KiB)version next— hardened conventional-commit parsing: line-anchoredtype(scope)!:matching (no more substring false positives),perf/refactor/revertcount as patch,BREAKING CHANGEfooters read from commit bodiesTesting
integration/timesavers_test.godriving the built binarygo test -race ./...— 349 tests green;gofumpt -l .clean; no new golangci-lint findings (pre-existing ones on main untouched)Docs
README command table, full
COMMANDS.mdentries (report/annotate/lock + extended flags), and a "v0.3 patterns" recipe section inEXAMPLES.md.🤖 Generated with Claude Code