mewkit 1.12.0 → 1.13.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.
Files changed (69) hide show
  1. package/dist/core/derived-index.d.ts +8 -1
  2. package/dist/core/derived-index.d.ts.map +1 -1
  3. package/dist/core/derived-index.js +10 -5
  4. package/dist/core/derived-index.js.map +1 -1
  5. package/dist/wiki/application/ports.d.ts +8 -0
  6. package/dist/wiki/application/ports.d.ts.map +1 -1
  7. package/dist/wiki/handoff/domain.d.ts +107 -0
  8. package/dist/wiki/handoff/domain.d.ts.map +1 -0
  9. package/dist/wiki/handoff/domain.js +31 -0
  10. package/dist/wiki/handoff/domain.js.map +1 -0
  11. package/dist/wiki/handoff/profile-factory.d.ts +26 -0
  12. package/dist/wiki/handoff/profile-factory.d.ts.map +1 -0
  13. package/dist/wiki/handoff/profile-factory.js +65 -0
  14. package/dist/wiki/handoff/profile-factory.js.map +1 -0
  15. package/dist/wiki/handoff/profiles/external.d.ts +3 -0
  16. package/dist/wiki/handoff/profiles/external.d.ts.map +1 -0
  17. package/dist/wiki/handoff/profiles/external.js +27 -0
  18. package/dist/wiki/handoff/profiles/external.js.map +1 -0
  19. package/dist/wiki/handoff/profiles/framework.d.ts +3 -0
  20. package/dist/wiki/handoff/profiles/framework.d.ts.map +1 -0
  21. package/dist/wiki/handoff/profiles/framework.js +83 -0
  22. package/dist/wiki/handoff/profiles/framework.js.map +1 -0
  23. package/dist/wiki/handoff/profiles/lifecycle.d.ts +3 -0
  24. package/dist/wiki/handoff/profiles/lifecycle.d.ts.map +1 -0
  25. package/dist/wiki/handoff/profiles/lifecycle.js +30 -0
  26. package/dist/wiki/handoff/profiles/lifecycle.js.map +1 -0
  27. package/dist/wiki/handoff/profiles/research.d.ts +3 -0
  28. package/dist/wiki/handoff/profiles/research.d.ts.map +1 -0
  29. package/dist/wiki/handoff/profiles/research.js +31 -0
  30. package/dist/wiki/handoff/profiles/research.js.map +1 -0
  31. package/dist/wiki/handoff/profiles/review.d.ts +3 -0
  32. package/dist/wiki/handoff/profiles/review.d.ts.map +1 -0
  33. package/dist/wiki/handoff/profiles/review.js +19 -0
  34. package/dist/wiki/handoff/profiles/review.js.map +1 -0
  35. package/dist/wiki/handoff/profiles/security.d.ts +3 -0
  36. package/dist/wiki/handoff/profiles/security.d.ts.map +1 -0
  37. package/dist/wiki/handoff/profiles/security.js +19 -0
  38. package/dist/wiki/handoff/profiles/security.js.map +1 -0
  39. package/dist/wiki/handoff/profiles.d.ts +13 -0
  40. package/dist/wiki/handoff/profiles.d.ts.map +1 -0
  41. package/dist/wiki/handoff/profiles.js +54 -0
  42. package/dist/wiki/handoff/profiles.js.map +1 -0
  43. package/dist/wiki/handoff/service.d.ts +49 -0
  44. package/dist/wiki/handoff/service.d.ts.map +1 -0
  45. package/dist/wiki/handoff/service.js +142 -0
  46. package/dist/wiki/handoff/service.js.map +1 -0
  47. package/dist/wiki/infrastructure/markdown-repository.d.ts +6 -1
  48. package/dist/wiki/infrastructure/markdown-repository.d.ts.map +1 -1
  49. package/dist/wiki/infrastructure/markdown-repository.js +5 -0
  50. package/dist/wiki/infrastructure/markdown-repository.js.map +1 -1
  51. package/dist/wiki/infrastructure/sqlite-index.d.ts.map +1 -1
  52. package/dist/wiki/infrastructure/sqlite-index.js +7 -0
  53. package/dist/wiki/infrastructure/sqlite-index.js.map +1 -1
  54. package/dist/wiki/infrastructure/wiki-ingest.d.ts +2 -0
  55. package/dist/wiki/infrastructure/wiki-ingest.d.ts.map +1 -1
  56. package/dist/wiki/infrastructure/wiki-ingest.js +21 -1
  57. package/dist/wiki/infrastructure/wiki-ingest.js.map +1 -1
  58. package/dist/wiki/infrastructure/wiki-query.d.ts +4 -3
  59. package/dist/wiki/infrastructure/wiki-query.d.ts.map +1 -1
  60. package/dist/wiki/infrastructure/wiki-query.js +38 -11
  61. package/dist/wiki/infrastructure/wiki-query.js.map +1 -1
  62. package/dist/wiki/infrastructure/wiki-schema.d.ts +1 -0
  63. package/dist/wiki/infrastructure/wiki-schema.d.ts.map +1 -1
  64. package/dist/wiki/infrastructure/wiki-schema.js +17 -0
  65. package/dist/wiki/infrastructure/wiki-schema.js.map +1 -1
  66. package/dist/wiki/interface/cli.d.ts.map +1 -1
  67. package/dist/wiki/interface/cli.js +159 -8
  68. package/dist/wiki/interface/cli.js.map +1 -1
  69. package/package.json +1 -1
@@ -1,6 +1,13 @@
1
+ import { DatabaseSync } from "node:sqlite";
1
2
  import { type WikiIngestCounts } from "../wiki/infrastructure/wiki-ingest.js";
2
- export declare const SCHEMA_VERSION = 2;
3
+ export declare const SCHEMA_VERSION = 3;
3
4
  export declare function dbPath(claudeDir: string): string;
5
+ /** Apply any pending forward migrations and stamp the schema version. Exported so the live
6
+ * write adapter (`SqliteWikiIndex.upsertPage`) can self-heal a never-built index DB: the
7
+ * wiki schema is otherwise created only by `buildIndex` (`mewkit index` / `wiki reindex`),
8
+ * so a first `approve` on a fresh wiki would hit `no such table: wiki_page`. Idempotent —
9
+ * a no-op once `user_version` is current. */
10
+ export declare function ensureIndexSchema(db: DatabaseSync): void;
4
11
  export interface IndexResult {
5
12
  dbPath: string;
6
13
  schemaVersion: number;
@@ -1 +1 @@
1
- {"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAS1F,eAAO,MAAM,cAAc,IAAI,CAAC;AA0BhC,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AA0ED,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAmBD;iGACiG;AACjG,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAkBzD;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAyBzD"}
1
+ {"version":3,"file":"derived-index.d.ts","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAS1F,eAAO,MAAM,cAAc,IAAI,CAAC;AA2BhC,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AAQD;;;;6CAI6C;AAC7C,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CASxD;AAwDD,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAmBD;iGACiG;AACjG,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAkBzD;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,wBAAwB,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAyBzD"}
@@ -2,7 +2,7 @@ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { DatabaseSync } from "node:sqlite";
4
4
  import { parseTraceLog } from "./trace-analysis.js";
5
- import { WIKI_MIGRATION_SQL } from "../wiki/infrastructure/wiki-schema.js";
5
+ import { WIKI_MIGRATION_SQL, WIKI_V3_MIGRATION_SQL } from "../wiki/infrastructure/wiki-schema.js";
6
6
  import { ingestWiki } from "../wiki/infrastructure/wiki-ingest.js";
7
7
  // The consolidated DERIVED, disposable SQLite index. Canonical data stays in the append
8
8
  // logs (.claude/memory/*) and the wiki tree (tasks/wikis/<slug>/); this DB is a rebuild-able
@@ -10,7 +10,7 @@ import { ingestWiki } from "../wiki/infrastructure/wiki-ingest.js";
10
10
  // hook writes to it. All inserts are parameterized (prepared statements); queries are static
11
11
  // aggregates with no user-supplied SQL — no injection surface. v2 folds in the wiki tables +
12
12
  // FTS5 (was a separate index.db, now unified as wiki-index.db per the consolidation decision).
13
- export const SCHEMA_VERSION = 2;
13
+ export const SCHEMA_VERSION = 3;
14
14
  const DB_REL = path.join("memory", "wiki-index.db");
15
15
  /** The pre-consolidation DB, removed once on the first unified build. */
16
16
  const LEGACY_DB_REL = path.join("memory", "index.db");
@@ -33,6 +33,7 @@ const MIGRATIONS = [
33
33
  );`,
34
34
  },
35
35
  { version: 2, sql: WIKI_MIGRATION_SQL },
36
+ { version: 3, sql: WIKI_V3_MIGRATION_SQL },
36
37
  ];
37
38
  export function dbPath(claudeDir) {
38
39
  return path.join(claudeDir, DB_REL);
@@ -42,8 +43,12 @@ function userVersion(db) {
42
43
  const v = row?.["user_version"];
43
44
  return typeof v === "number" ? v : 0;
44
45
  }
45
- /** Apply any pending forward migrations and stamp the schema version. */
46
- function migrate(db) {
46
+ /** Apply any pending forward migrations and stamp the schema version. Exported so the live
47
+ * write adapter (`SqliteWikiIndex.upsertPage`) can self-heal a never-built index DB: the
48
+ * wiki schema is otherwise created only by `buildIndex` (`mewkit index` / `wiki reindex`),
49
+ * so a first `approve` on a fresh wiki would hit `no such table: wiki_page`. Idempotent —
50
+ * a no-op once `user_version` is current. */
51
+ export function ensureIndexSchema(db) {
47
52
  let current = userVersion(db);
48
53
  for (const m of MIGRATIONS) {
49
54
  if (m.version > current) {
@@ -122,7 +127,7 @@ export function buildIndex(claudeDir) {
122
127
  const db = new DatabaseSync(target);
123
128
  try {
124
129
  db.exec("PRAGMA journal_mode = WAL");
125
- migrate(db);
130
+ ensureIndexSchema(db);
126
131
  db.exec("DELETE FROM trace_events");
127
132
  db.exec("DELETE FROM cost_entries");
128
133
  const traceRows = ingestTrace(db, claudeDir);
@@ -1 +1 @@
1
- {"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derived-index.js","sourceRoot":"","sources":["../../src/core/derived-index.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,14 @@ export interface WikiSearchHit {
65
65
  title: string;
66
66
  snippet: string;
67
67
  tokenEstimate: number;
68
+ /** DB slug-relative page path (e.g. "pages/backend-infra.md"). Populated by the
69
+ * query layer; optional so synthetic hits (tests/mocks) need not supply it. */
70
+ pagePath?: string;
71
+ /** Project-root-readable path composed from the slug + pagePath
72
+ * (e.g. "tasks/wikis/<slug>/pages/backend-infra.md"). The agent-facing file target. */
73
+ path?: string;
74
+ /** Full page body — present only when the caller explicitly opts in (context --include-content). */
75
+ content?: string;
68
76
  }
69
77
  export interface WikiIndex {
70
78
  upsertPage(page: WikiPage): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/wiki/application/ports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import type { SalienceComponents, SalienceScore, VerificationState, WikiOrigin, WikiSlug, WikiWriteDecision } from "../domain/index.js";
2
+ import type { ProposeInput } from "../application/ports.js";
3
+ /** How eagerly a skill hands knowledge off. `required` runs the advisory at the
4
+ * end of every flow (still gated by salience); `conditional` only when the run
5
+ * produced a project-specific artifact; `none` never auto-suggests. */
6
+ export type WikiHandoffClass = "required" | "conditional" | "none";
7
+ /** The knowledge family a skill's artifact belongs to. Drives default salience
8
+ * emphasis. Adding a skill = adding a registry row, never editing a switch. */
9
+ export type WikiHandoffProfile = "lifecycle-run" | "root-cause" | "review-verdict" | "planning-report" | "decision-record" | "security-posture" | "external-spec" | "architecture-analysis" | "workflow-recipe" | "project-convention";
10
+ /** Profile tag as stored — a concrete profile, or "none" for the default entry. */
11
+ export type WikiHandoffProfileTag = WikiHandoffProfile | "none";
12
+ /** Terminal state of a handoff attempt. */
13
+ export type WikiHandoffStatus = "suggested" | "proposed" | "skipped" | "quarantined";
14
+ /** Signals extracted from a skill's terminal artifact. The inputs to a profile's
15
+ * `defaultSalience` / `shouldSuggest`. Deterministic — every time-dependent value
16
+ * such as `producedAt` is passed in by the caller; the domain never reads the clock. */
17
+ export interface ArtifactSignal {
18
+ skillName: string;
19
+ /** Artifact location (provenance only here; path-gating happens in the service). */
20
+ artifactPath: string;
21
+ /** SHA-256 of the artifact content (computed by the service; provenance here). */
22
+ artifactHash: string;
23
+ /** Artifact size in bytes — a weak proxy for substance. */
24
+ contentBytes: number;
25
+ /** ISO timestamp the artifact was produced. Passed in; never Date.now() here. */
26
+ producedAt: string;
27
+ /** The user explicitly asked to capture/keep this knowledge. */
28
+ explicitUserIntent?: boolean;
29
+ /** A verified outcome backs the artifact: accepted verdict, green tests, shipped fix. */
30
+ verifiedOutcome?: boolean;
31
+ /** Addresses a recurring problem/friction (observed at least twice). */
32
+ recurringFriction?: boolean;
33
+ /** Caller-supplied novelty vs the existing wiki (0..2); profile default otherwise. */
34
+ noveltyDelta?: number;
35
+ /** Caller-supplied security-risk penalty (<= 0). */
36
+ securityRiskPenalty?: number;
37
+ /** Caller-supplied staleness penalty (<= 0). */
38
+ stalenessPenalty?: number;
39
+ }
40
+ /** A skill's knowledge handoff. Superset of ProposeInput: the extra fields are
41
+ * provenance the wiki_handoff store records; the rest map onto ProposeInput. */
42
+ export interface WikiHandoffPacket {
43
+ slug: WikiSlug;
44
+ skillName: string;
45
+ skillOwner?: string;
46
+ handoffClass: WikiHandoffClass;
47
+ profile: WikiHandoffProfileTag;
48
+ artifactPath: string;
49
+ artifactHash: string;
50
+ title: string;
51
+ content: string;
52
+ origin: WikiOrigin;
53
+ whySave: string;
54
+ evidence: string;
55
+ sourceIds: string[];
56
+ reuseScope: string;
57
+ verificationState: VerificationState;
58
+ riskScore: number;
59
+ noveltyDelta: number;
60
+ salience: SalienceComponents;
61
+ createdAt: string;
62
+ reviewAfter?: string;
63
+ }
64
+ /** The append-only outcome record written to handoffs.jsonl and ingested into
65
+ * wiki_handoff. It captures the decision (and candidate id, if one was created)
66
+ * — NEVER raw artifact content. */
67
+ export interface WikiHandoffRecord {
68
+ id: string;
69
+ slug: WikiSlug;
70
+ skillName: string;
71
+ skillOwner?: string;
72
+ handoffClass: WikiHandoffClass;
73
+ profile: WikiHandoffProfileTag;
74
+ artifactPath: string;
75
+ artifactHash: string;
76
+ title: string;
77
+ whySave: string;
78
+ evidence: string;
79
+ reuseScope: string;
80
+ verificationState: VerificationState;
81
+ riskScore: number;
82
+ salience: SalienceScore;
83
+ decisionKind: WikiWriteDecision["kind"] | "skipped";
84
+ candidateId?: string;
85
+ pageId?: string;
86
+ status: WikiHandoffStatus;
87
+ createdAt: string;
88
+ reviewAfter?: string;
89
+ }
90
+ /** One row in the per-skill registry. `defaultSalience` and `shouldSuggest` are
91
+ * pure functions of an ArtifactSignal — the salience GATE itself stays single-
92
+ * sourced in the domain (scoreSalience + SALIENCE_THRESHOLDS); a profile only
93
+ * supplies default component values, never new threshold logic. */
94
+ export interface SkillHandoffProfile {
95
+ skillName: string;
96
+ handoffClass: WikiHandoffClass;
97
+ profile: WikiHandoffProfileTag;
98
+ defaultReuseScope: string;
99
+ artifactPatterns: string[];
100
+ defaultSalience(signal: ArtifactSignal): SalienceComponents;
101
+ shouldSuggest(signal: ArtifactSignal): boolean;
102
+ }
103
+ /** Map a handoff packet onto the application ProposeInput contract. The provenance-
104
+ * only fields (skill, profile, artifact hash) are dropped — they live in wiki_handoff,
105
+ * not in the candidate. The result is assignable to ProposeInput by construction. */
106
+ export declare function toProposeInput(packet: WikiHandoffPacket): ProposeInput;
107
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/wiki/handoff/domain.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACX,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D;;uEAEuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AAEnE;+EAC+E;AAC/E,MAAM,MAAM,kBAAkB,GAC3B,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,oBAAoB,CAAC;AAExB,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAEhE,2CAA2C;AAC3C,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAIrF;;wFAEwF;AACxF,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID;gFACgF;AAChF,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;mCAEmC;AACnC,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;mEAGmE;AACnE,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC5D,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;CAC/C;AAQD;;qFAEqF;AACrF,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAgBtE"}
@@ -0,0 +1,31 @@
1
+ // Handoff domain. Pure vocabulary + mapper — no IO, no fs, no DB, no network.
2
+ // A knowledge-producing skill describes its terminal artifact as a WikiHandoffPacket;
3
+ // `toProposeInput` maps that packet onto the existing application ProposeInput contract,
4
+ // so the handoff path reuses the single decideWrite/scoreSalience gate rather than
5
+ // re-implementing one. The packet is a SUPERSET of ProposeInput: it adds skill/artifact
6
+ // provenance that the gate does not need but the wiki_handoff store records.
7
+ // Construction helpers (salienceComponents / makeSkillProfile / defineGroup /
8
+ // defaultShouldSuggest / ProfileSpec) live in `profile-factory.ts` so this file stays
9
+ // pure type vocabulary + the mapper.
10
+ // --- Mapper -----------------------------------------------------------------
11
+ /** Map a handoff packet onto the application ProposeInput contract. The provenance-
12
+ * only fields (skill, profile, artifact hash) are dropped — they live in wiki_handoff,
13
+ * not in the candidate. The result is assignable to ProposeInput by construction. */
14
+ export function toProposeInput(packet) {
15
+ return {
16
+ slug: packet.slug,
17
+ title: packet.title,
18
+ content: packet.content,
19
+ origin: packet.origin,
20
+ whySave: packet.whySave,
21
+ evidence: packet.evidence,
22
+ sourceIds: packet.sourceIds,
23
+ salience: packet.salience,
24
+ noveltyDelta: packet.noveltyDelta,
25
+ reuseScope: packet.reuseScope,
26
+ verificationState: packet.verificationState,
27
+ riskScore: packet.riskScore,
28
+ reviewAfter: packet.reviewAfter,
29
+ };
30
+ }
31
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/wiki/handoff/domain.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,sFAAsF;AACtF,yFAAyF;AACzF,mFAAmF;AACnF,wFAAwF;AACxF,6EAA6E;AA0I7E,8EAA8E;AAC9E,sFAAsF;AACtF,qCAAqC;AAErC,+EAA+E;AAE/E;;qFAEqF;AACrF,MAAM,UAAU,cAAc,CAAC,MAAyB;IACvD,OAAO;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { SalienceComponents } from "../domain/index.js";
2
+ import type { ArtifactSignal, SkillHandoffProfile, WikiHandoffClass, WikiHandoffProfileTag } from "./domain.js";
3
+ /** Build a full SalienceComponents from a partial, zero-filling the rest. */
4
+ export declare function salienceComponents(overrides?: Partial<SalienceComponents>): SalienceComponents;
5
+ /** Declarative spec for a registry row. Family files supply data; `makeSkillProfile`
6
+ * derives the `defaultSalience`/`shouldSuggest` behavior from the class + base. */
7
+ export interface ProfileSpec {
8
+ skillName: string;
9
+ handoffClass: WikiHandoffClass;
10
+ profile: WikiHandoffProfileTag;
11
+ defaultReuseScope: string;
12
+ artifactPatterns: string[];
13
+ /** Profile-typical salience emphasis before signal nudges. */
14
+ salienceBase: Partial<SalienceComponents>;
15
+ }
16
+ /** Class-driven suggestion policy. `none` never suggests; `required` suggests for any
17
+ * substantive artifact; `conditional` suggests only on a project-specific signal. */
18
+ export declare function defaultShouldSuggest(handoffClass: WikiHandoffClass, signal: ArtifactSignal): boolean;
19
+ /** Turn a declarative spec into a registry row. The salience function starts from the
20
+ * profile base and lets concrete signals raise intent/verified/recurrence and override
21
+ * novelty + the two penalties. */
22
+ export declare function makeSkillProfile(spec: ProfileSpec): SkillHandoffProfile;
23
+ /** Expand a shared profile spec across many skill names — one registry row each.
24
+ * Keeps family files declarative: a profile group is a `common` spec plus a name list. */
25
+ export declare function defineGroup(common: Omit<ProfileSpec, "skillName">, skillNames: string[]): SkillHandoffProfile[];
26
+ //# sourceMappingURL=profile-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-factory.d.ts","sourceRoot":"","sources":["../../../src/wiki/handoff/profile-factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEhH,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,kBAAkB,CAalG;AAED;mFACmF;AACnF,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1C;AAED;qFACqF;AACrF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAUpG;AAED;;kCAEkC;AAClC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB,CAuBvE;AAED;0FAC0F;AAC1F,wBAAgB,WAAW,CAC1B,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACtC,UAAU,EAAE,MAAM,EAAE,GAClB,mBAAmB,EAAE,CAEvB"}
@@ -0,0 +1,65 @@
1
+ // Construction helpers for the handoff profile registry. Separated from domain.ts so the
2
+ // domain file stays pure type vocabulary; this file holds the (still pure, no-IO) logic that
3
+ // turns declarative specs into registry rows and derives salience/suggestion from a signal.
4
+ /** Build a full SalienceComponents from a partial, zero-filling the rest. */
5
+ export function salienceComponents(overrides = {}) {
6
+ return {
7
+ explicit_user_intent: 0,
8
+ verified_outcome: 0,
9
+ recurrence_or_friction: 0,
10
+ novelty_vs_existing_wiki: 0,
11
+ future_reuse_likelihood: 0,
12
+ source_quality: 0,
13
+ blast_radius: 0,
14
+ security_risk_penalty: 0,
15
+ staleness_penalty: 0,
16
+ ...overrides,
17
+ };
18
+ }
19
+ /** Class-driven suggestion policy. `none` never suggests; `required` suggests for any
20
+ * substantive artifact; `conditional` suggests only on a project-specific signal. */
21
+ export function defaultShouldSuggest(handoffClass, signal) {
22
+ if (handoffClass === "none")
23
+ return false;
24
+ if (signal.contentBytes <= 0)
25
+ return false;
26
+ if (handoffClass === "required")
27
+ return true;
28
+ return Boolean(signal.verifiedOutcome ||
29
+ signal.explicitUserIntent ||
30
+ signal.recurringFriction ||
31
+ (signal.noveltyDelta ?? 0) > 0);
32
+ }
33
+ /** Turn a declarative spec into a registry row. The salience function starts from the
34
+ * profile base and lets concrete signals raise intent/verified/recurrence and override
35
+ * novelty + the two penalties. */
36
+ export function makeSkillProfile(spec) {
37
+ return {
38
+ skillName: spec.skillName,
39
+ handoffClass: spec.handoffClass,
40
+ profile: spec.profile,
41
+ defaultReuseScope: spec.defaultReuseScope,
42
+ artifactPatterns: spec.artifactPatterns,
43
+ defaultSalience(signal) {
44
+ const base = salienceComponents(spec.salienceBase);
45
+ return salienceComponents({
46
+ ...spec.salienceBase,
47
+ explicit_user_intent: signal.explicitUserIntent ? 3 : base.explicit_user_intent,
48
+ verified_outcome: signal.verifiedOutcome ? 3 : base.verified_outcome,
49
+ recurrence_or_friction: signal.recurringFriction ? 2 : base.recurrence_or_friction,
50
+ novelty_vs_existing_wiki: signal.noveltyDelta ?? base.novelty_vs_existing_wiki,
51
+ security_risk_penalty: signal.securityRiskPenalty ?? base.security_risk_penalty,
52
+ staleness_penalty: signal.stalenessPenalty ?? base.staleness_penalty,
53
+ });
54
+ },
55
+ shouldSuggest(signal) {
56
+ return defaultShouldSuggest(spec.handoffClass, signal);
57
+ },
58
+ };
59
+ }
60
+ /** Expand a shared profile spec across many skill names — one registry row each.
61
+ * Keeps family files declarative: a profile group is a `common` spec plus a name list. */
62
+ export function defineGroup(common, skillNames) {
63
+ return skillNames.map((skillName) => makeSkillProfile({ ...common, skillName }));
64
+ }
65
+ //# sourceMappingURL=profile-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-factory.js","sourceRoot":"","sources":["../../../src/wiki/handoff/profile-factory.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,6FAA6F;AAC7F,4FAA4F;AAK5F,6EAA6E;AAC7E,MAAM,UAAU,kBAAkB,CAAC,YAAyC,EAAE;IAC7E,OAAO;QACN,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,CAAC;QACnB,sBAAsB,EAAE,CAAC;QACzB,wBAAwB,EAAE,CAAC;QAC3B,uBAAuB,EAAE,CAAC;QAC1B,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,qBAAqB,EAAE,CAAC;QACxB,iBAAiB,EAAE,CAAC;QACpB,GAAG,SAAS;KACZ,CAAC;AACH,CAAC;AAcD;qFACqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,YAA8B,EAAE,MAAsB;IAC1F,IAAI,YAAY,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,YAAY,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,OAAO,CACb,MAAM,CAAC,eAAe;QACrB,MAAM,CAAC,kBAAkB;QACzB,MAAM,CAAC,iBAAiB;QACxB,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAC/B,CAAC;AACH,CAAC;AAED;;kCAEkC;AAClC,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IACjD,OAAO;QACN,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,eAAe,CAAC,MAAsB;YACrC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,OAAO,kBAAkB,CAAC;gBACzB,GAAG,IAAI,CAAC,YAAY;gBACpB,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB;gBAC/E,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB;gBACpE,sBAAsB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB;gBAClF,wBAAwB,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,wBAAwB;gBAC9E,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,qBAAqB;gBAC/E,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB;aACpE,CAAC,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,MAAsB;YACnC,OAAO,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;KACD,CAAC;AACH,CAAC;AAED;0FAC0F;AAC1F,MAAM,UAAU,WAAW,CAC1B,MAAsC,EACtC,UAAoB;IAEpB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SkillHandoffProfile } from "../domain.js";
2
+ export declare const externalProfiles: SkillHandoffProfile[];
3
+ //# sourceMappingURL=external.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/external.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAwBjD,CAAC"}
@@ -0,0 +1,27 @@
1
+ // External-spec profile family. Knowledge sourced from outside the repo (specs,
2
+ // tickets, fetched docs). Conditional: only worth saving with source provenance
3
+ // and a clean scan — never a single-use lookup.
4
+ import { defineGroup } from "../profile-factory.js";
5
+ export const externalProfiles = [
6
+ ...defineGroup({
7
+ handoffClass: "conditional",
8
+ profile: "external-spec",
9
+ defaultReuseScope: "external-spec",
10
+ artifactPatterns: ["tasks/reports/*.md", "tasks/wikis/*/sources.jsonl"],
11
+ salienceBase: {
12
+ source_quality: 2,
13
+ future_reuse_likelihood: 2,
14
+ novelty_vs_existing_wiki: 1,
15
+ },
16
+ }, [
17
+ "mk:confluence-spec-analyst",
18
+ "mk:docs-finder",
19
+ "mk:jira-analyst",
20
+ "mk:jira-estimator",
21
+ "mk:jira-evaluator",
22
+ "mk:pack",
23
+ "mk:web-to-markdown",
24
+ "mk:wiki-research",
25
+ ]),
26
+ ];
27
+ //# sourceMappingURL=external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/external.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACtD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,eAAe;QACxB,iBAAiB,EAAE,eAAe;QAClC,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;QACvE,YAAY,EAAE;YACb,cAAc,EAAE,CAAC;YACjB,uBAAuB,EAAE,CAAC;YAC1B,wBAAwB,EAAE,CAAC;SAC3B;KACD,EACD;QACC,4BAA4B;QAC5B,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,SAAS;QACT,oBAAoB;QACpB,kBAAkB;KAClB,CACD;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SkillHandoffProfile } from "../domain.js";
2
+ export declare const frameworkProfiles: SkillHandoffProfile[];
3
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/framework.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,EAyFlD,CAAC"}
@@ -0,0 +1,83 @@
1
+ // Framework family: architecture analysis, project conventions, and operational
2
+ // workflow recipes. Mostly conditional — generic framework knowledge is NOT worth
3
+ // saving; only repo-specific decisions, conventions, and reusable recipes are.
4
+ import { defineGroup } from "../profile-factory.js";
5
+ export const frameworkProfiles = [
6
+ // Structured architecture candidates / ADR linkage — always advisory.
7
+ ...defineGroup({
8
+ handoffClass: "required",
9
+ profile: "architecture-analysis",
10
+ defaultReuseScope: "architecture",
11
+ artifactPatterns: ["docs/architecture/*.md", "docs/architecture/adr/*.md", "tasks/reports/*.md"],
12
+ salienceBase: {
13
+ verified_outcome: 1,
14
+ future_reuse_likelihood: 2,
15
+ source_quality: 2,
16
+ blast_radius: 2,
17
+ },
18
+ }, ["mk:improve-codebase-architecture"]),
19
+ // Design / data decisions — saved only when a project standard is chosen.
20
+ ...defineGroup({
21
+ handoffClass: "conditional",
22
+ profile: "architecture-analysis",
23
+ defaultReuseScope: "architecture",
24
+ artifactPatterns: ["docs/architecture/*.md", "docs/design-guidelines.md"],
25
+ salienceBase: {
26
+ future_reuse_likelihood: 2,
27
+ source_quality: 1,
28
+ blast_radius: 1,
29
+ novelty_vs_existing_wiki: 1,
30
+ },
31
+ }, ["mk:api-design", "mk:database", "mk:frontend-design", "mk:stitch", "mk:tech-graph", "mk:ui-design-system"]),
32
+ // Repo-specific conventions and reusable strategies.
33
+ ...defineGroup({
34
+ handoffClass: "conditional",
35
+ profile: "project-convention",
36
+ defaultReuseScope: "convention",
37
+ artifactPatterns: ["docs/code-standards.md", "docs/project-context.md", "tasks/reports/*.md"],
38
+ salienceBase: {
39
+ future_reuse_likelihood: 2,
40
+ source_quality: 1,
41
+ novelty_vs_existing_wiki: 1,
42
+ },
43
+ }, [
44
+ "mk:angular",
45
+ "mk:ask-me",
46
+ "mk:clean-code",
47
+ "mk:context-audit",
48
+ "mk:decision-framework",
49
+ "mk:docs-init",
50
+ "mk:document-release",
51
+ "mk:grill",
52
+ "mk:intake",
53
+ "mk:nyquist",
54
+ "mk:preview",
55
+ "mk:project-context",
56
+ "mk:prompt-enhancer",
57
+ "mk:qa",
58
+ "mk:qa-manual",
59
+ "mk:react-patterns",
60
+ "mk:resolving-merge-conflicts",
61
+ "mk:scout",
62
+ "mk:ship",
63
+ "mk:skill-creator",
64
+ "mk:typescript",
65
+ "mk:visual-plan",
66
+ "mk:vue",
67
+ "mk:vue-best-practices",
68
+ "mk:vue-testing-best-practices",
69
+ ]),
70
+ // Operational recipes — saved only when they cut future operational friction.
71
+ ...defineGroup({
72
+ handoffClass: "conditional",
73
+ profile: "workflow-recipe",
74
+ defaultReuseScope: "workflow-recipe",
75
+ artifactPatterns: ["tasks/reports/*.md"],
76
+ salienceBase: {
77
+ recurrence_or_friction: 1,
78
+ future_reuse_likelihood: 2,
79
+ source_quality: 1,
80
+ },
81
+ }, ["mk:agent-browser", "mk:ghpm", "mk:jira-agile", "mk:jira-bulk", "mk:jira-lifecycle"]),
82
+ ];
83
+ //# sourceMappingURL=framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/framework.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,+EAA+E;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACvD,sEAAsE;IACtE,GAAG,WAAW,CACb;QACC,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,uBAAuB;QAChC,iBAAiB,EAAE,cAAc;QACjC,gBAAgB,EAAE,CAAC,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,CAAC;QAChG,YAAY,EAAE;YACb,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;SACf;KACD,EACD,CAAC,kCAAkC,CAAC,CACpC;IACD,0EAA0E;IAC1E,GAAG,WAAW,CACb;QACC,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,uBAAuB;QAChC,iBAAiB,EAAE,cAAc;QACjC,gBAAgB,EAAE,CAAC,wBAAwB,EAAE,2BAA2B,CAAC;QACzE,YAAY,EAAE;YACb,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;YACf,wBAAwB,EAAE,CAAC;SAC3B;KACD,EACD,CAAC,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAC3G;IACD,qDAAqD;IACrD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,oBAAoB;QAC7B,iBAAiB,EAAE,YAAY;QAC/B,gBAAgB,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,EAAE,oBAAoB,CAAC;QAC7F,YAAY,EAAE;YACb,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,wBAAwB,EAAE,CAAC;SAC3B;KACD,EACD;QACC,YAAY;QACZ,WAAW;QACX,eAAe;QACf,kBAAkB;QAClB,uBAAuB;QACvB,cAAc;QACd,qBAAqB;QACrB,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,oBAAoB;QACpB,oBAAoB;QACpB,OAAO;QACP,cAAc;QACd,mBAAmB;QACnB,8BAA8B;QAC9B,UAAU;QACV,SAAS;QACT,kBAAkB;QAClB,eAAe;QACf,gBAAgB;QAChB,QAAQ;QACR,uBAAuB;QACvB,+BAA+B;KAC/B,CACD;IACD,8EAA8E;IAC9E,GAAG,WAAW,CACb;QACC,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,iBAAiB;QAC1B,iBAAiB,EAAE,iBAAiB;QACpC,gBAAgB,EAAE,CAAC,oBAAoB,CAAC;QACxC,YAAY,EAAE;YACb,sBAAsB,EAAE,CAAC;YACzB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;SACjB;KACD,EACD,CAAC,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,CAAC,CACrF;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SkillHandoffProfile } from "../domain.js";
2
+ export declare const lifecycleProfiles: SkillHandoffProfile[];
3
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/lifecycle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,EA+BlD,CAAC"}
@@ -0,0 +1,30 @@
1
+ // Lifecycle + root-cause profile family. Skills that orchestrate a full run or
2
+ // diagnose a defect — their terminal report is high-value recall for later agents.
3
+ import { defineGroup } from "../profile-factory.js";
4
+ export const lifecycleProfiles = [
5
+ ...defineGroup({
6
+ handoffClass: "required",
7
+ profile: "lifecycle-run",
8
+ defaultReuseScope: "lifecycle",
9
+ artifactPatterns: ["tasks/reports/*.md", "tasks/reviews/*.md", "tasks/autobuild-runs/*"],
10
+ salienceBase: {
11
+ verified_outcome: 2,
12
+ source_quality: 2,
13
+ future_reuse_likelihood: 2,
14
+ blast_radius: 1,
15
+ },
16
+ }, ["mk:autobuild", "mk:benchmark", "mk:cook", "mk:loop", "mk:trace-analyze", "mk:workflow-orchestrator"]),
17
+ ...defineGroup({
18
+ handoffClass: "required",
19
+ profile: "root-cause",
20
+ defaultReuseScope: "debugging",
21
+ artifactPatterns: ["docs/journal/*.md", "tasks/reports/*.md"],
22
+ salienceBase: {
23
+ verified_outcome: 2,
24
+ recurrence_or_friction: 1,
25
+ future_reuse_likelihood: 2,
26
+ source_quality: 2,
27
+ },
28
+ }, ["mk:build-fix", "mk:fix", "mk:investigate", "mk:problem-solving"]),
29
+ ];
30
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/lifecycle.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mFAAmF;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACvD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,eAAe;QACxB,iBAAiB,EAAE,WAAW;QAC9B,gBAAgB,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,CAAC;QACxF,YAAY,EAAE;YACb,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,uBAAuB,EAAE,CAAC;YAC1B,YAAY,EAAE,CAAC;SACf;KACD,EACD,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CACtG;IACD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,YAAY;QACrB,iBAAiB,EAAE,WAAW;QAC9B,gBAAgB,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;QAC7D,YAAY,EAAE;YACb,gBAAgB,EAAE,CAAC;YACnB,sBAAsB,EAAE,CAAC;YACzB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;SACjB;KACD,EACD,CAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAClE;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SkillHandoffProfile } from "../domain.js";
2
+ export declare const researchProfiles: SkillHandoffProfile[];
3
+ //# sourceMappingURL=research.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/research.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAgCjD,CAAC"}
@@ -0,0 +1,31 @@
1
+ // Planning + decision profile family. Skills that set scope or record a chosen
2
+ // direction — the kind of context whose absence makes a later agent repeat a debate.
3
+ import { defineGroup } from "../profile-factory.js";
4
+ export const researchProfiles = [
5
+ ...defineGroup({
6
+ handoffClass: "required",
7
+ profile: "planning-report",
8
+ defaultReuseScope: "planning",
9
+ artifactPatterns: ["tasks/plans/*/plan.md", "tasks/reports/*.md"],
10
+ salienceBase: {
11
+ explicit_user_intent: 1,
12
+ verified_outcome: 1,
13
+ future_reuse_likelihood: 2,
14
+ source_quality: 2,
15
+ blast_radius: 1,
16
+ },
17
+ }, ["mk:brainstorming", "mk:plan-ceo-review", "mk:plan-creator", "mk:planning-engine", "mk:sprint-contract", "mk:story-sizer"]),
18
+ ...defineGroup({
19
+ handoffClass: "required",
20
+ profile: "decision-record",
21
+ defaultReuseScope: "decisions",
22
+ artifactPatterns: ["docs/architecture/adr/*.md", "tasks/reports/*.md"],
23
+ salienceBase: {
24
+ explicit_user_intent: 2,
25
+ future_reuse_likelihood: 2,
26
+ source_quality: 2,
27
+ blast_radius: 1,
28
+ },
29
+ }, ["mk:office-hours", "mk:party", "mk:retro"]),
30
+ ];
31
+ //# sourceMappingURL=research.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../../src/wiki/handoff/profiles/research.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qFAAqF;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACtD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,iBAAiB;QAC1B,iBAAiB,EAAE,UAAU;QAC7B,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;QACjE,YAAY,EAAE;YACb,oBAAoB,EAAE,CAAC;YACvB,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;SACf;KACD,EACD,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAC3H;IACD,GAAG,WAAW,CACb;QACC,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE,iBAAiB;QAC1B,iBAAiB,EAAE,WAAW;QAC9B,gBAAgB,EAAE,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;QACtE,YAAY,EAAE;YACb,oBAAoB,EAAE,CAAC;YACvB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;SACf;KACD,EACD,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAC3C;CACD,CAAC"}