@hegemonart/get-design-done 1.39.2 → 1.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +79 -0
- package/README.md +8 -0
- package/SKILL.md +3 -0
- package/agents/conflict-resolver.md +80 -0
- package/agents/decision-journal-exporter.md +68 -0
- package/agents/design-reflector.md +2 -0
- package/agents/pr-commenter.md +1 -0
- package/package.json +2 -1
- package/reference/DEPRECATIONS.md +40 -0
- package/reference/STATE-TEMPLATE.md +3 -0
- package/reference/config-schema.md +19 -0
- package/reference/multi-author-model.md +112 -0
- package/reference/registry.json +7 -0
- package/reference/schemas/config.schema.json +37 -0
- package/reference/schemas/generated.d.ts +50 -0
- package/scripts/lib/collab/attribution.cjs +83 -0
- package/scripts/lib/collab/cycle-mode.cjs +41 -0
- package/scripts/lib/collab/lock-policy.cjs +37 -0
- package/scripts/lib/collab/permissions.cjs +53 -0
- package/scripts/lib/collab/review-queue.cjs +64 -0
- package/scripts/lib/collab/section-merge.cjs +77 -0
- package/scripts/lib/collab/sync-backend.cjs +36 -0
- package/scripts/lib/deprecation-registry.cjs +99 -0
- package/skills/migrate/SKILL.md +70 -0
- package/skills/review-decisions/SKILL.md +42 -0
- package/skills/unlock-decision/SKILL.md +54 -0
- package/skills/update/SKILL.md +18 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gdd-unlock-decision
|
|
3
|
+
description: "Reopens a LOCKED design decision — the only escape hatch from the hard lock. Requires an explicit --approver and writes an audit entry, then moves the decision locked → reviewing (via scripts/lib/collab/review-queue.cjs). Previews the audit record before writing; never unlocks silently. Use when a locked decision genuinely must change (a later constraint invalidated it) and a reviewer has signed off."
|
|
4
|
+
argument-hint: "<decision-id> --approver <who> [--reason <text>] [--dry-run]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
tools: Read, Write, Bash, Grep, Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /gdd:unlock-decision
|
|
10
|
+
|
|
11
|
+
A `locked` decision is hard — it cannot be amended. This skill is the **only** way back, and it is
|
|
12
|
+
deliberately heavyweight: it requires a named approver and records an audit entry, so reopening a
|
|
13
|
+
locked decision is always traceable. Contract: `../../reference/multi-author-model.md`.
|
|
14
|
+
|
|
15
|
+
## Invocation
|
|
16
|
+
|
|
17
|
+
| Command | Behavior |
|
|
18
|
+
|---|---|
|
|
19
|
+
| `/gdd:unlock-decision <id> --approver <who>` | Unlock `<id>` (locked → reviewing), recording the approver. |
|
|
20
|
+
| `/gdd:unlock-decision <id> --approver <who> --reason <text>` | Same, with a reason in the audit entry. |
|
|
21
|
+
| `/gdd:unlock-decision <id> --dry-run` | Preview the audit record + the resulting state; change nothing. |
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
1. **Validate args.** `<decision-id>` required; `--approver` required (a non-empty name). Missing
|
|
26
|
+
`--approver` → print the usage + exit without changing anything.
|
|
27
|
+
2. **Load the entry** from `.design/reviews/<decision-id>/state.json`. Not found → report it. Not in
|
|
28
|
+
`locked` state → print `unlock-decision: <id> is not locked (state: <state>); nothing to unlock.`
|
|
29
|
+
3. **Preview.** Show the audit entry that will be appended (`{ action: unlock, from: locked, to:
|
|
30
|
+
reviewing, approver, reason }`) and the resulting state. If `--dry-run`, stop here.
|
|
31
|
+
4. **Apply** via the pure helper:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
node -e '
|
|
35
|
+
const fs = require("fs");
|
|
36
|
+
const rq = require("./scripts/lib/collab/review-queue.cjs");
|
|
37
|
+
const p = process.argv[1], approver = process.argv[2], reason = process.argv[3] || "";
|
|
38
|
+
const entry = JSON.parse(fs.readFileSync(p, "utf8"));
|
|
39
|
+
const next = rq.unlock(entry, { approver, reason });
|
|
40
|
+
fs.writeFileSync(p, JSON.stringify(next, null, 2) + "\n");
|
|
41
|
+
console.log(JSON.stringify(next.audit[next.audit.length - 1]));
|
|
42
|
+
' ".design/reviews/<id>/state.json" "<who>" "<reason>"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
5. **Report** the new state + the recorded approver. The decision is now `reviewing` and amendable
|
|
46
|
+
again; it must be re-reviewed + re-locked to become durable.
|
|
47
|
+
|
|
48
|
+
## Output
|
|
49
|
+
|
|
50
|
+
End with:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
## UNLOCK-DECISION COMPLETE
|
|
54
|
+
```
|
package/skills/update/SKILL.md
CHANGED
|
@@ -23,6 +23,24 @@ Updates the `get-design-done` plugin to the latest release (or a specific tag),
|
|
|
23
23
|
|
|
24
24
|
> Run `/gdd:reapply-patches` if you have customized any `reference/` files to restore your modifications.
|
|
25
25
|
|
|
26
|
+
7.5. **Deprecation advisory** (Phase 39.5) — load the path-migration registry and report anything that
|
|
27
|
+
crossed into `deprecated` or `removed` over the `[prevVersion → currentVersion]` window:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
node -e '
|
|
31
|
+
const fs = require("fs");
|
|
32
|
+
const dr = require("./scripts/lib/deprecation-registry.cjs");
|
|
33
|
+
const entries = dr.parseDeprecations(fs.readFileSync("reference/DEPRECATIONS.md","utf8"));
|
|
34
|
+
const crossed = entries.filter(e =>
|
|
35
|
+
dr.classify(e, currentVersion) !== "pending" &&
|
|
36
|
+
(prevVersion == null || dr.classify(e, prevVersion) !== dr.classify(e, currentVersion)));
|
|
37
|
+
console.log(JSON.stringify(crossed));
|
|
38
|
+
'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If any entry crossed, print a `## Deprecations in this update` list (old → new + status) and point
|
|
42
|
+
the user at **`/gdd:migrate`** to rewrite their local references. If none crossed, say nothing.
|
|
43
|
+
|
|
26
44
|
8. Print the new version and the changelog URL (`https://github.com/hegemonart/get-design-done/releases`).
|
|
27
45
|
|
|
28
46
|
## Output
|