Skip to content

Conversation

@rikatz
Copy link
Member

@rikatz rikatz commented Oct 21, 2025

This change adds an intiial "add-enhancement" to be used by Claude. The idea is to reduce the time of bootstrapping a new enhancement proposal, by using the current template and some well known questions and fill as much as possible the EP template for the caller.

Example of a generated proposal: #1871

@rikatz
Copy link
Member Author

rikatz commented Oct 22, 2025

  • Add a requirement of adding proper line breaks on column 80 to make readability of reviewers better
  • Add requirement for a Jira ticket (if the ticket is public Claude can also read from it)
  • Should the user stories be scoped to a set of personas?
  • Improve API extension field to just add something if an API/Webhook/CRD is really created/modified
  • Enforce: While it is useful to go into the details of the code changes required, it is not necessary to show how the code will be rewritten in the enhancement.

- Ensure the area directory exists under `enhancements/`
- Create a valid filename from the name (lowercase, replace spaces with dashes)
- Verify all required YAML metadata is present
- Verify the JIRA ticket URL is included in the tracking-link metadata field
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps add Run make verify to satisfy lint checks? -- I think it has an environment to handle this, right?

Copy link
Member Author

Choose a reason for hiding this comment

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

huum, good call. I was going to do it, but sadly the make lint was created for podman only, and I didn't wanted to change/fix on this PR (to not mix things).

Maybe should be done as a followup:

  • Fix makefile/make it more generic
  • Add to the command to run a make lint

wdyt?

Copy link
Contributor

Choose a reason for hiding this comment

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

For sure, maybe add an issue for the follow-up and link here?

Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Contributor

@bentito bentito left a comment

Choose a reason for hiding this comment

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

Just a bunch of nits, let me know what you think or make changes as you feel needed, and I'll smash the approve button.

@rikatz
Copy link
Member Author

rikatz commented Oct 28, 2025

added some fixes, commented on other review suggestions

@bentito
Copy link
Contributor

bentito commented Nov 3, 2025

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 3, 2025
Copy link
Contributor

@Miciah Miciah left a comment

Choose a reason for hiding this comment

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

/approve
/hold
in case you want to address any of my comments first. Feel free to /hold cancel.


## Instructions

Act as an experienced software architect to create a comprehensive enhancement proposal. Follow these steps:
Copy link
Contributor

Choose a reason for hiding this comment

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

Hm, I wonder whether this "Act as an experienced software architect" phrase contributes to the confidently wrong nature of the output. Maybe, "Act as a competent, experienced software architect with impostor syndrome"? (Ha ha, only serious.)

Copy link
Member Author

Choose a reason for hiding this comment

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

so, my worry here is that whatever we add as a context will be the used context, so adding something like impostor syndrome will just add wrong things as a question instead of as a conclusion :D and I know exactly how it is!

Copy link
Contributor

Choose a reason for hiding this comment

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

Fair enough. It wasn't an entirely serious suggestion, coaxing an LLM not to be overconfidently wrong is probably requires more finesse than that, and it makes sense to prioritize addressing the problem from the other side (that is, cultivating a healthy skepticism of LLM output).

- Specific user stories or motivations if not clear from the description
- Explicit Goals or Non-Goals the user wants included
- Any specific technical constraints or requirements
- Topology considerations (Hypershift, SNO, MicroShift relevance)
Copy link
Contributor

Choose a reason for hiding this comment

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

If #1883 gets approved, you can add "OKE" to this list (or I can update #1883 to add "OKE" to this list).

Copy link
Member Author

Choose a reason for hiding this comment

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

I can wait for yours to be merged first, so this gives more context to claude on what is OKE

Copy link
Member Author

Choose a reason for hiding this comment

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

I have requested some OKE consideration as well (look at my last commit)

- **Workflow Description**: Detailed workflow with actors and steps
- **Mermaid Diagram**: Add a sequence diagram when applicable to visualize the workflow
- **Metadata**: Fill in creation-date with today's date (2025-10-21), set other fields to TBD
- **API Extensions**: Only fill this section if the user confirms the proposal adds/changes CRDs, admission and conversion webhooks, aggregated API servers, or finalizers. Otherwise, add a TODO comment asking the user to complete this section if applicable.
Copy link
Contributor

Choose a reason for hiding this comment

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

Now we also have ValidatingAdmissionPlugin and MutatingAdmissionPlugin as well!

Copy link
Member Author

Choose a reason for hiding this comment

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

added as part of my last commit

- Focus on the essential information
- Use bullet points and structured formatting
- Avoid unnecessary verbosity
- **Line Length**: Keep lines in the generated enhancement at a maximum of 80 characters. It is acceptable to exceed by 10-15 characters when necessary (e.g., for URLs or code examples), but not more than that.
Copy link
Contributor

Choose a reason for hiding this comment

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

What happens with a URL that exceeds 95 characters?

Copy link
Member Author

Choose a reason for hiding this comment

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

let me test here :)

Copy link
Member Author

Choose a reason for hiding this comment

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

enforced the requirement on my last commit

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 3, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 3, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Miciah

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

The pull request process is described here

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 3, 2025
@rikatz rikatz changed the title Add initial add-enhancement command [NE-2195] Add initial add-enhancement command Nov 4, 2025
Add refinement to stop breaking lines if it turns them
invalid (URL, code), to support OKE, and some other
refinements on how the enhancement should be generated
@rikatz rikatz force-pushed the add-enhancement-command branch from 269b20e to cda54c9 Compare November 4, 2025 15:39
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Nov 4, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 4, 2025

@rikatz: all tests passed!

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

- **API Extensions**: Only fill this section if the user confirms the proposal adds/changes CRDs, admission and conversion webhooks, aggregated API servers, or finalizers. Otherwise, add a TODO comment asking the user to complete this section if applicable.
- **Implementation Details/Notes/Constraints**: Provide a high-level overview of the code changes required. Follow the guidance from the template: "While it is useful to go into the details of the code changes required, it is not necessary to show how the code will be rewritten in the enhancement." Keep it as an overview; the developer should fill in the specific implementation details.
- **Metadata**: Fill in creation-date with today's date, tracking-link with the provided JIRA ticket URL, set other fields to TBD
- **Mermaid Diagram**: Add a sequence diagram when the workflow involves multiple actors or complex interactions between components (e.g., user -> API server -> controller -> operator). Simple single-actor workflows may not need a diagram.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is the model going to interpret that example as you expect it to? I'm curious because the example represents multiple actors but not complex interactions, and it is ambiguous whether it is an example of "multiple actors or complex interactions between components" or an example of "a sequence diagram". I'm also curious how the model acts on instructions such as "may not need".

Copy link
Member Author

Choose a reason for hiding this comment

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

I think it is mostly like "if it decides that are multiple components", but IMO we can always just ask the model later "btw, generate a mermaid diagram for me" and it does a really decent job :)

@Miciah
Copy link
Contributor

Miciah commented Nov 4, 2025

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 4, 2025
@rikatz
Copy link
Member Author

rikatz commented Nov 4, 2025

/hold cancel
Merging this, thanks all for all the reviews!
I think we can iterate over this command later if we find some improvements that are required!

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 4, 2025
@openshift-merge-bot openshift-merge-bot bot merged commit 10e8fd8 into openshift:master Nov 4, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants