From 7469598be3df6ffaeca6732681eb4c0241086456 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Thu, 23 Apr 2026 19:53:41 +0200 Subject: [PATCH 1/4] Make the README hero easier to scan at a glance The top of the README buried the CLI version inside one long flat badge strip, so the hero now leads with the product name and two balanced for-the-badge rows that keep the live release, traction, and support signals readable on GitHub. A focused metadata regression now locks those hero cues in place. Constraint: GitHub README markup must stay static and render without custom CSS Rejected: Custom screenshot or banner image | would drift from live version, downloads, CI, and scorecard data Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep the hero limited to high-signal operator facts; do not collapse it back into one crowded row without updating the metadata test Tested: node --test test/metadata.test.js Tested: openspec validate --specs Not-tested: Rendered GitHub web preview --- README.md | 24 ++++++++++++------- .../notes.md | 7 ++++++ test/metadata.test.js | 13 ++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md diff --git a/README.md b/README.md index 4e62ef5..190ea92 100644 --- a/README.md +++ b/README.md @@ -2,20 +2,28 @@ gitguardex logo

-

guardian t-rex for multi-agent repos

+

GitGuardex

+ +

+ guardian t-rex for multi-agent repos +

isolated worktrees, file locks, and PR-only merges for codex, claude, and human teammates

- npm version - npm downloads per month - CI status - OpenSSF Scorecard - stars - last commit - license + CLI version + npm downloads per month + CI status + license +

+ +

+ stars + OpenSSF Scorecard + Node 18 or newer + GitHub Sponsors support development

diff --git a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md new file mode 100644 index 0000000..1fd0c8c --- /dev/null +++ b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md @@ -0,0 +1,7 @@ +# T1 Notes + +- Handoff: branch=`agent/codex/readme-cli-version-and-scanability-2026-04-23-18-38`; scope=`README hero title/badges, focused metadata regression`; action=`make the README top scan like the screenshot reference by leading with GitGuardex and the live CLI version while keeping the layout GitHub-native`. +- Rework the hero into two balanced `for-the-badge` rows so CLI version, downloads, CI, license, stars, scorecard, Node floor, and support CTA scan in one glance. +- Promote the product name to the top-level heading and keep the existing install/about copy below it. +- Keep verification focused on `test/metadata.test.js` so README drift gets caught without reopening broader suites. +- Result: README hero now leads with `GitGuardex`, uses two scan-friendly badge rows, and passed `node --test test/metadata.test.js` (`24/24`); `openspec validate --specs` returned `No items found to validate.` for this notes-only lane. diff --git a/test/metadata.test.js b/test/metadata.test.js index 15dfc12..635959c 100644 --- a/test/metadata.test.js +++ b/test/metadata.test.js @@ -78,6 +78,19 @@ test('README release notes include current package version', () => { ); }); +test('README hero keeps CLI-first scannable badges', () => { + const readme = fs.readFileSync(readmePath, 'utf8'); + assert.match(readme, /

GitGuardex<\/h1>/); + assert.match(readme, /label=CLI&style=for-the-badge/); + assert.match(readme, /label=downloads%2Fmonth&style=for-the-badge/); + assert.match(readme, /label=CI&style=for-the-badge/); + assert.match(readme, /label=license&style=for-the-badge/); + assert.match(readme, /label=stars&style=for-the-badge/); + assert.match(readme, /label=OpenSSF%20Scorecard&style=for-the-badge/); + assert.match(readme, /https:\/\/img\.shields\.io\/badge\/node-18%2B-f59e0b\?style=for-the-badge/); + assert.match(readme, /GitHub%20Sponsors-support%20development-db2777\?style=for-the-badge/); +}); + test('README documents gx release as README-driven GitHub release writer', () => { const readme = fs.readFileSync(readmePath, 'utf8'); assert.match(readme, /gx release\s+# create\/update the current GitHub release from README notes/); From c63b4bd902746ef89dbb45b4e9881708f98a118a Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Thu, 23 Apr 2026 19:57:25 +0200 Subject: [PATCH 2/4] Record the real README lane merge blocker The code change is already verified and the PR is open, but the finish flow could not reach MERGED because GitHub still requires review and has all required checks queued. Recording that state in the T1 notes keeps the branch handoff truthful instead of implying cleanup completed. Constraint: Finish state must reflect GitHub merge truth, not local intent Rejected: Pretend cleanup completed | would misstate the PR lifecycle Confidence: high Scope-risk: narrow Reversibility: clean Directive: Remove this blocker note only after PR #396 is actually merged and sandbox cleanup is proven Tested: gh pr view 396 --json mergeStateStatus,reviewDecision,statusCheckRollup,url Not-tested: eventual CI results or post-merge cleanup --- .../notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md index 1fd0c8c..bfb8081 100644 --- a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md +++ b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md @@ -5,3 +5,4 @@ - Promote the product name to the top-level heading and keep the existing install/about copy below it. - Keep verification focused on `test/metadata.test.js` so README drift gets caught without reopening broader suites. - Result: README hero now leads with `GitGuardex`, uses two scan-friendly badge rows, and passed `node --test test/metadata.test.js` (`24/24`); `openspec validate --specs` returned `No items found to validate.` for this notes-only lane. +- BLOCKED: `gx branch finish --via-pr --wait-for-merge --cleanup` opened PR `#396` (`https://github.com/recodeee/gitguardex/pull/396`), but merge is currently blocked by branch protection because GitHub still shows `REVIEW_REQUIRED` and all required checks remain `QUEUED`. From 36a31b93684469ad6a19e003fab333fbdcc48b1a Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Thu, 23 Apr 2026 20:00:31 +0200 Subject: [PATCH 3/4] Record fresh PR 396 unblock evidence The README lane is still waiting on GitHub gates, but now the blockers are clearer: the configured non-author code owner cannot be resolved as a reviewer, visible collaborators only expose the PR author, and repository auto-merge is disabled. Capturing that evidence on-branch keeps the handoff actionable instead of vague. Constraint: Finish truth must include current GitHub gate failures Rejected: Leave the older blocker note as-is | it omitted the failed reviewer and auto-merge probes Confidence: high Scope-risk: narrow Reversibility: clean Directive: Replace this blocker note only after a real non-author approval exists or repo policy changes Tested: gh pr edit 396 --add-reviewer recodeecom Tested: gh pr merge 396 --auto --squash Tested: gh pr view 396 --json mergeStateStatus,reviewDecision,statusCheckRollup,url Not-tested: admin-bypass merge paths --- .../notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md index bfb8081..43f9d1e 100644 --- a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md +++ b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md @@ -6,3 +6,4 @@ - Keep verification focused on `test/metadata.test.js` so README drift gets caught without reopening broader suites. - Result: README hero now leads with `GitGuardex`, uses two scan-friendly badge rows, and passed `node --test test/metadata.test.js` (`24/24`); `openspec validate --specs` returned `No items found to validate.` for this notes-only lane. - BLOCKED: `gx branch finish --via-pr --wait-for-merge --cleanup` opened PR `#396` (`https://github.com/recodeee/gitguardex/pull/396`), but merge is currently blocked by branch protection because GitHub still shows `REVIEW_REQUIRED` and all required checks remain `QUEUED`. +- Fresh blocker evidence: `.github/CODEOWNERS` names `@recodeecom @NagyVikt`, but `gh pr edit 396 --add-reviewer recodeecom` fails with `GraphQL: Could not resolve user with login 'recodeecom'.`; visible collaborators only return `NagyVikt`, and `gh pr merge 396 --auto --squash` fails with `GraphQL: Auto merge is not allowed for this repository (enablePullRequestAutoMerge)`. From c7677f85ae3d50e4a0004af8416628cf9dec37db Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Thu, 23 Apr 2026 20:02:58 +0200 Subject: [PATCH 4/4] Record Actions incident evidence for PR 396 The README lane is not only blocked by review policy; GitHub Actions are also broadly stalled for this repository. Capturing the repo-wide queue pattern and the live GitHub status incident keeps the handoff tied to external evidence instead of treating the pending checks as branch-local flakiness. Constraint: finish notes must separate repo policy blockers from external infrastructure blockers Rejected: Assume the queue is branch-specific | repo-wide queued runs and GitHub status contradict that Confidence: high Scope-risk: narrow Reversibility: clean Directive: Remove this incident note only after Actions runs actually leave queued state or the status incident resolves Tested: gh api repos/recodeee/gitguardex/actions/permissions Tested: gh run list --limit 20 --json workflowName,status,conclusion,headBranch,createdAt,updatedAt,url Tested: https://www.githubstatus.com/api/v2/incidents/unresolved.json Not-tested: eventual post-incident rerun and merge cleanup --- .../notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md index 43f9d1e..d8003ab 100644 --- a/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md +++ b/openspec/changes/agent-codex-readme-cli-version-and-scanability-2026-04-23-18-38/notes.md @@ -7,3 +7,4 @@ - Result: README hero now leads with `GitGuardex`, uses two scan-friendly badge rows, and passed `node --test test/metadata.test.js` (`24/24`); `openspec validate --specs` returned `No items found to validate.` for this notes-only lane. - BLOCKED: `gx branch finish --via-pr --wait-for-merge --cleanup` opened PR `#396` (`https://github.com/recodeee/gitguardex/pull/396`), but merge is currently blocked by branch protection because GitHub still shows `REVIEW_REQUIRED` and all required checks remain `QUEUED`. - Fresh blocker evidence: `.github/CODEOWNERS` names `@recodeecom @NagyVikt`, but `gh pr edit 396 --add-reviewer recodeecom` fails with `GraphQL: Could not resolve user with login 'recodeecom'.`; visible collaborators only return `NagyVikt`, and `gh pr merge 396 --auto --squash` fails with `GraphQL: Auto merge is not allowed for this repository (enablePullRequestAutoMerge)`. +- Fresh infrastructure evidence: repo Actions are enabled (`gh api repos/recodeee/gitguardex/actions/permissions` -> `enabled: true`), but recent runs across this PR, other agent branches, and even `main` stay `queued` with no jobs started; GitHub status unresolved incidents (`https://www.githubstatus.com/api/v2/incidents/unresolved.json`) currently report `Incident with multple GitHub services`, with `Actions` in `degraded_performance` and an update at `2026-04-23T16:34:19Z` saying `Actions is experiencing degraded performance. We are continuing to investigate.`