docs(planning): de-slop instruction surfaces (0.34.1) - #3105
Conversation
|
Claude finished @kyle-sexton's task in 56s —— View job Security review —
|
|
Last security-reviewed head: |
|
Claude finished @kyle-sexton's task in 3m 21s —— View job Code review in progress
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4605d64641
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude has reviewed this PR 5 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
|
I'll analyze this and get back to you. |
No linked issue ## Summary Third #2891 de-slop shard: purge em dashes from the `work-items` plugin instruction surfaces (next-worst cluster after `planning` and `session-flow`). ## Fix Rewrote `plugins/work-items/README.md` and every `plugins/work-items/**/SKILL.md` under `/ai-slop:audit fix` semantics (periods, commas, or a restructured sentence; never parentheses, en dashes, or a spaced hyphen as a stand-in). Meaning-preserving self-audit repaired multi-line paired asides the mechanical pass split. The generated options block is ignore-fenced; its shared template is a later shard. One quoted auto-invocation trigger (`the spec changed — redo the tickets`) keeps its em dash so skill-quality does not treat the rewrite as a dropped trigger. `work-items` 0.39.13. Cheatsheet refreshed for the rewritten `ship` summary. ## Verification - session-flow/planning shards are separate PRs (#3105, #3106) - Detector on this cluster: 1 remaining `rule-em-dash` (the required trigger phrase), 49 declined (generated-options fence plus fenced/inline-code protocol spans) - `CHECK_SKILL_SKIP_MARKDOWNLINT=1 bash scripts/check-changed-skills.sh origin/main`: 10 skills, 0 failed - `bash plugins/work-items/skills/work/scripts/preflight.test.sh`: 99 checks passed - `bash plugins/work-items/tests/no-hardcoded-priority-scheme.test.sh`: 6 passed - `python3 scripts/sync-plugin-options-docs.py --check` up to date - `scripts/check-changelog-parity.sh --check-bump origin/main` passes #2891 stays open. Next cluster after this is `source-control`. ## Related Refs #2891 --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
|
No description provided. |
|
Taking over from expired work-item-lease held by session |
|
Genuine merge conflict, confirmed via Not attempting an unattended fix here: resolving Escalating for a human or push-capable session: |
|
This was generated by AI during triage. Triage verification — PR #3105Checked out the PR head ( Content claim: verified. Spot-checked
Blocking finding — version collision.
This blocks merge as-is and needs a rebase + renumber before adoption. Agent BriefType: Task (documentation/instruction-surface hygiene, part of #2891) Current behavior of the diff: The branch bumps the Finish-what-exists: Rebase (or merge) the branch onto current Key interfaces:
Acceptance criteria:
Out of scope:
|
Fifth #2891 de-slop shard: purge em dashes from the claude-config plugin instruction surfaces, the next-worst cluster after session-flow (#3106), planning (#3105), work-items (#3107) and source-control (#3108). Rewrote README.md and all ten SKILL.md files under /ai-slop:audit fix semantics: periods, commas, a colon before a list, or a restructured sentence. Never parentheses, en dashes, or a spaced hyphen, since each of those is the same interruption wearing a different mark. Two review rounds on the PR caught seven places where a paired em dash had become parentheses and two doubled-connective run-ons; all were restructured. Rebased onto 0.39.0. That release restructured audit-instructions/SKILL.md (moving the Phase D state-key block to context/report-keying.md) and added --persist-findings, so this shard re-applies to the new text rather than reverting it: the flag, its Phase D paragraph, and both context/ spokes are retained, with the em dashes in the new prose purged in the same style. context/ files stay out of scope, matching #2891's target set and every prior shard. Frontmatter description and argument-hint values are rewritten too. No quoted auto-invocation trigger phrase contained an em dash, so no trigger changed. Verification (this repo's .claude/ai-slop.json disables rule-em-dash corpus-wide, so the detector runs against an isolated HOME and CLAUDE_PROJECT_DIR to force the rule on): - detect.sh over the 11 shard files: 482 findings -> 0, every other rule also 0 - no en dash or spaced hyphen introduced; the four en dashes in the diff are pre-existing numeric ranges (I1-I28, I1-I5, 3-5 lanes) - check-changelog-parity.sh --check and --check-bump origin/main: pass - CHECK_SKILL_SKIP_MARKDOWNLINT=1 check-changed-skills.sh origin/main: 10 skills, 0 errors, every base-ref trigger phrase preserved - markdownlint-cli2 over the 12 changed files: 0 issues - audit-instructions/SKILL.md is 483 lines, under the 500-line cap Pre-existing and not from this diff: three audit-permission-state script suites fail identically on a clean origin/main worktree in this environment. This shard touches no script. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tu5t8rYWv2kDzRcdmLE2ro
Fifth #2891 de-slop shard: purge em dashes from the claude-config plugin instruction surfaces, the next-worst cluster after session-flow (#3106), planning (#3105), work-items (#3107) and source-control (#3108). Rewrote README.md and all ten SKILL.md files under /ai-slop:audit fix semantics: periods, commas, a colon before a list, or a restructured sentence. Never parentheses, en dashes, or a spaced hyphen, since each of those is the same interruption wearing a different mark. Two review rounds on the PR caught seven places where a paired em dash had become parentheses and two doubled-connective run-ons; all were restructured. Rebased across two releases that landed on main mid-review, in both cases re-applying to the newer text rather than reverting it: - 0.39.0 (#3176) restructured audit-instructions/SKILL.md, moving the Phase D state-key block to context/report-keying.md and adding --persist-findings. The flag, its Phase D paragraph, and both context/ spokes are retained. - 0.39.1 (#3178) normalized setup/SKILL.md and audit-instructions/SKILL.md to canonical fleet SSOT wording with PLUGIN-PHILOSOPHY citations. That wording and those citations are kept verbatim; only their punctuation is de-slopped. context/ files stay out of scope, matching #2891's target set and every prior shard. Frontmatter description and argument-hint values are rewritten too. No quoted auto-invocation trigger phrase contained an em dash, so no trigger changed. Verification (this repo's .claude/ai-slop.json disables rule-em-dash corpus-wide, so the detector runs against an isolated HOME and CLAUDE_PROJECT_DIR to force the rule on): - detect.sh over the 11 shard files: 0 findings, every rule clean - no en dash or spaced hyphen introduced; the four en dashes in the diff are pre-existing numeric ranges (I1-I28, I1-I5, 3-5 lanes) - check-changelog-parity.sh --check and --check-bump origin/main: pass - CHECK_SKILL_SKIP_MARKDOWNLINT=1 check-changed-skills.sh origin/main: 10 skills, 0 errors, every base-ref trigger phrase preserved - markdownlint-cli2 over the 12 changed files: 0 issues - audit-instructions/SKILL.md is 484 lines, under the 500-line cap Pre-existing and not from this diff: three audit-permission-state script suites fail identically on a clean origin/main worktree in this environment. This shard touches no script. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tu5t8rYWv2kDzRcdmLE2ro
|
🔧 Lane claim — melo-lap-001-merge-20260823T045045Z (conflict-batch coordinator) Claiming this PR to diagnose and attempt conflict resolution ( |
|
Claude finished @kyle-sexton's task in 1m 16s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 10m 22s —— View job Code review
SummaryThis shard's stated goal is a meaning-preserving em-dash purge, with the PR body explicitly claiming a "self-audit repaired clauses the first pass split." That claim doesn't hold up: the mechanical em-dash→period substitution was frequently applied to em-dash pairs that set off a parenthetical aside or a mid-sentence list (not two independent clauses). Splitting those on periods produces genuinely ungrammatical fragments, several with a dangling verb and no subject. Because these are Posted 7 representative inline comments (one per affected file) with suggested fixes, plus a whitespace nit in the CHANGELOG. The pattern recurs beyond those anchors — full list below so nothing gets lost:
No breaks found in Other notes
|
|
Claude finished @kyle-sexton's task in 6m 5s —— View job Code review
SummaryCommit 1. Previously named but still unfixed (6 locations). The last round's summary comment listed these in its bullet list, not just in the 7 anchored inline comments, and they didn't get picked up in the fix:
Three of these files ( 2. New instances the last review round didn't catch, same files it did fix elsewhere:
Posted all 12 as inline comments with Confirmed clean from the last round's list (no regressions found): Not independently verified in this pass (author/triage-claimed): the PASS/FAIL counts for |
No linked issue ## Summary Fourth #2891 de-slop shard: purge em dashes from the `source-control` plugin instruction surfaces (next-worst cluster after planning, session-flow, and work-items). ## Fix Rewrote `plugins/source-control/README.md` and every `plugins/source-control/**/SKILL.md` under `/ai-slop:audit fix` semantics (periods, commas, or a restructured sentence; never parentheses, en dashes, or a spaced hyphen as a stand-in). Meaning-preserving self-audit repaired multi-line paired asides. The generated options block is ignore-fenced. Protocol strings in fences and inline code stay as written. `source-control` 0.54.17. Cheatsheet refreshed for the rewritten summary. ## Verification - Detector: 0 `rule-em-dash` findings, 76 declined (generated-options fence plus fenced/inline-code protocol spans) - `python3 -m unittest` `test_skill_contract`: 25 tests OK - `python3 scripts/sync-plugin-options-docs.py --check` up to date - `scripts/check-changelog-parity.sh --check-bump origin/main` passes - Quoted trigger phrases vs origin/main: none lost #2891 stays open. Prior shards: #3105 planning, #3106 session-flow, #3107 work-items. ## Related Refs #2891 --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @cursor[bot]'s task in 2m 6s —— View job Code review
SummaryCommit
The commit also caught two same-pattern breaks in No new em dashes, en dashes, or spaced-hyphen substitutes were introduced by these fixes (confirmed by diffing the added lines against No remaining findings. This closes out the fragment-sentence issue this shard's review thread has been tracking across three rounds. Not independently verified in this passThis sandbox has no execution path for Branch: |
|
Follow-up |
Pull request was closed
4f0bcb6 to
6746622
Compare
|
Claude finished @kyle-sexton's task in 53s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 4m 33s —— View job Code review
SummaryThis branch is now squashed to a single commit ( New findings (2), both the same em-dash-pair→period-split bug pattern as before, in files the prior 4 review rounds didn't examine because they only looked at
Not independently verified in this passThis sandbox has no execution path for the named verification commands ( Branch: |
No linked issue ## Summary Fifth #2891 de-slop shard: purge em dashes from the `claude-config` plugin instruction surfaces, the next-worst cluster after `session-flow` (#3106), `planning` (#3105), `work-items` (#3107) and `source-control` (#3108). #2891 stays open; ranked by em-dash lines over non-vendor instruction surfaces, the next unclaimed cluster after this one is `discipline` (468), then `claude-ops` (336). ## Fix Rewrote `README.md` and all ten `SKILL.md` files under `/ai-slop:audit fix` semantics: em dashes become periods, commas, a colon before a list, or a restructured sentence. Never parentheses, en dashes, or a spaced hyphen, since each of those is the same interruption wearing a different mark. A self-review against that guardrail caught seven places where a paired em dash had become parentheses in this very diff — four frontmatter `description` values (`audit`, `audit-instructions`, `audit-automation-gaps`, `audit-prompting-postures`) and three inline spots (`setup`'s required-keys list, `audit-instructions`' I8-family list and its discover-instruction-surfaces population, `audit-pass`' exclusion-set aside). All seven were restructured to commas, a colon, or a sentence break; the net parenthesis delta across the diff is -1. Frontmatter `description` and `argument-hint` values are rewritten too. No quoted auto-invocation trigger phrase contained an em dash, so no trigger changed. `claude-config` 0.38.10. Wording only: no check, phase, gate, lane, contract, or script changed. ## Verification This repo's `.claude/ai-slop.json` disables `rule-em-dash` corpus-wide (a deliberate house-style decision, #3031), so every detector run below pins `HOME` and `CLAUDE_PROJECT_DIR` to empty directories to lift that config and force the rule on — the same isolation the detector's own test suite uses. - `detect.sh` over the 11 shard files: **482 `rule-em-dash` findings to 0**, with every other rule also reporting 0. - No en dash or spaced hyphen introduced; net parenthesis delta -1. - `scripts/check-changelog-parity.sh --check` and `--check-bump origin/main`: pass. - `CHECK_SKILL_SKIP_MARKDOWNLINT=1 bash scripts/check-changed-skills.sh origin/main`: 10 skills, 0 errors. It confirms every base-ref trigger phrase is preserved on all ten. One soft warning (`unhobble` at 201 lines against a 200-line target) is pre-existing. - `markdownlint-cli2` over the 12 changed files: 0 issues. - `node scripts/generate-cheatsheet.mjs`: already in sync — no `metadata.summary` value changed, so unlike the `work-items` shard this one needs no cheat-sheet refresh. - `python3 scripts/sync-plugin-options-docs.py --check`, `typos`, `editorconfig-checker`: pass. - `origin/main` merged into the branch before this PR; no conflicts, and the two new main commits (#3115, #3116) touch no `claude-config` file. **Pre-existing failure, not from this diff.** Three `audit-permission-state` script suites fail in this environment: `permission-merge` 19/51, `automode-entry-diff` 3/63, `managed-conformance` 1/37. They fail with identical counts on a clean `origin/main` worktree, and this shard touches no script. Flagging rather than fixing, since diagnosing them is out of scope here. ## Related - Refs #2891 — the de-slop campaign this shard advances; stays open for the remaining clusters. - Refs #3105, #3106, #3107, #3108 — the sibling instruction-surface shards. - Refs #3031 — the measurement and decision that disabled `rule-em-dash` corpus-wide, which is why the verification runs force the rule back on rather than trusting a default run. **Deferred finding, deliberately not fixed here: manifest `description` fields are outside the campaign's scope definition.** Review flagged that `plugins/claude-config/.claude-plugin/plugin.json` still carries 5 em dashes in its marketplace-facing `description`. That is correct, and it is a gap in #2891's own scoping rather than in this shard: the issue defines the target set as "every `SKILL.md`, plugin READMEs, `AGENTS.md`, root `README`", which does not include `plugin.json`. The merged `work-items` shard (#3107) touched its manifest for the version bump only, so every shipped shard carries the same gap. Measured across the marketplace: **47 plugins** have em dashes in their manifest `description`, led by `discipline` (14), `claude-ops` (12) and `session-flow` (11). Fixing only `claude-config` here would leave the shard series internally inconsistent while resolving 5 of ~120 occurrences, so this belongs to a campaign-level decision on #2891 about whether manifest descriptions join the target set, not to this PR. Recorded here so it is not lost. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Tu5t8rYWv2kDzRcdmLE2ro --- _Generated by [Claude Code](https://claude.ai/code/session_01Tu5t8rYWv2kDzRcdmLE2ro)_ --- _Generated by [Claude Code](https://claude.ai/code)_
No linked issue ## Summary Second #2891 de-slop shard: purge em dashes from the `session-flow` plugin instruction surfaces (next-worst cluster after `planning`). ## Fix Rewrote `plugins/session-flow/README.md` and every `plugins/session-flow/**/SKILL.md` under `/ai-slop:audit fix` semantics (periods, commas, or a restructured sentence; never parentheses, en dashes, or a spaced hyphen as a stand-in). Meaning-preserving self-audit repaired paired-aside and subjectless clauses the first pass split. The generated options block is ignore-fenced; its shared template is a later shard. Protocol strings that producers emit or consumers match stay inside fences and inline code (`Re-arm <i> of <n> — <L> lines:`, the fenced `ORCHESTRATION BRIEF` title, the workflow glance map). `session-flow` 0.32.4. ## Verification - `CLAUDE_PROJECT_DIR` plus a gitignored overlay that re-enables `rule-em-dash`: session-flow instruction surfaces go from 658 findings to 0 (48 declined inside the generated-options ignore fence and protocol/fence spans). - `bash plugins/session-flow/skills/running-retro/scripts/observer.test.sh` 72 tests OK - `bash plugins/session-flow/skills/retro/scripts/parse-transcript.test.sh` 12 tests OK - `bash plugins/session-flow/skills/keep-going/scripts/check-usage-limit-reset.test.sh` passes - `python3 scripts/sync-plugin-options-docs.py --check` up to date - `scripts/check-changelog-parity.sh --check-bump origin/main` passes Instruction-surface remainder on origin/main after this shard: 7972 `rule-em-dash` plus 19 other script tells (10 triad, 3 negative-parallelism, 4 chatbot, 2 filler). #2891 stays open. Shard 1 is `planning` (#3105). ## Related Refs #2891
| | [`/planning:brainstorm`](../plugins/planning/skills/brainstorm/SKILL.md) | `planning` | Diverge into codebase-grounded candidate approaches before scoping | | ||
| | [`/planning:interview`](../plugins/planning/skills/interview/SKILL.md) | `planning` | Interview in frontier rounds until the task contract is locked | | ||
| | [`/planning:prd`](../plugins/planning/skills/prd/SKILL.md) | `planning` | Lock product intent — problem, users, success metrics — before planning | | ||
| | [`/planning:prd`](../plugins/planning/skills/prd/SKILL.md) | `planning` | Lock product intent. Problem, users, success metrics. Before planning | |
There was a problem hiding this comment.
Broken table-cell prose from the same em-dash→period substitution bug the rest of this shard's review thread has been tracking. The original used an em-dash pair as a parenthetical aside: Lock product intent — problem, users, success metrics — before planning. Splitting on periods inside a single-line table cell produces three sentence fragments with no closing punctuation on the last one: "Lock product intent. Problem, users, success metrics. Before planning". This file (docs/SKILL-CHEAT-SHEET.md) is outside plugins/planning/skills/*/SKILL.md, so it wasn't covered by the prior review rounds that fixed this same pattern there.
| | [`/planning:prd`](../plugins/planning/skills/prd/SKILL.md) | `planning` | Lock product intent. Problem, users, success metrics. Before planning | | |
| | [`/planning:prd`](../plugins/planning/skills/prd/SKILL.md) | `planning` | Lock product intent, problem, users, success metrics, before planning | |
| Write this repo's prose to | ||
| `plugins/ai-slop/skills/audit/reference/rewrite-guide.md`. |
There was a problem hiding this comment.
Ambiguous/likely-broken instruction. "Write this repo's prose to plugins/ai-slop/skills/audit/reference/rewrite-guide.md." most naturally parses as "output this repo's prose into that file" (like write X to a file), which isn't the intended meaning — the file is a style reference to write according to, not a target to write into. This is a brand-new agent-read rule file (.claude/rules/**), so the ambiguity is functional, not just cosmetic, the same standard the rest of this review thread applied to the SKILL.md fragments.
| Write this repo's prose to | |
| `plugins/ai-slop/skills/audit/reference/rewrite-guide.md`. | |
| Write this repo's prose per the guidance in | |
| `plugins/ai-slop/skills/audit/reference/rewrite-guide.md`. |

No linked issue
Summary
First #2891 de-slop shard: purge em dashes from the
planningplugin instruction surfaces (worst-first cluster) and add the vendor-docs anti-contamination rule.Fix
Rewrote
plugins/planning/README.mdand everyplugins/planning/**/SKILL.mdunder/ai-slop:audit fixsemantics (periods, commas, or a restructured sentence; never parentheses, en dashes, or a spaced hyphen as a stand-in). Meaning-preserving self-audit repaired clauses the first pass split. The generated options block is ignore-fenced; its shared template is a later shard.planning0.34.1.tests/interview-defenses.test.shpins were retargeted onto the rewritten defense lines. New.claude/rules/vendor-docs-are-not-style.mdtells sessions not to copy vendored formatting.Verification
CLAUDE_PROJECT_DIR=/tmp/wt-2891-shard1plus a gitignored overlay that re-enablesrule-em-dash: planning instruction surfaces go from 541 findings to 0 (43 declined inside the generated-options ignore fence).bash plugins/planning/tests/interview-defenses.test.shPASS=89 FAIL=0bash plugins/planning/tests/standards-binding.test.shPASS=9 FAIL=0bash plugins/planning/scripts/goal-condition-length.test.shandcheck-open-questions.test.shpasspython3 scripts/sync-plugin-options-docs.py --checkup to datescripts/check-changelog-parity.sh --check-bump origin/mainpassesInstruction-surface remainder after this shard: 8090
rule-em-dashplus 19 other script tells (10 triad, 3 negative-parallelism, 4 chatbot, 2 filler). #2891 stays open.Related
Refs #2891