Skip to content

feat(triage): add effort-estimation skill on block_auto_promotion - #1079

Draft
rh-hemartin wants to merge 2 commits into
feat/2207-block-auto-promotionfrom
feat/2207-effort-estimation
Draft

feat(triage): add effort-estimation skill on block_auto_promotion#1079
rh-hemartin wants to merge 2 commits into
feat/2207-block-auto-promotionfrom
feat/2207-effort-estimation

Conversation

@rh-hemartin

Copy link
Copy Markdown
Member

Summary

Add the effort-estimation skill on top of the block_auto_promotion gate from #1078. High-effort issues (overall >= 4, or any dimension 5) set blocked: true with a reason; the post-script from #1078 already holds those at triaged.

Blocked by #1078. Merge that first. This PR is stacked on feat/2207-block-auto-promotion; GitHub should retarget it to main after #1078 lands and the base branch is deleted.

Behavior

  • New effort-estimation skill scores scope, testing, domain knowledge, and risk (1-5 each).
  • Bug, documentation, and performance results must include block_auto_promotion.
  • Feature, security, and other stay optional because they already route to human review.
  • Eval cases 009 (high effort), 010 (low effort), and 011 (risk=5) cover the gate.

Closes fullsend-ai/fullsend#2207

Test plan

Replace the single-purpose requires_workflow_changes boolean with a
general-purpose block_auto_promotion object (blocked + reason). Workflow
file detection now sets blocked=true with a reason; later gates can use
the same field without a new post-script path.

Keep requires_workflow_changes as a deprecated optional property for one
release so lockstep-skewed agent output still validates. When
block_auto_promotion is absent, the old boolean still blocks
auto-promotion.

The post-script appends the reason to the triage comment, sanitizes GHA
workflow-command sequences, strips paired line-start fenced code blocks,
and uses a held-for-review footer when auto-promotion is blocked.

Signed-off-by: Hector Martinez <hemartin@redhat.com>
Add an effort-estimation skill that scores issues on scope, testing,
domain knowledge, and risk (1-5 each). When overall effort >= 4, or any
single dimension scores 5, the skill sets block_auto_promotion.blocked
so the existing post-script gate holds the issue at triaged instead of
ready-to-code.

Require block_auto_promotion for bug, documentation, and performance
categories. Feature, security, and other stay optional because they
already route to human review.

Closes fullsend-ai/fullsend#2207

Signed-off-by: Hector Martinez <hemartin@redhat.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 28, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:25 PM UTC · Completed 1:07 PM UTC

Commit: 1e82855 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high

@rh-hemartin
rh-hemartin force-pushed the feat/2207-block-auto-promotion branch from fa3c916 to 361fb43 Compare August 28, 2026 12:40
@fullsend-ai-review fullsend-ai-review Bot added the risk/elevated PR risk: elevated label Aug 28, 2026
@fullsend-ai-review

Copy link
Copy Markdown

Risk Assessment: elevated (3/5)

Details

Elevated risk driven by large file count touching protected/security-sensitive paths in a high-churn stabilization-phase codebase, offset by the largely additive nature of changes (new eval cases and skill) and modest modifications to existing scripts aligned with a well-scoped feature request.

@fullsend-ai-review

Copy link
Copy Markdown

Review

Findings

Medium

  • [protected-path] agents/triage.md, harness/triage.yaml, scripts/post-triage.sh, scripts/post-triage.src.sh, scripts/post-triage-test.sh, scripts/validate-output-schema-test.sh, skills/effort-estimation/SKILL.md — This PR modifies 7 files under protected paths (agents/, harness/, scripts/, skills/). The change is authorized by dispatch: no effort-based gating before auto-promoting issues to coder fullsend#2207 and the PR body describes the rationale. Human approval is always required for protected-path changes, regardless of context.

Low

  • [naming-alignment] docs/triage.md — The section heading was renamed from "Blocking auto-promotion" to "Skill: effort-estimation", but the section still describes the general block_auto_promotion field semantics including workflow-change blocking (which is not part of the effort-estimation skill). A heading like "Blocking auto-promotion" or "Auto-promotion gating" would better reflect the section's dual-purpose content.

  • [stale-doc] FEATURES.md:20 — Uses requires_workflow_changes as the canonical example of the "Agent + scripts" configuration pattern. This PR makes block_auto_promotion the primary mechanism by requiring it for bug/documentation/performance categories via a JSON Schema conditional. The FEATURES.md example now points to the secondary (deprecated-but-still-accepted) field rather than the current one.

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread FEATURES.md
schema update (`schemas/<agent>-result.schema.json`) to accommodate
whatever new field the agent uses to expose its conclusions to the
post-script. Example: the `requires_workflow_changes` flag in triage.
post-script. Example: the `block_auto_promotion` field in triage.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] stale-doc

Uses requires_workflow_changes as the canonical example of the 'Agent + scripts' configuration pattern. This PR makes block_auto_promotion the primary mechanism by requiring it for bug/documentation/performance categories via a JSON Schema conditional. The FEATURES.md example now points to the secondary (deprecated-but-still-accepted) field rather than the current one.

Suggested fix: Update the example on line 20 to reference block_auto_promotion instead of requires_workflow_changes.

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Aug 28, 2026
@rh-hemartin
rh-hemartin force-pushed the feat/2207-block-auto-promotion branch from 361fb43 to f09b3d7 Compare September 1, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment risk/elevated PR risk: elevated

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant