ci: block Vale tooling paths from main + mirror spec dev-only narrative - #69
Merged
Conversation
…UDE.md scorecard section Two small release-doc polish items. `RELEASES-PREFLIGHT.md` gains a "Release mechanics sanity" item that runs the same leak check `RELEASES.md` step 4 runs, so operators catch guarded paths (docs/plans, docs/brainstorms, etc.) that snuck through cherry-pick rename detection before the release PR opens. Points at the new `RELEASES.md` § Cherry-pick conflicts on guarded paths subsection for resolution. `CLAUDE.md` § "Scorecard v0.5 Fields" renamed to § "Scorecard JSON fields" so the heading does not bake the schema version into a section title that operators link from elsewhere. The schema version moves through 0.5 → 0.6 → 0.7 on a release cadence; the section name should not. Updates the cross-link in `RELEASES-PREFLIGHT.md` to match.
The Vale prose-check tooling (`.vale.ini`, `styles/`, `scripts/prose-check.sh`) is dev-side only going forward. Adds `extra_paths: 'styles/,.vale.ini,scripts/prose-check.sh'` to the `guard-main-docs.yml` workflow so future PRs cannot reintroduce those paths to main. The path values mirror the spec repo's wrapper. The actual file deletions ship on the release branch (one cycle of release-only removal puts them on main; from there the workflow keeps them out). Dev keeps the tooling for operators who want to run a local prose-check pipeline. Updates the doc references on dev that point at the now-future-only local Vale paths so consumers reading main do not chase dead links once the release lands: - `PRODUCT.md`: removes `styles/brand/`, `styles/brand/README.md`, and `styles/config/vocabularies/cli/` references; points at agentnative-spec as the canonical Vale rule pack location. Drops the prose-rendering Vale callout in favor of generic prose-source guidance. - `AGENTS.md`: rewrites the "Voice and prose rules" section to drop the `scripts/prose-check.sh` invocation and the rule-pack vendoring prose. - `BRAND.md`: callout and rule-pack pointers updated to name agentnative-spec as the executable contract; the "Source of truth" block names the spec repo as the issue venue. - `scripts/SYNCS.md`: drops the `sync-prose-tooling.sh` row from the upstream sync table, the matching mermaid arrow, and the Reference section entry. Same justification (tool not on main). - `RELEASES.md`: prose-scrubbing section no longer promises a future vendoring; explicitly names the spec checkout as the Vale config source.
Aligns this repo's narrative with `agentnative-spec` PR #45 (ed066b6), the canonical "move prose-check stack to dev-only" change. The earlier commit in this branch covered the workflow guard and removed direct path references; this one mirrors the spec's specific phrasings so the two repos do not drift on framing. - `BRAND.md`: replaced with a verbatim copy of the spec's current version, which already carries the "narrative is authoritative for both the *why* and the *what*" framing and the "Vale rule pack on the `dev` branch (dev-only tooling)" parenthetical, plus the refreshed Channel-artifacts table with `(dev-only)` annotation. As a vendored mirror, BRAND.md should match the spec word for word. - `PRODUCT.md`: tightened the Inheritance and Register passages to the spec's "authoritative voice contract" / "dev-only tooling, not shipped to main" phrasing pattern, adapted for the linter channel (rule pack lives in the spec, mirrored to this repo's `dev`). - `AGENTS.md`: rewrote the Voice and prose rules section to mirror the spec's AGENTS.md voice-contract paragraph, again adapted for the consumer-side framing. - `RELEASES.md`: added the `### Dev-direct exception` subsection under Daily development, mirroring the spec's same insertion point and content (engineering-docs path list plus the prose-check stack trio). The dev-direct allowance applies to both categories; the feature-branch flow still applies to everything else.
brettdavies
added a commit
that referenced
this pull request
May 31, 2026
…ve (#69) ## Summary Repositions the Vale prose-check stack (`styles/`, `.vale.ini`, `scripts/prose-check.sh`) as dev-only contributor tooling, mirroring `agentnative-spec` PR #45 (ed066b6). This is the evergreen half: workflow guard, doc reference updates, and dev-direct exception note. The actual file deletions on `main` happen in a follow-up performed directly on the `release/v0.5.0` branch so that one release cycle removes the files from `main`; from then on the workflow guard keeps them out. Bundles two small release-doc polish items that surfaced during the same review pass: a guarded-path leak-check entry in `RELEASES-PREFLIGHT.md`, and a version-neutral rename of `CLAUDE.md` § "Scorecard v0.5 Fields" to § "Scorecard JSON fields" so the heading stops aging out as schema versions move. ## Changelog ### Changed - `.github/workflows/guard-main-docs.yml`: pass `extra_paths: 'styles/,.vale.ini,scripts/prose-check.sh'` to the reusable guard workflow. Future PRs to `main` that add or modify those paths fail the check. Mirrors the path values used by `agentnative-spec`. - `BRAND.md`: refreshed verbatim from `agentnative-spec` to pick up the "narrative is authoritative for both the why and the what" reframing and the `(dev-only)` annotation on the Vale-rule-pack column of the Channel-artifacts table. As a vendored mirror, BRAND.md should match the spec word for word. - `PRODUCT.md`: Inheritance and Register sections retune to "authoritative voice contract" framing; explicitly names the rule pack as dev-only tooling that does not ship to `main`. Removes the dead `styles/brand/README.md` / `styles/brand/*.yml` / `styles/config/vocabularies/cli/` links. - `AGENTS.md`: rewrites the "Voice and prose rules" section to drop the `scripts/prose-check.sh` invocation example and the rule-pack vendoring prose; mirrors the spec's AGENTS.md voice-contract paragraph. - `scripts/SYNCS.md`: drops the `sync-prose-tooling.sh` row from the upstream sync table, the matching mermaid arrow, and the Reference section entry. - `RELEASES.md`: prose-scrubbing intro no longer promises a future vendoring; explicitly names the spec checkout as the Vale config source. - `CLAUDE.md`: § "Scorecard v0.5 Fields" renamed to § "Scorecard JSON fields"; the cross-link in `RELEASES-PREFLIGHT.md` updates to match. ### Added - `RELEASES.md` gains a `### Dev-direct exception` subsection under Daily development, mirroring the spec's same insertion point and content. Names the two path categories (engineering docs and prose-check stack) that may be committed directly to `dev` without a feature branch. - `RELEASES-PREFLIGHT.md` gains a "Release mechanics sanity" item that runs the same guarded-path leak check `RELEASES.md` step 4 runs, so operators catch leaks before the release PR opens. Points at the new `RELEASES.md` § Cherry-pick conflicts on guarded paths subsection for resolution. ## Type of Change - [x] `ci`: CI/CD configuration changes ## Related Issues/Stories - Story: n/a - Issue: n/a - Architecture: Mirrors `agentnative-spec` PR #45 (ed066b6) "feat(prose-check): move stack to dev-only". The spec's follow-up release PR (#46, 20b9deb) performed the corresponding file deletions on `main`; this repo's equivalent deletions happen on `release/v0.5.0` after this PR merges. - Related PRs: agentnative-spec#45, agentnative-spec#46 ## Testing - [x] All tests passing **Test Summary:** - `cargo test`: 793 passed, 2 ignored. - `cargo build`: clean. - `bash scripts/prose-check.sh --vale-only` on dev: stack still present, runs as expected. ## Files Modified **Modified:** - `.github/workflows/guard-main-docs.yml` - `AGENTS.md`, `BRAND.md`, `CLAUDE.md`, `PRODUCT.md`, `RELEASES.md`, `RELEASES-PREFLIGHT.md`, `scripts/SYNCS.md` **Created:** - None. **Renamed:** - None. **Deleted:** - None on this branch. The actual prose-check stack deletions (`.vale.ini`, `styles/`, `scripts/prose-check.sh`, plus the orphaned helpers `scripts/sync-prose-tooling.sh`, `scripts/test-prose-check.mjs`, `scripts/generate-pack-readme.mjs`) ship on the release branch. ## Breaking Changes - [x] No breaking changes ## Deployment Notes - [x] No special deployment steps required
brettdavies
added a commit
that referenced
this pull request
May 31, 2026
Performs the release-branch deletions that pair with the `feat/remove-vale-and-prose-tooling` dev PR (#69). Once this release lands on `main`, the `guard-main-docs` workflow added in #69 keeps these paths from being reintroduced. Removes: - `.vale.ini` (the Vale config root, in extra_paths) - `styles/` (rule packs + vocab; the brand pack came in via the spec-vendored bundle, in extra_paths) - `scripts/prose-check.sh` (consumer-owned orchestrator, in extra_paths) - `scripts/sync-prose-tooling.sh` (orphaned without the rule pack to vendor) - `scripts/test-prose-check.mjs` (orphaned without prose-check.sh) - `scripts/generate-pack-readme.mjs` (orphaned without styles/brand/) Dev still has the stack for contributors who want a local prose-check pipeline; the spec repo remains the canonical source for the rule packs.
brettdavies
added a commit
that referenced
this pull request
Jun 1, 2026
The original v0.5.0 CHANGELOG section was generated before the hierarchical noun-verb consistent-naming fix (PR #73) was cherry-picked onto the release branch. Regenerated to include the new bullet plus a couple of others (#68, #69, #71 cherry-picks) that landed between the first generation and now. Side-effect: the section header date moves 2026-05-31 -> 2026-06-01 since git-cliff uses the regeneration date. The tag will publish today; the new date matches the actual release date.
brettdavies
added a commit
that referenced
this pull request
Jun 1, 2026
## Summary `v0.5.0` of `anc`. Vendored `agentnative-spec` advances `0.4.0` → `0.5.0`. Scorecard JSON schema advances `0.5` → `0.7` in two steps (7-status taxonomy at `0.6`; `check_id` → `audit_id` rename at `0.7`). Coverage matrix JSON `schema_version` rebases from `"1.0"` to `"0.1"` so it matches the project's pre-release `0.x` convention. Two new universal P3 requirements (`p3-must-version`, `p3-should-version-short`) plus 22 additional behavioral checks across P1-P8 close the remaining behavioral orphan coverage. CLI subcommand surface renames `check` → `audit` and `generate` → `emit` (breaking). Badge eligibility floor lowers from 80% to 70%, and the leaderboard score becomes credit-weighted on shipped-binary behavior only. The Vale prose-check stack (`styles/`, `.vale.ini`, `scripts/prose-check.sh`) moves to dev-only contributor tooling; the workflow guard keeps it out of `main` going forward. ## Changelog ### Added - 22 new behavioral checks across P1-P8 close the remaining behavioral orphan coverage (verbose, color, raw, examples, defaults-in-help, rich-tui, about/long-about, stdin-input, consistent-naming, timeout-behavioral, structured exit codes, JSON error envelopes, actionable errors, force/yes, read/write distinction, TTY-aware verbosity, and more). - Two universal P3 requirements (`p3-must-version`, `p3-should-version-short`) verify that every CLI ships a `--version` flag plus a short alias from the `-V` / `-v` / `-version` family. - New `opt_out` and `n_a` scorecard statuses surface explicit non-adoption and unmet-antecedent rows; each `results[]` entry now carries `tier` plus `audit_id`. Pre-`0.6` consumers feature-detect. - Top-level `--verbose` / `-v` (env `AGENTNATIVE_VERBOSE`), `--examples`, `--color`, and `--raw` flags surface diagnostic detail, curated invocation blocks, ANSI styling control, and pipe-friendly `id<TAB>status` rows. - `anc skill install --all` and `anc skill update [host|--all]` iterate every known host in one invocation. ### Changed - **BREAKING**: `anc check` renamed to `anc audit`; `anc generate` renamed to `anc emit`; `anc schema` folded under `anc emit schema`. The implicit-default-subcommand injection now writes `audit`. Update scripts and CI invocations. - **BREAKING**: scorecard `schema_version` advances `"0.5"` → `"0.7"` (two-step), the `check_id` field renames to `audit_id`, and `results[]` switches to one entry per requirement-row rather than per probe. Consumers pinning the prior shape must feature-detect or update. - Leaderboard `score_pct` is now credit-weighted on shipped-binary behavior only: `warn` earns half credit, `opt_out` counts against, source/project audits no longer affect the score. Badge eligibility floor lowers from 80% to 70%. - Vendored `agentnative-spec` advances `0.4.0` → `0.5.0`; scorecard `spec_version` reports `"0.5.0"`. - `coverage/matrix.json` `schema_version` bumps `"1.0"` → `"0.1"` so the matrix follows the project's pre-release `0.x` convention used by the CLI crate, scorecard schema, and vendored spec. The lone consumer (`agentnative-site/src/build/coverage.mjs`) validates the field's existence but does not pin a specific value, so this is safe. - Vale prose-check stack (`styles/`, `.vale.ini`, `scripts/prose-check.sh`) repositions as dev-only contributor tooling. `guard-main-docs.yml` blocks those paths from `main` going forward. ### Fixed - Error output under `--output json` / `--json` now emits a JSON envelope with `error`, `kind`, `message` instead of clap's plain-text rendering, so agents pinned to JSON can parse failures with one shape. - Text mode now renders `[N/A]` (with antecedent evidence) for conditional requirements whose prerequisite was opted out, instead of a misleading `[FAIL]` on the probe id. Text row count and badge score match `--output json`. - The spec parser rejects three malformed conditional-applicability inputs that previously fell through silently (whitespace-only `antecedent.audit_id`, mixed legacy `if:` + new `kind:`, unknown keys inside `antecedent`). ### Documentation - `RELEASES-PREFLIGHT.md` lands as the operational pre-flight checklist gating each release cut. `RELEASES.md` gains a `### Cherry-pick conflicts on guarded paths` subsection and a `### Dev-direct exception` subsection covering engineering-docs paths and the prose-check stack. - Repo-wide prose pass: every tracked markdown doc plus the historical sections of `CHANGELOG.md` carry the same per-occurrence punctuation tightening applied to all 64 PR bodies in the v0.4.0 → v0.5.0 window. ## Type of Change - [x] `BREAKING CHANGE`: Breaking API change (requires major version bump) ## Related Issues/Stories - Story: n/a - Issue: n/a - Architecture: `agentnative-spec` `v0.5.0` (vendored at upstream commit `d5d4086`). Consumer-facing JSON shape moves to schema `0.7` with the `audit_id` rename. - Related PRs: cherry-picks of #55, #56, #57, #58, #59, #60, #61, #62, #63, #64, #65, #66, #68, #69 from `dev`. ## Testing - [x] All tests passing **Test Summary:** - `cargo test`: 793 passed, 2 ignored. - `anc emit coverage-matrix --check`: exit 0. - `cargo deny check advisories`: ok. - Release-mechanics preflight per `RELEASES-PREFLIGHT.md`: green except the cross-repo `agentnative-site` schema gap (tracked separately). ## Files Modified **Modified:** - Source: `src/audits/`, `src/scorecard/`, `src/principles/`, `src/main.rs`, `src/cli.rs`, `src/audit.rs`, `src/types.rs`, `src/runner/`, `src/source.rs`, `src/skill_install.rs`, and supporting modules. - Schema: `schema/scorecard.schema.json` regenerated to the `0.7` contract. - Vendored spec: `src/principles/spec/*` advances to `v0.5.0`. - Coverage artifacts: `docs/coverage-matrix.md`, `coverage/matrix.json` reflect 59 requirement rows. - Workflows: `.github/workflows/guard-main-docs.yml` (extra_paths). - Tracked docs: `README.md`, `AGENTS.md`, `CLAUDE.md`, `PRODUCT.md`, `BRAND.md`, `RELEASES.md`, `RELEASES-RATIONALE.md`, `scripts/SYNCS.md`, `.github/pull_request_template.md`, `CHANGELOG.md`. - Scripts: `scripts/generate-changelog.sh` (duplicate-section guard), `scripts/sync-spec.sh` (`--ref` flag and `gh api` transport), `scripts/hooks/pre-push` (shellcheck step). - Build identity: `Cargo.toml`, `Cargo.lock` (`0.5.0`). **Created:** - `RELEASES-PREFLIGHT.md` (operational pre-flight checklist). **Renamed:** - `anc check` → `anc audit` (subcommand surface). - `anc generate` → `anc emit` (subcommand surface). - Scorecard `check_id` → `audit_id` (JSON field). **Deleted:** - `.vale.ini`, `styles/`, `scripts/prose-check.sh`, plus the orphaned helpers `scripts/sync-prose-tooling.sh`, `scripts/test-prose-check.mjs`, `scripts/generate-pack-readme.mjs`. Replaced by the `guard-main-docs.yml` `extra_paths` guard that keeps the stack off `main` going forward. ## Breaking Changes - [x] Breaking changes described below: 1. **Scorecard JSON shape**: `schema_version` `"0.5"` → `"0.7"`. `check_id` renamed to `audit_id` (per-row and in `coverage/matrix.json`). `results[]` switches to one entry per requirement-row instead of per probe; each entry carries new `tier` and `audit_id` fields. Status enum expands from 3 to 7 values (`pass`, `warn`, `fail`, `opt_out`, `n_a`, `skip`, `error`). Consumers pinned to `0.5` or the prior `check_id` field must update. 2. **Subcommand surface**: `anc check` renamed to `anc audit`; `anc generate` renamed to `anc emit`; `anc schema` folded under `anc emit schema`. Scripts and CI invocations pinned to the old names must update. ## Deployment Notes - `agentnative-site` must add `'0.7'` to its `SUPPORTED_SCHEMA_VERSIONS` allowlist before this release is tagged. Without that, the site's regen pipeline rejects every `v0.5.0` scorecard upload. - After tag publish: run `./scripts/sync-dev-after-release.sh v0.5.0 && git push origin dev` per `RELEASES.md` § After publish to backport `Cargo.toml`, `Cargo.lock`, and `CHANGELOG.md` to `dev`.
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
Repositions the Vale prose-check stack (
styles/,.vale.ini,scripts/prose-check.sh) as dev-only contributortooling, mirroring
agentnative-specPR #45 (ed066b6). This is the evergreen half: workflow guard, doc referenceupdates, and dev-direct exception note. The actual file deletions on
mainhappen in a follow-up performed directlyon the
release/v0.5.0branch so that one release cycle removes the files frommain; from then on the workflowguard keeps them out.
Bundles two small release-doc polish items that surfaced during the same review pass: a guarded-path leak-check entry
in
RELEASES-PREFLIGHT.md, and a version-neutral rename ofCLAUDE.md§ "Scorecard v0.5 Fields" to § "ScorecardJSON fields" so the heading stops aging out as schema versions move.
Changelog
Changed
.github/workflows/guard-main-docs.yml: passextra_paths: 'styles/,.vale.ini,scripts/prose-check.sh'to thereusable guard workflow. Future PRs to
mainthat add or modify those paths fail the check. Mirrors the path valuesused by
agentnative-spec.BRAND.md: refreshed verbatim fromagentnative-specto pick up the "narrative is authoritative for both the whyand the what" reframing and the
(dev-only)annotation on the Vale-rule-pack column of the Channel-artifacts table.As a vendored mirror, BRAND.md should match the spec word for word.
PRODUCT.md: Inheritance and Register sections retune to "authoritative voice contract" framing; explicitly namesthe rule pack as dev-only tooling that does not ship to
main. Removes the deadstyles/brand/README.md/styles/brand/*.yml/styles/config/vocabularies/cli/links.AGENTS.md: rewrites the "Voice and prose rules" section to drop thescripts/prose-check.shinvocation exampleand the rule-pack vendoring prose; mirrors the spec's AGENTS.md voice-contract paragraph.
scripts/SYNCS.md: drops thesync-prose-tooling.shrow from the upstream sync table, the matching mermaid arrow,and the Reference section entry.
RELEASES.md: prose-scrubbing intro no longer promises a future vendoring; explicitly names the spec checkout asthe Vale config source.
CLAUDE.md: § "Scorecard v0.5 Fields" renamed to § "Scorecard JSON fields"; the cross-link inRELEASES-PREFLIGHT.mdupdates to match.Added
RELEASES.mdgains a### Dev-direct exceptionsubsection under Daily development, mirroring the spec's sameinsertion point and content. Names the two path categories (engineering docs and prose-check stack) that may be
committed directly to
devwithout a feature branch.RELEASES-PREFLIGHT.mdgains a "Release mechanics sanity" item that runs the same guarded-path leak checkRELEASES.mdstep 4 runs, so operators catch leaks before the release PR opens. Points at the newRELEASES.md§ Cherry-pick conflicts on guarded paths subsection for resolution.Type of Change
ci: CI/CD configuration changesRelated Issues/Stories
agentnative-specPR docs(releases): replace one-way leak check with triple-diff verification #45 (ed066b6) "feat(prose-check): move stack to dev-only". The spec'sfollow-up release PR (docs(releases): add squash-merge triage guidance to git cherry step #46, 20b9deb) performed the corresponding file deletions on
main; this repo's equivalentdeletions happen on
release/v0.5.0after this PR merges.Testing
Test Summary:
cargo test: 793 passed, 2 ignored.cargo build: clean.bash scripts/prose-check.sh --vale-onlyon dev: stack still present, runs as expected.Files Modified
Modified:
.github/workflows/guard-main-docs.ymlAGENTS.md,BRAND.md,CLAUDE.md,PRODUCT.md,RELEASES.md,RELEASES-PREFLIGHT.md,scripts/SYNCS.mdCreated:
Renamed:
Deleted:
.vale.ini,styles/,scripts/prose-check.sh, plusthe orphaned helpers
scripts/sync-prose-tooling.sh,scripts/test-prose-check.mjs,scripts/generate-pack-readme.mjs) ship on the release branch.Breaking Changes
Deployment Notes