Skip to content

fix(han): correct the three findings in feedback issue #148 - #206

Merged
mxriverlynn merged 4 commits into
v5.5.0-betafrom
gh-148-automated-test-planning
Sep 9, 2026
Merged

fix(han): correct the three findings in feedback issue #148#206
mxriverlynn merged 4 commits into
v5.5.0-betafrom
gh-148-automated-test-planning

Conversation

@mxriverlynn

@mxriverlynn mxriverlynn commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Gives automated-test-planning a size band so a narrow question runs one agent and returns prose, instead of up to seven dispatches and a nine-section document.
  • Gives test-engineer and edge-case-explorer a discriminating-power test, so a deferral is argued from what an assertion would catch rather than from where coverage happens to sit.
  • Makes readability-editor check the sentences it writes against the voice blocklist it applies.
  • Leaves the canonical YAGNI rule and manual-test-planning untouched on purpose; both exclusions are argued in the investigation doc.

Why

Closes #148, a Han feedback report. It scored the run 5/5 on output accuracy and evidence discipline, and 2/5 on output length against decision count. The analysis quality was never in question; the cost and the durability of the reasoning were.

Each fix copies a mechanism the suite already runs. The size band is code-review's classifier plus iterative-plan-review's lightweight mode, and the suite's own agent-economics guidance already says not to delegate work a skill can finish in a few tool calls, so that change is a conformance repair rather than a new idea.

One part of the report is stale. The absolute em-dash ban it quotes was replaced six days after filing by a rule legalizing two positions, so two of its three flagged instances may no longer be violations. The structural gap behind it is unaffected and is what this PR fixes.

Full evidence, root cause, and adversarial validation: docs/plans/test-planning-feedback-issue-148/feedback-investigation.md (20 evidence items, 11 validation findings).

How to verify

  • npm run lint
  • Read han-coding/skills/automated-test-planning/SKILL.md Step 1.5 and confirm arguments: size is in the frontmatter. Without that key there is no $size to bind, which validation caught in the first draft.
  • Run /automated-test-planning with a narrow question on a branch with many changed files. It should announce a small band and answer in prose. Classification reads the request before the file list precisely so this case works.
  • Run /automated-test-planning large and confirm the full roster and template still run.
  • Dispatch readability-editor over a draft containing a legal appositive em-dash and confirm the new pass leaves it alone.

Risk / rollback

Low. Markdown instruction files only, no scripts and no behavior outside a Claude Code session. Medium and large runs of automated-test-planning are unchanged, so the blast radius is the small band and the two agents' deferral rationale. Revert with git revert; the four commits are independently revertable, one per correction plus the investigation doc.

Three open risks are recorded in the investigation doc: the editor's new pass is unvalidated against false positives, manual-test-planning keeps an unconditional two-agent pipeline, and the discriminating-power answer is a prediction rather than an executed mutation test.

Records the evidence, root cause, and correction plan for the three
findings in #148: automated-test-planning runs its full
pipeline regardless of question scope, the test analysis agents can only
argue a deferral from coverage location, and the readability editor does
not check its own insertions against the voice blocklist.

Carries 20 evidence items and 11 adversarial validation findings. Four of
those findings corrected the plan before implementation.
…sked

The skill classified nothing, so a narrow yes/no question ran the same
pipeline as a whole-branch analysis: up to seven agent dispatches, a
nine-section document, and two reviewers over it.

Adds a size band with the same shape code-review and iterative-plan-review
already use. Small defaults to focused mode: one agent, no conditional
specialists, no reviewers, and a prose answer instead of the template.
Medium and large are unchanged.

Classification reads the user's request before Step 1's file list, because
Step 1 falls back to the whole changed-files list when no scope is named,
and that describes the branch rather than the question. Step 3's
behavioral, prerequisite, and YAGNI sweeps run in both modes, so a focused
answer is shorter without being less filtered.

Registers the skill in docs/sizing.md alongside the other sizing-aware
skills.
test-engineer could justify skipping a proposed test only by pointing at
coverage elsewhere or at brittleness risk. Neither survives a reader who
grants the path is reachable and asks what the new assertion would add.
edge-case-explorer had the same gap, with "sufficient" left undefined.

test-engineer gains a fifth evaluation axis: name a specific weakening of
the code under test, predict which existing tests fail under it, and defer
only when an existing test already catches everything the candidate would.
Adds a Redundant Kill Set anti-pattern, a required Discriminating power
field on every deferred item, and a rule against deferring on coverage
location alone.

edge-case-explorer now defines sufficient: a test is sufficient for an edge
case only when it fails under a change that breaks that case.

Neither agent has a test runner, so both state that the answer is a
prediction from reading assertions and must name the test and assertion it
came from.

The canonical YAGNI rule is left untouched. It is written for committed
items generally and is vendored byte-identically into five plugins, while
this reasoning is test-specific.
The editor's only post-rewrite step confirmed facts survived. Its blocklist
criterion governed the draft it audited, never the sentences it wrote, so
the rewrite was the one place a fresh voice violation could originate and
the one place with no voice check.

Three planning skills tell the caller not to walk the self-check over the
editor's output, and one skill runs no independent check at all, so a
violation the editor introduces can reach the reader.

Adds a step 4 that re-reads only the sentences the editor rewrote or
inserted against the vocabulary blocklist and the em-dash positions, plus a
line in the returned report. The pass corrects named violations only and
leaves compliant wording alone, so a legal appositive em-dash survives it.
@mxriverlynn
mxriverlynn force-pushed the gh-148-automated-test-planning branch from b0dd64a to 6327462 Compare September 9, 2026 14:25
@mxriverlynn
mxriverlynn marked this pull request as ready for review September 9, 2026 14:26
@mxriverlynn
mxriverlynn merged commit 986fe64 into v5.5.0-beta Sep 9, 2026
2 checks passed
@mxriverlynn
mxriverlynn deleted the gh-148-automated-test-planning branch September 9, 2026 14:26
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.

1 participant