Skip to content

fix(security): replace pull_request_target with pull_request trigger#328

Merged
kami619 merged 2 commits intoambient-code:mainfrom
kami619:bugfix/secure-pr-review-workflow
Mar 3, 2026
Merged

fix(security): replace pull_request_target with pull_request trigger#328
kami619 merged 2 commits intoambient-code:mainfrom
kami619:bugfix/secure-pr-review-workflow

Conversation

@kami619
Copy link
Copy Markdown
Collaborator

@kami619 kami619 commented Mar 3, 2026

Summary

  • Replace vulnerable pull_request_target trigger with secure pull_request trigger
  • Add explicit PR number in prompt to fix wrong-PR bug
  • Update documentation to reflect new security model

Fixes

  • RHOAIENG-51622 — Disable pull_request_target to prevent prompt injection
  • #324 — PR review posting to wrong pull request

Root Cause

The pr-review-auto-fix.yml workflow used pull_request_target trigger, which:

  1. Runs with access to repository secrets even for fork PRs
  2. Exposes secrets to potential prompt injection attacks via malicious PR content
  3. Combined with ambiguous prompt wording, occasionally posted reviews to wrong PRs

Changes

File Change
.github/workflows/pr-review.yml Created — Secure workflow with pull_request trigger
.github/workflows/pr-review-auto-fix.yml Deleted — Removed vulnerable workflow
.github/AUTOMATED_REVIEW.md Updated — New security model documentation

Trade-off

Fork PRs no longer receive automated reviews. Contributors should push to username/branch in the main repo instead.

Test Plan

After merge:

  1. Open a PR from a branch in the main repo
  2. Verify PR Review workflow triggers
  3. Verify review comment posts to correct PR
  4. (Optional) Verify fork PRs are skipped

Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com

Replace vulnerable pull_request_target workflow with secure pull_request
trigger to prevent prompt injection attacks from fork PRs.

Changes:
- Replace pr-review-auto-fix.yml with pr-review.yml
- Use pull_request trigger (not pull_request_target)
- Add explicit PR number in prompt to fix wrong-PR bug
- Skip fork PRs by design (security measure)
- Update AUTOMATED_REVIEW.md documentation

Fork PRs no longer receive automated reviews. Contributors should push
to username/branch in the main repo instead of using forks.

Fixes: RHOAIENG-51622
Fixes: ambient-code#324

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@kami619 kami619 self-assigned this Mar 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

📈 Test Coverage Report

Branch Coverage
This PR 66.4%
Main 66.4%
Diff ✅ +0%

Coverage calculated from unit tests only

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

Outdated review (click to expand)

AgentReady Code Review

PR: #328 — fix(security): replace pull_request_target with pull_request trigger
Reviewed by: Claude Sonnet 4.6 via /review-agentready


Summary

Category Status
Security ✅ Major improvement (core fix is correct)
AgentReady Attribute Compliance ⚠️ Minor gaps
Code Quality ✅ Good
Documentation ⚠️ Stale references remain

Score Impact: Neutral to slight positive — security hardening with acceptable trade-off on fork PR coverage.


✅ What's Done Well

Critical Security Fix — pull_request_targetpull_request

The core change is correct and important. pull_request_target runs with repository secrets accessible even for fork PRs, creating a prompt injection attack surface when combined with LLM-powered actions. Switching to pull_request is the right call.

Fork filtering via if condition

if: github.event.pull_request.head.repo.full_name == github.repository

This explicit guard correctly skips fork PRs and fails cleanly with a clear reason, rather than silently failing due to missing secrets. This is good defensive coding.

Explicit PR number in prompt

prompt: |
  Run the /review-agentready command on pull request #${{ github.event.pull_request.number }}.
  ...
  Post the review as a comment on PR #${{ github.event.pull_request.number }}.

Good fix for the wrong-PR bug. Grounding the prompt with an explicit PR number eliminates ambiguity when pull_request_target was used with a base SHA checkout that didn't reflect the actual PR context.

allowed_non_write_users: '*' removed

Correct cleanup — this option was compensating for a security limitation that no longer exists with the new approach.


🔴 Issues to Address

1. contents: write permission is overly broad (Security)

Attribute: 3.1 Security Best Practices (Tier 3)
Score Impact: −2 points potential

With auto-fix removed, the workflow only needs to post PR comments — it no longer pushes commits to branches. The contents: write permission should be downgraded to contents: read.

# Current (overly permissive):
permissions:
  contents: write
  pull-requests: write
  issues: write

# Recommended:
permissions:
  contents: read
  pull-requests: write
  issues: write

Principle of least privilege applies especially to workflows using LLM-powered actions.

2. Actionlint not verified (CI/CD Compliance)

Attribute: 2.9 CI/CD Best Practices (Tier 2)
CLAUDE.md requirement: "ALWAYS run actionlint and fix any issues before pushing changes to GitHub Actions workflows"

The PR description does not mention running actionlint. Since this modifies GitHub Actions workflows, this is a required step per project standards. Please run:

actionlint .github/workflows/pr-review.yml

⚠️ Minor Issues

3. Stale documentation in AUTOMATED_REVIEW.md — Customization section

The Customization section at line ~179 still references pr-review-auto-fix.yml:

Edit `.github/workflows/pr-review-auto-fix.yml`:

This section was not updated in the PR diff. The stale filename reference could confuse users trying to customize the workflow.

Additionally, the "Auto-Fix Not Running" and "Fixes Causing Test Failures" troubleshooting sections appear to still be present in the file (not deleted in the diff). With auto-fix removed, these sections are misleading and should be removed or noted as historical.

4. External JIRA reference in workflow comments

# Fixes: RHOAIENG-51622 (security), GitHub #324 (wrong PR context)
# See: https://issues.redhat.com/browse/RHOAIENG-51622

The Red Hat JIRA link (issues.redhat.com) is a private issue tracker — external contributors cannot access it. The GitHub issue #324 reference is appropriate and sufficient. Consider removing the JIRA reference or replacing it with a public explanation.

5. Comment minimization — emoji change is backward compatible but worth noting

-if (comment.body.includes('🤖 AgentReady Code Review') &&
+if (comment.body.includes('AgentReady Code Review') &&

The change from the emoji-prefixed string to a plain string is actually more robust (substring match will still catch the emoji version). This is a good change, but existing old-format comments will be minimized on first run, which is the desired behavior. No action needed — just confirming the logic is correct.


AgentReady Attribute Mapping

Finding Attribute Tier Impact
contents: write overly broad 3.1 Security Best Practices 3 −2 pts
Actionlint not run 2.9 CI/CD Best Practices 2 −1 pt
Stale documentation 1.2 README/Documentation 1 −1 pt

Net assessment: The security benefit of this PR outweighs the minor issues. Once contents: write is narrowed and actionlint passes, this is merge-ready.


Recommended Changes Before Merge

  1. Change contents: writecontents: read in workflow permissions
  2. Run actionlint .github/workflows/pr-review.yml and fix any findings
  3. Update the Customization section in AUTOMATED_REVIEW.md (replace pr-review-auto-fix.yml with pr-review.yml)
  4. Remove or archive the "Auto-Fix Not Running" and "Fixes Causing Test Failures" troubleshooting sections

🤖 Generated with Claude Code via /review-agentready

@ktdreyer ktdreyer self-requested a review March 3, 2026 18:21
- Change permissions from contents: write to contents: read (least privilege)
- Remove private JIRA reference from workflow comments
- Remove stale auto-fix customization section from docs
- Remove stale auto-fix troubleshooting sections from docs
- Verified with actionlint (no errors)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

🤖 AgentReady Code Review

PR Status: 2 issues found (0 🔴 Critical, 1 🟡 Major, 1 🔵 Minor)
Score Impact: Current 80.0/100 → 80.5/100 potential if issues addressed (security improvements offset compliance gap)
Certification: Gold → Gold (maintained; security hardening adds value)


✅ Security Improvements Verified

This PR correctly addresses a critical pull_request_target vulnerability (RHOAIENG-51622 / #324):

Change Security Impact
pull_request_targetpull_request Secrets no longer accessible to fork PRs
contents: writecontents: read Principle of least privilege enforced
Fork check added (head.repo.full_name == github.repository) Defense-in-depth against fork execution
allowed_non_write_users: '*' removed Eliminates broad write authorization
Explicit #${{ github.event.pull_request.number }} in prompt Fixes wrong-PR posting bug (#324)

These changes are correct and well-implemented.


🟡 Major Issues (Confidence 80-89) — Manual Review Required

1. Actionlint validation not confirmed

Attribute: CI/CD Workflow Quality (Tier 3: Important)
Confidence: 88%
Score Impact: −0.5 points (if actionlint finds issues in the workflow YAML)
Location: https://github.com/ambient-code/agentready/blob/c180a7bf36f9fc802d07b15b41bdff5cc904e28f/.github/workflows/pr-review.yml

Issue Details:
CLAUDE.md explicitly requires:

"ALWAYS run actionlint and fix any issues before pushing changes to GitHub Actions workflows"
"All workflows must pass actionlint validation with zero errors/warnings"

No evidence of actionlint validation in the PR. The workflow YAML structure appears valid, but this is a mandatory step per project guidelines.

Remediation:

# Install actionlint if not present
brew install actionlint  # or: go install github.com/rhysd/actionlint/cmd/actionlint@latest

# Validate the workflow
actionlint .github/workflows/pr-review.yml

🔵 Minor Issues (Confidence 80) — Optional

2. Private JIRA reference inaccessible to external contributors

Attribute: Documentation Quality (Tier 1: Essential)
Confidence: 80%
Score Impact: −0.0 points (documentation clarity, not self-assessment attribute)
Location:

Issue Details:
The workflow header comment references RHOAIENG-51622 on issues.redhat.com, which is a private Red Hat JIRA inaccessible to external contributors. The corresponding public issue is #324.

# Current (private):
# Security: RHOAIENG-51622

# Suggested (public reference):
# Security: Prevents prompt injection attacks (see #324)

Remediation:

# Replace private JIRA reference with public GitHub issue
sed -i 's/RHOAIENG-51622/GitHub #324/' .github/workflows/pr-review.yml

ℹ️ Informational Notes

Checkout ref removal is intentional and correct: The old ref: ${{ github.event.pull_request.base.sha }} was a partial mitigation for pull_request_target risks. With pull_request trigger + the fork check, checking out the merge commit is the correct and expected behavior. The defense-in-depth is provided by the if: condition, not the checkout ref.

dependabot-auto-merge.yml out of scope: That workflow also uses pull_request_target but is not modified by this PR. It has a mitigating actor check (github.actor == 'dependabot[bot]') and is a separate concern.


Summary

  • Auto-Fix Candidates: 0 (no blocker-level issues)
  • Manual Review: 1 major issue (actionlint validation)
  • Total Score Improvement Potential: +0.5 points if issues addressed
  • AgentReady Assessment: Run agentready assess . after fixes to verify score

This is a well-executed security fix. The core changes are correct, targeted, and address a real vulnerability. The actionlint check is the primary blocker per CLAUDE.md requirements.


🤖 Generated with Claude Code

If this review was useful, react with 👍. Otherwise, react with 👎.

@kami619 kami619 merged commit 3c5d31b into ambient-code:main Mar 3, 2026
13 checks passed
@kami619 kami619 deleted the bugfix/secure-pr-review-workflow branch March 3, 2026 20:03
github-actions bot pushed a commit that referenced this pull request Mar 3, 2026
## [2.29.5](v2.29.4...v2.29.5) (2026-03-03)

### Bug Fixes

* **security:** replace pull_request_target with pull_request trigger ([#328](#328)) ([3c5d31b](3c5d31b)), closes [#324](#324)
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 3, 2026

🎉 This PR is included in version 2.29.5 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit to patrickstrick/agentready that referenced this pull request Mar 5, 2026
# 1.0.0 (2026-03-05)

### Bug Fixes

* add bounded retry logic for LLM rate limit handling ([ambient-code#205](https://github.com/patrickstrick/agentready/issues/205)) ([6ecb786](6ecb786)), closes [ambient-code#104](https://github.com/patrickstrick/agentready/issues/104)
* Add comprehensive subprocess security guardrails (fixes [ambient-code#57](https://github.com/patrickstrick/agentready/issues/57)) ([ambient-code#66](https://github.com/patrickstrick/agentready/issues/66)) ([454b80e](454b80e))
* Add comprehensive YAML validation to prevent attacks (fixes [ambient-code#56](https://github.com/patrickstrick/agentready/issues/56)) ([ambient-code#63](https://github.com/patrickstrick/agentready/issues/63)) ([31ecb3a](31ecb3a))
* add repository checkout step to Claude Code Action workflow ([17aa0cf](17aa0cf))
* add uv.lock to recognized lockfiles ([ambient-code#143](https://github.com/patrickstrick/agentready/issues/143)) ([a98dc87](a98dc87)), closes [ambient-code#137](https://github.com/patrickstrick/agentready/issues/137)
* address P1 code quality issues from code review ([ambient-code#36](https://github.com/patrickstrick/agentready/issues/36)) ([5976332](5976332))
* address P1 code quality issues from code review ([ambient-code#37](https://github.com/patrickstrick/agentready/issues/37)) ([4be1d5e](4be1d5e))
* address P1 code quality issues from code review ([ambient-code#38](https://github.com/patrickstrick/agentready/issues/38)) ([77f2300](77f2300))
* **assessors:** FileSizeLimitsAssessor now respects .gitignore ([ambient-code#248](https://github.com/patrickstrick/agentready/issues/248)) ([eaaecc2](eaaecc2)), closes [ambient-code#245](https://github.com/patrickstrick/agentready/issues/245)
* **assessors:** search recursively for OpenAPI specification files ([ambient-code#127](https://github.com/patrickstrick/agentready/issues/127)) ([e2a5778](e2a5778))
* **assessors:** support project-named directories and test-only repos in standard_layout check ([ambient-code#322](https://github.com/patrickstrick/agentready/issues/322)) ([2fbb733](2fbb733)), closes [ambient-code#246](https://github.com/patrickstrick/agentready/issues/246) [ambient-code#305](https://github.com/patrickstrick/agentready/issues/305)
* Check for all official commitlint config file formats ([ambient-code#308](https://github.com/patrickstrick/agentready/issues/308)) ([50588cf](50588cf))
* **ci:** add permissions for leaderboard PR comment posting ([ambient-code#276](https://github.com/patrickstrick/agentready/issues/276)) ([33252e4](33252e4))
* **ci:** use gh pr view for fork PR number lookup in coverage comment ([ambient-code#253](https://github.com/patrickstrick/agentready/issues/253)) ([1688362](1688362))
* **cli:** check .pre-commit-config.yaml for conventional commit ([ambient-code#310](https://github.com/patrickstrick/agentready/issues/310)) ([61c44d9](61c44d9))
* **cli:** Honor excluded_attributes from config file ([ambient-code#306](https://github.com/patrickstrick/agentready/issues/306)) ([ffda546](ffda546)), closes [ambient-code#302](https://github.com/patrickstrick/agentready/issues/302) [ambient-code#302](https://github.com/patrickstrick/agentready/issues/302)
* **cli:** Use removesuffix instead of rstrip for .git URL stripping ([ambient-code#292](https://github.com/patrickstrick/agentready/issues/292)) ([6bd08cf](6bd08cf))
* consider renovate for dependency_security check ([ambient-code#317](https://github.com/patrickstrick/agentready/issues/317)) ([35bfbbf](35bfbbf))
* correct Assessment field name in demo command ([ambient-code#41](https://github.com/patrickstrick/agentready/issues/41)) ([b48622d](b48622d)), closes [ambient-code#12](https://github.com/patrickstrick/agentready/issues/12)
* Correct datetime import pattern in RepomixService ([ambient-code#65](https://github.com/patrickstrick/agentready/issues/65)) ([517aa6e](517aa6e))
* correct GitHub repository link in site navigation ([5492278](5492278))
* correct Liquid syntax in developer-guide (elif -> elsif) ([75f3b1d](75f3b1d))
* Correct pre-commit template path in PrecommitHooksFixer ([ambient-code#269](https://github.com/patrickstrick/agentready/issues/269)) ([c42a3c9](c42a3c9))
* Create shared test fixtures and fix Assessment schema issues ([ambient-code#114](https://github.com/patrickstrick/agentready/issues/114)) ([46baa13](46baa13))
* disable attestations for Test PyPI to avoid conflict ([ambient-code#155](https://github.com/patrickstrick/agentready/issues/155)) ([a33e3cd](a33e3cd)), closes [pypa/#action-pypi-publish](https://github.com/patrickstrick/agentready/issues/action-pypi-publish)
* downgrade docker/metadata-action to v5 and fix shellcheck warnings ([12f5509](12f5509))
* enable Harbor task filtering for smoketest support ([ambient-code#222](https://github.com/patrickstrick/agentready/issues/222)) ([f780188](f780188))
* Enable workflow_dispatch for leaderboard update and regenerate data ([ambient-code#299](https://github.com/patrickstrick/agentready/issues/299)) ([091d9dd](091d9dd)), closes [ambient-code#298](https://github.com/patrickstrick/agentready/issues/298)
* exclude DEPLOYMENT.md and SETUP_SUMMARY.md from Jekyll build ([9611207](9611207))
* Improve CLAUDE.md generation prompt and add prompt loading for future LLM integrations [ambient-code#283](https://github.com/patrickstrick/agentready/issues/283)  ([ambient-code#284](https://github.com/patrickstrick/agentready/issues/284)) ([c0aeae4](c0aeae4))
* Improve report metadata display with clean table format ([ca361a4](ca361a4))
* leaderboard workflow and SSH URL support ([ambient-code#147](https://github.com/patrickstrick/agentready/issues/147)) ([de28cd0](de28cd0))
* make E2E test timeouts configurable and add sensitive directory test ([ambient-code#206](https://github.com/patrickstrick/agentready/issues/206)) ([27e87e5](27e87e5)), closes [ambient-code#104](https://github.com/patrickstrick/agentready/issues/104) [ambient-code#192](https://github.com/patrickstrick/agentready/issues/192)
* **metadata:** use Windows-compatible strftime token for human timestamp ([ambient-code#291](https://github.com/patrickstrick/agentready/issues/291)) ([faf536d](faf536d))
* P0 security and logic bugs from code review ([2af2346](2af2346))
* Prevent API key exposure in environment and logs (fixes [ambient-code#55](https://github.com/patrickstrick/agentready/issues/55)) ([ambient-code#64](https://github.com/patrickstrick/agentready/issues/64)) ([4d1d001](4d1d001))
* Prevent command injection in CommandFix.apply() (fixes [ambient-code#52](https://github.com/patrickstrick/agentready/issues/52)) ([ambient-code#60](https://github.com/patrickstrick/agentready/issues/60)) ([49be28e](49be28e))
* Prevent path traversal in LLM cache (fixes [ambient-code#53](https://github.com/patrickstrick/agentready/issues/53)) ([ambient-code#61](https://github.com/patrickstrick/agentready/issues/61)) ([2bf052d](2bf052d))
* prevent unauthorized message for non-command comments ([ambient-code#262](https://github.com/patrickstrick/agentready/issues/262)) ([84c6f69](84c6f69))
* Prevent XSS in HTML reports (fixes [ambient-code#54](https://github.com/patrickstrick/agentready/issues/54)) ([ambient-code#62](https://github.com/patrickstrick/agentready/issues/62)) ([7c60c69](7c60c69))
* properly indent multi-line fix previews in align output ([ambient-code#289](https://github.com/patrickstrick/agentready/issues/289)) ([4e36cb5](4e36cb5)), closes [ambient-code#285](https://github.com/patrickstrick/agentready/issues/285)
* remove incorrect dbasunag/opendatahub-tests submission ([ambient-code#321](https://github.com/patrickstrick/agentready/issues/321)) ([e6aecf8](e6aecf8)), closes [ambient-code#301](https://github.com/patrickstrick/agentready/issues/301)
* rename research report in data directory ([b8ddfdc](b8ddfdc))
* replace all remaining elif with elsif in developer-guide ([73f16fc](73f16fc))
* Resolve 35 pytest failures through model validation and path sanitization improvements ([ambient-code#115](https://github.com/patrickstrick/agentready/issues/115)) ([4fbfee0](4fbfee0))
* resolve all broken links failing CI lychee check ([ambient-code#288](https://github.com/patrickstrick/agentready/issues/288)) ([4412c27](4412c27))
* resolve all test suite failures - achieve zero failures ([ambient-code#180](https://github.com/patrickstrick/agentready/issues/180)) ([990fa2d](990fa2d)), closes [ambient-code#148](https://github.com/patrickstrick/agentready/issues/148) [ambient-code#147](https://github.com/patrickstrick/agentready/issues/147) [ambient-code#145](https://github.com/patrickstrick/agentready/issues/145)
* resolve broken links and workflow failures ([ambient-code#160](https://github.com/patrickstrick/agentready/issues/160)) ([fbf5cf7](fbf5cf7))
* Resolve merge conflicts in CLI main module ([ambient-code#59](https://github.com/patrickstrick/agentready/issues/59)) ([9e0bf2d](9e0bf2d))
* resolve YAML syntax error in continuous-learning workflow ([ambient-code#172](https://github.com/patrickstrick/agentready/issues/172)) ([3d40fcc](3d40fcc))
* resolve YAML syntax error in update-docs workflow and add actionlint ([ambient-code#173](https://github.com/patrickstrick/agentready/issues/173)) ([97b06af](97b06af))
* Sanitize sensitive data in HTML reports (fixes [ambient-code#58](https://github.com/patrickstrick/agentready/issues/58)) ([ambient-code#67](https://github.com/patrickstrick/agentready/issues/67)) ([6fbac76](6fbac76))
* schema backwards compat for attributes_skipped key ([ambient-code#277](https://github.com/patrickstrick/agentready/issues/277)) ([841bcc4](841bcc4))
* **schema:** allow assessments with excluded attributes ([ambient-code#312](https://github.com/patrickstrick/agentready/issues/312)) ([81b999f](81b999f)), closes [ambient-code#301](https://github.com/patrickstrick/agentready/issues/301) [ambient-code#309](https://github.com/patrickstrick/agentready/issues/309)
* **security:** replace pull_request_target with pull_request trigger ([ambient-code#328](https://github.com/patrickstrick/agentready/issues/328)) ([3c5d31b](3c5d31b)), closes [ambient-code#324](https://github.com/patrickstrick/agentready/issues/324)
* set correct baseurl for GitHub Pages subdirectory deployment ([c4db765](c4db765))
* skip PR comments for external forks to prevent permission errors ([ambient-code#163](https://github.com/patrickstrick/agentready/issues/163)) ([2a29fb8](2a29fb8))
* update --version flag to show correct version and research report date ([ambient-code#221](https://github.com/patrickstrick/agentready/issues/221)) ([5a85abb](5a85abb))
* Update Claude workflow to trigger on [@claude](https://github.com/claude) mentions ([ambient-code#35](https://github.com/patrickstrick/agentready/issues/35)) ([a8a3fab](a8a3fab))
* Use GitHub URL instead of local one ([ambient-code#297](https://github.com/patrickstrick/agentready/issues/297)) ([5abc7c2](5abc7c2))
* **workflows:** ensure post-comment step runs after Claude Code Action ([b087e5c](b087e5c))
* **workflows:** handle all event types in agentready-dev workflow ([9b942bf](9b942bf))
* **workflows:** improve error handling and logging for comment posting ([9ea1e6b](9ea1e6b))
* **workflows:** improve issue number extraction and add debug step ([ecd896b](ecd896b))
* **workflows:** remove if:always() to test step execution ([ff0bb12](ff0bb12))
* **workflows:** simplify post-comment step condition ([1bbf40a](1bbf40a))

### Features

* add agentready-dev Claude agent specification ([ambient-code#44](https://github.com/patrickstrick/agentready/issues/44)) ([0f61f5c](0f61f5c))
* add ambient-code/agentready to leaderboard ([ambient-code#148](https://github.com/patrickstrick/agentready/issues/148)) ([621152e](621152e))
* Add automated demo command for AgentReady ([ambient-code#24](https://github.com/patrickstrick/agentready/issues/24)) ([f4e89d9](f4e89d9)), closes [ambient-code#1](https://github.com/patrickstrick/agentready/issues/1) [ambient-code#25](https://github.com/patrickstrick/agentready/issues/25) [hi#quality](https://github.com/hi/issues/quality) [hi#scoring](https://github.com/hi/issues/scoring)
* add Claude Code GitHub Action for [@claude](https://github.com/claude) mentions ([3e7224d](3e7224d))
* Add comprehensive unit tests for utility modules (privacy.py and subprocess_utils.py) ([ambient-code#111](https://github.com/patrickstrick/agentready/issues/111)) ([9d3dece](9d3dece))
* Add customizable HTML report themes with runtime switching ([ambient-code#46](https://github.com/patrickstrick/agentready/issues/46)) ([7eeaf84](7eeaf84)), closes [hi#contrast](https://github.com/hi/issues/contrast) [ambient-code#10](https://github.com/patrickstrick/agentready/issues/10)
* add dbasunag/opendatahub-tests to leaderboard ([ambient-code#301](https://github.com/patrickstrick/agentready/issues/301)) ([be7a55f](be7a55f))
* add dgutride/odh-dashboard to leaderboard ([ambient-code#268](https://github.com/patrickstrick/agentready/issues/268)) ([f4911b2](f4911b2))
* Add Doubleagent - specialized AgentReady development agent ([ambient-code#30](https://github.com/patrickstrick/agentready/issues/30)) ([0ab54cb](0ab54cb))
* add feast-dev/feast to leaderboard ([ambient-code#293](https://github.com/patrickstrick/agentready/issues/293)) ([c894ce9](c894ce9))
* add GitHub organization scanning to assess-batch command ([ambient-code#118](https://github.com/patrickstrick/agentready/issues/118)) ([e306314](e306314))
* add Harbor Terminal-Bench comparison for agent effectiveness ([ambient-code#199](https://github.com/patrickstrick/agentready/issues/199)) ([a56e318](a56e318))
* Add Interactive Dashboard backlog item ([adfc4c8](adfc4c8))
* add interactive heatmap visualization for batch assessments ([ambient-code#136](https://github.com/patrickstrick/agentready/issues/136)) ([4d44fc3](4d44fc3))
* Add interactive HTML report generation ([18664ea](18664ea))
* add Memory MCP server allow list to repository settings ([ambient-code#203](https://github.com/patrickstrick/agentready/issues/203)) ([41d87bb](41d87bb))
* add opendatahub-io/opendatahub-tests to leaderboard ([ambient-code#314](https://github.com/patrickstrick/agentready/issues/314)) ([7a52466](7a52466))
* add quay/quay to leaderboard ([ambient-code#162](https://github.com/patrickstrick/agentready/issues/162)) ([d6e8df0](d6e8df0))
* add Red-Hat-AI-Innovation-Team/sdg_hub to leaderboard ([ambient-code#279](https://github.com/patrickstrick/agentready/issues/279)) ([5b71392](5b71392))
* add release pipeline coldstart prompt ([ambient-code#19](https://github.com/patrickstrick/agentready/issues/19)) ([9a3880c](9a3880c)), closes [ambient-code#18](https://github.com/patrickstrick/agentready/issues/18)
* Add Repomix integration for AI-friendly repository context generation ([ambient-code#29](https://github.com/patrickstrick/agentready/issues/29)) ([92bdde1](92bdde1)), closes [ambient-code#24](https://github.com/patrickstrick/agentready/issues/24) [ambient-code#1](https://github.com/patrickstrick/agentready/issues/1) [ambient-code#25](https://github.com/patrickstrick/agentready/issues/25) [hi#quality](https://github.com/hi/issues/quality) [hi#scoring](https://github.com/hi/issues/scoring)
* add report header with repository metadata ([ambient-code#28](https://github.com/patrickstrick/agentready/issues/28)) ([7a8b34a](7a8b34a))
* Add research report management CLI commands ([ambient-code#45](https://github.com/patrickstrick/agentready/issues/45)) ([e1be488](e1be488)), closes [ambient-code#7](https://github.com/patrickstrick/agentready/issues/7)
* Add security & quality improvements from code review ([ambient-code#40](https://github.com/patrickstrick/agentready/issues/40)) ([13cd3ca](13cd3ca))
* Add security & quality improvements from code review ([ambient-code#49](https://github.com/patrickstrick/agentready/issues/49)) ([889d6ed](889d6ed))
* Add SWE-bench experiment system for validating AgentReady impact ([ambient-code#124](https://github.com/patrickstrick/agentready/issues/124)) ([15edbba](15edbba))
* Add weekly research update skill and automation ([ambient-code#145](https://github.com/patrickstrick/agentready/issues/145)) ([7ba17a6](7ba17a6))
* **assessors:** implement File Size Limits assessor (Tier 2) ([ambient-code#141](https://github.com/patrickstrick/agentready/issues/141)) ([248467f](248467f))
* **assessors:** support AGENTS.md and @ references in CLAUDEmdAssessor ([ambient-code#265](https://github.com/patrickstrick/agentready/issues/265)) ([450ec25](450ec25)), closes [ambient-code#244](https://github.com/patrickstrick/agentready/issues/244)
* Auto-sync CLAUDE.md during semantic-release ([ambient-code#101](https://github.com/patrickstrick/agentready/issues/101)) ([36b48cb](36b48cb))
* automate PyPI publishing with trusted publishing (OIDC) ([ambient-code#154](https://github.com/patrickstrick/agentready/issues/154)) ([71f4632](71f4632)), closes [pypa/#action-pypi-publish](https://github.com/patrickstrick/agentready/issues/action-pypi-publish)
* Batch Report Enhancements + Bootstrap Template Inheritance (Phase 2 Task 5) ([ambient-code#133](https://github.com/patrickstrick/agentready/issues/133)) ([7762b23](7762b23))
* centralize Claude instructions via AGENTS.md and add init redirect tests ([ambient-code#273](https://github.com/patrickstrick/agentready/issues/273)) ([92c8f3f](92c8f3f))
* Community Leaderboard for AgentReady Scores ([ambient-code#146](https://github.com/patrickstrick/agentready/issues/146)) ([fea0b3e](fea0b3e))
* Complete Phases 5-7 - Markdown reports, testing, and polish ([7659623](7659623))
* consolidate GitHub Actions workflows by purpose ([ambient-code#217](https://github.com/patrickstrick/agentready/issues/217)) ([717ca6b](717ca6b)), closes [ambient-code#221](https://github.com/patrickstrick/agentready/issues/221)
* container support ([ambient-code#171](https://github.com/patrickstrick/agentready/issues/171)) ([c6874ea](c6874ea))
* convert AgentReady assessment to on-demand workflow ([ambient-code#213](https://github.com/patrickstrick/agentready/issues/213)) ([b5a1ce0](b5a1ce0)), closes [ambient-code#191](https://github.com/patrickstrick/agentready/issues/191)
* enhance assessors with multi-language support and security ([ambient-code#200](https://github.com/patrickstrick/agentready/issues/200)) ([85712f2](85712f2)), closes [ambient-code#10](https://github.com/patrickstrick/agentready/issues/10)
* Harbor framework integration for Terminal-Bench evaluations ([ambient-code#202](https://github.com/patrickstrick/agentready/issues/202)) ([d73a8c8](d73a8c8)), closes [ambient-code#4](https://github.com/patrickstrick/agentready/issues/4) [ambient-code#178](https://github.com/patrickstrick/agentready/issues/178)
* Implement AgentReady MVP with scoring engine ([54a96cb](54a96cb))
* Implement align subcommand for automated remediation (Issue [ambient-code#14](https://github.com/patrickstrick/agentready/issues/14)) ([ambient-code#34](https://github.com/patrickstrick/agentready/issues/34)) ([06f04dc](06f04dc))
* Implement ArchitectureDecisionsAssessor (fixes [ambient-code#81](https://github.com/patrickstrick/agentready/issues/81)) ([ambient-code#89](https://github.com/patrickstrick/agentready/issues/89)) ([9e782e5](9e782e5))
* implement automated semantic release pipeline ([ambient-code#20](https://github.com/patrickstrick/agentready/issues/20)) ([b579235](b579235))
* implement bootstrap command for GitHub infrastructure ([0af06c4](0af06c4)), closes [ambient-code#2](https://github.com/patrickstrick/agentready/issues/2)
* Implement BranchProtectionAssessor stub (fixes [ambient-code#86](https://github.com/patrickstrick/agentready/issues/86)) ([ambient-code#98](https://github.com/patrickstrick/agentready/issues/98)) ([44c4b17](44c4b17))
* Implement CICDPipelineVisibilityAssessor (fixes [ambient-code#85](https://github.com/patrickstrick/agentready/issues/85)) ([ambient-code#91](https://github.com/patrickstrick/agentready/issues/91)) ([e68285c](e68285c))
* Implement CodeSmellsAssessor stub (fixes [ambient-code#87](https://github.com/patrickstrick/agentready/issues/87)) ([ambient-code#99](https://github.com/patrickstrick/agentready/issues/99)) ([f06b2a8](f06b2a8))
* Implement ConciseDocumentationAssessor (fixes [ambient-code#76](https://github.com/patrickstrick/agentready/issues/76)) ([ambient-code#93](https://github.com/patrickstrick/agentready/issues/93)) ([c356cd5](c356cd5))
* Implement InlineDocumentationAssessor (fixes [ambient-code#77](https://github.com/patrickstrick/agentready/issues/77)) ([ambient-code#94](https://github.com/patrickstrick/agentready/issues/94)) ([e56e570](e56e570))
* Implement IssuePRTemplatesAssessor (fixes [ambient-code#84](https://github.com/patrickstrick/agentready/issues/84)) ([ambient-code#90](https://github.com/patrickstrick/agentready/issues/90)) ([819d7b7](819d7b7))
* Implement multi-repository batch assessment (Phase 1 of issue [ambient-code#68](https://github.com/patrickstrick/agentready/issues/68)) ([ambient-code#74](https://github.com/patrickstrick/agentready/issues/74)) ([befc0d5](befc0d5))
* Implement OneCommandSetupAssessor (fixes [ambient-code#75](https://github.com/patrickstrick/agentready/issues/75)) ([ambient-code#88](https://github.com/patrickstrick/agentready/issues/88)) ([668ba1b](668ba1b))
* Implement OpenAPISpecsAssessor (fixes [ambient-code#80](https://github.com/patrickstrick/agentready/issues/80)) ([ambient-code#97](https://github.com/patrickstrick/agentready/issues/97)) ([45ae36e](45ae36e))
* implement Phase 2 multi-repository assessment reporting ([ambient-code#117](https://github.com/patrickstrick/agentready/issues/117)) ([8da56c2](8da56c2)), closes [ambient-code#69](https://github.com/patrickstrick/agentready/issues/69)
* implement report schema versioning ([ambient-code#43](https://github.com/patrickstrick/agentready/issues/43)) ([4c4752c](4c4752c))
* Implement SemanticNamingAssessor (fixes [ambient-code#82](https://github.com/patrickstrick/agentready/issues/82)) ([ambient-code#95](https://github.com/patrickstrick/agentready/issues/95)) ([d87a280](d87a280))
* Implement SeparationOfConcernsAssessor (fixes [ambient-code#78](https://github.com/patrickstrick/agentready/issues/78)) ([ambient-code#92](https://github.com/patrickstrick/agentready/issues/92)) ([99bfe28](99bfe28))
* Implement StructuredLoggingAssessor (fixes [ambient-code#79](https://github.com/patrickstrick/agentready/issues/79)) ([ambient-code#96](https://github.com/patrickstrick/agentready/issues/96)) ([2b87ca7](2b87ca7))
* integrate ACL file with Claude Code Action allowed_users ([ambient-code#261](https://github.com/patrickstrick/agentready/issues/261)) ([fe52489](fe52489))
* Phase 1 Task 1 - Consolidate Security Validation Patterns ([ambient-code#129](https://github.com/patrickstrick/agentready/issues/129)) ([8580c45](8580c45)), closes [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122) [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122) [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122)
* Phase 1 Tasks 2-3 - Consolidate Reporter Base & Assessor Factory ([ambient-code#131](https://github.com/patrickstrick/agentready/issues/131)) ([8e12bf9](8e12bf9)), closes [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122) [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122) [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122) [ambient-code#122](https://github.com/patrickstrick/agentready/issues/122)
* Phase 2 Task 4 - Replace manual config validation with Pydantic ([ambient-code#134](https://github.com/patrickstrick/agentready/issues/134)) ([d83cf58](d83cf58))
* Redesign homepage features with two-column layout and research links ([ambient-code#189](https://github.com/patrickstrick/agentready/issues/189)) ([570087d](570087d)), closes [ambient-code#187](https://github.com/patrickstrick/agentready/issues/187)
* redesign HTML report with dark theme and larger fonts ([ambient-code#39](https://github.com/patrickstrick/agentready/issues/39)) ([59f6702](59f6702)), closes [#8b5cf6](https://github.com/patrickstrick/agentready/issues/8b5cf6) [#XX](https://github.com/patrickstrick/agentready/issues/XX)
* Rename 'learn' command to 'extract-skills' for clarity ([ambient-code#125](https://github.com/patrickstrick/agentready/issues/125)) ([64d6563](64d6563)), closes [hi#scoring](https://github.com/hi/issues/scoring) [ambient-code#123](https://github.com/patrickstrick/agentready/issues/123)
* replace markdown-link-check with lychee for link validation ([ambient-code#177](https://github.com/patrickstrick/agentready/issues/177)) ([f1a4545](f1a4545))
* Standardize on Python 3.12+ with forward compatibility for 3.13 ([ambient-code#132](https://github.com/patrickstrick/agentready/issues/132)) ([84f2c46](84f2c46))
* **submit:** add --gh flag for gh CLI-based submission ([ambient-code#278](https://github.com/patrickstrick/agentready/issues/278)) ([48bb624](48bb624))
* Terminal-Bench eval harness (MVP Phase 1) ([ambient-code#178](https://github.com/patrickstrick/agentready/issues/178)) ([d06bab4](d06bab4)), closes [ambient-code#171](https://github.com/patrickstrick/agentready/issues/171)
* **workflows:** add comment posting for [@agentready-dev](https://github.com/agentready-dev) agent ([5dff614](5dff614))

### Performance Improvements

* implement lazy loading for heavy CLI commands ([ambient-code#151](https://github.com/patrickstrick/agentready/issues/151)) ([6a7cd4e](6a7cd4e))

### BREAKING CHANGES

* Users must update scripts from 'agentready learn'
to 'agentready extract-skills'. All flags and options remain identical.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants