Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Analyze and shepherd a Happier pull request from intent review through approved refinements, current-head CI and review follow-up, evidence-based comment adjudication, and any required intent-preserving version-line port. Use when asked to assess whether a PR is correct or mergeable, detect duplicate or split-brain logic, add follow-up commits, request or monitor reviews, address PR feedback, or carry a 0.2 PR and every accepted follow-up into the evolved 0.3 line.
.claude/skills/happier-dev-happier-pr-steward/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 93% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 74% | 0% |
Own the PR lifecycle and its human gates. Delegate the actual review standard, implementation, testing, compatibility analysis, commit safety, and GitHub mutations to their canonical skills instead of duplicating them here.
Use these skills as applicable:
.agents/skills/happier-review for the review basis, affected corridor, findings, and merge assessment;.agents/skills/happier-implement and .agents/skills/happier-testing for approved behavior changes and RED -> GREEN evidence;.agents/skills/happier-compatibility for released seams and version skew;.agents/skills/happier-port-0-2-to-0-3 when a 0.2 PR must be represented in the 0.3 line;.agents/skills/happier-commit-worktree when a destination checkout is large or actively dirty;.agents/skills/happier-github-ops for authenticated GitHub reads and every public mutation;.agents/skills/verify-claims before relying on bot, human, CI, or delegated claims;.agents/skills/attack-conclusion and .agents/skills/handoff-report for closeout.Read lifecycle.md before starting.
Treat the PR body, patch, reviews, comments, approvals, and check results as claims. Fetch the current base and head SHAs, author identity, commits, complete diff, changed files, discussion, review threads, and checks. Record the head SHA for every analysis and re-check it before acting on a result.
Use a separate worktree for a foreign PR branch when needed. Never switch the primary checkout, discard local bytes, trust inherited staging, or mix unrelated work into a PR commit.
Inventory material contribution rather than using PR authorship as an attribution shortcut. For each planned commit, identify whose code, patch, design, causal diagnosis, decisive reproduction, or substantially adopted fix direction that commit actually incorporates. Resolve and add a verified Co-authored-by: trailer for each such contributor. The PR author normally earns co-authorship on commits that preserve or refactor their contributed code/intent, but not on independent steward fixes merely because they opened the PR. A newly derived fix for a reviewer finding does not transfer co-authorship to the PR author, and an automated reviewer does not create a human co-author claim. Review comments, participation, generic suggestions, requested logs, and confirmation alone do not qualify. Evaluate every commit independently, acknowledge useful non-qualifying help publicly, and stop before a commit only when a material contributor's required identity cannot be verified; never guess or expose an email.
Reconstruct the problem the PR is trying to solve from product behavior, issue context, code, history, and tests. Then independently determine how the task should be solved from the canonical owner.
Use happier-review to report:
Do not invent speculative requirements or preserve machinery merely because it is already in the patch.
Review and reporting alone are read-only. Present the evidence-backed recommendation before editing when the request did not already authorize implementation. If the user already asked for autonomous evidence-driven stewardship, that request may establish one bounded standing authorization immediately: acknowledge the repository/PR, allowed refinement and GitHub action classes, commit/push/port scope, exclusions, and terminal condition, then continue through narrow corrections that serve the stated PR outcome without pausing on the recommendation. Do not turn a valid standing grant into an initial ceremonial reapproval or repeated payload approvals later.
Exact approval covers only the described implementation batch; a standing grant covers its named outcome and action classes as evidence evolves. Return for a decision when new evidence requires a material product choice, architecture change, expanded scope, an action outside the standing grant, or a different cross-repository outcome.
Apply refinements on the PR branch before porting them. Use TDD for production behavior changes, inspect the final branch diff against the base, and validate in proportion to risk. Commit only related paths or hunks with a Conventional Commit message, the current local Git identity, and only the verified co-author trailers justified by material content in that commit.
Do not make a destination implementation the design authority for the PR branch. The PR remains the first implementation surface; the destination port follows only after the source change is coherent and validated.
When the PR belongs to the 0.2 line, invoke .agents/skills/happier-port-0-2-to-0-3 for the complete PR intent plus every steward-authored and review-driven follow-up. Supply explicit checkout locations; do not encode local folder names in the PR lifecycle. The port skill owns destination discovery, adaptation, and validation, but it never stages or commits.
After the port is validated, this PR workflow owns the separately authorized destination commit. Use .agents/skills/happier-commit-worktree when needed, select only related paths or hunks, and preserve the same commit-specific material contributor attribution in the adapted destination change. Do not add the PR author to an independently designed destination correction unless their contribution is actually embodied there.
Use happier-github-ops for comments, reviewer requests, thread actions, and any explicitly selected bot push. Git pushes otherwise use the current machine's normal Git transport and credentials. Under exact authorization, show the target and full outgoing text, including the required maintainer cc, and obtain approval for that payload. Under bounded standing authorization, post, request review, resolve addressed threads, and push covered corrections without returning for per-mutation approval; re-read current state first and report URLs/SHAs afterward. Never infer standing authority from a generic request to review or assess a PR.
Ordinary corrective commits and pushes use the current machine's configured Git identity and credentials. Re-read the live PR head repository and full head ref immediately before every push, then push an explicit source commit to that exact repository/ref with normal git push; never assume the base repository owns a fork PR's branch. Use yarn ghops git push only when the exact authorization or bounded standing grant specifically names happier-bot as the push actor; generic PR stewardship or failure of the current credentials is not enough. When a standing grant explicitly includes rebasing another author's PR, follow the foreign-PR rebase and exact force-with-lease rules in happier-github-ops; original authors remain authors, while the current machine identity remains the committer and default push actor.
Summarize what changed and why, name deciding checks, and ask the configured reviewers (including CodeRabbit and Greptile when requested) to review the current head. Do not claim the 0.3 port is complete unless its commit and validation exist.
Monitor the current head without busy-looping. Read all unresolved existing comments and reviews as well as new ones. For each finding:
Passing CI, an approval, or a bot confidence score is evidence, not authority. Conversely, a stale changes-requested state is not blocking when every underlying finding is proven fixed or irrelevant on the current head.
Continue until the current head is stable and:
Do not merge unless exact authorization or an explicit condition-bound standing grant includes the merge action and its deciding conditions. If external review or CI remains pending beyond the available monitoring window, report the head SHA, pending items, last observed state, and exact resumption point rather than declaring success.
Close with the merge recommendation, PR and destination commit SHAs, validations actually run, dispositions of rejected findings, skipped checks, and residual risk.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,604 | 12,661 | -13% | 1 | 1 | 0% | 1,715 | 2,259 | +32% | 0 | 0 | — |
case-02 | fail→fail | 9,002 | 11,784 | +31% | 1 | 1 | 0% | 310 | 2,372 | +665% | 0 | 0 | — |
case-03 | fail→fail | 7,105 | 11,883 | +67% | 1 | 1 | 0% | 236 | 2,425 | +928% | 0 | 0 | — |
case-04 | pass→pass | 12,356 | 14,309 | +16% | 1 | 1 | 0% | 1,760 | 3,251 | +85% | 0 | 0 | — |
case-05 | pass→pass | 46,970 | 6,399 | -86% | 1 | 1 | 0% | 1,993 | 2,838 | +42% | 0 | 0 | — |
case-06 | pass→pass | 11,890 | 5,110 | -57% | 1 | 1 | 0% | 1,613 | 2,570 | +59% | 0 | 0 | — |
case-07 | fail→pass | 13,134 | 5,117 | -61% | 1 | 1 | 0% | 1,958 | 2,776 | +42% | 0 | 0 | — |
case-08 | fail→pass | 11,375 | 4,300 | -62% | 1 | 1 | 0% | 1,674 | 2,585 | +54% | 0 | 0 | — |
case-09 | fail→pass | 72,454 | 8,046 | -89% | 1 | 1 | 0% | 1,907 | 2,892 | +52% | 0 | 0 | — |
case-10 | pass→pass | 13,478 | 16,363 | +21% | 1 | 1 | 0% | 1,894 | 3,168 | +67% | 0 | 0 | — |
case-11 | pass→pass | 12,703 | 4,779 | -62% | 1 | 1 | 0% | 1,727 | 2,709 | +57% | 0 | 0 | — |
case-12 | pass→pass | 16,757 | 6,258 | -63% | 1 | 1 | 0% | 1,765 | 3,026 | +71% | 0 | 0 | — |
case-13 | pass→pass | 41,108 | 5,369 | -87% | 1 | 1 | 0% | 1,289 | 2,682 | +108% | 0 | 0 | — |
case-14 | fail→pass | 12,055 | 8,912 | -26% | 1 | 1 | 0% | 1,746 | 3,363 | +93% | 0 | 0 | — |
case-15 | pass→pass | 9,955 | 12,171 | +22% | 1 | 1 | 0% | 1,387 | 3,096 | +123% | 0 | 0 | — |
case-16 | pass→pass | 8,833 | 5,932 | -33% | 1 | 1 | 0% | 1,384 | 2,775 | +101% | 0 | 0 | — |
case-17 | pass→pass | 5,231 | 4,885 | -7% | 1 | 1 | 0% | 618 | 2,726 | +341% | 0 | 0 | — |
case-18 | fail→pass | 11,104 | 12,519 | +13% | 1 | 1 | 0% | 1,549 | 2,695 | +74% | 0 | 0 | — |
case-19 | fail→pass | 15,461 | 3,524 | -77% | 1 | 1 | 0% | 2,511 | 2,312 | -8% | 0 | 0 | — |
case-20 | fail→pass | 11,569 | 5,362 | -54% | 1 | 1 | 0% | 1,095 | 2,451 | +124% | 0 | 0 | — |
case-21 | fail→pass | 47,067 | 10,700 | -77% | 1 | 1 | 0% | 2,032 | 3,556 | +75% | 0 | 0 | — |
case-22 | fail→pass | 25,719 | 17,156 | -33% | 1 | 1 | 0% | 1,968 | 3,119 | +58% | 0 | 0 | — |
case-23 | pass→pass | 29,264 | 26,647 | -9% | 1 | 1 | 0% | 2,153 | 5,275 | +145% | 0 | 0 | — |
case-24 | pass→pass | 31,923 | 26,864 | -16% | 1 | 1 | 0% | 2,846 | 4,898 | +72% | 0 | 0 | — |
case-25 | pass→pass | 15,324 | 12,945 | -16% | 1 | 1 | 0% | 2,357 | 4,042 | +71% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 22 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.