Skip to content

feat(safety)!: opt-in release-age policy and default-on auto-merge (#85)#86

Merged
j7an merged 5 commits into
mainfrom
feat-85-release-age-policy-v4
Jun 12, 2026
Merged

feat(safety)!: opt-in release-age policy and default-on auto-merge (#85)#86
j7an merged 5 commits into
mainfrom
feat-85-release-age-policy-v4

Conversation

@j7an

@j7an j7an commented Jun 11, 2026

Copy link
Copy Markdown
Owner

What

Makes post-PR release-age verification opt-in and auto-merge default-on in dependency-safety.yml, shipping as v4.0.0 (breaking).

  • New release_age_policy string input: "off" (default — no age lookup), advisory (label + comment, gate green, auto-merge suppressed), blocking (gate fails).
  • auto_merge now defaults to true; callers opt out with auto_merge: false.
  • fail_on_age_violation is removed — stale callers fail loudly at workflow startup. Migration table in README (true → blocking, false → advisory).
  • Verdict layer (safety-verdict.sh) validates the policy enum fail-closed, including an orchestrator-bug invariant (off ⇒ zero age counts) and a quoting hint for the YAML-boolean off footgun.
  • Age lookups are gated behind a positive allowlist (case advisory|blocking) so invalid values never trigger network calls.
  • New tests/safety-workflow-contract.bats statically asserts the public workflow_call input surface.

YAML off note

GitHub's workflow-syntax reference does not state which YAML spec version the parser uses (no 1.1-vs-1.2 statement), so the design assumes nothing: the input default is quoted ("off"), README examples quote it, the allowlist guard ignores any coerced value, and the verdict validator fails closed with a quoting hint if false arrives.

Release step (required)

This repo does not auto-release on merge. Immediately after merging, dispatch release-self.yml — the Conventional Commits (feat!) infer a major bump to v4.0.0. The README @v4 pins in this PR are invalid until that tag exists.

Fixes #85.

j7an added 5 commits June 10, 2026 22:56
…in verdict layer

BREAKING CHANGE: post-PR release-age verification is now opt-in via release_age_policy (default "off") and auto_merge defaults to true; the fail_on_age_violation input is removed.

Refs #85
… dependency-safety.yml

BREAKING CHANGE: post-PR release-age verification is now opt-in via release_age_policy (default "off") and auto_merge defaults to true; the fail_on_age_violation input is removed.

Refs #85
BREAKING CHANGE: post-PR release-age verification is now opt-in via release_age_policy (default "off") and auto_merge defaults to true; the fail_on_age_violation input is removed.

Refs #85
…d v3-to-v4 migration

BREAKING CHANGE: post-PR release-age verification is now opt-in via release_age_policy (default "off") and auto_merge defaults to true; the fail_on_age_violation input is removed.

Refs #85
BREAKING CHANGE: post-PR release-age verification is now opt-in via release_age_policy (default "off") and auto_merge defaults to true; the fail_on_age_violation input is removed.

Refs #85
@j7an j7an merged commit dd7254c into main Jun 12, 2026
7 checks passed
@j7an j7an deleted the feat-85-release-age-policy-v4 branch June 12, 2026 01:23
j7an added a commit to j7an/cross-agent-reviews that referenced this pull request Jun 14, 2026
…licy (#59)

Bumps dependency-safety.yml and tag-release.yml from v3.0.2 (29bcd57) to v4.0.0 (dd7254c).

dependency-safety.yml: sets release_age_policy: advisory (was v3 default hard-fail) and auto_merge: true (was v3 default false, i.e. manual merge), making both explicit at the call site.

dependency-safety-non-bot-gate.yml: status description reworded off 'cooldown'.

Mirrors j7an/dep-rank#133. Refs j7an/shared-workflows#86.
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.

Make post-PR release-age verification opt-in and auto-merge default-on in dependency-safety

1 participant