Skip to content

release: v0.1.1#22

Merged
brettdavies merged 6 commits intomainfrom
release/v0.1.1-registry-and-rename
Apr 20, 2026
Merged

release: v0.1.1#22
brettdavies merged 6 commits intomainfrom
release/v0.1.1-registry-and-rename

Conversation

@brettdavies
Copy link
Copy Markdown
Owner

@brettdavies brettdavies commented Apr 20, 2026

Summary

Release PR cutting v0.1.1 onto main. Bundles the v0.1.1 feature payload (principle registry, coverage matrix, check
renames, scorecard v1.1, issue templates) from #21 plus the
residual URL-rename work needed after the GitHub repo moved brettdavies/agentnativebrettdavies/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-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).
  • GitHub issue templates for structured reporting: false-positive, scoring-bug, feature-request, grade-a-cli,
    pressure-test, spec-question (+ chooser config.yml).

Changed

  • Renamed p6-tty-detectionp1-tty-detection-source (verifies the P1 SHOULD for TTY detection, not a P6 concern).
  • Renamed p6-env-flagsp1-env-flags-source (verifies the P1 MUST that every flag be settable via env var — lives
    in P1, not P6).
  • Repo URL references swept to brettdavies/agentnative-cli (renamed from brettdavies/agentnative). Cargo.toml
    homepage now points at https://anc.dev.

Fixed

  • 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.

Type of Change

  • feat: New feature (release vehicle carrying v0.1.1)

Related Issues/Stories

  • Feature PR: #21feat(v0.1.1): principle registry, coverage matrix, check renames + scorecard v1.1
  • Plan: docs/plans/2026-04-20-v011-handoff-1-agentnative-impl.md (dev-only)
  • Changelog script: scripts/generate-changelog.sh (ran on this branch; CHANGELOG.md committed verbatim from the script
    output — no manual edits)

Testing

  • Pre-push hook passed on this branch (fmt, clippy -Dwarnings, 321 unit tests + 41 integration tests, cargo deny, Windows compat)
  • CI on the underlying feat/v011-* branch (pre-squash-merge to dev): all green
  • cargo 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 to brettdavies/agentnative-cli
  • Cargo.toml, Cargo.lock: version bump 0.1.00.1.1
  • completions/anc.{bash,zsh,fish,elvish,powershell}: regenerated to pick up the generate coverage-matrix subcommand
  • CHANGELOG.md: generated by scripts/generate-changelog.sh

Breaking Changes

  • Breaking changes described below

Check ID renames land in this release (from PR #21):

Old ID New ID
p6-tty-detection p1-tty-detection-source
p6-env-flags p1-env-flags-source

Downstream scorecard-JSON consumers (notably the agentnative-site
/score/<tool> page) see changed results[].id values. Handoff 3 regenerates the committed scorecards against v0.1.1.

Deployment Notes

  • Deployment steps documented below
  1. Squash-merge this PR to main.

  2. Tag on main (annotated, per tag.gpgsign=true default):

    git checkout main && git pull
    git tag -a -m "Release v0.1.1" v0.1.1
    git push origin main --tags
  3. Tag push triggers .github/workflows/release.yml → reusable rust-release.yml: check-versionauditbuild
    (5 targets) → publish-crate (Trusted Publishing OIDC) → release (non-draft, make_latest: false) → homebrew
    dispatch → finalize-release flips make_latest: true.

  4. Precondition (manual, one-time): crates.io Trusted Publishing entry must point at brettdavies/agentnative-cli
    (renamed from brettdavies/agentnative). Verify at https://crates.io/settings/tokens/trusted-publishing before
    tagging — OIDC claim from the renamed repo won't match a stale entry and the publish step will fail with an auth
    error.

Checklist

  • Code follows project conventions and style guidelines
  • Commit messages follow Conventional Commits
  • Self-review completed
  • Tests added/updated and passing (on upstream feat branch)
  • No new warnings or errors introduced
  • Breaking changes documented (rename map above)
  • CHANGELOG.md generated via script, no manual edits

…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.
@brettdavies brettdavies merged commit 5400c43 into main Apr 20, 2026
9 checks passed
@brettdavies brettdavies deleted the release/v0.1.1-registry-and-rename branch April 20, 2026 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant