Skip to content

docs(#3858): add AIResource examples and registration docs#3859

Merged
johnmcollier merged 2 commits into
mainfrom
agent/3858-airesource-examples-docs
Jul 22, 2026
Merged

docs(#3858): add AIResource examples and registration docs#3859
johnmcollier merged 2 commits into
mainfrom
agent/3858-airesource-examples-docs

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Add example catalog-info.yaml files for git-backed and OCI-backed AIResource entities to the examples/ directory. Extend the catalog-backend-module-ai-resource-extensions README with schema field reference, registration guidance for both git and OCI sources, accepted spec.scope values, and documentation of the OCI validation-only behavior and its air-gap rationale.

Assisted-by: Claude


Closes #3858

Post-script verification

  • Branch is not main/master (agent/3858-airesource-examples-docs)
  • Secret scan passed (gitleaks — f48c72a4fe5aea6f29f623a2f2d649cec96da23e..HEAD)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

Add example catalog-info.yaml files for git-backed and OCI-backed
AIResource entities to the examples/ directory. Extend the
catalog-backend-module-ai-resource-extensions README with schema
field reference, registration guidance for both git and OCI
sources, accepted spec.scope values, and documentation of the
OCI validation-only behavior and its air-gap rationale.

Closes #3858

Assisted-by: Claude
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Agent PR ready for human review label Jul 20, 2026
@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner July 20, 2026 15:49
@rhdh-gh-app

rhdh-gh-app Bot commented Jul 20, 2026

Copy link
Copy Markdown

Changed Packages

Package Name Package Path Changeset Bump Current Version
@red-hat-developer-hub/backstage-plugin-catalog-backend-module-catalog-backend-module-ai-resource-extensions workspaces/ai-integrations/plugins/catalog-backend-module-catalog-backend-module-ai-resource-extensions patch v0.2.0

@codecov

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.62%. Comparing base (f48c72a) to head (7348f87).
⚠️ Report is 47 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3859      +/-   ##
==========================================
- Coverage   56.63%   56.62%   -0.01%     
==========================================
  Files        2372     2372              
  Lines       95057    95051       -6     
  Branches    26562    26559       -3     
==========================================
- Hits        53832    53823       -9     
- Misses      39653    39656       +3     
  Partials     1572     1572              
Flag Coverage Δ *Carryforward flag
adoption-insights 84.54% <ø> (ø) Carriedforward from 3dd6db4
ai-integrations 69.26% <ø> (-0.80%) ⬇️
app-defaults 69.79% <ø> (ø) Carriedforward from 3dd6db4
augment 46.67% <ø> (ø) Carriedforward from 3dd6db4
boost 75.27% <ø> (ø) Carriedforward from 3dd6db4
bulk-import 72.59% <ø> (ø) Carriedforward from 3dd6db4
cost-management 13.55% <ø> (ø) Carriedforward from 3dd6db4
dcm 60.72% <ø> (ø) Carriedforward from 3dd6db4
extensions 56.18% <ø> (ø) Carriedforward from 3dd6db4
global-floating-action-button 71.18% <ø> (ø) Carriedforward from 3dd6db4
global-header 62.19% <ø> (ø) Carriedforward from 3dd6db4
homepage 50.25% <ø> (ø) Carriedforward from 3dd6db4
install-dynamic-plugins 56.77% <ø> (ø) Carriedforward from 3dd6db4
intelligent-assistant 69.50% <ø> (ø) Carriedforward from 3dd6db4
konflux 91.98% <ø> (ø) Carriedforward from 3dd6db4
lightspeed 69.02% <ø> (ø) Carriedforward from 3dd6db4
mcp-integrations 83.40% <ø> (ø) Carriedforward from 3dd6db4
orchestrator 57.01% <ø> (ø) Carriedforward from 3dd6db4
quickstart 65.11% <ø> (ø) Carriedforward from 3dd6db4
sandbox 79.56% <ø> (ø) Carriedforward from 3dd6db4
scorecard 82.66% <ø> (ø) Carriedforward from 3dd6db4
theme 83.85% <ø> (ø) Carriedforward from 3dd6db4
translations 5.15% <ø> (ø) Carriedforward from 3dd6db4
x2a 79.31% <ø> (ø) Carriedforward from 3dd6db4

*This pull request uses carry forward flags. Click here to find out more.


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f48c72a...7348f87. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@johnmcollier johnmcollier left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Solid docs PR that covers the #3858 tasks (examples + schema/registration/OCI air-gap docs). CI looks good, and the scope / OCI format guidance matches the shipped processors. A few accuracy issues conflict with the issue’s “keep docs accurate to what is implemented on main” guidance.

Major: Schema “Required” overstates shipped validation

In the new Schema Fields table, spec.type, spec.lifecycle, spec.owner, and spec.location.* are marked required. This module currently only enforces:

  • optional spec.scope{organization, product, team} (AIResourceExtensionsProcessor)
  • oci:// format when spec.location.type is oci (AIResourceOciProcessor)

The processors pass through entities with no location and do not require owner/type/lifecycle.

Suggestion: Mark only what this module validates, or split “typical / upstream” vs “enforced here.” At minimum, footnote that requiredness is not enforced by these processors.

Major: Git + UrlReaderProcessor / source-location claim is inaccurate for current code

The git registration steps say UrlReaderProcessor uses backstage.io/source-location for ingestion. In Backstage, that processor reads the registered catalog location URL (the YAML file). backstage.io/source-location is source metadata, not what drives entity ingestion. There is also no shipped processor that warns on a missing annotation.

Including the annotation in the example as recommended convention is fine — please just drop the causal link to UrlReaderProcessor unless/until that path is verified.

Suggestion: Rephrase to: register the entity YAML via a normal catalog URL/location; for git-backed assets, set backstage.io/source-location (and spec.location) so consumers can find the repo.

Minor: OCI example spec.type mismatches the asset

examples/ai-resource-oci.yaml describes a summarization skill pack but uses type: model. Consider type: skills (or similar) so the example matches its description.

Minor: Missing changeset

The changeset bot flagged the package whose README changed. A docs patch changeset would be consistent with repo practice for published packages.

Nit

Existing Validation blurb + new OCI Validation-Only Behavior section overlap a bit — fine to keep the expanded air-gap explanation.


What looks good

  • Examples under examples/ with correct relative README links
  • OCI docs match processor checks and clearly state zero registry I/O
  • spec.scope values match VALID_AI_RESOURCE_SCOPES
  • Registration guidance (URL UI / catalog location) matches the issue
  • Out of scope respected (docs/examples only)

Happy to approve once the two major accuracy items are addressed.

@johnmcollier

Copy link
Copy Markdown
Member

/fs-review

@fullsend-ai-review

fullsend-ai-review Bot commented Jul 21, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 10:08 PM UTC · Completed 10:26 PM UTC
Commit: 3dd6db4 · View workflow run →

@johnmcollier

Copy link
Copy Markdown
Member

/fs-fix fix and address review comments

@fullsend-ai-coder

fullsend-ai-coder Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 10:11 PM UTC · Completed 10:26 PM UTC
Commit: 3dd6db4 · View workflow run →

- Replace misleading "Required" column with "Enforced by this module"
  and add footnote clarifying these processors do not validate
  spec.type, spec.lifecycle, spec.owner, or spec.location presence
- Remove inaccurate UrlReaderProcessor / source-location ingestion
  claim from README and git example; rephrase to describe annotation
  as consumer-facing metadata
- Change OCI example spec.type from "model" to "skills" to match
  the asset description (summarization skill pack)
- Add docs patch changeset for the README changes

Addresses review feedback on #3859

Assisted-by: Claude
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (human-triggered)

Addressed all 4 review findings: corrected schema table to reflect actual processor enforcement, removed inaccurate UrlReaderProcessor claim, fixed OCI example type mismatch, and added docs patch changeset.

Fixed (4):

  1. Schema 'Required' column overstates shipped validation (workspaces/ai-integrations/plugins/catalog-backend-module-catalog-backend-module-ai-resource-extensions/README.md): Replaced 'Required' column with 'Enforced by this module' and added footnote clarifying that spec.type, spec.lifecycle, spec.owner, and spec.location are typical Backstage fields but are not validated or required by the processors in this module.
  2. Git + UrlReaderProcessor / source-location claim is inaccurate (workspaces/ai-integrations/plugins/catalog-backend-module-catalog-backend-module-ai-resource-extensions/README.md): Removed the inaccurate claim that UrlReaderProcessor uses backstage.io/source-location for ingestion. Rephrased git registration steps to describe registering entity YAML via a catalog URL/location and setting the annotation so consumers can locate the source repository. Also updated the git example YAML comment to remove the UrlReaderProcessor reference.
  3. OCI example spec.type mismatches the asset description (workspaces/ai-integrations/examples/ai-resource-oci.yaml): Changed spec.type from 'model' to 'skills' to match the asset description (summarization prompt and skill pack).
  4. Missing changeset for README changes (workspaces/ai-integrations/.changeset/ai-resource-docs-examples.md): Added a docs patch changeset for the catalog-backend-module-ai-resource-extensions package covering the example files and README documentation additions.

Tests: passed

Updated by fullsend fix agent

@fullsend-ai-review

Copy link
Copy Markdown

Review

Reason: stale-head

The review agent reviewed commit 3dd6db4ecf24ed1480e245ccf3b61171663f1f65 but the PR HEAD is now 7348f8700c5e09d16703a8a8be3d9d258f43974a. This review was discarded to avoid approving unreviewed code.

@fullsend-ai-review

Copy link
Copy Markdown

/fs-review

@sonarqubecloud

Copy link
Copy Markdown

@johnmcollier johnmcollier left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review

All prior feedback is addressed on 7348f87:

  1. Schema enforcement — “Required” replaced with “Enforced by this module”; footnote correctly scopes non-enforced fields; spec.scope / OCI target rules match the processors.
  2. Git registration — UrlReaderProcessor / source-location ingestion claim removed; annotation framed as consumer-facing metadata.
  3. OCI examplespec.type: skills matches the skill-pack description.
  4. Changeset — docs patch changeset added.

Docs and examples stay accurate to shipped validation (scope enum + OCI format-only, zero registry I/O). CI green. Approving.

@johnmcollier
johnmcollier merged commit e168046 into main Jul 22, 2026
36 checks passed
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jul 22, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 10:21 PM UTC · Completed 10:33 PM UTC
Commit: 7348f87 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #3859 — docs(#3858): add AIResource examples and registration docs

Timeline

Time (UTC) Event Details
Jul 20 15:29 Issue #3858 created johnmcollier requests AIResource example docs
Jul 20 15:29–15:34 Triage agent (run) Categorized as Documentation/Low — 5 min
Jul 20 15:34–15:49 Code agent (run) Produced PR with 4 files, 128 additions — 15 min
Jul 21 22:01 Human review johnmcollier posted detailed review: 2 major, 2 minor, 1 nit
Jul 21 22:07 /fs-review Human triggered review agent
Jul 21 22:10 /fs-fix Human triggered fix agent 3 min after review agent started
Jul 21 22:10–22:26 Fix agent (run) Addressed all 4 findings, pushed 7348f87 — 16 min
Jul 21 22:07–22:26 Review agent (run) Reviewed stale commit 3dd6db4, discarded — 19 min, $5.38 wasted
Jul 21 22:26 Stale-head redispatch Review bot posted /fs-reviewfailed to trigger a new review
Jul 22 22:15 Human re-review johnmcollier approved all fixes
Jul 22 22:20 Merged PR merged by johnmcollier

Workflow Quality

Overall: Reasonable workflow — 1 rework cycle, fix agent addressed all findings in a single iteration. Main waste was the review-fix race ($5.38 in review tokens discarded).

Code agent: Produced docs with 2 major accuracy issues: (1) schema table marked fields as "Required" that the processors don't enforce, (2) made an inaccurate claim about UrlReaderProcessor using backstage.io/source-location for ingestion. Also used wrong spec.type in OCI example and omitted changeset. These stem from not verifying documentation claims against the actual processor source code.

Fix agent: Excellent — addressed all 4 human review findings correctly in one iteration.

Review agent vs human review:

  • Human found 5 issues (2 major, 2 minor, 1 nit)
  • Review agent found 3 issues (1 medium, 2 low)
  • Overlap: 1 finding ("required fields" accuracy) — agent rated Low, human rated Major
  • Agent-unique: 2 findings (stale AIResourceOciProcessor class reference the human missed)
  • Human-unique: 3 findings (inaccurate UrlReaderProcessor claim, spec.type mismatch, missing changeset)
  • The review agent adds value but misses higher-impact domain-specific accuracy issues

Evidence for Existing Issues

  • fullsend-ai/fullsend #2399, #1043: Stale-head redispatch failed for two independent reasons: (a) pull_request_target/synchronize event rejected because fullsend-ai-coder[bot] lacks triage collaborator permission, (b) bot-posted /fs-review comment rejected by COMMENT_USER_TYPE != "Bot" routing guard. No review agent ran on the final commit.
  • fullsend-ai/fullsend #1557, #4069: Human triggered /fs-review and /fs-fix 3 minutes apart, causing a review-fix race. The fix agent pushed before the review completed, wasting $5.38 in review costs.
  • fullsend-ai/fullsend #2199, #5297: Review agent's docs-currency sub-agent found a stale class reference but missed the inaccurate UrlReaderProcessor behavioral claim and spec.type semantic mismatch — both require cross-validating docs against source files.
  • fullsend-ai/fullsend #5264: Review agent found the "required fields" accuracy issue but rated it Low; the human considered it Major. Constructing a concrete impact example ("users will think these fields are enforced") would have elevated severity.
  • redhat-developer/rhdh-plugins #3745: Code agent omitted changeset — the tracked changeset/doc-update instruction gap directly caused this.

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-review Agent PR ready for human review workspace/ai-integrations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ai-integrations: add AIResource examples and registration docs

1 participant