@davesheffer/hunch 1.18.0 → 1.18.1
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/README.md +5 -2
- package/dist/extractors/adrImport.js +15 -2
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -23,6 +23,9 @@ then a deterministic check of the change against the rules your team has explici
|
|
|
23
23
|
> relationships survive pre-render syntax without weakening fail-closed handling for ordinary
|
|
24
24
|
> invalid YAML.
|
|
25
25
|
|
|
26
|
+
Read the [v1.18 release story](https://hunch-pi.vercel.app/blog/post?slug=configuration-joins-the-graph)
|
|
27
|
+
for the graph semantics, chart boundaries, honest limits, and Oliver Sampson's contribution.
|
|
28
|
+
|
|
26
29
|
See the public [roadmap](ROADMAP.md) for what is next and what is deliberately out of scope.
|
|
27
30
|
|
|
28
31
|
## Start in five minutes
|
|
@@ -89,7 +92,7 @@ Git repo that every teammate can access, install the Matrix release on team mach
|
|
|
89
92
|
have one maintainer run:
|
|
90
93
|
|
|
91
94
|
```bash
|
|
92
|
-
npm i -g @davesheffer/hunch@1.18.
|
|
95
|
+
npm i -g @davesheffer/hunch@1.18.1
|
|
93
96
|
hunch shared --repo git@github.com:acme/project-hunch-memory.git
|
|
94
97
|
git add .gitignore .hunch/team.json
|
|
95
98
|
git commit -m "chore: connect shared Hunch memory"
|
|
@@ -104,7 +107,7 @@ printed by Hunch. Omit `--migrate` for a new setup.
|
|
|
104
107
|
After the pointer commit lands, teammates need Hunch installed and Git access to the memory repo:
|
|
105
108
|
|
|
106
109
|
```bash
|
|
107
|
-
npm i -g @davesheffer/hunch@1.18.
|
|
110
|
+
npm i -g @davesheffer/hunch@1.18.1
|
|
108
111
|
git pull
|
|
109
112
|
hunch init
|
|
110
113
|
hunch doctor
|
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
* accepted -> status accepted (live)
|
|
8
8
|
* proposed/draft -> status proposed
|
|
9
9
|
* rejected -> status rejected
|
|
10
|
-
* superseded
|
|
10
|
+
* superseded -> status superseded, valid_to closed (bi-temporal)
|
|
11
|
+
* deprecated + successor -> status superseded, closed at the successor date
|
|
12
|
+
* deprecated, bare -> status accepted with a loud review warning; the raw
|
|
13
|
+
* lifecycle remains in provenance evidence
|
|
11
14
|
* "Considered Options" minus the chosen one -> alternatives_rejected
|
|
12
15
|
* file slug -> topic `adr.<slug>` (namespaced so an import can never
|
|
13
16
|
* collide with a live hand-captured topic; the CLI still
|
|
@@ -102,7 +105,14 @@ function refNumbers(text) {
|
|
|
102
105
|
}
|
|
103
106
|
function mapStatus(raw) {
|
|
104
107
|
const s = raw.toLowerCase();
|
|
105
|
-
|
|
108
|
+
// MADR permits a bare `deprecated` lifecycle with no replacement relation.
|
|
109
|
+
// Hunch has no deprecated Decision status, and inventing `superseded` would
|
|
110
|
+
// silently fabricate a history edge and remove the record from live recall.
|
|
111
|
+
// Keep it advisory/live unless an explicit successor below proves closure;
|
|
112
|
+
// provenance retains the source status and the mapper emits a warning.
|
|
113
|
+
if (/deprecat/.test(s))
|
|
114
|
+
return "accepted";
|
|
115
|
+
if (/supersed/.test(s))
|
|
106
116
|
return "superseded";
|
|
107
117
|
if (/reject/.test(s))
|
|
108
118
|
return "rejected";
|
|
@@ -225,6 +235,9 @@ export function mapAdrCorpus(sources) {
|
|
|
225
235
|
}
|
|
226
236
|
const decisions = parsed.map((p) => {
|
|
227
237
|
const successor = p.supersededByNumbers.map((n) => byNumber.get(n)).find(Boolean) ?? null;
|
|
238
|
+
if (/deprecat/i.test(p.statusRaw) && !successor) {
|
|
239
|
+
warnings.push(`${p.relPath}: deprecated status names no resolvable successor — kept in force as accepted; raw status remains in provenance evidence, review and record an explicit successor or rejection`);
|
|
240
|
+
}
|
|
228
241
|
const superseded = p.status === "superseded" || !!successor;
|
|
229
242
|
const validTo = superseded ? (successor?.date ?? p.date) : null;
|
|
230
243
|
const alternatives = p.consideredOptions.filter((o) => !p.chosenOption || o.toLowerCase() !== p.chosenOption.toLowerCase());
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
9
|
"websiteUrl": "https://hunch-pi.vercel.app",
|
|
10
|
-
"version": "1.18.
|
|
10
|
+
"version": "1.18.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
15
15
|
"identifier": "@davesheffer/hunch",
|
|
16
|
-
"version": "1.18.
|
|
16
|
+
"version": "1.18.1",
|
|
17
17
|
"runtimeHint": "npx",
|
|
18
18
|
"packageArguments": [
|
|
19
19
|
{
|