@theglitchking/hit-em-with-the-docs 2.3.0 → 2.5.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/README.md +4 -0
- package/dist/action/core/audit/auditor.d.ts.map +1 -1
- package/dist/action/core/integrate/integrator.d.ts.map +1 -1
- package/dist/action/core/knowledge-base/fix-legacy-layout.d.ts +61 -0
- package/dist/action/core/knowledge-base/fix-legacy-layout.d.ts.map +1 -0
- package/dist/action/core/knowledge-base/migrate.d.ts +42 -8
- package/dist/action/core/knowledge-base/migrate.d.ts.map +1 -1
- package/dist/action/core/maintain/orchestrator.d.ts +2 -0
- package/dist/action/core/maintain/orchestrator.d.ts.map +1 -1
- package/dist/action/generators/regenerate.d.ts +38 -0
- package/dist/action/generators/regenerate.d.ts.map +1 -0
- package/dist/action/index.d.ts +1 -0
- package/dist/action/index.d.ts.map +1 -1
- package/dist/action/index.js +1 -1
- package/dist/cli/index.js +103 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/core/audit/auditor.d.ts.map +1 -1
- package/dist/core/audit/auditor.js +62 -2
- package/dist/core/audit/auditor.js.map +1 -1
- package/dist/core/integrate/integrator.d.ts.map +1 -1
- package/dist/core/integrate/integrator.js +9 -31
- package/dist/core/integrate/integrator.js.map +1 -1
- package/dist/core/knowledge-base/fix-legacy-layout.d.ts +61 -0
- package/dist/core/knowledge-base/fix-legacy-layout.d.ts.map +1 -0
- package/dist/core/knowledge-base/fix-legacy-layout.js +189 -0
- package/dist/core/knowledge-base/fix-legacy-layout.js.map +1 -0
- package/dist/core/knowledge-base/migrate.d.ts +42 -8
- package/dist/core/knowledge-base/migrate.d.ts.map +1 -1
- package/dist/core/knowledge-base/migrate.js +59 -24
- package/dist/core/knowledge-base/migrate.js.map +1 -1
- package/dist/core/maintain/orchestrator.d.ts +2 -0
- package/dist/core/maintain/orchestrator.d.ts.map +1 -1
- package/dist/core/maintain/orchestrator.js +19 -0
- package/dist/core/maintain/orchestrator.js.map +1 -1
- package/dist/generators/regenerate.d.ts +38 -0
- package/dist/generators/regenerate.d.ts.map +1 -0
- package/dist/generators/regenerate.js +137 -0
- package/dist/generators/regenerate.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migrate 2.3.0-buggy incident folders into the canonical layout (2.4.0).
|
|
3
|
+
*
|
|
4
|
+
* In 2.3.0, `hewtd migrate-incident <flat-file>` wrote the new folder
|
|
5
|
+
* AS A SIBLING of the flat file. When the flat file lived at the vault
|
|
6
|
+
* root (the documented example), the resulting folder ended up at
|
|
7
|
+
* `<vault-root>/<slug>/` instead of `<vault-root>/incidents/<slug>/`.
|
|
8
|
+
* The `incidents/INDEX.md` generator scans only the canonical path, so
|
|
9
|
+
* those folders were silently absent from the index.
|
|
10
|
+
*
|
|
11
|
+
* This module:
|
|
12
|
+
* 1. Detects legacy folders — anything matching `<vault-root>/<slug>/`
|
|
13
|
+
* that contains a valid `narrative.md` AND isn't already under the
|
|
14
|
+
* canonical `<vault-root>/incidents/` parent.
|
|
15
|
+
* 2. Moves them into `<vault-root>/incidents/<slug>/` (preserving any
|
|
16
|
+
* `facts.md` / `evidence/` contents).
|
|
17
|
+
* 3. Rewrites `provenance:` references in any `<vault-root>/facts/*.md`
|
|
18
|
+
* files that pointed at the old folder paths.
|
|
19
|
+
*
|
|
20
|
+
* Idempotent: re-running on a clean vault is a no-op with a status report.
|
|
21
|
+
*/
|
|
22
|
+
import { readFile, writeFile, rename, mkdir, readdir, stat } from 'fs/promises';
|
|
23
|
+
import { existsSync } from 'fs';
|
|
24
|
+
import { join, relative } from 'path';
|
|
25
|
+
import matter from 'gray-matter';
|
|
26
|
+
/**
|
|
27
|
+
* Discover and (optionally) relocate 2.3.0-layout incident folders.
|
|
28
|
+
*/
|
|
29
|
+
export async function fixLegacyLayout(options) {
|
|
30
|
+
const { vaultRoot, projectRoot, dryRun = false } = options;
|
|
31
|
+
const result = {
|
|
32
|
+
vaultRoot,
|
|
33
|
+
moved: [],
|
|
34
|
+
rewrittenProvenance: [],
|
|
35
|
+
skipped: [],
|
|
36
|
+
action: 'no_op',
|
|
37
|
+
};
|
|
38
|
+
if (!existsSync(vaultRoot)) {
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
// Walk one level deep under vaultRoot, looking for `<slug>/narrative.md`
|
|
42
|
+
// entries that are NOT inside `incidents/`, `facts/`, or `symptoms/`.
|
|
43
|
+
const RESERVED_DIRS = new Set(['incidents', 'facts', 'symptoms']);
|
|
44
|
+
const topLevel = await readdir(vaultRoot, { withFileTypes: true });
|
|
45
|
+
const legacyCandidates = [];
|
|
46
|
+
for (const entry of topLevel) {
|
|
47
|
+
if (!entry.isDirectory())
|
|
48
|
+
continue;
|
|
49
|
+
if (RESERVED_DIRS.has(entry.name))
|
|
50
|
+
continue;
|
|
51
|
+
const folderPath = join(vaultRoot, entry.name);
|
|
52
|
+
const narrativePath = join(folderPath, 'narrative.md');
|
|
53
|
+
if (!existsSync(narrativePath)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Confirm this is genuinely an incident folder by reading the narrative
|
|
57
|
+
// frontmatter — protects against false positives (e.g. user-created
|
|
58
|
+
// folders that happen to contain a narrative.md from some other context).
|
|
59
|
+
const isIncident = await looksLikeIncidentFolder(narrativePath);
|
|
60
|
+
if (!isIncident) {
|
|
61
|
+
result.skipped.push({
|
|
62
|
+
path: folderPath,
|
|
63
|
+
reason: 'narrative.md present but tier is not "incident-narrative"',
|
|
64
|
+
});
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
legacyCandidates.push({
|
|
68
|
+
slug: entry.name,
|
|
69
|
+
from: folderPath,
|
|
70
|
+
to: join(vaultRoot, 'incidents', entry.name),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (legacyCandidates.length === 0) {
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
// Build the provenance-rewrite plan FIRST (before moving anything) so
|
|
77
|
+
// we can reason about it. Old refs look like:
|
|
78
|
+
// `<rel-vault>/2026-04-23-foo/` (no `incidents/`)
|
|
79
|
+
// New refs:
|
|
80
|
+
// `<rel-vault>/incidents/2026-04-23-foo/`
|
|
81
|
+
const factsDir = join(vaultRoot, 'facts');
|
|
82
|
+
const provenanceRewrites = [];
|
|
83
|
+
if (existsSync(factsDir)) {
|
|
84
|
+
const factFiles = await readdir(factsDir);
|
|
85
|
+
for (const factFile of factFiles) {
|
|
86
|
+
if (!factFile.endsWith('.md'))
|
|
87
|
+
continue;
|
|
88
|
+
if (factFile === 'INDEX.md')
|
|
89
|
+
continue;
|
|
90
|
+
const factPath = join(factsDir, factFile);
|
|
91
|
+
const factStat = await stat(factPath);
|
|
92
|
+
if (!factStat.isFile())
|
|
93
|
+
continue;
|
|
94
|
+
const factRaw = await readFile(factPath, 'utf-8');
|
|
95
|
+
const factParsed = matter(factRaw);
|
|
96
|
+
const provenance = factParsed.data.provenance;
|
|
97
|
+
if (!Array.isArray(provenance))
|
|
98
|
+
continue;
|
|
99
|
+
let didRewrite = false;
|
|
100
|
+
const newProvenance = [];
|
|
101
|
+
for (const ref of provenance) {
|
|
102
|
+
if (typeof ref !== 'string') {
|
|
103
|
+
newProvenance.push(ref);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
let rewritten = ref;
|
|
107
|
+
for (const candidate of legacyCandidates) {
|
|
108
|
+
// Generate possible old-ref shapes and rewrite.
|
|
109
|
+
// - relative from project root: `<rel-vault>/<slug>/`
|
|
110
|
+
// - bare slug + trailing slash: `<slug>/`
|
|
111
|
+
// - bare slug no slash: `<slug>`
|
|
112
|
+
const relOld = `${relative(projectRoot, candidate.from)}/`;
|
|
113
|
+
const relNew = `${relative(projectRoot, candidate.to)}/`;
|
|
114
|
+
if (ref === relOld || ref === relOld.slice(0, -1)) {
|
|
115
|
+
rewritten = relNew;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
if (ref === `${candidate.slug}/` || ref === candidate.slug) {
|
|
119
|
+
// Bare-slug reference; rewrite to the canonical relative path.
|
|
120
|
+
rewritten = relNew;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (rewritten !== ref) {
|
|
125
|
+
didRewrite = true;
|
|
126
|
+
provenanceRewrites.push({
|
|
127
|
+
factPath,
|
|
128
|
+
oldRef: ref,
|
|
129
|
+
newRef: rewritten,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
newProvenance.push(rewritten);
|
|
133
|
+
}
|
|
134
|
+
if (didRewrite && !dryRun) {
|
|
135
|
+
const newData = { ...factParsed.data, provenance: newProvenance };
|
|
136
|
+
await writeFile(factPath, matter.stringify(factParsed.content, newData), 'utf-8');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Now do the actual folder moves (if not dry-run). Ensure incidents/
|
|
141
|
+
// parent dir exists first.
|
|
142
|
+
if (!dryRun) {
|
|
143
|
+
const incidentsParent = join(vaultRoot, 'incidents');
|
|
144
|
+
await mkdir(incidentsParent, { recursive: true });
|
|
145
|
+
for (const candidate of legacyCandidates) {
|
|
146
|
+
// Refuse to clobber an existing folder at the destination.
|
|
147
|
+
if (existsSync(candidate.to)) {
|
|
148
|
+
result.skipped.push({
|
|
149
|
+
path: candidate.from,
|
|
150
|
+
reason: `destination already exists at ${candidate.to}; manual merge required`,
|
|
151
|
+
});
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
await rename(candidate.from, candidate.to);
|
|
155
|
+
result.moved.push(candidate);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Dry-run: report what WOULD be moved without doing it.
|
|
160
|
+
for (const candidate of legacyCandidates) {
|
|
161
|
+
if (existsSync(candidate.to)) {
|
|
162
|
+
result.skipped.push({
|
|
163
|
+
path: candidate.from,
|
|
164
|
+
reason: `destination already exists at ${candidate.to}; manual merge required`,
|
|
165
|
+
});
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
result.moved.push(candidate);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
result.rewrittenProvenance = provenanceRewrites;
|
|
172
|
+
result.action = dryRun
|
|
173
|
+
? 'dry_run'
|
|
174
|
+
: result.moved.length > 0 || provenanceRewrites.length > 0
|
|
175
|
+
? 'fixed'
|
|
176
|
+
: 'no_op';
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
async function looksLikeIncidentFolder(narrativePath) {
|
|
180
|
+
try {
|
|
181
|
+
const content = await readFile(narrativePath, 'utf-8');
|
|
182
|
+
const { data } = matter(content);
|
|
183
|
+
return data.tier === 'incident-narrative';
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=fix-legacy-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-legacy-layout.js","sourceRoot":"","sources":["../../../src/core/knowledge-base/fix-legacy-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,60 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Flat-file incident → folder migration (2.3.0 PR3).
|
|
2
|
+
* Flat-file incident → folder migration (2.3.0 PR3, target-path fix in 2.4.0).
|
|
3
3
|
*
|
|
4
|
-
* Reads a legacy flat-file incident
|
|
5
|
-
*
|
|
4
|
+
* Reads a legacy flat-file incident and converts it into the folder form
|
|
5
|
+
* AT THE CANONICAL VAULT LOCATION:
|
|
6
6
|
*
|
|
7
|
-
* <flat-file>.md → <slug>/narrative.md
|
|
8
|
-
* <slug>/facts.md (skeleton)
|
|
9
|
-
* <slug>/evidence/ (empty
|
|
7
|
+
* <flat-file>.md → <vault-root>/incidents/<slug>/narrative.md
|
|
8
|
+
* <vault-root>/incidents/<slug>/facts.md (skeleton)
|
|
9
|
+
* <vault-root>/incidents/<slug>/evidence/ (empty)
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* In 2.3.0 the target was derived from the flat file's parent directory,
|
|
12
|
+
* which produced folders OUTSIDE `<vault-root>/incidents/` when the source
|
|
13
|
+
* was at the vault root. The `incidents/INDEX.md` generator scans only
|
|
14
|
+
* `<vault-root>/incidents/<slug>/narrative.md` and silently missed those
|
|
15
|
+
* folders. 2.4.0 fixes this by always writing under `<vault-root>/incidents/`.
|
|
16
|
+
*
|
|
17
|
+
* Idempotency:
|
|
18
|
+
* - If a valid `narrative.md` exists at EITHER the new path (canonical)
|
|
19
|
+
* OR the legacy path (`<source-parent>/<slug>/narrative.md`), the
|
|
20
|
+
* migration is treated as already done — no-op unless `--force`.
|
|
21
|
+
* - This protects against double-migration and is robust against
|
|
22
|
+
* consumers who already migrated under the 2.3.0 buggy layout.
|
|
23
|
+
*
|
|
24
|
+
* For consumers stuck on the 2.3.0 buggy layout, see `fixLegacyLayout()`
|
|
25
|
+
* which moves stale folders into `<vault-root>/incidents/` and rewrites
|
|
26
|
+
* any fact `provenance:` references.
|
|
13
27
|
*/
|
|
14
28
|
export interface MigrateIncidentOptions {
|
|
15
29
|
/** Absolute path to the flat-file incident markdown. */
|
|
16
30
|
flatFilePath: string;
|
|
31
|
+
/**
|
|
32
|
+
* Absolute path to the vault root. The migrated folder lands at
|
|
33
|
+
* `<vaultRoot>/incidents/<slug>/`. Required since 2.4.0 — the 2.3.0
|
|
34
|
+
* "sibling of the flat file" behavior was the source of the path bug.
|
|
35
|
+
*/
|
|
36
|
+
vaultRoot: string;
|
|
17
37
|
/** If true, returns the migration plan without writing. */
|
|
18
38
|
dryRun?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* If true, proceed with migration even if a folder already exists at
|
|
41
|
+
* the canonical or legacy location. Used to recover from a partial
|
|
42
|
+
* migration.
|
|
43
|
+
*/
|
|
44
|
+
force?: boolean;
|
|
19
45
|
}
|
|
20
46
|
export interface MigrateIncidentResult {
|
|
21
47
|
flatFilePath: string;
|
|
48
|
+
/** The canonical target — always under `<vaultRoot>/incidents/`. */
|
|
22
49
|
targetFolder: string;
|
|
23
50
|
action: 'migrated' | 'already_migrated' | 'dry_run';
|
|
51
|
+
/**
|
|
52
|
+
* Populated when `action === 'already_migrated'` to indicate WHERE the
|
|
53
|
+
* existing migration was found. `'new'` = canonical `<vault>/incidents/`;
|
|
54
|
+
* `'legacy'` = 2.3.0-style sibling-of-flat-file location. Helps consumers
|
|
55
|
+
* decide whether to run `fix-legacy-layout`.
|
|
56
|
+
*/
|
|
57
|
+
existingLocation?: 'new' | 'legacy';
|
|
24
58
|
narrativePath: string;
|
|
25
59
|
factsPath: string;
|
|
26
60
|
evidencePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/core/knowledge-base/migrate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/core/knowledge-base/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACpD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA8HhC"}
|
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Flat-file incident → folder migration (2.3.0 PR3).
|
|
2
|
+
* Flat-file incident → folder migration (2.3.0 PR3, target-path fix in 2.4.0).
|
|
3
3
|
*
|
|
4
|
-
* Reads a legacy flat-file incident
|
|
5
|
-
*
|
|
4
|
+
* Reads a legacy flat-file incident and converts it into the folder form
|
|
5
|
+
* AT THE CANONICAL VAULT LOCATION:
|
|
6
6
|
*
|
|
7
|
-
* <flat-file>.md → <slug>/narrative.md
|
|
8
|
-
* <slug>/facts.md (skeleton)
|
|
9
|
-
* <slug>/evidence/ (empty
|
|
7
|
+
* <flat-file>.md → <vault-root>/incidents/<slug>/narrative.md
|
|
8
|
+
* <vault-root>/incidents/<slug>/facts.md (skeleton)
|
|
9
|
+
* <vault-root>/incidents/<slug>/evidence/ (empty)
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* In 2.3.0 the target was derived from the flat file's parent directory,
|
|
12
|
+
* which produced folders OUTSIDE `<vault-root>/incidents/` when the source
|
|
13
|
+
* was at the vault root. The `incidents/INDEX.md` generator scans only
|
|
14
|
+
* `<vault-root>/incidents/<slug>/narrative.md` and silently missed those
|
|
15
|
+
* folders. 2.4.0 fixes this by always writing under `<vault-root>/incidents/`.
|
|
16
|
+
*
|
|
17
|
+
* Idempotency:
|
|
18
|
+
* - If a valid `narrative.md` exists at EITHER the new path (canonical)
|
|
19
|
+
* OR the legacy path (`<source-parent>/<slug>/narrative.md`), the
|
|
20
|
+
* migration is treated as already done — no-op unless `--force`.
|
|
21
|
+
* - This protects against double-migration and is robust against
|
|
22
|
+
* consumers who already migrated under the 2.3.0 buggy layout.
|
|
23
|
+
*
|
|
24
|
+
* For consumers stuck on the 2.3.0 buggy layout, see `fixLegacyLayout()`
|
|
25
|
+
* which moves stale folders into `<vault-root>/incidents/` and rewrites
|
|
26
|
+
* any fact `provenance:` references.
|
|
13
27
|
*/
|
|
14
28
|
import { readFile, writeFile, mkdir, rename } from 'fs/promises';
|
|
15
29
|
import { existsSync } from 'fs';
|
|
16
30
|
import { basename, dirname, join } from 'path';
|
|
17
31
|
import matter from 'gray-matter';
|
|
18
32
|
export async function migrateIncident(options) {
|
|
19
|
-
const { flatFilePath, dryRun = false } = options;
|
|
33
|
+
const { flatFilePath, vaultRoot, dryRun = false, force = false } = options;
|
|
20
34
|
const sourceContent = await readFile(flatFilePath, 'utf-8');
|
|
21
35
|
const parsed = matter(sourceContent);
|
|
22
36
|
const fm = (parsed.data ?? {});
|
|
@@ -28,11 +42,14 @@ export async function migrateIncident(options) {
|
|
|
28
42
|
const folderSlug = idFromFrontmatter && /^\d{4}-\d{2}-\d{2}-[a-z0-9-]+$/.test(idFromFrontmatter)
|
|
29
43
|
? idFromFrontmatter
|
|
30
44
|
: flatBase;
|
|
31
|
-
|
|
32
|
-
const targetFolder = join(
|
|
45
|
+
// Canonical target: <vault-root>/incidents/<slug>/
|
|
46
|
+
const targetFolder = join(vaultRoot, 'incidents', folderSlug);
|
|
33
47
|
const narrativePath = join(targetFolder, 'narrative.md');
|
|
34
48
|
const factsPath = join(targetFolder, 'facts.md');
|
|
35
49
|
const evidencePath = join(targetFolder, 'evidence');
|
|
50
|
+
// Legacy 2.3.0 location: <source-parent>/<slug>/
|
|
51
|
+
const legacyTargetFolder = join(dirname(flatFilePath), folderSlug);
|
|
52
|
+
const legacyNarrativePath = join(legacyTargetFolder, 'narrative.md');
|
|
36
53
|
// Build narrative.md frontmatter — promote/normalize fields, set tier.
|
|
37
54
|
const narrativeFrontmatter = {
|
|
38
55
|
title: fm.title ?? flatBase,
|
|
@@ -62,18 +79,35 @@ export async function migrateIncident(options) {
|
|
|
62
79
|
produced: [],
|
|
63
80
|
};
|
|
64
81
|
const factsContent = matter.stringify(`\n# Facts from ${folderSlug}\n\n## Produced\n_(No facts extracted yet. Use \`hewtd extract-facts ${folderSlug}/\` to propose facts from the narrative.)_\n`, factsFrontmatter);
|
|
65
|
-
// Idempotency check:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
// Idempotency check (unless --force): check BOTH new and legacy locations
|
|
83
|
+
// for an existing valid migration.
|
|
84
|
+
if (!force) {
|
|
85
|
+
if (existsSync(narrativePath)) {
|
|
86
|
+
return {
|
|
87
|
+
flatFilePath,
|
|
88
|
+
targetFolder,
|
|
89
|
+
action: 'already_migrated',
|
|
90
|
+
existingLocation: 'new',
|
|
91
|
+
narrativePath,
|
|
92
|
+
factsPath,
|
|
93
|
+
evidencePath,
|
|
94
|
+
narrativeContent,
|
|
95
|
+
factsContent,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (existsSync(legacyNarrativePath)) {
|
|
99
|
+
return {
|
|
100
|
+
flatFilePath,
|
|
101
|
+
targetFolder,
|
|
102
|
+
action: 'already_migrated',
|
|
103
|
+
existingLocation: 'legacy',
|
|
104
|
+
narrativePath: legacyNarrativePath,
|
|
105
|
+
factsPath: join(legacyTargetFolder, 'facts.md'),
|
|
106
|
+
evidencePath: join(legacyTargetFolder, 'evidence'),
|
|
107
|
+
narrativeContent,
|
|
108
|
+
factsContent,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
77
111
|
}
|
|
78
112
|
if (dryRun) {
|
|
79
113
|
return {
|
|
@@ -87,7 +121,8 @@ export async function migrateIncident(options) {
|
|
|
87
121
|
factsContent,
|
|
88
122
|
};
|
|
89
123
|
}
|
|
90
|
-
//
|
|
124
|
+
// Ensure the canonical parent (<vault>/incidents/) exists. Generator
|
|
125
|
+
// already handles a missing dir; we should too.
|
|
91
126
|
await mkdir(evidencePath, { recursive: true }); // also creates targetFolder
|
|
92
127
|
await writeFile(narrativePath, narrativeContent, 'utf-8');
|
|
93
128
|
await writeFile(factsPath, factsContent, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/knowledge-base/migrate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/knowledge-base/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type SyncResult } from '../metadata/sync.js';
|
|
2
2
|
import { type LinkCheckResult } from '../links/checker.js';
|
|
3
3
|
import { type AuditResult } from '../audit/auditor.js';
|
|
4
|
+
import { type RegenerateResult } from '../../generators/regenerate.js';
|
|
4
5
|
export interface MaintainOptions {
|
|
5
6
|
docsPath: string;
|
|
6
7
|
quick?: boolean;
|
|
@@ -11,6 +12,7 @@ export interface MaintainResult {
|
|
|
11
12
|
success: boolean;
|
|
12
13
|
domainHealth: DomainHealthResult;
|
|
13
14
|
metadataSync?: SyncResult;
|
|
15
|
+
indexRegeneration?: RegenerateResult;
|
|
14
16
|
linkCheck?: LinkCheckResult;
|
|
15
17
|
audit?: AuditResult;
|
|
16
18
|
healthScore: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/maintain/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/core/maintain/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAY3E,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsLtF;AAyRD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAoBD"}
|
|
@@ -12,6 +12,7 @@ import { buildCiterIndex } from '../knowledge-base/citers.js';
|
|
|
12
12
|
import { generateFactsIndex } from '../../generators/facts-index.js';
|
|
13
13
|
import { generateIncidentsIndex } from '../../generators/incidents-index.js';
|
|
14
14
|
import { generateSymptomsIndex } from '../../generators/symptoms-index.js';
|
|
15
|
+
import { regenerateIndexes, } from '../../generators/regenerate.js';
|
|
15
16
|
/**
|
|
16
17
|
* Run full maintenance on documentation
|
|
17
18
|
*/
|
|
@@ -74,6 +75,23 @@ export async function runMaintenance(options) {
|
|
|
74
75
|
result.errors.push(`Metadata sync failed: ${message}`);
|
|
75
76
|
result.success = false;
|
|
76
77
|
}
|
|
78
|
+
// Step 1.5: Index Regeneration
|
|
79
|
+
//
|
|
80
|
+
// Domain and root INDEX.md/REGISTRY.md are derived artifacts — they are
|
|
81
|
+
// rebuilt from the documents on disk on every maintain run so they never
|
|
82
|
+
// drift from reality. This also self-heals any INDEX.md/REGISTRY.md that
|
|
83
|
+
// checkDomainHealth reported as missing. Runs in quick mode too: it is
|
|
84
|
+
// cheap and is the core "self-managing" guarantee.
|
|
85
|
+
if (!silent) {
|
|
86
|
+
logger.subheader('Step 1.5: Index Regeneration');
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
result.indexRegeneration = await regenerateIndexes({ docsPath, silent });
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
93
|
+
result.errors.push(`Index regeneration failed: ${message}`);
|
|
94
|
+
}
|
|
77
95
|
// Step 2: Link Check (skip in quick mode)
|
|
78
96
|
if (!quick) {
|
|
79
97
|
if (!silent) {
|
|
@@ -252,6 +270,7 @@ version: '1.0.0'
|
|
|
252
270
|
|--------|-------|
|
|
253
271
|
| Overall Health | ${result.healthScore.toFixed(1)}% |
|
|
254
272
|
| Domain Health | ${result.domainHealth.healthy ? 'Healthy' : 'Issues Found'} |
|
|
273
|
+
| Indexes Regenerated | ${result.indexRegeneration?.filesWritten.length ?? 0} files |
|
|
255
274
|
| Files Scanned | ${result.metadataSync?.totalFiles ?? 0} |
|
|
256
275
|
| Valid Files | ${result.metadataSync?.validFiles ?? 0} |
|
|
257
276
|
| Broken Links | ${result.linkCheck?.brokenLinks.length ?? 'Not checked'} |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/core/maintain/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/core/maintain/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Domain } from '../core/domains/constants.js';
|
|
2
|
+
export interface RegenerateOptions {
|
|
3
|
+
/** Path to the documentation root (e.g. `.documentation`). */
|
|
4
|
+
docsPath: string;
|
|
5
|
+
/**
|
|
6
|
+
* Restrict domain INDEX.md/REGISTRY.md writes to these domains. The root
|
|
7
|
+
* INDEX.md/REGISTRY.md are always refreshed regardless. Defaults to all
|
|
8
|
+
* domains.
|
|
9
|
+
*/
|
|
10
|
+
domains?: Domain[];
|
|
11
|
+
silent?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface RegenerateResult {
|
|
14
|
+
/** Per-domain document counts — all domains, regardless of the filter. */
|
|
15
|
+
documentCounts: Record<string, number>;
|
|
16
|
+
/** Absolute paths of every INDEX.md / REGISTRY.md written. */
|
|
17
|
+
filesWritten: string[];
|
|
18
|
+
/** Total documents across all domains. */
|
|
19
|
+
totalDocuments: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* List the document files in a domain directory, excluding the generated
|
|
23
|
+
* INDEX.md / REGISTRY.md. Returns sorted file names (not paths). Empty when
|
|
24
|
+
* the domain directory does not exist.
|
|
25
|
+
*/
|
|
26
|
+
export declare function listDomainDocFiles(docsPath: string, domain: string): Promise<string[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Regenerate domain + root INDEX.md / REGISTRY.md from the documents on disk.
|
|
29
|
+
*
|
|
30
|
+
* This is the single source of truth for index generation, shared by
|
|
31
|
+
* `integrate`, `maintain`, and the `index` CLI command. It replaces the
|
|
32
|
+
* fragile regex-append path in `integrate` that could only update an
|
|
33
|
+
* already-populated table — and silently no-op'd on a freshly scaffolded
|
|
34
|
+
* INDEX.md, so the first document into any domain was never registered
|
|
35
|
+
* (see https://github.com/TheGlitchKing/hit-em-with-the-docs/issues/7).
|
|
36
|
+
*/
|
|
37
|
+
export declare function regenerateIndexes(options: RegenerateOptions): Promise<RegenerateResult>;
|
|
38
|
+
//# sourceMappingURL=regenerate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regenerate.d.ts","sourceRoot":"","sources":["../../src/generators/regenerate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAkBpE,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAkED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAiE3B"}
|