A zero-key GitHub Action to gate AI agent production readiness — feedback wanted #205109
Replies: 10 comments
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
|
Update after the initial post: I shipped the first design change as v0.3.0. The score threshold and explicit launch blockers are now independent gates: - uses: lindixu6-hash/awesome-agentic-engineering@v0
with:
card: agent-card.json
min-score: "15"
fail-below: "true"
fail-on-blockers: "true"
This addresses the first question mechanically. I am still interested in feedback on risk-tiered thresholds and what external evidence CI should verify rather than trusting self-attested scores. |
|
A second concrete iteration is now available in v0.4.0: a framework-neutral prompt-injection eval fixture pack. It adds 8 JSONL cases across direct override, retrieved web content, email/document injection, tool-output injection, data-exfiltration requests, and benign controls. Every case defines trusted instruction, untrusted content, expected actions, forbidden actions, and evidence required. The pack includes a JSON Schema and zero-dependency The published This is only a partial answer to the third design question: CI can now verify the structure and completeness of evidence contracts. It still cannot prove a model/runtime actually satisfies them until a consumer wires the cases into its eval runner, so the example Agent Cards retain that explicit launch blocker. |
|
A third evidence-validation iteration is now shipped in v0.7.0: a framework-neutral Eval Result contract. A consumer adapter can now record a known fixture ID, Agent/version, pass/fail outcome, observed actions, forbidden-action violations, evidence references, and tool/policy trace references. The zero-dependency The public This narrows the third design question. CI can verify that runtime evidence is recorded against known cases, but evidence provenance remains consumer-owned. The next open design task is risk-tiered readiness profiles, especially whether state-changing Agents should require stronger per-area minimums than read-only Agents. |
|
The second open design question now has a concrete implementation in v0.8.0: opt-in risk-tiered readiness profiles.
The default Action remains backward compatible when The public The remaining hard problem is evidence provenance: checked-in profile metadata still cannot prove that a runtime enforces approval and authorization scope. I would especially value examples of Actions workflows that attest those controls without giving an untrusted Agent control over its own evaluator. |
|
A fourth iteration is now shipped in v0.9.0: an executable, deterministic prompt-injection reference eval. Unlike the earlier fixture/schema work, this runner actually executes all eight malicious and benign cases through separate trusted-instruction and source-labeled untrusted-content channels. An evaluator outside the Agent path emits v0.7 results plus response, assertion, tool-trace, and policy-trace artifacts. A negative regression changes an expected outcome and verifies that the evaluator emits CI run 31974669422 validates generated results with public Scope remains deliberately narrow: this proves a deterministic reference policy handled these inert fixtures as expected. It is not a language-model benchmark and Content OS cannot claim these passes because it has no executable Agent runtime boundary. The next useful integration is an external open-source runtime where the evaluator and policy assertions remain outside the Agent-controlled workspace. |
|
A useful next boundary is to make the evidence producer structurally incapable of grading itself. Run the agent in job A with least-privilege permissions; have job B in a separate protected/reusable workflow fetch immutable artifacts, pin the evaluator SHA, and emit an attested result binding the repo SHA, workflow SHA, policy version, fixture hash, and output hash. That keeps Agent Card fields as claims and external job outputs as evidence. A pass then means “this exact evaluator observed these exact artifacts,” not “the agent says it passed.” GitHub artifact attestations/OIDC can help with provenance, but the verifier should still check the subject digest and trusted workflow identity. For approval/authorization controls, I would include denied-action fixtures and assert both: (1) no external side effect occurred, and (2) a durable audit record was emitted. A clean return code alone is too easy to game. |
|
v0.10.0 now tests the contract through an external runtime: A real two-node The clean-runner CI installs the pinned lockfile, passes 100 tests, validates generated results with public I also opened LangGraph.js #2700 before proposing an upstream docs PR, following their contribution guide. The scope remains narrow: this is reproducible orchestration evidence, not an LLM benchmark or proof that arbitrary LangGraph applications are safe. |
|
v0.13.0 adds a second external-runtime proof through Every fixture now enters a real SDK The public run passes 8/8 fixtures, retains 34 files in This still does not solve the provenance boundary raised by @ralftpaw: the runtime and evaluator execute in the same CI job. The next stronger design would separate producer job A from a protected verifier job B and bind the repository SHA, workflow SHA, fixture hash, evaluator version, artifact digest, and attestation identity. I would value concrete examples of the minimum GitHub artifact-attestation/OIDC checks that should be required before calling that evidence independently verified. |
|
I implemented the producer/verifier separation suggested by @ralftpaw in v0.14.0. The runtime producer now creates one deterministic bundle plus a manifest binding the repository/workflow identity, five trusted inputs, all 34 evidence files, and 8/8 Eval Results. GitHub OIDC + Sigstore signs that bundle. A separate reusable workflow pinned to commit The release attested run also proves two negative cases: appending one byte to the signed bundle fails verification, and verifying the original bundle against an all-zero source digest fails. Release bundle SHA-256: Important boundary: |
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Product Feedback
💬 Feature/Topic Area
Workflow Configuration
Discussion Details
I kept seeing AI agent repositories test whether code runs, while release decisions around tool permissions, memory, evals, failure recovery, security, observability, cost, and human review remained informal.
I built a small Node 24 GitHub Action that scores a repository-owned
agent-card.jsonacross ten readiness areas and can fail CI below a chosen threshold. It makes no model calls and needs no external API key.The Action writes
score,rating, and a README badge as outputs, and adds the ten-area table to the workflow summary. A separate repository is using the public@v0reference: its human-gated Content OS currently scores 12/20 (prototype) and gates CI at 10/20. The main project has 42 automated tests.Important limitation: the numeric score does not override explicit launch blockers. Today the card is self-attested; the useful next step is stronger evidence validation, not pretending a high number proves production safety.
I would value feedback from Actions users on three design questions:
Repository: https://github.com/lindixu6-hash/awesome-agentic-engineering
Live scorecard: https://lindixu6-hash.github.io/awesome-agentic-engineering/
Disclosure: I maintain the project. It is MIT licensed.
All reactions