Skip to content

diu: one negative per sentence, rewritten as the positive action - #998

Merged
mergify[bot] merged 3 commits into
mainfrom
stack/EdbertChan/diu-one-negative-per-sentence/one-negative-per-sentence-rewritten-positive--5b1152c2
Sep 25, 2026
Merged

mergify[bot] merged 3 commits into
mainfrom
stack/EdbertChan/diu-one-negative-per-sentence/one-negative-per-sentence-rewritten-positive--5b1152c2

Conversation

@EdbertChan

@EdbertChan EdbertChan commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

The always-on writing rule now bans stacked negatives. "No longer queues a check it can never deliver" hides what happens behind two negatives.

The rule says one negative per sentence, rewritten as the positive action: "skips the check once the helper stops." It bites hardest in pull request titles and summaries.

Review Claim

Replies, titles, and summaries carry at most one negative per sentence; stacked "no longer / never" chains are rewritten as the positive action before sending.

Review Lane

behavior

Review Unit

product-skill

Safety Invariant

This slice changes only markdown rule text and a scenario fixture inside one skill, plus a unit test that pins the rule's presence. No hook, script, or gate executes the new sentences; the installed checkers (trigger mechanism, test coverage, three-harness, ecosystem boundaries) all pass against the edited text as it stands.

Slice Rationale

One skill, one new shape rule plus its pre-send check line and a scenario fixture — a single writing-rule change, so it ships alone rather than riding on an unrelated skill edit.

Non-goals

  • A mechanical checker that scans prose for stacked negatives — the reply checker's wording judge picks that up in the slice below this one.
  • Rewriting existing skill text that already contains stacked negatives.

Test Plan

Test Plan
  • python3 scripts/ci/check_skill_trigger_mechanism.py → ok skill trigger mechanism
  • python3 scripts/ci/check_skill_test_coverage.py → ok skill test coverage
  • python3 scripts/ci/check_skills_three_harnesses.py → ok skills three-harness check
  • python3 scripts/ci/check_ecosystem_boundaries.py → ok ecosystem boundaries
  • python3 scripts/ci/check_skill_trigger_policy.py → ok skill trigger policy
  • python3 scripts/ci/check_no_dated_provenance.py → ok no dated provenance
  • python3 -m unittest product.skills.diu.tests.test_stacked_negatives_rule -v → Ran 5 tests / OK
  • python3 engine/skills/make-pr/scripts/preflight.py --base origin/main --body-file /tmp/diu-pr-body.md → ok preflight passed

Revert Plan

Revert Plan
  • Safe to revert? Yes
  • Revert command: git revert <sha>
  • Post-revert steps: None — the rule is advisory prose; nothing executes it.
  • Data migration? No

Note

Low Risk
Markdown-only skill guidance and unittest assertions; nothing executes the new wording at runtime.

Overview
The diu always-on shape rules now require one negative per sentence, rewriting stacked chains like "no longer … never" into the positive action (especially for PR titles and summaries).

SKILL.md updates the front-matter description, adds Part 2 rule #9 with an example, and extends the pre-send checklist with item #6 for multi-negative sentences. A shape_example.md scenario fixture documents a bad PR title and the preferred rewrite. test_stacked_negatives_rule.py pins that the rule, positive-action wording, pre-send check, and fixture are present, and that the skill does not instruct retired escape-hatch markers.

Reviewed by Cursor Bugbot for commit c85151e. Bugbot is set up for automated code reviews on this repo. Configure here.

EdbertChan and others added 2 commits September 25, 2026 05:55
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Change-Id: Ib4246a96f735602edb0f105dea7adba11114e995
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Change-Id: I5b1152c2f0336b3149ee7290b71afdae13d88eb3
@EdbertChan

Copy link
Copy Markdown
Owner Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 diu-stop: judge flags a reply that stacks two negatives in one sentence #997
2 diu: one negative per sentence, rewritten as the positive action #998 👈

@cursor

cursor Bot commented Sep 24, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_58d91cae-27b8-45f3-8b39-6abab7196c50)

@EdbertChan
EdbertChan changed the base branch from stack/EdbertChan/diu-one-negative-per-sentence/diu-stop-judge-flags-reply-stacks-two-negatives--b4246a96 to main September 24, 2026 22:48
@mergify

mergify Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@EdbertChan

Copy link
Copy Markdown
Owner Author

Mergify repair stopped: required check failed: validate. The retry cap was reached for current head 01693ce.

Change-Id: I2b1b949b5eeb2e365a6ee8aff47e2c039bf7c9a6
@cursor

cursor Bot commented Sep 25, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_32b4a7da-03e5-41d6-a011-6b7f0b92ef0f)

@EdbertChan

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 19 minutes 28 seconds in the queue, including 18 minutes running CI.

Required conditions to merge
  • check-success = lint
  • check-success = test
  • check-success = validate

@mergify mergify Bot added the queued label Sep 25, 2026
@mergify
mergify Bot merged commit 3b0c4d9 into main Sep 25, 2026
7 checks passed
@mergify mergify Bot removed the queued label Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants