@shrkcrft/inspector 0.1.0-alpha.8 → 0.1.0-alpha.9

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.
Files changed (142) hide show
  1. package/README.md +1 -1
  2. package/dist/adoption-state.js +1 -1
  3. package/dist/agent-brief.d.ts.map +1 -1
  4. package/dist/agent-brief.js +10 -59
  5. package/dist/agent-task-prep.d.ts.map +1 -1
  6. package/dist/agent-task-prep.js +3 -1
  7. package/dist/ai-readiness.d.ts +9 -84
  8. package/dist/ai-readiness.d.ts.map +1 -1
  9. package/dist/ai-readiness.js +30 -161
  10. package/dist/apply-dispatch-trace.d.ts +2 -1
  11. package/dist/apply-dispatch-trace.d.ts.map +1 -1
  12. package/dist/apply-dispatch-trace.js +9 -0
  13. package/dist/area-explore.d.ts.map +1 -1
  14. package/dist/area-explore.js +5 -1
  15. package/dist/area-map.d.ts +19 -0
  16. package/dist/area-map.d.ts.map +1 -1
  17. package/dist/area-map.js +27 -0
  18. package/dist/ci-permissions-fix.d.ts +1 -1
  19. package/dist/ci-permissions-fix.d.ts.map +1 -1
  20. package/dist/ci-permissions-fix.js +182 -1
  21. package/dist/compliance-profiles.js +1 -1
  22. package/dist/construct-adoption-diff.d.ts.map +1 -1
  23. package/dist/construct-adoption-diff.js +1 -2
  24. package/dist/construct-adoption.d.ts.map +1 -1
  25. package/dist/construct-adoption.js +11 -10
  26. package/dist/construct-inference.d.ts.map +1 -1
  27. package/dist/construct-inference.js +1 -2
  28. package/dist/construct-registry.d.ts.map +1 -1
  29. package/dist/construct-registry.js +10 -2
  30. package/dist/contract-template-registry.d.ts.map +1 -1
  31. package/dist/contract-template-registry.js +10 -2
  32. package/dist/convention-registry.d.ts.map +1 -1
  33. package/dist/convention-registry.js +10 -2
  34. package/dist/decision-records.d.ts.map +1 -1
  35. package/dist/decision-records.js +9 -2
  36. package/dist/demo-script.d.ts +1 -0
  37. package/dist/demo-script.d.ts.map +1 -1
  38. package/dist/demo-script.js +43 -0
  39. package/dist/docs-check.js +1 -1
  40. package/dist/drift-baseline.d.ts.map +1 -1
  41. package/dist/drift-baseline.js +2 -5
  42. package/dist/feedback-ingestion.d.ts.map +1 -1
  43. package/dist/feedback-ingestion.js +16 -2
  44. package/dist/git-helpers.d.ts +12 -0
  45. package/dist/git-helpers.d.ts.map +1 -1
  46. package/dist/git-helpers.js +63 -0
  47. package/dist/helper-registry.d.ts +54 -27
  48. package/dist/helper-registry.d.ts.map +1 -1
  49. package/dist/helper-registry.js +517 -16
  50. package/dist/impact-analysis.d.ts.map +1 -1
  51. package/dist/impact-analysis.js +5 -4
  52. package/dist/impact-render.d.ts.map +1 -1
  53. package/dist/impact-render.js +9 -0
  54. package/dist/index.d.ts +3 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +3 -1
  57. package/dist/ingest-drafts.js +4 -8
  58. package/dist/migration-profile-registry.d.ts.map +1 -1
  59. package/dist/migration-profile-registry.js +10 -2
  60. package/dist/monorepo-onboarding.js +2 -2
  61. package/dist/onboarding-drafts-merge.d.ts +71 -0
  62. package/dist/onboarding-drafts-merge.d.ts.map +1 -0
  63. package/dist/onboarding-drafts-merge.js +174 -0
  64. package/dist/onboarding-drafts.d.ts +14 -0
  65. package/dist/onboarding-drafts.d.ts.map +1 -1
  66. package/dist/onboarding-drafts.js +39 -5
  67. package/dist/onboarding-report.d.ts.map +1 -1
  68. package/dist/onboarding-report.js +1 -5
  69. package/dist/onboarding.d.ts +1 -1
  70. package/dist/onboarding.d.ts.map +1 -1
  71. package/dist/onboarding.js +64 -5
  72. package/dist/ownership.js +10 -2
  73. package/dist/pack-contributions-inventory.d.ts +1 -0
  74. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  75. package/dist/pack-contributions-inventory.js +24 -0
  76. package/dist/pack-helper-registry.d.ts.map +1 -1
  77. package/dist/pack-helper-registry.js +10 -2
  78. package/dist/pack-release-check.d.ts.map +1 -1
  79. package/dist/pack-release-check.js +11 -4
  80. package/dist/pack-signature-status.d.ts.map +1 -1
  81. package/dist/pack-signature-status.js +1 -0
  82. package/dist/pack-symbol-compat.d.ts +17 -4
  83. package/dist/pack-symbol-compat.d.ts.map +1 -1
  84. package/dist/pack-symbol-compat.js +155 -7
  85. package/dist/pack-test-runner.js +10 -2
  86. package/dist/plan-simulation.d.ts.map +1 -1
  87. package/dist/plan-simulation.js +20 -3
  88. package/dist/playbook-registry.d.ts.map +1 -1
  89. package/dist/playbook-registry.js +10 -2
  90. package/dist/plugin-lifecycle-profile-registry.d.ts +52 -0
  91. package/dist/plugin-lifecycle-profile-registry.d.ts.map +1 -0
  92. package/dist/plugin-lifecycle-profile-registry.js +202 -0
  93. package/dist/plugin-lifecycle.d.ts +132 -0
  94. package/dist/plugin-lifecycle.d.ts.map +1 -0
  95. package/dist/plugin-lifecycle.js +477 -0
  96. package/dist/policy-engine.d.ts.map +1 -1
  97. package/dist/policy-engine.js +11 -3
  98. package/dist/policy-test.js +11 -3
  99. package/dist/product-coherence.js +5 -5
  100. package/dist/profile-registry.d.ts +1 -0
  101. package/dist/profile-registry.d.ts.map +1 -1
  102. package/dist/profile-registry.js +32 -4
  103. package/dist/quality-baseline.d.ts.map +1 -1
  104. package/dist/quality-baseline.js +1 -3
  105. package/dist/ranker-explainability.d.ts.map +1 -1
  106. package/dist/ranker-explainability.js +9 -3
  107. package/dist/registration-hint-registry.d.ts.map +1 -1
  108. package/dist/registration-hint-registry.js +10 -2
  109. package/dist/release-readiness.js +5 -5
  110. package/dist/reposet.js +1 -1
  111. package/dist/repository-knowledge-model.d.ts +1 -1
  112. package/dist/repository-knowledge-model.d.ts.map +1 -1
  113. package/dist/review-packet-v2.d.ts.map +1 -1
  114. package/dist/review-packet-v2.js +13 -3
  115. package/dist/rule-scaffold.d.ts.map +1 -1
  116. package/dist/rule-scaffold.js +4 -12
  117. package/dist/scaffold-patterns.js +10 -2
  118. package/dist/search-tuning-registry.d.ts.map +1 -1
  119. package/dist/search-tuning-registry.js +10 -2
  120. package/dist/self-config-doctor-v2.d.ts +1 -1
  121. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  122. package/dist/self-config-doctor-v2.js +10 -6
  123. package/dist/self-config-doctor.d.ts.map +1 -1
  124. package/dist/self-config-doctor.js +13 -7
  125. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  126. package/dist/sharkcraft-inspector.js +0 -1
  127. package/dist/start-here.d.ts +1 -1
  128. package/dist/start-here.js +1 -1
  129. package/dist/task-ranker.d.ts.map +1 -1
  130. package/dist/task-ranker.js +31 -1
  131. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  132. package/dist/task-routing-hint-registry.js +10 -2
  133. package/dist/test-runner.d.ts.map +1 -1
  134. package/dist/test-runner.js +16 -8
  135. package/dist/universal-search.d.ts +1 -0
  136. package/dist/universal-search.d.ts.map +1 -1
  137. package/dist/universal-search.js +12 -0
  138. package/dist/upgrade-advisor.js +1 -1
  139. package/package.json +21 -22
  140. package/dist/synthesize-from-onboarding.d.ts +0 -68
  141. package/dist/synthesize-from-onboarding.d.ts.map +0 -1
  142. package/dist/synthesize-from-onboarding.js +0 -508
@@ -1,17 +1,19 @@
1
1
  /**
2
2
  * Generic profile registry.
3
3
  *
4
- * Unifies profile-shaped contributions (migration profiles, future
5
- * profile kinds) under a single `shrk profiles ...` surface. The engine
6
- * ships zero built-in profiles; everything comes from pack contributions
7
- * or local config.
4
+ * Unifies profile-shaped contributions (plugin lifecycle profiles, migration
5
+ * profiles, future profile kinds) under a single `shrk profiles ...` surface.
6
+ * The engine ships zero built-in profiles; everything comes from pack
7
+ * contributions or local config.
8
8
  *
9
9
  * Read-only.
10
10
  */
11
+ import { listPluginLifecycleProfiles } from "./plugin-lifecycle-profile-registry.js";
11
12
  import { loadMigrationProfiles } from "./migration-profile-registry.js";
12
13
  export const PROFILE_REGISTRY_SCHEMA = 'sharkcraft.profile-registry/v1';
13
14
  export var ProfileKind;
14
15
  (function (ProfileKind) {
16
+ ProfileKind["PluginLifecycle"] = "plugin-lifecycle";
15
17
  ProfileKind["Migration"] = "migration";
16
18
  /** Future: command-behavior, generator, boundary, naming, architecture, language, report. */
17
19
  })(ProfileKind || (ProfileKind = {}));
@@ -25,6 +27,32 @@ export var ProfileSource;
25
27
  export async function loadAllProfiles(inspection) {
26
28
  const entries = [];
27
29
  const issues = [];
30
+ // Plugin lifecycle profiles
31
+ try {
32
+ const lifecycle = await listPluginLifecycleProfiles(inspection);
33
+ for (const e of lifecycle) {
34
+ entries.push({
35
+ id: e.profile.id,
36
+ kind: ProfileKind.PluginLifecycle,
37
+ title: e.profile.title,
38
+ ...(e.profile.description ? { description: e.profile.description } : {}),
39
+ source: e.source,
40
+ ...(e.packageName ? { packageName: e.packageName } : {}),
41
+ sourceFile: e.sourceFile,
42
+ ...(e.profile.tags ? { tags: e.profile.tags } : {}),
43
+ ...(e.profile.appliesWhen ? { appliesWhen: e.profile.appliesWhen } : {}),
44
+ payload: e.profile,
45
+ });
46
+ }
47
+ }
48
+ catch (err) {
49
+ issues.push({
50
+ severity: 'warning',
51
+ code: 'lifecycle-load-failed',
52
+ message: `Plugin lifecycle profile load failed: ${err.message}`,
53
+ kind: ProfileKind.PluginLifecycle,
54
+ });
55
+ }
28
56
  // Migration profiles
29
57
  try {
30
58
  const migration = await loadMigrationProfiles(inspection);
@@ -1 +1 @@
1
- {"version":3,"file":"quality-baseline.d.ts","sourceRoot":"","sources":["../src/quality-baseline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-baseline.d.ts","sourceRoot":"","sources":["../src/quality-baseline.ts"],"names":[],"mappings":"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"}
@@ -109,9 +109,7 @@ function extractBaseline(inspection, report) {
109
109
  return {
110
110
  schema: QUALITY_BASELINE_SCHEMA,
111
111
  createdAt: nowIso(),
112
- // Repo basename only — baselines are committed and absolute paths
113
- // leak the author's filesystem layout into the public repo.
114
- projectRoot: nodePath.basename(inspection.projectRoot),
112
+ projectRoot: inspection.projectRoot,
115
113
  sharkcraftVersion: readSharkcraftVersion(inspection.projectRoot),
116
114
  configHash: configHashFor(inspection),
117
115
  qualityScore: report.score,
@@ -1 +1 @@
1
- {"version":3,"file":"ranker-explainability.d.ts","sourceRoot":"","sources":["../src/ranker-explainability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ranker-explainability.d.ts","sourceRoot":"","sources":["../src/ranker-explainability.ts"],"names":[],"mappings":"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"}
@@ -161,12 +161,14 @@ function suggestedFixes(taskOrQuery, hit, matched, missing) {
161
161
  return out;
162
162
  }
163
163
  /**
164
- * Generic domain-token inference. Project-specific tokens move to
165
- * pack-contributed search-tuning rather than hardcoded heuristics
166
- * in the engine.
164
+ * Generic domain-token inference. Project-specific tokens (e.g.
165
+ * "primitive", "adapter", "sandbox") move to pack-contributed search-tuning
166
+ * rather than hardcoded heuristics in the engine.
167
167
  */
168
168
  function inferDomainTags(taskLower) {
169
169
  const out = [];
170
+ if (/\bplugin\b/.test(taskLower))
171
+ out.push('plugin');
170
172
  if (/\brenderer\b/.test(taskLower))
171
173
  out.push('renderer');
172
174
  if (/\b(angular|react)\b/.test(taskLower))
@@ -179,8 +181,12 @@ function inferDomainAppliesWhen(taskLower) {
179
181
  const out = [];
180
182
  if (/\b(create|add|new|generate|build)\b/.test(taskLower))
181
183
  out.push('generate-code');
184
+ if (/\bplugin\b/.test(taskLower))
185
+ out.push('create-plugin');
182
186
  if (/\b(rename|move)\b/.test(taskLower))
183
187
  out.push('refactor');
188
+ if (/\bcapability\b/.test(taskLower))
189
+ out.push('create-capability');
184
190
  return Array.from(new Set(out));
185
191
  }
186
192
  function commonSuggestedCommands(found, hit) {
@@ -1 +1 @@
1
- {"version":3,"file":"registration-hint-registry.d.ts","sourceRoot":"","sources":["../src/registration-hint-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration-hint-registry.d.ts","sourceRoot":"","sources":["../src/registration-hint-registry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
1
9
  /**
2
10
  * Registration hint registry. Pack- and local-contributed hints
3
11
  * surface downstream registration steps that constructs typically need
@@ -10,8 +18,8 @@
10
18
  */
11
19
  import { existsSync, readFileSync } from 'node:fs';
12
20
  import * as nodePath from 'node:path';
21
+ import { pathToFileURL } from 'node:url';
13
22
  import { validateRegistrationHint, } from '@shrkcrft/plugin-api';
14
- import { importModuleViaLoader } from '@shrkcrft/core';
15
23
  export const REGISTRATION_HINT_REGISTRY_SCHEMA = 'sharkcraft.registration-hint-registry/v1';
16
24
  export var RegistrationHintSource;
17
25
  (function (RegistrationHintSource) {
@@ -20,7 +28,7 @@ export var RegistrationHintSource;
20
28
  RegistrationHintSource["Fixture"] = "fixture";
21
29
  })(RegistrationHintSource || (RegistrationHintSource = {}));
22
30
  async function importDefault(file) {
23
- const mod = (await importModuleViaLoader(file));
31
+ const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(file).href)));
24
32
  if (Array.isArray(mod.default))
25
33
  return mod.default;
26
34
  if (mod.default && typeof mod.default === 'object')
@@ -157,7 +157,7 @@ function checkReadmeRequiredSections(projectRoot) {
157
157
  const required = ['quick demo', 'onboard'];
158
158
  const missing = required.filter((s) => !body.includes(s));
159
159
  if (missing.length > 0) {
160
- return warn('readme-required-sections', 'README required sections', `README.md is missing section keywords: ${missing.join(', ')}`, 'Add a "Quick demo" and "Onboard" section so consumers land on something runnable.');
160
+ return warn('readme-required-sections', 'README required sections', `README.md is missing section keywords: ${missing.join(', ')}`, 'Add a "Quick demo" and "Onboard" section so adopters land on something runnable.');
161
161
  }
162
162
  return pass('readme-required-sections', 'README required sections', 'README.md has the expected sections.');
163
163
  }
@@ -304,24 +304,24 @@ export async function buildReleaseReadiness(inspection, options = {}) {
304
304
  })();
305
305
  const releaseNotesDir = nodePath.join(projectRoot, 'docs', 'releases');
306
306
  const releaseNotesFile = versionFile ? nodePath.join(releaseNotesDir, `${versionFile}.md`) : null;
307
- const releaseNotesAlpha = nodePath.join(releaseNotesDir, '0.1.0-alpha.2.md');
307
+ const releaseNotesAlpha = nodePath.join(releaseNotesDir, '0.1.0-alpha.9.md');
308
308
  const limitsFile = nodePath.join(projectRoot, 'docs', 'public-alpha-limitations.md');
309
309
  const externalQuickstart = nodePath.join(projectRoot, 'docs', 'external-repo-quickstart.md');
310
310
  const releaseNotesExists = (releaseNotesFile && existsSync(releaseNotesFile)) || existsSync(releaseNotesAlpha);
311
311
  if (!releaseNotesExists) {
312
- checks.push(warn('release-notes', 'Public alpha release notes', `Missing docs/releases/${versionFile ?? '<version>'}.md or docs/releases/0.1.0-alpha.2.md`, 'Add release notes — strict release readiness treats this as a blocker.'));
312
+ checks.push(warn('release-notes', 'Public alpha release notes', `Missing docs/releases/${versionFile ?? '<version>'}.md or docs/releases/0.1.0-alpha.9.md`, 'Add release notes — strict release readiness treats this as a blocker.'));
313
313
  }
314
314
  else {
315
315
  checks.push(pass('release-notes', 'Public alpha release notes', 'Release notes file present.'));
316
316
  }
317
317
  if (!existsSync(limitsFile)) {
318
- checks.push(warn('public-alpha-limitations', 'Public alpha limitations doc', 'Missing docs/public-alpha-limitations.md', 'List the known limitations consumers should be aware of.'));
318
+ checks.push(warn('public-alpha-limitations', 'Public alpha limitations doc', 'Missing docs/public-alpha-limitations.md', 'List the known limitations adopters should be aware of.'));
319
319
  }
320
320
  else {
321
321
  checks.push(pass('public-alpha-limitations', 'Public alpha limitations doc', 'Limitations doc present.'));
322
322
  }
323
323
  if (!existsSync(externalQuickstart)) {
324
- checks.push(warn('external-quickstart', 'External repo quickstart', 'Missing docs/external-repo-quickstart.md', 'Add a 5-minute external-consumer quickstart.'));
324
+ checks.push(warn('external-quickstart', 'External repo quickstart', 'Missing docs/external-repo-quickstart.md', 'Add a 5-minute external-adopter quickstart.'));
325
325
  }
326
326
  else {
327
327
  checks.push(pass('external-quickstart', 'External repo quickstart', 'Quickstart doc present.'));
package/dist/reposet.js CHANGED
@@ -42,7 +42,7 @@ function exampleConfigBody() {
42
42
  schema: REPOSET_SCHEMA,
43
43
  repos: [
44
44
  { id: 'sharkcraft', name: 'SharkCraft', root: '.', tags: ['engine'], role: 'engine' },
45
- { id: 'example-consumer', name: 'Example consumer project', root: '../example-consumer', tags: ['consumer'], role: 'consumer' },
45
+ { id: 'example-adopter', name: 'Example adopter project', root: '../example-adopter', tags: ['adopter'], role: 'adopter' },
46
46
  ],
47
47
  }, null, 2);
48
48
  }
@@ -51,7 +51,7 @@ export interface IArchitectureModel {
51
51
  layers: readonly IArchitectureLayerSummary[];
52
52
  /** Public API surfaces (paths whose deep imports should be forbidden). */
53
53
  publicApis: readonly string[];
54
- /** Notes about cycles or other import-graph observations. */
54
+ /** Notes about cycles or imports that violate the inferred layer order. */
55
55
  notes: readonly string[];
56
56
  }
57
57
  export interface IBusinessConcept {
@@ -1 +1 @@
1
- {"version":3,"file":"repository-knowledge-model.d.ts","sourceRoot":"","sources":["../src/repository-knowledge-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository-knowledge-model.d.ts","sourceRoot":"","sources":["../src/repository-knowledge-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-packet-v2.d.ts","sourceRoot":"","sources":["../src/review-packet-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,yBAAyB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAiC,KAAK,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,uBAAuB,CAAC;IACvC,wCAAwC;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,eAAe,CAAC,CAyC1B"}
1
+ {"version":3,"file":"review-packet-v2.d.ts","sourceRoot":"","sources":["../src/review-packet-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,yBAAyB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAiC,KAAK,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAA0B,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,uBAAuB,CAAC;IACvC,wCAAwC;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,eAAe,CAAC,CAmD1B"}
@@ -1,18 +1,28 @@
1
1
  import { buildReviewPacket } from "./review-packet.js";
2
2
  import { analyzeImpact } from "./impact-analysis.js";
3
3
  import { analyzeTestImpact } from "./test-impact.js";
4
- import { buildAreaMap } from "./area-map.js";
4
+ import { buildAreaMap, filterAreaMap } from "./area-map.js";
5
5
  import { impactFor, loadOwnershipRules } from "./ownership.js";
6
6
  import { evaluatePolicy } from "./policy-engine.js";
7
7
  import { compareQualityBaseline } from "./quality-baseline.js";
8
8
  export const REVIEW_PACKET_V2_SCHEMA = 'sharkcraft.review-packet-v2/v1';
9
9
  export async function buildReviewPacketV2(inspection, options = {}) {
10
10
  const base = buildReviewPacket(inspection, options);
11
- const areaMap = buildAreaMap(inspection);
11
+ const fullAreaMap = buildAreaMap(inspection);
12
+ // 50 is enough for an AI reviewer to see the shape of the impact without
13
+ // blowing the packet up — `shrk impact` keeps the full 200 default for
14
+ // ad-hoc debugging.
12
15
  const impact = await analyzeImpact(inspection, {
13
16
  files: base.changedFiles,
14
- areaMap,
17
+ areaMap: fullAreaMap,
18
+ limit: 50,
15
19
  });
20
+ // Slim the area map to only the areas touched by the diff. Cuts the
21
+ // packet payload by ~75% on typical diffs without losing reviewer-facing
22
+ // context — the consumer can re-derive neighbours from the full map via
23
+ // `shrk map` if needed.
24
+ const affectedIds = impact.affectedAreas.map((a) => a.id);
25
+ const areaMap = affectedIds.length > 0 ? filterAreaMap(fullAreaMap, affectedIds) : fullAreaMap;
16
26
  const testImpact = analyzeTestImpact(inspection, { files: base.changedFiles });
17
27
  const { rules } = await loadOwnershipRules(inspection.projectRoot, options.ownershipFiles);
18
28
  const ownership = impactFor(base.changedFiles, rules);
@@ -1 +1 @@
1
- {"version":3,"file":"rule-scaffold.d.ts","sourceRoot":"","sources":["../src/rule-scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,IAAI,EAAE,gBAAgB,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,oBAAoB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,sEAAsE;IACtE,UAAU,EAAE,iBAAiB,CAAC;IAC9B,8DAA8D;IAC9D,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,SAAS,EAAE,iBAAiB,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAkOD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+ChF"}
1
+ {"version":3,"file":"rule-scaffold.d.ts","sourceRoot":"","sources":["../src/rule-scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,IAAI,EAAE,gBAAgB,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,oBAAoB,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,sEAAsE;IACtE,UAAU,EAAE,iBAAiB,CAAC;IAC9B,8DAA8D;IAC9D,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,SAAS,EAAE,iBAAiB,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AA0ND,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CA+ChF"}
@@ -131,19 +131,11 @@ function buildTsBody(input, defaults) {
131
131
  const advisoryBlock = defaults.advisory ? `\n metadata: { advisory: true },` : '';
132
132
  const verificationLine = verification.length > 0 ? `\n verificationCommands: ${tsArrayLiteral(verification)},` : '';
133
133
  const forbiddenLine = forbidden.length > 0 ? `\n forbiddenActions: ${tsArrayLiteral(forbidden)},` : '';
134
- return `// Generated by \`shrk rules scaffold --id ${id}\`. Preview-only — review,
135
- // then move into \`sharkcraft/rules.ts\` (or your pack's rules file).
136
- // Self-contained — no @shrkcrft/* imports required.
137
-
138
- const KnowledgePriority = {
139
- Critical: 'critical',
140
- High: 'high',
141
- Medium: 'medium',
142
- Low: 'low',
143
- } as const;
144
-
145
- function defineRule<T>(rule: T): T { return rule; }
134
+ return `import { defineRule } from '@shrkcrft/rules';
135
+ import { KnowledgePriority } from '@shrkcrft/knowledge';
146
136
 
137
+ // Generated by \`shrk rules scaffold --id ${id}\`. Preview-only — review,
138
+ // then move into \`sharkcraft/rules.ts\` (or your pack's rules file).
147
139
  export const ${idToConst(id)} = defineRule({
148
140
  id: ${JSON.stringify(id)},
149
141
  title: ${JSON.stringify(title)},
@@ -1,3 +1,11 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
1
9
  /**
2
10
  * Scaffold pattern registry + loader.
3
11
  *
@@ -7,13 +15,13 @@
7
15
  */
8
16
  import { existsSync } from 'node:fs';
9
17
  import * as nodePath from 'node:path';
10
- import { importModuleViaLoader } from '@shrkcrft/core';
18
+ import { pathToFileURL } from 'node:url';
11
19
  import { isRecognizedScaffoldStrategy, } from '@shrkcrft/plugin-api';
12
20
  export async function loadScaffoldPatternsFromFile(file) {
13
21
  if (!existsSync(file))
14
22
  return { patterns: [], warnings: [`scaffold pattern file missing: ${file}`] };
15
23
  try {
16
- const mod = await importModuleViaLoader(file);
24
+ const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(file).href + '?t=' + Date.now())));
17
25
  const raw = mod.default ?? mod;
18
26
  if (!Array.isArray(raw)) {
19
27
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"search-tuning-registry.d.ts","sourceRoot":"","sources":["../src/search-tuning-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAE3E,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0GD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC,CA4DlG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,kBAAkB,EAAE,CAGjG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,wBAAwB,EAAE,CAG7G;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACnD,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqBD;;;;;;;iCAOiC;AACjC,wBAAgB,cAAc,CAC5B,GAAG,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3E,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,kBAAkB,CAoGpB"}
1
+ {"version":3,"file":"search-tuning-registry.d.ts","sourceRoot":"","sources":["../src/search-tuning-registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAE3E,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0GD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC,CA4DlG;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,kBAAkB,EAAE,CAGjG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,wBAAwB,EAAE,CAG7G;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACnD,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqBD;;;;;;;iCAOiC;AACjC,wBAAgB,cAAc,CAC5B,GAAG,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3E,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,kBAAkB,CAoGpB"}
@@ -1,11 +1,19 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
1
9
  import { existsSync } from 'node:fs';
2
10
  import * as nodePath from 'node:path';
3
- import { importModuleViaLoader } from '@shrkcrft/core';
11
+ import { pathToFileURL } from 'node:url';
4
12
  export const SEARCH_TUNING_SCHEMA = 'sharkcraft.search-tuning-registry/v1';
5
13
  const CACHE = new Map();
6
14
  const MAX_BOOST = 5;
7
15
  async function importDefault(file) {
8
- const mod = (await importModuleViaLoader(file));
16
+ const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(file).href)));
9
17
  if (Array.isArray(mod.default))
10
18
  return mod.default;
11
19
  if (mod.default && typeof mod.default === 'object')
@@ -9,7 +9,7 @@ export declare enum SelfConfigSeverityV2 {
9
9
  * Source / target kind taxonomy. Open string for forward-compat with
10
10
  * pack-contributed kinds, but the engine emits one of these values.
11
11
  */
12
- export type SelfConfigKind = 'knowledge' | 'command' | 'helper' | 'template' | 'playbook' | 'pipeline' | 'policy' | 'rule' | 'path' | 'convention' | 'registration-hint' | 'routing-hint' | 'agent-test' | 'decision' | 'profile' | 'migration-profile' | 'contract-template' | 'pack' | 'schema' | 'file' | 'unknown';
12
+ export type SelfConfigKind = 'knowledge' | 'command' | 'helper' | 'template' | 'playbook' | 'pipeline' | 'policy' | 'rule' | 'path' | 'convention' | 'registration-hint' | 'routing-hint' | 'agent-test' | 'decision' | 'profile' | 'migration-profile' | 'plugin-lifecycle-profile' | 'contract-template' | 'pack' | 'schema' | 'file' | 'unknown';
13
13
  /**
14
14
  * Edge relation taxonomy. Open string to allow future relations.
15
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"self-config-doctor-v2.d.ts","sourceRoot":"","sources":["../src/self-config-doctor-v2.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,SAAS,GACT,mBAAmB,GACnB,mBAAmB,GACnB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,SAAS,GACT,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,OAAO,GACP,WAAW,GACX,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAChD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;KAChD,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAwqBD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAyCpC;AAsBD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CA+BtF;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAqBR"}
1
+ {"version":3,"file":"self-config-doctor-v2.d.ts","sourceRoot":"","sources":["../src/self-config-doctor-v2.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,SAAS,GACT,mBAAmB,GACnB,0BAA0B,GAC1B,mBAAmB,GACnB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,SAAS,GACT,WAAW,GACX,UAAU,GACV,UAAU,GACV,WAAW,GACX,OAAO,GACP,WAAW,GACX,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAChD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;KAChD,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AA8qBD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAyCpC;AAsBD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CA+BtF;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAqBR"}
@@ -18,6 +18,7 @@
18
18
  import { existsSync } from 'node:fs';
19
19
  import * as nodePath from 'node:path';
20
20
  import { listConventions } from "./convention-registry.js";
21
+ import { listPluginLifecycleProfiles } from "./plugin-lifecycle-profile-registry.js";
21
22
  import { loadAllContractTemplates } from "./contract-template-registry.js";
22
23
  import { listMigrationProfilesFromPacks } from "./migration-profile-registry.js";
23
24
  import { listPackHelpers } from "./pack-helper-registry.js";
@@ -41,6 +42,7 @@ async function buildLookupsV2(inspection) {
41
42
  const templates = new Set(inspection.templateRegistry?.list?.().map((t) => t.id) ?? []);
42
43
  const pipelines = new Set(inspection.pipelineRegistry?.list?.().map((p) => p.id) ?? []);
43
44
  const conventions = new Set((await listConventions(inspection)).map((e) => e.convention.id));
45
+ const lifecycleProfiles = new Set((await listPluginLifecycleProfiles(inspection)).map((e) => e.profile.id));
44
46
  const contractTemplatesPair = await loadAllContractTemplates(inspection);
45
47
  const contractTemplates = new Set(contractTemplatesPair.entries.map((e) => e.template.id));
46
48
  const migrationProfiles = new Set((await listMigrationProfilesFromPacks(inspection)).map((p) => p.id));
@@ -101,6 +103,7 @@ async function buildLookupsV2(inspection) {
101
103
  conventions,
102
104
  contractTemplates,
103
105
  migrationProfiles,
106
+ pluginLifecycleProfiles: lifecycleProfiles,
104
107
  helpers,
105
108
  routingHints,
106
109
  registrationHints,
@@ -174,6 +177,7 @@ async function checkSearchTuning(inspection, lookups, findings) {
174
177
  lookups.templates.has(targetId) ||
175
178
  lookups.pipelines.has(targetId) ||
176
179
  lookups.contractTemplates.has(targetId) ||
180
+ lookups.pluginLifecycleProfiles.has(targetId) ||
177
181
  lookups.conventions.has(targetId) ||
178
182
  lookups.playbooks.has(targetId) ||
179
183
  lookups.helpers.has(targetId) ||
@@ -272,18 +276,18 @@ function checkTemplateMetadata(inspection, lookups, findings) {
272
276
  });
273
277
  }
274
278
  for (const id of m.requiredProfileIds ?? []) {
275
- if (lookups.migrationProfiles.has(id))
279
+ if (lookups.pluginLifecycleProfiles.has(id))
276
280
  continue;
277
281
  pushFinding(findings, {
278
282
  severity: SelfConfigSeverityV2.Warning,
279
283
  code: 'template-profile-missing',
280
284
  sourceKind: 'template',
281
285
  sourceId: t.id,
282
- targetKind: 'profile',
286
+ targetKind: 'plugin-lifecycle-profile',
283
287
  targetId: id,
284
288
  relation: 'requires',
285
- message: `Template "${t.id}" requires profile "${id}" but it is not registered.`,
286
- nextCommand: 'shrk profiles list',
289
+ message: `Template "${t.id}" requires plugin-lifecycle profile "${id}" but it is not registered.`,
290
+ nextCommand: 'shrk plugin lifecycle profiles',
287
291
  });
288
292
  }
289
293
  for (const id of m.registrationHintIds ?? []) {
@@ -329,7 +333,7 @@ async function checkRoutingHints(inspection, lookups, findings) {
329
333
  probe(rec.templates, 'template', lookups.templates);
330
334
  probe(rec.helpers, 'helper', lookups.helpers);
331
335
  probe(rec.conventions, 'convention', lookups.conventions);
332
- probe(rec.profiles, 'profile', lookups.migrationProfiles);
336
+ probe(rec.profiles, 'plugin-lifecycle-profile', lookups.pluginLifecycleProfiles);
333
337
  probe(rec.commands, 'command', lookups.commands);
334
338
  probe(rec.playbooks, 'playbook', lookups.playbooks);
335
339
  }
@@ -433,7 +437,7 @@ async function checkRegistrationHints(inspection, lookups, findings) {
433
437
  };
434
438
  probe(h.relatedTemplateIds, 'template', lookups.templates);
435
439
  probe(h.relatedConventionIds, 'convention', lookups.conventions);
436
- probe(h.relatedProfileIds, 'profile', lookups.migrationProfiles);
440
+ probe(h.relatedProfileIds, 'plugin-lifecycle-profile', lookups.pluginLifecycleProfiles);
437
441
  }
438
442
  }
439
443
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"self-config-doctor.d.ts","sourceRoot":"","sources":["../src/self-config-doctor.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,yBAAyB,qCAAqC,CAAC;AAE5E,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACvD;AA0WD,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAsClC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAuC3B;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAyBlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAoBtF"}
1
+ {"version":3,"file":"self-config-doctor.d.ts","sourceRoot":"","sources":["../src/self-config-doctor.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,yBAAyB,qCAAqC,CAAC;AAE5E,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,yBAAyB,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACvD;AAgXD,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAsClC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAwC3B;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAyBlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAoBtF"}
@@ -14,6 +14,7 @@ import { existsSync } from 'node:fs';
14
14
  import * as nodePath from 'node:path';
15
15
  import { buildPackContributionsInventory } from "./pack-contributions-inventory.js";
16
16
  import { listConventions } from "./convention-registry.js";
17
+ import { listPluginLifecycleProfiles } from "./plugin-lifecycle-profile-registry.js";
17
18
  import { loadAllContractTemplates } from "./contract-template-registry.js";
18
19
  import { listMigrationProfilesFromPacks } from "./migration-profile-registry.js";
19
20
  import { listPackHelpers } from "./pack-helper-registry.js";
@@ -34,6 +35,7 @@ async function buildLookups(inspection) {
34
35
  const pipelines = new Set(inspection.pipelineRegistry?.list?.().map((p) => p.id) ?? []);
35
36
  // Convention/profile/contract registries return entries asynchronously.
36
37
  const conventions = new Set((await listConventions(inspection)).map((e) => e.convention.id));
38
+ const lifecycleProfiles = new Set((await listPluginLifecycleProfiles(inspection)).map((e) => e.profile.id));
37
39
  const contractTemplatesPair = await loadAllContractTemplates(inspection);
38
40
  const contractTemplates = new Set(contractTemplatesPair.entries.map((e) => e.template.id));
39
41
  const migrationProfiles = new Set((await listMigrationProfilesFromPacks(inspection)).map((p) => p.id));
@@ -54,6 +56,7 @@ async function buildLookups(inspection) {
54
56
  conventions,
55
57
  contractTemplates,
56
58
  migrationProfiles,
59
+ pluginLifecycleProfiles: lifecycleProfiles,
57
60
  helpers,
58
61
  routingHints,
59
62
  registrationHints,
@@ -105,6 +108,7 @@ async function checkSearchTuningTargets(inspection, lookups, findings) {
105
108
  lookups.templates.has(targetId) ||
106
109
  lookups.pipelines.has(targetId) ||
107
110
  lookups.contractTemplates.has(targetId) ||
111
+ lookups.pluginLifecycleProfiles.has(targetId) ||
108
112
  lookups.conventions.has(targetId);
109
113
  if (!exists) {
110
114
  findings.push({
@@ -179,7 +183,7 @@ async function checkPackContributionConflicts(inspection, findings) {
179
183
  * - `metadata.requiredConventionIds` → conventions registry
180
184
  * - `metadata.requiredHelperIds` → helpers registry
181
185
  * - `metadata.registrationHintIds` → registration-hints registry
182
- * - `metadata.requiredProfileIds` → profile registry
186
+ * - `metadata.requiredProfileIds` → plugin-lifecycle-profiles registry
183
187
  */
184
188
  async function checkTemplateMetadataReferences(inspection, lookups, findings) {
185
189
  const templates = (inspection.templates ?? []);
@@ -214,15 +218,15 @@ async function checkTemplateMetadataReferences(inspection, lookups, findings) {
214
218
  }
215
219
  }
216
220
  for (const id of m.requiredProfileIds ?? []) {
217
- if (!lookups.migrationProfiles.has(id)) {
221
+ if (!lookups.pluginLifecycleProfiles.has(id)) {
218
222
  findings.push({
219
223
  severity: SelfConfigSeverity.Warning,
220
224
  code: 'template-profile-missing',
221
- message: `Template "${t.id}" requires profile "${id}" but it is not registered.`,
225
+ message: `Template "${t.id}" requires plugin-lifecycle profile "${id}" but it is not registered.`,
222
226
  referencingId: t.id,
223
227
  referencedId: id,
224
- referencedKind: 'profile',
225
- nextCommand: `shrk profiles list`,
228
+ referencedKind: 'plugin-lifecycle-profile',
229
+ nextCommand: `shrk plugin lifecycle profiles`,
226
230
  });
227
231
  }
228
232
  }
@@ -285,14 +289,14 @@ async function checkRoutingHintTargets(inspection, lookups, findings) {
285
289
  }
286
290
  }
287
291
  for (const id of rec.profiles ?? []) {
288
- if (!lookups.migrationProfiles.has(id)) {
292
+ if (!lookups.pluginLifecycleProfiles.has(id)) {
289
293
  findings.push({
290
294
  severity: SelfConfigSeverity.Info,
291
295
  code: 'routing-hint-profile-missing',
292
296
  message: `Routing hint "${e.hint.id}" recommends profile "${id}" but it is not registered.`,
293
297
  referencingId: e.hint.id,
294
298
  referencedId: id,
295
- referencedKind: 'profile',
299
+ referencedKind: 'plugin-lifecycle-profile',
296
300
  });
297
301
  }
298
302
  }
@@ -349,6 +353,8 @@ export async function buildSelfConfigGraph(inspection) {
349
353
  nodes.push({ id, kind: 'convention' });
350
354
  for (const id of lookups.contractTemplates)
351
355
  nodes.push({ id, kind: 'contract-template' });
356
+ for (const id of lookups.pluginLifecycleProfiles)
357
+ nodes.push({ id, kind: 'plugin-lifecycle-profile' });
352
358
  for (const id of lookups.migrationProfiles)
353
359
  nodes.push({ id, kind: 'migration-profile' });
354
360
  // Edges from knowledge → referenced ids (best-effort).