Merged
Conversation
…orecard v1.1 (#21) v0.1.1 foundation handoff 1 of 3 — lands the honest-verification scaffolding in `agentnative`. Introduces the `PrincipleRegistry` + coverage-matrix generator, adds `Check::covers()`, corrects two miscategorized checks, fixes the P1 applicability gate that was about to warn the linter against itself, and bumps the scorecard JSON schema to v1.1. - `anc generate coverage-matrix` subcommand (`--out`, `--json-out`, `--check` drift guard). Emits `docs/coverage-matrix.md` + `coverage/matrix.json` from the spec registry + each check's declared `covers()`. - Scorecard JSON v1.1 fields: `schema_version: "1.1"`, `coverage_summary` (`must`/`should`/`may` × `total`/`verified`), `audience` (reserved, null until v0.1.3), `audit_profile` (reserved, null until v0.1.3). - Renamed `p6-tty-detection` → `p1-tty-detection-source` (verifies the P1 SHOULD for TTY detection, not a P6 concern). - Renamed `p6-env-flags` → `p1-env-flags-source` (verifies the P1 MUST that every flag be settable via env var — lives in P1, not P6). - P1 applicability gate (`src/checks/behavioral/non_interactive.rs`) now passes when any of help-on-bare-invocation, agentic-flag-present, or stdin-as-primary-input is observed. Previously `anc` risked warning itself once `p1-flag-existence` lands in v0.1.2. - [x] `feat`: New feature - Plan: `docs/plans/2026-04-20-v011-handoff-1-agentnative-impl.md` - CEO plan: `~/.gstack/projects/brettdavies-agentnative/ceo-plans/2026-04-20-p1-doctrine-spec-coverage.md` - Test plan: `~/.gstack/projects/brettdavies-agentnative/brett-dev-eng-review-test-plan-20260420-132817.md` - Related PRs: handoff 2 (site spec text) and handoff 3 (scorecard regeneration, consumes the rename map below). - [x] Unit tests added/updated - [x] Integration tests added/updated - [x] Manual testing completed (dogfood via `cargo run -- check .`) - [x] All tests passing **Test Summary:** - Unit tests: 321 passing (+17 from baseline 304) - Integration tests: 41 passing (+2: generate-writes + drift-check) - `cargo fmt --check`: clean - `cargo clippy --all-targets -- -Dwarnings`: clean - `cargo run -- check .`: 26 pass / 2 warn / 0 fail / 2 skip (dogfood OK) - `cargo run -- generate coverage-matrix --check`: exit 0 (no drift) **Created:** - `src/principles/mod.rs`, `src/principles/registry.rs`, `src/principles/matrix.rs` - `docs/coverage-matrix.md`, `coverage/matrix.json` **Modified:** - `src/check.rs` — `Check::covers()` with empty default - `src/cli.rs`, `src/main.rs` — `generate coverage-matrix` wiring - `src/checks/**/*.rs` — per-check `covers()` declarations (19 checks) - `src/scorecard.rs` — v1.1 scorecard shape + coverage-summary builder - `src/checks/behavioral/non_interactive.rs` — P1 applicability gate - `tests/integration.rs` — generate/drift integration tests The rename breaks `results[].id` in every scorecard JSON committed to `brettdavies/agentnative-site`. Handoff 3 regenerates. Old → new: | Old ID | New ID | Principle change | |---------------------|---------------------------|------------------| | `p6-tty-detection` | `p1-tty-detection-source` | P6 → P1 (SHOULD) | | `p6-env-flags` | `p1-env-flags-source` | P6 → P1 (MUST) | 46 requirements: 23 MUST / 16 SHOULD / 7 MAY. `registry_size_matches_spec` test guards against drift; bumping the counter is a deliberate act. - MUST: 17 / 23 verified - SHOULD: 2 / 16 verified - MAY: 0 / 7 verified Uncovered entries are now explicit in `docs/coverage-matrix.md` — readers can see what `anc` verifies vs. what the spec claims. Closing more coverage is the job of v0.1.2 (handoff 4). - [x] Breaking changes described below Check ID renames (`p6-tty-detection`, `p6-env-flags`) are breaking for anyone consuming scorecard JSON downstream. Site regeneration is tracked in handoff 3 and lands before v0.1.1 tags. - [x] No special deployment steps required v0.1.1 tag gated on handoff 2 (site spec) also landing. - [x] Code follows project conventions and style guidelines - [x] Commit messages follow Conventional Commits - [x] Self-review completed - [x] Tests added/updated and passing - [x] No new warnings or errors introduced - [x] Breaking changes documented (rename map above)
- cliff.toml: `repo = "agentnative-cli"` so generated changelog links resolve on the renamed repo. - .github/ISSUE_TEMPLATE/*.yml: seven issue-template YAML files had hardcoded `brettdavies/agentnative` URLs in prose (search-first guidance, CONTRIBUTING.md links, config chooser URL); now point at `brettdavies/agentnative-cli`. CHANGELOG.md historical entries are intentionally left untouched — GitHub's rename redirect handles the old links, and the generator only appends new entries.
The URL-sweep bullet previously carried release-engineering detail about the `release/v0.1.1-*` branch completing cliff.toml and issue-template refs. Simplified the PR #21 body (`gh pr edit 21`) and regenerated so the user-visible changelog stays focused on the repo rename itself.
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
Release PR cutting v0.1.1 onto
main. Bundles the v0.1.1 feature payload (principle registry, coverage matrix, checkrenames, scorecard v1.1, issue templates) from #21 plus the
residual URL-rename work needed after the GitHub repo moved
brettdavies/agentnative→brettdavies/agentnative-cli.The tag push after merge triggers crates.io publish (Trusted Publishing), GitHub Release (5 targets + sha256sum), and
Homebrew tap dispatch.
Changelog
Added
anc generate coverage-matrixsubcommand (--out,--json-out,--checkdrift guard). Emitsdocs/coverage-matrix.md+coverage/matrix.jsonfrom the spec registry + each check's declaredcovers().schema_version: "1.1",coverage_summary(must/should/may×total/verified),audience(reserved, null until v0.1.3),audit_profile(reserved, null until v0.1.3).pressure-test, spec-question (+ chooser
config.yml).Changed
p6-tty-detection→p1-tty-detection-source(verifies the P1 SHOULD for TTY detection, not a P6 concern).p6-env-flags→p1-env-flags-source(verifies the P1 MUST that every flag be settable via env var — livesin P1, not P6).
brettdavies/agentnative-cli(renamed frombrettdavies/agentnative).Cargo.tomlhomepagenow points athttps://anc.dev.Fixed
src/checks/behavioral/non_interactive.rs) now passes when any of help-on-bare-invocation,agentic-flag-present, or stdin-as-primary-input is observed. Previously
ancrisked warning itself oncep1-flag-existencelands in v0.1.2.Type of Change
feat: New feature (release vehicle carrying v0.1.1)Related Issues/Stories
feat(v0.1.1): principle registry, coverage matrix, check renames + scorecard v1.1docs/plans/2026-04-20-v011-handoff-1-agentnative-impl.md(dev-only)scripts/generate-changelog.sh(ran on this branch; CHANGELOG.md committed verbatim from the scriptoutput — no manual edits)
Testing
-Dwarnings, 321 unit tests + 41 integration tests,cargo deny, Windows compat)feat/v011-*branch (pre-squash-merge to dev): all greencargo run -- check .: 26 pass / 2 warn / 0 fail / 2 skip (dogfood)cargo run -- generate coverage-matrix --check: exit 0 (no drift)Files Modified
Modified on this release branch (beyond the PR #21 cherry-pick):
cliff.toml:repo = "agentnative-cli"(so changelog links resolve against the renamed repo).github/ISSUE_TEMPLATE/*.yml(7 files): prose URL references swept tobrettdavies/agentnative-cliCargo.toml,Cargo.lock: version bump0.1.0→0.1.1completions/anc.{bash,zsh,fish,elvish,powershell}: regenerated to pick up thegenerate coverage-matrixsubcommandCHANGELOG.md: generated byscripts/generate-changelog.shBreaking Changes
Check ID renames land in this release (from PR #21):
p6-tty-detectionp1-tty-detection-sourcep6-env-flagsp1-env-flags-sourceDownstream scorecard-JSON consumers (notably the
agentnative-site/score/<tool>page) see changedresults[].idvalues. Handoff 3 regenerates the committed scorecards against v0.1.1.Deployment Notes
Squash-merge this PR to
main.Tag on
main(annotated, pertag.gpgsign=truedefault):Tag push triggers
.github/workflows/release.yml→ reusablerust-release.yml:check-version→audit→build(5 targets) →
publish-crate(Trusted Publishing OIDC) →release(non-draft,make_latest: false) →homebrewdispatch →
finalize-releaseflipsmake_latest: true.Precondition (manual, one-time): crates.io Trusted Publishing entry must point at
brettdavies/agentnative-cli(renamed from
brettdavies/agentnative). Verify athttps://crates.io/settings/tokens/trusted-publishingbeforetagging — OIDC claim from the renamed repo won't match a stale entry and the publish step will fail with an auth
error.
Checklist