-
-
Notifications
You must be signed in to change notification settings - Fork 629
Add release train issue evaluation skill #4540
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| --- | ||
| name: react-on-rails-release-train-issue-evaluation | ||
| description: Use when evaluating React on Rails GitHub issues for release-train targeting, especially deciding whether new, follow-up, or non-started issues belong on release/17.0.0, another release/X.Y.Z branch, or main. | ||
| --- | ||
|
|
||
| # React on Rails Release Train Issue Evaluation | ||
|
|
||
| ## Core Rule | ||
|
|
||
| Use this with `$evaluate-issue`. That skill answers "is this worth doing?"; this skill answers "does it belong on the active release train or on `main`?" | ||
|
|
||
| `release/*` receives only stabilizing fixes. Features, cleanup, docs, process work, non-blocking hardening, and ordinary follow-ups target `main`. | ||
|
|
||
| ## Workflow | ||
|
|
||
| 1. Refresh repo context: `git fetch --prune origin main`, then `.agents/bin/agent-workflow-seam-doctor`. Fetch the release branch if ancestry matters. | ||
| 2. Resolve candidates from live GitHub. For strict 48-hour windows, search by date then timestamp-filter locally because GitHub search is date-granular. | ||
| 3. Exclude started lanes. An issue is started when it has an assignee, linked/open implementation PR, private claim/heartbeat/branch, or implementation comment. Run `agent-coord doctor --json`, then targeted `agent-coord status --repo shakacode/react_on_rails --target <issue> --json`. Dead or expired claims count as started-but-stalled, not non-started. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit: this step invokes raw so an agent following this skill can't stall indefinitely if the private backend is unreachable. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! |
||
| 4. Read release context: active `Release gate:` tracker, `release` + `TRACKING` labels, the `Agent Release Mode` block, `agent-coord` phase when available, source PR base branches, and whether source commits are already on `origin/release/X.Y.Z`. | ||
| 5. Evaluate each candidate with `$evaluate-issue`: evidence source, impact, complexity, process gap disposition, and priority. | ||
| 6. Choose the target: | ||
| - `release/X.Y.Z`: verified RC/final stabilizer such as an RC regression, hard-gate failure, install/upgrade blocker, security/data-loss/wrong-output bug, release-branch CI/release tooling blocker, or final-only public API/breaking-change decision. | ||
| - `release/X.Y.Z contingent`: only needed if maintainers decide to cherry-pick a related main-only fix into the train. Name the dependency. | ||
| - `main`: docs, changelog for main-only PRs, CI/tooling hygiene, tests, process automation, non-blocking runtime hardening, features, and performance/cleanup without release-gate proof. | ||
| - `park/close`: P3, speculative, duplicate, no-PR evidence, or not worth doing. | ||
|
|
||
| Recommend labels/milestones/comments, but do not mutate GitHub unless the user explicitly authorizes writes. | ||
|
|
||
| ## Output | ||
|
|
||
| Use a compact table: | ||
|
|
||
| | Issue | Started? | Evidence | Disposition | Target | Rationale | Next action | | ||
| | ----- | -------- | -------- | ----------- | ------ | --------- | ----------- | | ||
|
|
||
| Call out `UNKNOWN` facts explicitly, especially release tracker mode, source PR base, branch ancestry, and whether the issue is a confirmed RC regression. | ||
|
|
||
| ## Common Mistakes | ||
|
|
||
| - Treating a title that says "before 17.0.0 final" as sufficient. Verify release-gate impact and branch ancestry. | ||
| - Sending main-only follow-up defects to `release/17.0.0` when the related fix is not on the release branch. Mark these contingent instead. | ||
| - Using labels alone. Labels are hints; issue evidence and the release tracker decide. | ||
| - Treating tracker `Mode: development` as "no release train." The branch can still exist; target selection still matters. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| interface: | ||
| display_name: "React on Rails Release Train Issue Evaluation" | ||
| short_description: "Classify issues for release train or main" | ||
| default_prompt: "Use $react-on-rails-release-train-issue-evaluation to decide whether recent React on Rails issues belong on release/17.0.0 or main." | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
descriptionfield namesrelease/17.0.0explicitly while the skill body consistently uses the parameterized formrelease/X.Y.Zthroughout. When the team moves to 18.0.0 or another release line, the frontmatter will point agents at the wrong branch and could mislead skill-picker UI summaries that surface this description as context. A description referencing onlyrelease/X.Y.Z(dropping the specific version callout) would stay accurate across release trains without any follow-up edit.