product-lifecycle: Add plc_lookup.py CLI, migrate to v2 API#13
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: harche The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/hold will look into this after #6 |
ce82a3e to
b0a3f09
Compare
Testing ResultsEval Framework (Agent-in-the-loop)Ran 12 skill evals via the agentic-skills eval framework using Claude on Vertex AI. Test queries use the exact prompt format CVO proposals send to the agent, with real OLM operator data and readiness JSON. product-lifecycle (7 evals)
update-advisor (5 evals)Each test sends a complete readiness JSON (same format CVO produces) and verifies the agent's upgrade decision:
All 12 agent evals + 46 unit/integration tests passed. End-to-End with CVO Readiness DataTested the full proposal → readiness → skill pipeline using a custom CVO build from openshift/cluster-version-operator#1395 deployed to a live OCP 4.21.5 cluster on GCP (6 nodes). Installed OLM operators for testing:
Flow verified:
Cluster readiness summary (from proposal
Ground truth verificationAll expected values in evals were verified against the live PLC v2 API: 🤖 Generated with Claude Code |
|
/cc @wking |
7e43631 to
eace3b2
Compare
|
/hold improving evals with better data. |
f01f289 to
81bf078
Compare
|
Converting to draft, I need to make a few more changes before it is ready for the review. |
81bf078 to
0544f37
Compare
back to open. |
0544f37 to
ef3bf25
Compare
Cross-PR testingTested end-to-end with:
All three deployed together on OCP 4.21.5 cluster. The product-lifecycle skill ( The skill path fix ( |
|
/override ci/prow/eval |
|
@harche: Overrode contexts on behalf of harche: ci/prow/eval DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/hold check if we can enhance this based on https://github.com/openshift-kni/ai-sandbox/blob/main/rds-policy/rds_agent/skills/rds-policy-update/SKILL.md |
/hold cancel will take it up as follow up. |
| @@ -0,0 +1,132 @@ | |||
| # product-lifecycle eval | |||
There was a problem hiding this comment.
@harche maybe we want to mirror the OWNERS from the main skill into here somehow so that the same group of people can own the skill + the evals?
There was a problem hiding this comment.
For this PR to move forwarded I have added the symlink to the OWNERS file evals/skills/product-lifecycle/OWNERS → ../../../cluster-update/OWNERS
ef3bf25 to
94bab65
Compare
|
/override ci/prow/eval |
|
@harche: Overrode contexts on behalf of harche: ci/prow/eval DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/lgtm |
| @@ -1,9 +1,9 @@ | |||
| # Product Life Cycle API Reference | |||
| # Product Life Cycle API Reference (v2) | |||
There was a problem hiding this comment.
nit: as far as the skill goes, it doesn't need to care about v1 vs. v2, right? Actually, we don't even need this reference at all now that the API is wrapped in plc_lookup.py? This api-details.md should pivot to just being about "how to use plc_lookup.py"?
There was a problem hiding this comment.
Good call — api-details.md was orphaned (nothing in the repo linked to it), and SKILL.md already fully documents the plc_lookup.py CLI. Rather than pivoting it to a "how to use plc_lookup.py" doc that would duplicate SKILL.md, I removed the reference file entirely.
| When the readiness data includes olm_operator_lifecycle results, use | ||
| the product-lifecycle skill to cross-reference each operator's package | ||
| name against the Red Hat Product Life Cycle API. Report support phase, | ||
| EOL dates, and OCP compatibility from PLCC alongside the OLM data. |
There was a problem hiding this comment.
nit: I it looks like evals are the only place in this repo we use the PLCC acronym as of this pull:
$ git grep -i plcc origin/pr/13 | grep -v png
origin/pr/13:evals/skills/product-lifecycle/system_prompt.md:EOL dates, and OCP compatibility from PLCC alongside the OLM data.
origin/pr/13:evals/skills/update-advisor/system_prompt.md:EOL dates, and OCP compatibility from PLCC alongside the OLM data.I think we should use "Product Life Cycle" or "Red Hat Product Life Cycle" or some other string drawn from cluster-update/product-lifecycle/SKILL.md to make it easy for AI to make the connection to that skill.
There was a problem hiding this comment.
Agreed. Replaced PLCC with "the product-lifecycle skill" in both eval system prompts (product-lifecycle and update-advisor) so the wording is drawn from the skill and easier for the model to connect. No PLCC left anywhere in the repo.
Add standalone Python CLI (`plc_lookup.py`) wrapping the Red Hat Product Life Cycle API v2 for querying product support status, EOL dates, and OCP version compatibility. Replaces inline curl/python one-liners. Commands: - `products` — query by product name with optional OCP compat check - `olm-check` — batch check OLM operators against a target OCP version Includes 46 tests (unit with mocked API + integration against live API), 3 agent eval test cases (all passing on Claude via Vertex AI), and OWNERS updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
94bab65 to
27b285a
Compare
|
New changes are detected. LGTM label has been removed. |
|
/override ci/prow/eval |
|
@harche: Overrode contexts on behalf of harche: ci/prow/eval DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@harche: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary
plc_lookup.py) wrapping the Red Hat Product Life Cycle API v2--limit,--offset) for broad queriesBuilds on top of #6 (that PR stays open).
CLI usage
Test plan
python3 -m unittest— 19 unit + 17 integration against live API + 10 pagination)plc_lookup.py -hshows clean help output🤖 Generated with Claude Code