Skip to content

Comments

Skill to author adapter configurations#4

Open
rh-amarin wants to merge 1 commit intoopenshift-hyperfleet:mainfrom
rh-amarin:hyperfleet-adapter-authoring
Open

Skill to author adapter configurations#4
rh-amarin wants to merge 1 commit intoopenshift-hyperfleet:mainfrom
rh-amarin:hyperfleet-adapter-authoring

Conversation

@rh-amarin
Copy link

@rh-amarin rh-amarin commented Feb 23, 2026

This skill is useful to create new adapter configurations.

  • It can test the configuration using dry-run mode
  • If you want to test it live, you need some dependencies:
    • hyperfleet-adapter binary for your platform
    • Access to gcp pubsub to publish a message to trigger the adapter
    • Access to a running HyperFleet API, so the adapter can query it
    • Maestro installed in the cluster (if using maestro)

Example of execution in an isolated claude environment:

Prompt:

I want to create and test one adapter config files that creates using maestro a namespace and a job in that namespace with the name of the cluster id. 

The job will run a hello-world. 

You have maestro available at http host.docker.internal:8100 and grpc host.docker.internal:8090

The hyperfleet api is at port host.docker.internal:8000

You have access to gcloud command to trigger an event using the topic amarin-test and subscription amarin-test-sub
  
 The adapter will be named "hello-world-adapter"
  
 Verify it works via a dry-run and also using the real adapter framework. the binary for the adapter framework is in
  /adapter
  
  use the skill for adapter

result:


Perfect! The hello-world-adapter has been successfully created and tested. Here's what was accomplished:

  🎉 Success Summary

  Configuration Files Created

  - adapter-config.yaml - Maestro transport configuration
  - adapter-task-config.yaml - Creates namespace + hello-world job
  - broker-config.yaml - Google Pub/Sub configuration
  - event.json, api-responses.json, discovery-overrides.json - Dry-run mock files
  - TEST_RESULTS.md - Complete test results documentation

  ✅ Dry-Run Test Results

  All 4 phases passed:
  1. Parameter Extraction - clusterId and generation extracted
  2. Preconditions - Cluster API call succeeded
  3. Resources - ManifestWork created
  4. Post Actions - Status reported (201 Created)

  ✅ Live Adapter Test Results

  - Adapter started and subscribed to amarin-test-sub
  - Event processed successfully for cluster 2okuvsoepquu588q833j7jeo86hoo4io
  - ManifestWork created in Maestro (ID: 560b1ad1-c330-5ab3-ac69-59d02dca4611)
  - Namespace created: 2okuvsoepquu588q833j7jeo86hoo4io (Status: Active ✅)
  - Job completed: 2okuvsoepquu588q833j7jeo86hoo4io-hello-world (Succeeded: 1 ✅)
  - Status reported to HyperFleet API with Applied=True, Health=True

  The adapter correctly:
  - Uses Maestro transport to cluster1 consumer
  - Creates resources with cluster ID naming
  - Runs the hello-world job
  - Reports status back to HyperFleet API

  All files are in /tmp/ - see TEST_RESULTS.md for detailed verification commands!

Summary by CodeRabbit

  • Documentation

    • Added comprehensive documentation for the HyperFleet Adapter Config Authoring Skill, including step-by-step workflows, configuration templates, and reference materials.
    • Added README guide for the adapter-config-author interactive tool with trigger phrases and coverage topics.
  • Chores

    • Updated OWNERS file configuration.

@openshift-ci openshift-ci bot requested review from Mischulee and vkareh February 23, 2026 16:09
@openshift-ci
Copy link

openshift-ci bot commented Feb 23, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign yingzhanredhat for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai
Copy link

coderabbitai bot commented Feb 23, 2026

Walkthrough

This pull request adds documentation and configuration infrastructure for a HyperFleet adapter authoring skill. It includes updates to the OWNERS file with approvers and reviewers lists, a new README describing the adapter-config-author interactive skill for guiding users through YAML configuration authoring, and comprehensive SKILL.md documentation covering configuration schemas, templates for various cluster types, reference materials, testing workflows, and verification procedures.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

lgtm

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: adding a skill to author adapter configurations. It aligns with the PR's primary objective of creating a new skill for HyperFleet adapter configuration authoring.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
hyperfleet-adapter-authoring/skills/references/authoring-guide.md (1)

23-28: Clarify the Kind column for broker.yaml.

The table shows an empty Kind field for broker.yaml. If the broker configuration doesn't use a Kubernetes-style Kind field, consider adding a note or using "N/A" to make this explicit. Alternatively, if there is a kind field, it should be documented here.

📝 Suggested clarification
 | File | Kind | Purpose |
 |------|------|---------|
 | `adapter-config.yaml` | `AdapterConfig` | Deployment settings: API client config, broker subscription, timeouts, retries |
 | `adapter-task-config.yaml` | `AdapterTaskConfig` | Business logic: what to extract, check, create, and report |
-| `broker.yaml` | `` | Broker configuration: Configures broker system (pubsub, rabbitmq) |
+| `broker.yaml` | (no Kind field) | Broker configuration: Configures broker system (pubsub, rabbitmq) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hyperfleet-adapter-authoring/skills/references/authoring-guide.md` around
lines 23 - 28, Update the table row for broker.yaml so the Kind column is
explicit: either set it to "N/A" if broker.yaml does not use a Kubernetes-style
Kind, or fill in the actual Kind value if it exists; additionally add a brief
parenthetical note in the Purpose cell or as a footnote clarifying whether
broker.yaml uses a Kind field (e.g., "Kind: N/A — not Kubernetes manifest") to
remove ambiguity for readers; target the table row containing `broker.yaml` and
the `Kind` column.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@hyperfleet-adapter-authoring/README.md`:
- Line 49: The README references the wrong relative path string
'references/authoring-guide.md'; update that occurrence in
hyperfleet-adapter-authoring/README.md to 'skills/references/authoring-guide.md'
so the link resolves correctly (locate the line containing the literal
'references/authoring-guide.md' and replace it with
'skills/references/authoring-guide.md').

---

Nitpick comments:
In `@hyperfleet-adapter-authoring/skills/references/authoring-guide.md`:
- Around line 23-28: Update the table row for broker.yaml so the Kind column is
explicit: either set it to "N/A" if broker.yaml does not use a Kubernetes-style
Kind, or fill in the actual Kind value if it exists; additionally add a brief
parenthetical note in the Purpose cell or as a footnote clarifying whether
broker.yaml uses a Kind field (e.g., "Kind: N/A — not Kubernetes manifest") to
remove ambiguity for readers; target the table row containing `broker.yaml` and
the `Kind` column.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3f0c934 and 8770af5.

📒 Files selected for processing (4)
  • hyperfleet-adapter-authoring/OWNERS
  • hyperfleet-adapter-authoring/README.md
  • hyperfleet-adapter-authoring/skills/SKILL.md
  • hyperfleet-adapter-authoring/skills/references/authoring-guide.md


## Reference material

The full authoring guide is at `references/authoring-guide.md` and is loaded automatically when the skill runs.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix the relative path to the authoring guide.

The path references/authoring-guide.md is incorrect relative to this README's location. Based on the repository structure, the correct path should be skills/references/authoring-guide.md.

🔧 Proposed fix
-The full authoring guide is at `references/authoring-guide.md` and is loaded automatically when the skill runs.
+The full authoring guide is at `skills/references/authoring-guide.md` and is loaded automatically when the skill runs.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The full authoring guide is at `references/authoring-guide.md` and is loaded automatically when the skill runs.
The full authoring guide is at `skills/references/authoring-guide.md` and is loaded automatically when the skill runs.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hyperfleet-adapter-authoring/README.md` at line 49, The README references the
wrong relative path string 'references/authoring-guide.md'; update that
occurrence in hyperfleet-adapter-authoring/README.md to
'skills/references/authoring-guide.md' so the link resolves correctly (locate
the line containing the literal 'references/authoring-guide.md' and replace it
with 'skills/references/authoring-guide.md').

@rh-amarin rh-amarin force-pushed the hyperfleet-adapter-authoring branch from 8770af5 to 0e82ddb Compare February 23, 2026 16:22
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
hyperfleet-adapter-authoring/README.md (1)

49-49: Verify the referenced file path exists.

The path references/authoring-guide.md is mentioned but no such file exists in this PR. Looking at SKILL.md, the authoring guide is fetched from an external URL (https://raw.githubusercontent.com/openshift-hyperfleet/hyperfleet-adapter/main/docs/adapter-authoring-guide.md). Either:

  1. Update this reference to match the external URL approach used in SKILL.md, or
  2. Create the local reference file if intended
🔧 Proposed fix (option 1: reference external URL)
-The full authoring guide is at `references/authoring-guide.md` and is loaded automatically when the skill runs.
+The full authoring guide is fetched from `https://raw.githubusercontent.com/openshift-hyperfleet/hyperfleet-adapter/main/docs/adapter-authoring-guide.md` and is loaded automatically when the skill runs.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hyperfleet-adapter-authoring/README.md` at line 49, The README.md references
a non-existent local file "references/authoring-guide.md"; update README.md to
either point to the external URL used in SKILL.md
(https://raw.githubusercontent.com/openshift-hyperfleet/hyperfleet-adapter/main/docs/adapter-authoring-guide.md)
or add the missing local "references/authoring-guide.md" file; locate the
reference in hyperfleet-adapter-authoring/README.md and change the path string
to the external URL (or add the authored guide file under a references/
directory) so the referenced authoring guide exists when the skill runs.
🧹 Nitpick comments (1)
hyperfleet-adapter-authoring/skills/SKILL.md (1)

1492-1492: Consider adding language specifiers to fenced code blocks.

Three code blocks lack language specifiers, which affects syntax highlighting:

  • Line 1492: Trace output example
  • Line 1590: Go template reference
  • Line 1691: Log message example
🔧 Proposed fix
@@ -1489,7 +1489,7 @@

 Example trace:

-```
+```text
 Dry-Run Execution Trace
 ========================
@@ -1587,7 +1587,7 @@

 ## Go Template Quick Reference

-```
+```text
 {{ .variableName }}                              Variable interpolation
@@ -1688,7 +1688,7 @@

 **1. Adapter Logs**
 Look for:
-```
+```text
 Event execution finished: event_execution_status=success

Also applies to: 1590-1590, 1691-1691

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hyperfleet-adapter-authoring/skills/SKILL.md` at line 1492, Add language
specifiers to the three fenced code blocks that currently lack them: update the
block showing the "Dry-Run Execution Trace" (the trace output example), the
block containing the Go template snippet "{{ .variableName }}" (the Go template
reference), and the block containing "Event execution finished:
event_execution_status=success" (the log message example) to include a language
token (e.g., ```text) immediately after the opening backticks so the blocks
become ```text ... ``` for proper syntax highlighting.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@hyperfleet-adapter-authoring/README.md`:
- Line 49: The README.md references a non-existent local file
"references/authoring-guide.md"; update README.md to either point to the
external URL used in SKILL.md
(https://raw.githubusercontent.com/openshift-hyperfleet/hyperfleet-adapter/main/docs/adapter-authoring-guide.md)
or add the missing local "references/authoring-guide.md" file; locate the
reference in hyperfleet-adapter-authoring/README.md and change the path string
to the external URL (or add the authored guide file under a references/
directory) so the referenced authoring guide exists when the skill runs.

---

Nitpick comments:
In `@hyperfleet-adapter-authoring/skills/SKILL.md`:
- Line 1492: Add language specifiers to the three fenced code blocks that
currently lack them: update the block showing the "Dry-Run Execution Trace" (the
trace output example), the block containing the Go template snippet "{{
.variableName }}" (the Go template reference), and the block containing "Event
execution finished: event_execution_status=success" (the log message example) to
include a language token (e.g., ```text) immediately after the opening backticks
so the blocks become ```text ... ``` for proper syntax highlighting.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8770af5 and 0e82ddb.

📒 Files selected for processing (3)
  • hyperfleet-adapter-authoring/OWNERS
  • hyperfleet-adapter-authoring/README.md
  • hyperfleet-adapter-authoring/skills/SKILL.md

@@ -0,0 +1,1758 @@
---
Copy link
Contributor

Choose a reason for hiding this comment

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

Minor consistency thing: every other skill in this repo follows the
skills//SKILL.md directory pattern (e.g., skills/hyperfleet-architecture/SKILL.md,
skills/jira-story-pointer/SKILL.md). This one has skills/SKILL.md directly. Should it be
skills/adapter-config-author/SKILL.md to match?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants