Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
7c7ef72
fix: merge-completeness gate treats a squash that holds the branch's …
kiki830621 Oct 21, 2026
d27c474
chore: record the #399 attachments manifest
kiki830621 Oct 21, 2026
364ab2e
docs: describe the containment step of the merge-completeness gate (#…
kiki830621 Oct 21, 2026
66791a6
chore: release 3.5.1 (#399)
kiki830621 Oct 21, 2026
82c6aea
fix: merge-completeness verify round 1 — no false clean on revert, si…
kiki830621 Oct 21, 2026
9f78f83
fix: merge-completeness checks lines at the commit where the branch l…
kiki830621 Oct 21, 2026
28ae3f6
fix: merge-completeness finds where the branch landed, not a later co…
kiki830621 Oct 21, 2026
13e1b61
fix: merge-completeness walks forward to the earliest landing commit …
kiki830621 Oct 21, 2026
d57f43a
fix: merge-completeness reads bytes, keeps CR paths, and spots piecew…
kiki830621 Oct 21, 2026
d4b4cf8
fix: merge-completeness lists unlanded deletions and stops escaping i…
kiki830621 Oct 21, 2026
90b9efc
docs: merge-completeness names the defenses no fixture pins (#399)
kiki830621 Oct 21, 2026
4e9babe
fix: merge-completeness checks deletions commit by commit (#399)
kiki830621 Oct 24, 2026
fc4842e
fix: merge-completeness compares the landing commit with a clean merg…
kiki830621 Oct 24, 2026
ce6b541
fix: merge-completeness checks each commit in place at the landing co…
kiki830621 Oct 25, 2026
6e0c36e
fix: merge-completeness compares by two-way diffs, position by positi…
kiki830621 Oct 27, 2026
83310e1
fix: merge-completeness checks the head against the tip first and pin…
kiki830621 Oct 29, 2026
e9e83d2
fix: merge-completeness reads NFD names, gitlinks and renames, and ke…
kiki830621 Oct 29, 2026
1480ad8
fix: merge-completeness follows moved files at the tip and counts cop…
kiki830621 Oct 30, 2026
79a0b9e
fix: merge-completeness keys each diff record by its own side's file …
kiki830621 Oct 31, 2026
1cfb2de
fix: merge-completeness follows each file commit by commit (#399)
kiki830621 Oct 31, 2026
2376f6e
fix: merge-completeness reads main's files by what landed (#399)
kiki830621 Nov 1, 2026
eedd008
fix: merge-completeness converges on the shapes the files settle (#399)
kiki830621 Nov 1, 2026
7efdc27
fix: merge-completeness reads files by path and leaves moves unjudged…
kiki830621 Nov 1, 2026
84baa09
fix: merge-completeness sees moves git pairs on a broken rewrite (#399)
kiki830621 Nov 1, 2026
28e6cb1
fix: merge-completeness drops -B and counts only moves that change wh…
kiki830621 Nov 2, 2026
f264217
fix: merge-completeness reads rarer moves by path as known limits (#399)
kiki830621 Nov 2, 2026
a5a6480
fix: merge-completeness keeps a commit back at the merge-base value l…
kiki830621 Nov 2, 2026
863d8f9
fix: merge-completeness never clears a commit that sets lines back (#…
kiki830621 Nov 2, 2026
16d9416
fix: merge-completeness reads real names and skips blank lines in set…
kiki830621 Nov 2, 2026
1349e71
fix: merge-completeness drops the set-back guard, a known limit (#399)
kiki830621 Nov 2, 2026
80c0785
fix: merge-completeness pins diff indicators and states the remaining…
kiki830621 Nov 2, 2026
9ff3fee
fix: merge-completeness refuses old git in a partial clone before res…
kiki830621 Nov 3, 2026
82053ae
chore: merge main into the #399 branch (#399)
kiki830621 Nov 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"plugins": [
{
"name": "issue-driven-dev",
"version": "3.5.0",
"description": "v3.5.0: `/idd-edit --correct` replaces wrong issue content you wrote, in place — a whole comment or one section, the issue body via `issue:<N> --section` — after confirmation, archiving the prior text where git and Claude's tools cannot reach it (`.git/info/exclude`, mode 0000, PreToolUse read guard); verify / diagnose / reorganize propose corrections; `idd-comment --type errata` routes by author. Every /idd-edit mode now runs as helper steps (run-start, prepare, apply or discard, finish). BREAKING: for --append / --replace / --prepend-note a declined preview exits 9, a failed write 4, an unconfirmed write 7 (all were 0), and backups move to idd-edit-backup/ under your temp dir. BREAKING: `/idd-comment --type errata` on your own comment corrects it in place through `/idd-edit --correct` instead of posting an errata comment (it still posts one when the correction is refused or its write fails); anyone else's comment still gets an errata comment, and someone else's issue body takes `--type correction` (#351). v3.4.0: a type=meeting issue is no longer withheld by the actionability gate — the gate reads the type from the latest trusted Diagnosis (idd_diagnosis_type, --diagnosis-type; never from the author-editable issue body), and idd-all / idd-plan / idd-implement / idd-list route meeting on it; idd-diagnose adopts a body `## Type: meeting` only from a repository member, and idd-all stops a code run whose Diagnosis turns meeting before verify or push (#383). v3.3.0: before diagnosing or implementing, idd-all / idd-diagnose / idd-implement ask whether an open PR or an existing branch already addresses the issue (`scripts/check-existing-work.sh`, one call for every issue; verdict blocked / resume / unknown / clear) (#366). v3.2.0: idd-discuss captures explicitly selected human/AI conversations as append-only GitHub Discussion snapshots (#331). Stable topic/source IDs, payload fingerprints, shared egress checks, local locks and uncertain-write reconciliation protect retry behavior without promising distributed exactly-once or AI correctness. idd-ask adds bounded Discussion/comment/reply evidence alongside existing issue retrieval, with corpus selection and explicit partial-read reporting. Security repair #332 replaces delimiter and URL-prefix exemptions with maintained parsers and source-faithful checks. Runtime prerequisite: install scripts/requirements-egress.txt; missing/incompatible parser versions refuse egress. v3.1.1: `idd-issue --blocked-by` calls GitHub's real `addBlockedBy` mutation and prints GitHub's error verbatim (#353). v3.1.0: the actionability gate, rounds 2 to 7. Round 1 read `### Complexity` against a closed value domain that the repository's own 159 diagnoses refuted (66 real values wrongly refused) and shipped a three-signal gate no consumer called. Now the tier is the leading whole word (rationale, decoration and ` via` suffixes are legal), the whole line is scanned for a small deferral vocabulary (exit 5, reason `complexity-deferral-marker` — a parked state, not a defect), and `### Blocking` is read per bullet by a shared helper with a leading-token placeholder rule frozen against the repo's 55 real rows — 54 sections under CommonMark (54/55 agree with hand review; round 2 had withheld 30 of the 48 empty ones, #316 itself among them). idd-list / idd-all / idd-implement / idd-plan call the verdict with all three signals before any branch or comment, print it as a machine line plus a delimited raw block, and repeat the gate byte for byte where a later step routes on it (pinned by test). Fences follow CommonMark's two visibility rules; the reader's known divergences from CommonMark are listed with their direction and pinned, not claimed exhaustive. The placeholder rule does not depend on the locale or on a shell function named grep; the matchers that still follow the environment are listed with their measured directions (#336). Changes to the reader are gated: vocabulary rules move only toward withholding unless a named corpus row requires the change; structural rules (headings, fences, bullets, trimming, and the locale of their matchers) are frozen until a requirement names the oracle they converge on (#336). idd-list gains Parked and Needs-diagnosis groups; the #84 blocked surface is preserved verbatim.",
"version": "3.5.1",
"description": "v3.5.1: idd-close's merge-completeness gate no longer flags the commits of a squash-merged branch whose lines a later branch commit rewrote — it stops at once when main's tip already has the head's content, and otherwise finds the baseline commit where the branch landed and checks each commit's effects there in their own place, by two-way diffs that read files by path (no merges, so main's own edits elsewhere, even on the next line, neither hide nor flag a commit unless that line is identical to the commit's; a line is reported there only when its copies agree too; git 2.30 or later, as 3.5.0 already required); a follow-up commit on the same lines no longer trips it, except in the shapes the CHANGELOG lists as falling back to the tip, reverts after landing are out of scope, and dropped deletions are now reported too; a first PR's commits are no longer flagged after GitHub's Update branch and a second PR; a branch whose files git records as moved is not judged (exit 4, shown as a note), unless main's tip already has the head's content there; other limits are in the CHANGELOG (#399). v3.5.0: `/idd-edit --correct` replaces wrong issue content you wrote, in place — a whole comment or one section, the issue body via `issue:<N> --section` — after confirmation, archiving the prior text where git and Claude's tools cannot reach it (`.git/info/exclude`, mode 0000, PreToolUse read guard); verify / diagnose / reorganize propose corrections; `idd-comment --type errata` routes by author. Every /idd-edit mode now runs as helper steps (run-start, prepare, apply or discard, finish). BREAKING: for --append / --replace / --prepend-note a declined preview exits 9, a failed write 4, an unconfirmed write 7 (all were 0), and backups move to idd-edit-backup/ under your temp dir. BREAKING: `/idd-comment --type errata` on your own comment corrects it in place through `/idd-edit --correct` instead of posting an errata comment (it still posts one when the correction is refused or its write fails); anyone else's comment still gets an errata comment, and someone else's issue body takes `--type correction` (#351). v3.4.0: a type=meeting issue is no longer withheld by the actionability gate — the gate reads the type from the latest trusted Diagnosis (idd_diagnosis_type, --diagnosis-type; never from the author-editable issue body), and idd-all / idd-plan / idd-implement / idd-list route meeting on it; idd-diagnose adopts a body `## Type: meeting` only from a repository member, and idd-all stops a code run whose Diagnosis turns meeting before verify or push (#383). v3.3.0: before diagnosing or implementing, idd-all / idd-diagnose / idd-implement ask whether an open PR or an existing branch already addresses the issue (`scripts/check-existing-work.sh`, one call for every issue; verdict blocked / resume / unknown / clear) (#366). v3.2.0: idd-discuss captures explicitly selected human/AI conversations as append-only GitHub Discussion snapshots (#331). Stable topic/source IDs, payload fingerprints, shared egress checks, local locks and uncertain-write reconciliation protect retry behavior without promising distributed exactly-once or AI correctness. idd-ask adds bounded Discussion/comment/reply evidence alongside existing issue retrieval, with corpus selection and explicit partial-read reporting. Security repair #332 replaces delimiter and URL-prefix exemptions with maintained parsers and source-faithful checks. Runtime prerequisite: install scripts/requirements-egress.txt; missing/incompatible parser versions refuse egress. v3.1.1: `idd-issue --blocked-by` calls GitHub's real `addBlockedBy` mutation and prints GitHub's error verbatim (#353). v3.1.0: the actionability gate, rounds 2 to 7. Round 1 read `### Complexity` against a closed value domain that the repository's own 159 diagnoses refuted (66 real values wrongly refused) and shipped a three-signal gate no consumer called. Now the tier is the leading whole word (rationale, decoration and ` via` suffixes are legal), the whole line is scanned for a small deferral vocabulary (exit 5, reason `complexity-deferral-marker` — a parked state, not a defect), and `### Blocking` is read per bullet by a shared helper with a leading-token placeholder rule frozen against the repo's 55 real rows — 54 sections under CommonMark (54/55 agree with hand review; round 2 had withheld 30 of the 48 empty ones, #316 itself among them). idd-list / idd-all / idd-implement / idd-plan call the verdict with all three signals before any branch or comment, print it as a machine line plus a delimited raw block, and repeat the gate byte for byte where a later step routes on it (pinned by test). Fences follow CommonMark's two visibility rules; the reader's known divergences from CommonMark are listed with their direction and pinned, not claimed exhaustive. The placeholder rule does not depend on the locale or on a shell function named grep; the matchers that still follow the environment are listed with their measured directions (#336). Changes to the reader are gated: vocabulary rules move only toward withholding unless a named corpus row requires the change; structural rules (headings, fences, bullets, trimming, and the locale of their matchers) are frozen until a requirement names the oracle they converge on (#336). idd-list gains Parked and Needs-diagnosis groups; the #84 blocked surface is preserved verbatim.",
"author": {
"name": "Che Cheng"
},
Expand Down
6 changes: 6 additions & 0 deletions .claude/.idd/attachments/issue-399/_manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"issue": 399,
"fetched_at": "2026-10-21T11:41:05Z",
"fetched_by": "idd-diagnose",
"files": []
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ A Claude Code plugin marketplace for the [Issue-Driven Development (IDD)](https:

| Plugin | Version | Purpose |
|--------|---------|---------|
| [`issue-driven-dev`](./plugins/issue-driven-dev) | 3.5.0 | Core IDD workflow — issue → diagnose → implement → verify → close. 19 skills(含 `/idd-all-chain` chain-solve 與 `idd-issue` multi-finding source mode for batch routing across new + existing issues from a single source document) + 8 rules + 28 references. |
| [`issue-driven-dev`](./plugins/issue-driven-dev) | 3.5.1 | Core IDD workflow — issue → diagnose → implement → verify → close. 19 skills(含 `/idd-all-chain` chain-solve 與 `idd-issue` multi-finding source mode for batch routing across new + existing issues from a single source document) + 8 rules + 28 references. |
| `idd-route` (coming) | 0.1.0 | Data-driven agent routing: recommends Codex / Claude Opus / Sonnet / Haiku per IDD issue based on observed track record. Wraps the [PsychQuant/idd-route-swift](https://github.com/PsychQuant/idd-route-swift) binary. |

## Installation
Expand Down
Loading
Loading