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

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 (112) hide show
  1. package/dist/agent-brief.d.ts.map +1 -1
  2. package/dist/agent-brief.js +59 -10
  3. package/dist/agent-task-prep.d.ts.map +1 -1
  4. package/dist/agent-task-prep.js +1 -3
  5. package/dist/ai-readiness.d.ts +84 -9
  6. package/dist/ai-readiness.d.ts.map +1 -1
  7. package/dist/ai-readiness.js +161 -30
  8. package/dist/apply-dispatch-trace.d.ts +1 -2
  9. package/dist/apply-dispatch-trace.d.ts.map +1 -1
  10. package/dist/apply-dispatch-trace.js +0 -9
  11. package/dist/area-explore.d.ts.map +1 -1
  12. package/dist/area-explore.js +1 -5
  13. package/dist/area-map.d.ts +0 -5
  14. package/dist/area-map.d.ts.map +1 -1
  15. package/dist/area-map.js +0 -10
  16. package/dist/compliance-profiles.js +1 -1
  17. package/dist/construct-adoption.d.ts.map +1 -1
  18. package/dist/construct-adoption.js +10 -11
  19. package/dist/construct-registry.d.ts.map +1 -1
  20. package/dist/construct-registry.js +2 -10
  21. package/dist/contract-template-registry.d.ts.map +1 -1
  22. package/dist/contract-template-registry.js +2 -10
  23. package/dist/convention-registry.d.ts.map +1 -1
  24. package/dist/convention-registry.js +2 -10
  25. package/dist/decision-records.d.ts.map +1 -1
  26. package/dist/decision-records.js +2 -9
  27. package/dist/demo-script.d.ts +0 -1
  28. package/dist/demo-script.d.ts.map +1 -1
  29. package/dist/demo-script.js +0 -43
  30. package/dist/docs-check.js +1 -1
  31. package/dist/drift-baseline.d.ts.map +1 -1
  32. package/dist/drift-baseline.js +5 -2
  33. package/dist/feedback-ingestion.d.ts.map +1 -1
  34. package/dist/feedback-ingestion.js +2 -16
  35. package/dist/helper-registry.d.ts +27 -54
  36. package/dist/helper-registry.d.ts.map +1 -1
  37. package/dist/helper-registry.js +16 -517
  38. package/dist/impact-analysis.d.ts.map +1 -1
  39. package/dist/impact-analysis.js +4 -5
  40. package/dist/index.d.ts +1 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -2
  43. package/dist/migration-profile-registry.d.ts.map +1 -1
  44. package/dist/migration-profile-registry.js +2 -10
  45. package/dist/monorepo-onboarding.js +2 -2
  46. package/dist/onboarding-report.d.ts.map +1 -1
  47. package/dist/onboarding-report.js +5 -1
  48. package/dist/onboarding.d.ts +1 -1
  49. package/dist/onboarding.d.ts.map +1 -1
  50. package/dist/onboarding.js +5 -64
  51. package/dist/ownership.js +2 -10
  52. package/dist/pack-contributions-inventory.d.ts +0 -1
  53. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  54. package/dist/pack-contributions-inventory.js +0 -24
  55. package/dist/pack-helper-registry.d.ts.map +1 -1
  56. package/dist/pack-helper-registry.js +2 -10
  57. package/dist/pack-release-check.d.ts.map +1 -1
  58. package/dist/pack-release-check.js +4 -11
  59. package/dist/pack-signature-status.d.ts.map +1 -1
  60. package/dist/pack-signature-status.js +0 -1
  61. package/dist/pack-test-runner.js +2 -10
  62. package/dist/plan-simulation.d.ts.map +1 -1
  63. package/dist/plan-simulation.js +3 -20
  64. package/dist/playbook-registry.d.ts.map +1 -1
  65. package/dist/playbook-registry.js +2 -10
  66. package/dist/policy-engine.d.ts.map +1 -1
  67. package/dist/policy-engine.js +3 -11
  68. package/dist/policy-test.js +3 -11
  69. package/dist/profile-registry.d.ts +0 -1
  70. package/dist/profile-registry.d.ts.map +1 -1
  71. package/dist/profile-registry.js +4 -32
  72. package/dist/quality-baseline.d.ts.map +1 -1
  73. package/dist/quality-baseline.js +3 -1
  74. package/dist/ranker-explainability.d.ts.map +1 -1
  75. package/dist/ranker-explainability.js +3 -9
  76. package/dist/registration-hint-registry.d.ts.map +1 -1
  77. package/dist/registration-hint-registry.js +2 -10
  78. package/dist/release-readiness.js +3 -3
  79. package/dist/reposet.js +1 -1
  80. package/dist/repository-knowledge-model.d.ts +1 -1
  81. package/dist/repository-knowledge-model.d.ts.map +1 -1
  82. package/dist/scaffold-patterns.js +2 -10
  83. package/dist/search-tuning-registry.d.ts.map +1 -1
  84. package/dist/search-tuning-registry.js +2 -10
  85. package/dist/self-config-doctor-v2.d.ts +1 -1
  86. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  87. package/dist/self-config-doctor-v2.js +6 -10
  88. package/dist/self-config-doctor.d.ts.map +1 -1
  89. package/dist/self-config-doctor.js +7 -13
  90. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  91. package/dist/sharkcraft-inspector.js +1 -0
  92. package/dist/start-here.d.ts +1 -1
  93. package/dist/start-here.js +1 -1
  94. package/dist/synthesize-from-onboarding.d.ts +68 -0
  95. package/dist/synthesize-from-onboarding.d.ts.map +1 -0
  96. package/dist/synthesize-from-onboarding.js +508 -0
  97. package/dist/task-ranker.d.ts.map +1 -1
  98. package/dist/task-ranker.js +1 -31
  99. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  100. package/dist/task-routing-hint-registry.js +2 -10
  101. package/dist/test-runner.d.ts.map +1 -1
  102. package/dist/test-runner.js +8 -16
  103. package/dist/universal-search.d.ts +0 -1
  104. package/dist/universal-search.d.ts.map +1 -1
  105. package/dist/universal-search.js +0 -12
  106. package/package.json +17 -17
  107. package/dist/plugin-lifecycle-profile-registry.d.ts +0 -52
  108. package/dist/plugin-lifecycle-profile-registry.d.ts.map +0 -1
  109. package/dist/plugin-lifecycle-profile-registry.js +0 -202
  110. package/dist/plugin-lifecycle.d.ts +0 -132
  111. package/dist/plugin-lifecycle.d.ts.map +0 -1
  112. package/dist/plugin-lifecycle.js +0 -477
@@ -14,7 +14,6 @@ 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";
18
17
  import { loadAllContractTemplates } from "./contract-template-registry.js";
19
18
  import { listMigrationProfilesFromPacks } from "./migration-profile-registry.js";
20
19
  import { listPackHelpers } from "./pack-helper-registry.js";
@@ -35,7 +34,6 @@ async function buildLookups(inspection) {
35
34
  const pipelines = new Set(inspection.pipelineRegistry?.list?.().map((p) => p.id) ?? []);
36
35
  // Convention/profile/contract registries return entries asynchronously.
37
36
  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));
39
37
  const contractTemplatesPair = await loadAllContractTemplates(inspection);
40
38
  const contractTemplates = new Set(contractTemplatesPair.entries.map((e) => e.template.id));
41
39
  const migrationProfiles = new Set((await listMigrationProfilesFromPacks(inspection)).map((p) => p.id));
@@ -56,7 +54,6 @@ async function buildLookups(inspection) {
56
54
  conventions,
57
55
  contractTemplates,
58
56
  migrationProfiles,
59
- pluginLifecycleProfiles: lifecycleProfiles,
60
57
  helpers,
61
58
  routingHints,
62
59
  registrationHints,
@@ -108,7 +105,6 @@ async function checkSearchTuningTargets(inspection, lookups, findings) {
108
105
  lookups.templates.has(targetId) ||
109
106
  lookups.pipelines.has(targetId) ||
110
107
  lookups.contractTemplates.has(targetId) ||
111
- lookups.pluginLifecycleProfiles.has(targetId) ||
112
108
  lookups.conventions.has(targetId);
113
109
  if (!exists) {
114
110
  findings.push({
@@ -183,7 +179,7 @@ async function checkPackContributionConflicts(inspection, findings) {
183
179
  * - `metadata.requiredConventionIds` → conventions registry
184
180
  * - `metadata.requiredHelperIds` → helpers registry
185
181
  * - `metadata.registrationHintIds` → registration-hints registry
186
- * - `metadata.requiredProfileIds` → plugin-lifecycle-profiles registry
182
+ * - `metadata.requiredProfileIds` → profile registry
187
183
  */
188
184
  async function checkTemplateMetadataReferences(inspection, lookups, findings) {
189
185
  const templates = (inspection.templates ?? []);
@@ -218,15 +214,15 @@ async function checkTemplateMetadataReferences(inspection, lookups, findings) {
218
214
  }
219
215
  }
220
216
  for (const id of m.requiredProfileIds ?? []) {
221
- if (!lookups.pluginLifecycleProfiles.has(id)) {
217
+ if (!lookups.migrationProfiles.has(id)) {
222
218
  findings.push({
223
219
  severity: SelfConfigSeverity.Warning,
224
220
  code: 'template-profile-missing',
225
- message: `Template "${t.id}" requires plugin-lifecycle profile "${id}" but it is not registered.`,
221
+ message: `Template "${t.id}" requires profile "${id}" but it is not registered.`,
226
222
  referencingId: t.id,
227
223
  referencedId: id,
228
- referencedKind: 'plugin-lifecycle-profile',
229
- nextCommand: `shrk plugin lifecycle profiles`,
224
+ referencedKind: 'profile',
225
+ nextCommand: `shrk profiles list`,
230
226
  });
231
227
  }
232
228
  }
@@ -289,14 +285,14 @@ async function checkRoutingHintTargets(inspection, lookups, findings) {
289
285
  }
290
286
  }
291
287
  for (const id of rec.profiles ?? []) {
292
- if (!lookups.pluginLifecycleProfiles.has(id)) {
288
+ if (!lookups.migrationProfiles.has(id)) {
293
289
  findings.push({
294
290
  severity: SelfConfigSeverity.Info,
295
291
  code: 'routing-hint-profile-missing',
296
292
  message: `Routing hint "${e.hint.id}" recommends profile "${id}" but it is not registered.`,
297
293
  referencingId: e.hint.id,
298
294
  referencedId: id,
299
- referencedKind: 'plugin-lifecycle-profile',
295
+ referencedKind: 'profile',
300
296
  });
301
297
  }
302
298
  }
@@ -353,8 +349,6 @@ export async function buildSelfConfigGraph(inspection) {
353
349
  nodes.push({ id, kind: 'convention' });
354
350
  for (const id of lookups.contractTemplates)
355
351
  nodes.push({ id, kind: 'contract-template' });
356
- for (const id of lookups.pluginLifecycleProfiles)
357
- nodes.push({ id, kind: 'plugin-lifecycle-profile' });
358
352
  for (const id of lookups.migrationProfiles)
359
353
  nodes.push({ id, kind: 'migration-profile' });
360
354
  // Edges from knowledge → referenced ids (best-effort).
@@ -1 +1 @@
1
- {"version":3,"file":"sharkcraft-inspector.d.ts","sourceRoot":"","sources":["../src/sharkcraft-inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharkcraft-inspector.d.ts","sourceRoot":"","sources":["../src/sharkcraft-inspector.ts"],"names":[],"mappings":"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"}
@@ -697,6 +697,7 @@ export function runDoctor(inspection) {
697
697
  id: `actionhints-${i.code}-${i.entryId}`,
698
698
  title: `Action-hint quality (${i.code})`,
699
699
  severity: DoctorSeverity.Warning,
700
+ advisory: true,
700
701
  message: i.message,
701
702
  fix: i.suggestion,
702
703
  category: 'action-hint-quality',
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `shrk start-here` — the human entry point.
3
3
  *
4
- * SharkCraft ships 200+ commands. New adopters need a 30-second answer to
4
+ * SharkCraft ships 200+ commands. New consumers need a 30-second answer to
5
5
  * "what should I run first?". This module is the deterministic source of
6
6
  * that answer. It does not call any external system, does not read the
7
7
  * project state, and never writes — it's a curated list.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `shrk start-here` — the human entry point.
3
3
  *
4
- * SharkCraft ships 200+ commands. New adopters need a 30-second answer to
4
+ * SharkCraft ships 200+ commands. New consumers need a 30-second answer to
5
5
  * "what should I run first?". This module is the deterministic source of
6
6
  * that answer. It does not call any external system, does not read the
7
7
  * project state, and never writes — it's a curated list.
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Convert an {@link IOnboardingPlan} into populated `sharkcraft/*.ts`
3
+ * file contents — the engine behind `shrk init --infer --write`.
4
+ *
5
+ * Design goals:
6
+ *
7
+ * - **Populated, not advisory.** The existing `writeOnboardingDrafts`
8
+ * emits files into `sharkcraft/onboarding/` and asks the user to
9
+ * adopt by hand. This module emits directly to `sharkcraft/`-root
10
+ * files so a `shrk init --infer --write` user gets a working
11
+ * project on day 1.
12
+ *
13
+ * - **Honest about confidence.** Inferred entries are tagged with
14
+ * their source signal and confidence; medium-confidence rows get a
15
+ * `// TODO: review` marker on the emitted line. The user can see
16
+ * exactly what was inferred vs hand-curated. Low-confidence rows
17
+ * are dropped from the populated file and reported in the
18
+ * companion `.inferred-report.md` so the user can find them.
19
+ *
20
+ * - **Self-contained output.** Generated files declare their own
21
+ * `defineKnowledgeEntry` / `definePathConvention` stubs — no
22
+ * `@shrkcrft/*` imports, matching the local-mirror pattern from
23
+ * `packages/presets/src/emit/synthesize-files.ts`.
24
+ *
25
+ * - **Deterministic.** Same input → same output, byte-for-byte.
26
+ * Sort lists by id where they're rendered together.
27
+ *
28
+ * - **Idempotent at the file level.** The caller decides write vs
29
+ * dry-run + force; this module only produces strings.
30
+ */
31
+ import type { IOnboardingPlan } from './onboarding.js';
32
+ export interface IInferredFile {
33
+ /** Path relative to sharkcraft/. */
34
+ path: string;
35
+ content: string;
36
+ /** Which kind of file this is — drives default naming in the report. */
37
+ kind: 'config' | 'paths' | 'rules' | 'boundaries' | 'pipelines' | 'knowledge' | 'report-md' | 'report-json';
38
+ }
39
+ export interface IInferenceConfidenceReport {
40
+ /** Entries adopted directly into the populated files (high confidence). */
41
+ adoptedHigh: readonly IConfidenceLine[];
42
+ /** Entries adopted with a `// TODO: review` marker (medium confidence). */
43
+ adoptedMedium: readonly IConfidenceLine[];
44
+ /** Entries left out of the populated files (low confidence / no signal). */
45
+ dropped: readonly IConfidenceLine[];
46
+ /** Author-by-hand suggestions — things shrk can't infer. */
47
+ notInferable: readonly string[];
48
+ }
49
+ export interface IConfidenceLine {
50
+ kind: 'rule' | 'path' | 'boundary' | 'pipeline' | 'template' | 'verification';
51
+ id: string;
52
+ title: string;
53
+ /** Why this signal fired (from the onboarding plan). */
54
+ reason: string;
55
+ }
56
+ export interface IInferenceResult {
57
+ files: readonly IInferredFile[];
58
+ report: IInferenceConfidenceReport;
59
+ }
60
+ /**
61
+ * Convert an {@link IOnboardingPlan} into a populated set of
62
+ * `sharkcraft/*.ts` files plus a companion confidence report.
63
+ *
64
+ * The caller is responsible for actually writing the files; this
65
+ * function is pure (input plan → output strings).
66
+ */
67
+ export declare function synthesizeFromOnboarding(plan: IOnboardingPlan): IInferenceResult;
68
+ //# sourceMappingURL=synthesize-from-onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesize-from-onboarding.d.ts","sourceRoot":"","sources":["../src/synthesize-from-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;CAC7G;AAED,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,WAAW,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,2EAA2E;IAC3E,aAAa,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,4DAA4D;IAC5D,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAkXD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,eAAe,GACpB,gBAAgB,CA6KlB"}