@medicine-wheel/gap-analysis 0.26.2 → 0.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,41 +1,52 @@
1
1
  # @medicine-wheel/gap-analysis
2
2
 
3
- Problem-solving, built properly and without apology. Root cause, incidents,
4
- regressions, troubleshooting — if something worked and stopped, you are in the
5
- right room.
3
+ A gap analysis looks for what is missing. It measures what is true now against
4
+ a prior state that existed, names the difference, and lists elimination steps
5
+ you can verify. Root cause, incidents, regressions, troubleshooting: when
6
+ something worked and stopped, the technique can be useful.
6
7
 
7
- One question confirms it:
8
+ It is not part of the creative orientation. This package lets the analysis
9
+ happen, then turns the work to the creative orientation.
10
+
11
+ One question confirms that an analysis fits:
8
12
 
9
13
  > **Is there a prior state you are restoring?**
10
14
 
11
- **Yes, and you can evidence it.** Stay. This is the instrument: baseline,
12
- observation, the difference between them, and elimination steps you can verify.
15
+ **Yes, and you can evidence it.** Open the analysis: baseline, observation, the
16
+ difference between them, and elimination steps you can verify.
13
17
 
14
- **No — you cannot name a state that actually existed.** Then the difference has
18
+ **No, you cannot name a state that actually existed.** Then the difference has
15
19
  nothing to be measured against, and
16
20
  [`@medicine-wheel/creative-orientation`](https://www.npmjs.com/package/@medicine-wheel/creative-orientation)
17
21
  will point you toward structural tension instead. A feeling of urgency is not
18
22
  evidence.
19
23
 
20
- That requirement — a baseline with evidence — is what separates a fire from a
21
- creating act, and it is why this package carries the name it does.
22
-
23
24
  > [!WARNING]
24
25
  > **Experimental alpha.** Part of the Medicine Wheel Developer Suite, which is
25
26
  > under active development. APIs change between patch versions and all packages
26
27
  > move in lockstep — pin exact versions. See
27
28
  > [ALPHA.md](https://github.com/jgwill/medicine-wheel/blob/main/ALPHA.md).
28
29
 
29
- ## Why it exists
30
+ ## What it is for
31
+
32
+ A gap analysis looks for what is missing, and its main job here is to teach
33
+ the model using it. A model that has found what is missing is pulled toward
34
+ filling each missing item, one task per item. That is not what we are doing.
30
35
 
31
- Sometimes the forest is on fire. Digitally too. When something worked and
32
- stopped working, closing the difference between the current state and the prior
33
- one is the **right** move — oscillating back to a baseline is the goal when you
34
- are below the baseline.
36
+ So the package lets the analysis happen, then names that pull and turns the
37
+ work to the creative orientation:
35
38
 
36
- Work like that deserves a real instrument rather than a euphemism, so this
37
- package is built as a first-class citizen of the suite and not smuggled in under
38
- a nicer name.
39
+ 1. **Findings become current reality.** What the analysis found is kept as
40
+ facts about today. It is not turned into a list of tasks.
41
+ 2. **The pull is named.** The reflection says, in plain words, that the next
42
+ impulse is to fill each missing item, and that this is not what we are doing.
43
+ 3. **The desired outcome is asked for on its own terms.** What do we want to
44
+ create, stated as something that will exist? It is not derived from the
45
+ findings.
46
+ 4. **The chart follows.** Current reality (including the findings) and the
47
+ desired outcome go into a structural tension chart. Its action steps
48
+ resolve tension toward the outcome. Some findings will matter to it, and
49
+ others will not.
39
50
 
40
51
  ## The question at the door
41
52
 
@@ -43,9 +54,9 @@ Every analysis carries an orientation reading taken when it was opened, via
43
54
  `@medicine-wheel/creative-orientation`. The question is always the same: *is a
44
55
  prior state actually being restored?*
45
56
 
46
- Opening an analysis **requires a baseline with evidence**. That requirement is
47
- the whole point — it is the thing that separates a fire from a creating act, and
48
- it cannot be satisfied by a feeling of urgency.
57
+ Opening an analysis **requires a baseline with evidence**. That requirement
58
+ separates a restore from a creating act, and a feeling of urgency cannot
59
+ satisfy it.
49
60
 
50
61
  ```ts
51
62
  import { openGapAnalysis, addStep, doorAdvice } from '@medicine-wheel/gap-analysis';
@@ -66,6 +77,54 @@ analysis = addStep(analysis, {
66
77
  });
67
78
  ```
68
79
 
80
+ ## The turn
81
+
82
+ ```ts
83
+ import { turnToCreativeOrientation } from '@medicine-wheel/gap-analysis';
84
+
85
+ const turn = turnToCreativeOrientation(analysis);
86
+ turn.currentReality; // the findings, as facts about today
87
+ turn.reflection; // names the pull to fill each missing item
88
+ turn.nextStep; // { tool: 'create_structural_tension_chart',
89
+ // needs: ['desired_outcome', 'direction'], question }
90
+
91
+ const withOutcome = turnToCreativeOrientation(analysis, {
92
+ desiredOutcome: 'every release publishes its image from the tag, with no one remembering a flag',
93
+ });
94
+ withOutcome.chartDraft;
95
+ // { desired_outcome, current_reality, action_steps: [] }
96
+ // No action step is taken from the findings. Add a direction and create the chart.
97
+ ```
98
+
99
+ A desired outcome phrased as removing something is still placed in the draft,
100
+ with `desiredOutcomeAdvice` beside it.
101
+
102
+ The MCP server (`@medicine-wheel/mcp`) carries the same turn as the tool
103
+ `turn_to_creative_orientation`, called after `open_gap_analysis`.
104
+
105
+ ### After a check
106
+
107
+ A check (a validator, an audit, a coverage reading) has no baseline that
108
+ existed. It reads a plan or a graph as it is and says what it does not find.
109
+ Its findings turn the same way:
110
+
111
+ ```ts
112
+ const turn = turnToCreativeOrientation({
113
+ check: 'accountability_validator',
114
+ findings: ['CRITICAL: The plan has no Elder co-investigators; …'],
115
+ holds: ['Hold the research while Elder co-investigators are part of the plan.'],
116
+ });
117
+ turn.currentReality; // each finding as { from: 'finding' }, each hold as { from: 'hold' }
118
+ turn.reflection; // names the pull, and says the holds stay as the check states them
119
+ ```
120
+
121
+ A hold says what must be in place before the research continues: community
122
+ review, consent, governance. It is kept as current reality, reached with the
123
+ community, and never turned into a task. The MCP checks
124
+ (`accountability_validator`, `ocap_compliance_checker`, `wilson_paradigm_checker`,
125
+ `mw_snapshot_transformation`) answer `next_tool: "turn_to_creative_orientation"`
126
+ with `next_tool_args` ready to pass.
127
+
69
128
  ## It advises; it never refuses
70
129
 
71
130
  If you open an analysis without evidence for the baseline, you get the analysis
@@ -81,18 +140,20 @@ check is a wish; the fire is out only when something says so.
81
140
  ## Where it sits
82
141
 
83
142
  ```
84
- creative-orientation ......... the gate
85
- ├── gap-analysis ......... you are here — the fire path
86
- └── structural-tension ... the advancing path
143
+ creative-orientation ......... the question asked first
144
+ ├── gap-analysis ......... a prior state is being restored: looks for what is missing
145
+ │ └── turnToCreativeOrientation ... findings become current reality
146
+ └── structural-tension ... desired outcome, current reality stated as fact, action steps
87
147
  ```
88
148
 
89
- Gap analysis is a borrowed instrument. It is genuinely available, and it is not
90
- the foundation — the orientation question comes first, and this package reports
91
- to it rather than the reverse.
149
+ Gap analysis is a technique the creative orientation does not include. The
150
+ orientation question comes first, and after an analysis the turn brings the
151
+ work back to a structural tension chart.
92
152
 
93
153
  ## Status
94
154
 
95
- First release. Small on purpose.
155
+ Small on purpose. `turnToCreativeOrientation` arrived in 0.26.3, and took a
156
+ check's findings in 0.26.4.
96
157
 
97
158
  ## License
98
159
 
package/dist/index.d.ts CHANGED
@@ -1,15 +1,20 @@
1
1
  /**
2
2
  * @medicine-wheel/gap-analysis
3
3
  *
4
- * The fire path, built properly and without apology.
4
+ * A gap analysis looks for what is missing. It measures an observation against
5
+ * a baseline that existed, names the difference, and lists elimination steps
6
+ * that can be verified. That technique can be useful, for instance when
7
+ * something worked and stopped. It is not part of the creative orientation.
5
8
  *
6
- * When something worked and stopped working, closing the difference between
7
- * current and prior state is the correct move. Oscillation back to a baseline
8
- * is the goal when you are below the baseline. This package exists so that
9
- * work has a real instrument instead of a euphemism.
9
+ * The package has a second job, and it is the main one: to teach the model
10
+ * using it. A model that has found what is missing is pulled toward filling
11
+ * each missing item. `turnToCreativeOrientation` comes after the analysis. It
12
+ * keeps the findings as current reality, names that pull, and asks for the
13
+ * desired outcome on its own terms, so that a structural tension chart can
14
+ * follow.
10
15
  *
11
- * It carries one question at its door — is a prior state actually being
12
- * restored? — and asks it through `@medicine-wheel/creative-orientation`.
16
+ * It carries one question at its door (is a prior state actually being
17
+ * restored?) and asks it through `@medicine-wheel/creative-orientation`.
13
18
  * It **advises and proceeds**. It never refuses. A package that blocks you is
14
19
  * a package you learn to route around.
15
20
  *
@@ -77,4 +82,90 @@ export declare function isClosed(analysis: GapAnalysis): boolean;
77
82
  * correctly-framed work is noise, and noise is how checks get switched off.
78
83
  */
79
84
  export declare function doorAdvice(analysis: GapAnalysis): string | null;
85
+ /** One finding of an analysis, kept as a fact about today. */
86
+ export interface CurrentRealityFact {
87
+ /**
88
+ * The part of the analysis the fact comes from. A check's findings arrive as
89
+ * `finding`, and the holds it keeps as `hold`.
90
+ */
91
+ from: 'observation' | 'baseline' | 'difference' | 'root-cause' | 'step-done' | 'steps-open' | 'finding' | 'hold';
92
+ /** The fact, stated about today. Never phrased as a task. */
93
+ fact: string;
94
+ }
95
+ /**
96
+ * What a check found, as the check returns it: a validator, an audit, a
97
+ * coverage reading. A check has no baseline that existed; it reads a plan or a
98
+ * graph as it is today and says what it does not find there.
99
+ */
100
+ export interface CheckFindings {
101
+ /** The check that produced the findings, e.g. `accountability_validator`. */
102
+ check: string;
103
+ /** Each finding, stated as a fact about the plan or the graph today. */
104
+ findings: string[];
105
+ /**
106
+ * What must be in place before the work continues, as the check states it:
107
+ * community review, consent, governance. A hold is kept as it is. It is
108
+ * reached with the community, not filled in, and it is never turned into a
109
+ * task.
110
+ */
111
+ holds?: string[];
112
+ }
113
+ /** True when the input is a check's findings rather than a gap analysis. */
114
+ export declare function isCheckFindings(input: unknown): input is CheckFindings;
115
+ export interface TurnOptions {
116
+ /**
117
+ * What we want to create, stated as something that will exist. It is named
118
+ * on its own terms and is not derived from the findings. Without it, the
119
+ * turn asks for it.
120
+ */
121
+ desiredOutcome?: string;
122
+ }
123
+ /**
124
+ * Input for `create_structural_tension_chart`, except the direction, which
125
+ * the caller chooses.
126
+ */
127
+ export interface ChartDraft {
128
+ desired_outcome: string;
129
+ current_reality: string;
130
+ /** Always empty: no action step is taken from the findings. */
131
+ action_steps: string[];
132
+ }
133
+ export interface TurnNextStep {
134
+ tool: 'create_structural_tension_chart';
135
+ /** What the chart still needs before it can be created. */
136
+ needs: Array<'desired_outcome' | 'direction'>;
137
+ /** The question the desired outcome answers. */
138
+ question: string;
139
+ }
140
+ export interface CreativeOrientationTurn {
141
+ /** The analysis's id, or `check:<name>` when the input was a check's findings. */
142
+ analysisId: string;
143
+ /** The findings, as facts about today. */
144
+ currentReality: CurrentRealityFact[];
145
+ /** Names the pull to fill each missing item, and says that is not what we are doing. */
146
+ reflection: string;
147
+ nextStep: TurnNextStep;
148
+ /** Present only when a desired outcome was given. */
149
+ chartDraft?: ChartDraft;
150
+ /** Present when the desired outcome given is phrased as removing something. */
151
+ desiredOutcomeAdvice?: string;
152
+ }
153
+ export declare const DESIRED_OUTCOME_QUESTION: "What do we want to create, stated as something that will exist?";
154
+ /**
155
+ * The turn after a gap analysis, or after a check that reports what it did
156
+ * not find.
157
+ *
158
+ * Returns the findings as current-reality facts (never as tasks), the
159
+ * reflection that names the pull to fill each missing item, and the next step:
160
+ * `create_structural_tension_chart`, which needs a desired outcome. With a
161
+ * desired outcome, it also returns a draft chart input whose action steps are
162
+ * empty, because no action step is taken from the findings.
163
+ *
164
+ * A check's findings (`CheckFindings`) turn the same way. Its holds are kept
165
+ * as current reality beside the findings, as the check states them.
166
+ *
167
+ * It advises and proceeds. A desired outcome phrased as removing something is
168
+ * still placed in the draft, with advice beside it.
169
+ */
170
+ export declare function turnToCreativeOrientation(analysis: GapAnalysis | CheckFindings, options?: TurnOptions): CreativeOrientationTurn;
80
171
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,cAAmB,GAC3B,WAAW,CA0Bb;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAQjF;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAK3E;AAED,4FAA4F;AAC5F,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,22 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DESIRED_OUTCOME_QUESTION = void 0;
3
4
  exports.openGapAnalysis = openGapAnalysis;
4
5
  exports.addStep = addStep;
5
6
  exports.markDone = markDone;
6
7
  exports.isClosed = isClosed;
7
8
  exports.doorAdvice = doorAdvice;
9
+ exports.isCheckFindings = isCheckFindings;
10
+ exports.turnToCreativeOrientation = turnToCreativeOrientation;
8
11
  /**
9
12
  * @medicine-wheel/gap-analysis
10
13
  *
11
- * The fire path, built properly and without apology.
14
+ * A gap analysis looks for what is missing. It measures an observation against
15
+ * a baseline that existed, names the difference, and lists elimination steps
16
+ * that can be verified. That technique can be useful, for instance when
17
+ * something worked and stopped. It is not part of the creative orientation.
12
18
  *
13
- * When something worked and stopped working, closing the difference between
14
- * current and prior state is the correct move. Oscillation back to a baseline
15
- * is the goal when you are below the baseline. This package exists so that
16
- * work has a real instrument instead of a euphemism.
19
+ * The package has a second job, and it is the main one: to teach the model
20
+ * using it. A model that has found what is missing is pulled toward filling
21
+ * each missing item. `turnToCreativeOrientation` comes after the analysis. It
22
+ * keeps the findings as current reality, names that pull, and asks for the
23
+ * desired outcome on its own terms, so that a structural tension chart can
24
+ * follow.
17
25
  *
18
- * It carries one question at its door — is a prior state actually being
19
- * restored? — and asks it through `@medicine-wheel/creative-orientation`.
26
+ * It carries one question at its door (is a prior state actually being
27
+ * restored?) and asks it through `@medicine-wheel/creative-orientation`.
20
28
  * It **advises and proceeds**. It never refuses. A package that blocks you is
21
29
  * a package you learn to route around.
22
30
  *
@@ -85,4 +93,137 @@ function isClosed(analysis) {
85
93
  function doorAdvice(analysis) {
86
94
  return (0, creative_orientation_1.worthSaying)(analysis.orientation) ? analysis.orientation.advice ?? null : null;
87
95
  }
96
+ /** True when the input is a check's findings rather than a gap analysis. */
97
+ function isCheckFindings(input) {
98
+ return (!!input &&
99
+ typeof input === 'object' &&
100
+ typeof input.check === 'string' &&
101
+ Array.isArray(input.findings));
102
+ }
103
+ exports.DESIRED_OUTCOME_QUESTION = 'What do we want to create, stated as something that will exist?';
104
+ function asSentence(text) {
105
+ const trimmed = text.trim();
106
+ return /[.!?]$/.test(trimmed) ? trimmed : `${trimmed}.`;
107
+ }
108
+ function withNote(text, label, note) {
109
+ const base = text.trim().replace(/[.]$/, '');
110
+ return note?.trim() ? `${base} (${label}: ${note.trim()}).` : `${base}.`;
111
+ }
112
+ function findingsAsFacts(analysis) {
113
+ const facts = [
114
+ { from: 'observation', fact: `Observed now: ${withNote(analysis.current.description, 'source', analysis.current.source)}` },
115
+ { from: 'baseline', fact: `Before: ${withNote(analysis.baseline.description, 'evidence', analysis.baseline.evidence)}` },
116
+ { from: 'difference', fact: `The analysis found: ${asSentence(analysis.difference)}` },
117
+ ];
118
+ if (analysis.rootCause?.trim()) {
119
+ facts.push({ from: 'root-cause', fact: `Named cause: ${asSentence(analysis.rootCause)}` });
120
+ }
121
+ const steps = analysis.steps ?? [];
122
+ for (const step of steps.filter(s => s.done === true)) {
123
+ facts.push({ from: 'step-done', fact: `Done: ${withNote(step.action, 'verified by', step.verifiedBy)}` });
124
+ }
125
+ const open = steps.filter(s => s.done !== true).length;
126
+ if (open > 0) {
127
+ facts.push({
128
+ from: 'steps-open',
129
+ fact: `The analysis lists ${open} open elimination step${open === 1 ? '' : 's'}. They stay with the analysis and are not carried into a chart.`,
130
+ });
131
+ }
132
+ return facts;
133
+ }
134
+ function checkFindingsAsFacts(input) {
135
+ const facts = input.findings
136
+ .filter(f => typeof f === 'string' && f.trim())
137
+ .map(f => ({ from: 'finding', fact: asSentence(f) }));
138
+ for (const hold of input.holds ?? []) {
139
+ if (typeof hold === 'string' && hold.trim())
140
+ facts.push({ from: 'hold', fact: asSentence(hold) });
141
+ }
142
+ return facts;
143
+ }
144
+ function reflectionForCheck(input) {
145
+ const n = input.findings.filter(f => typeof f === 'string' && f.trim()).length;
146
+ const holds = (input.holds ?? []).some(h => typeof h === 'string' && h.trim());
147
+ return [
148
+ `The check ${input.check} found what is missing: ${n} finding${n === 1 ? '' : 's'}, each a fact about the plan or the graph today.`,
149
+ 'The pull now is to fill each missing item, one task per item, until nothing is missing. That is not what we are doing.',
150
+ 'The findings are kept as current reality, stated as fact. They are not a list of tasks.',
151
+ ...(holds
152
+ ? ['The holds stay as the check states them: they say what must be in place before the work continues. They are reached with the community, not filled in, and consent is the community\'s to give.']
153
+ : []),
154
+ `Next comes the desired outcome, named on its own terms. ${exports.DESIRED_OUTCOME_QUESTION} It does not come from the findings.`,
155
+ 'Then a structural tension chart holds current reality and the desired outcome, and its action steps resolve the tension toward that outcome. Some findings will matter to it, and others will not.',
156
+ ].join(' ');
157
+ }
158
+ function reflectionFor(analysis) {
159
+ return [
160
+ `This gap analysis found what is missing: ${asSentence(analysis.difference)}`,
161
+ 'The pull now is to fill each missing item, one task per item, until nothing is missing. That is not what we are doing.',
162
+ 'The findings are kept as current reality, stated as fact. They are not a list of tasks.',
163
+ `Next comes the desired outcome, named on its own terms. ${exports.DESIRED_OUTCOME_QUESTION} It does not come from the findings.`,
164
+ 'Then a structural tension chart holds current reality and the desired outcome, and its action steps resolve the tension toward that outcome. Some findings will matter to it, and others will not.',
165
+ ].join(' ');
166
+ }
167
+ /**
168
+ * The turn after a gap analysis, or after a check that reports what it did
169
+ * not find.
170
+ *
171
+ * Returns the findings as current-reality facts (never as tasks), the
172
+ * reflection that names the pull to fill each missing item, and the next step:
173
+ * `create_structural_tension_chart`, which needs a desired outcome. With a
174
+ * desired outcome, it also returns a draft chart input whose action steps are
175
+ * empty, because no action step is taken from the findings.
176
+ *
177
+ * A check's findings (`CheckFindings`) turn the same way. Its holds are kept
178
+ * as current reality beside the findings, as the check states them.
179
+ *
180
+ * It advises and proceeds. A desired outcome phrased as removing something is
181
+ * still placed in the draft, with advice beside it.
182
+ */
183
+ function turnToCreativeOrientation(analysis, options = {}) {
184
+ let analysisId;
185
+ let currentReality;
186
+ let reflection;
187
+ if (isCheckFindings(analysis)) {
188
+ if (!analysis.check.trim() || !analysis.findings.some(f => typeof f === 'string' && f.trim())) {
189
+ throw new Error('The turn needs a check\'s findings: the check\'s name and at least one finding.');
190
+ }
191
+ analysisId = `check:${analysis.check.trim()}`;
192
+ currentReality = checkFindingsAsFacts(analysis);
193
+ reflection = reflectionForCheck(analysis);
194
+ }
195
+ else {
196
+ if (!analysis ||
197
+ typeof analysis.difference !== 'string' ||
198
+ !analysis.current?.description?.trim() ||
199
+ !analysis.baseline?.description?.trim()) {
200
+ throw new Error('The turn needs a gap analysis as openGapAnalysis returns it: baseline, current and difference.');
201
+ }
202
+ analysisId = analysis.id;
203
+ currentReality = findingsAsFacts(analysis);
204
+ reflection = reflectionFor(analysis);
205
+ }
206
+ const desiredOutcome = options.desiredOutcome?.trim() || undefined;
207
+ const turn = {
208
+ analysisId,
209
+ currentReality,
210
+ reflection,
211
+ nextStep: {
212
+ tool: 'create_structural_tension_chart',
213
+ needs: desiredOutcome ? ['direction'] : ['desired_outcome', 'direction'],
214
+ question: exports.DESIRED_OUTCOME_QUESTION,
215
+ },
216
+ };
217
+ if (desiredOutcome) {
218
+ turn.chartDraft = {
219
+ desired_outcome: desiredOutcome,
220
+ current_reality: currentReality.map(f => f.fact).join(' '),
221
+ action_steps: [],
222
+ };
223
+ const reading = (0, creative_orientation_1.readOrientation)({ outcome: desiredOutcome, restores: null });
224
+ if ((0, creative_orientation_1.worthSaying)(reading))
225
+ turn.desiredOutcomeAdvice = reading.advice;
226
+ }
227
+ return turn;
228
+ }
88
229
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAiFA,0CA+BC;AAGD,0BAQC;AAED,4BAKC;AAGD,4BAEC;AAQD,gCAEC;AAjJD;;;;;;;;;;;;;;;;GAgBG;AACH,+EAK8C;AA8C9C,SAAS,SAAS;IAChB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAC7B,QAAkB,EAClB,OAAoB,EACpB,UAAkB,EAClB,UAA0B,EAAE;IAE5B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,oFAAoF,CACvF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,GAAmB;QAC5B,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,QAAQ,CAAC,WAAW;QAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACzE,QAAQ;QACR,OAAO;QACP,UAAU;QACV,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrD,WAAW,EAAE,IAAA,sCAAe,EAAC,KAAK,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAgB,OAAO,CAAC,QAAqB,EAAE,IAAqB;IAClE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,MAAM,mEAAmE;YACrF,oDAAoD,CACvD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAqB,EAAE,MAAc;IAC5D,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACjF,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAgB,QAAQ,CAAC,QAAqB;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,QAAqB;IAC9C,OAAO,IAAA,kCAAW,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@medicine-wheel/gap-analysis",
3
- "version": "0.26.2",
4
- "description": "Problem-solving built properly for when something worked and stopped: evidenced baseline, observation, difference, verifiable elimination steps. Root cause, incidents, regressions, troubleshooting. The baseline requirement is what separates a fire from a creating act.",
3
+ "version": "0.26.4",
4
+ "description": "A gap analysis looks for what is missing: evidenced baseline, observation, difference, verifiable elimination steps. Useful when something worked and stopped (root cause, incidents, regressions, troubleshooting). It is not part of the creative orientation: turnToCreativeOrientation follows the analysis, keeps its findings as current reality, names the pull to fill each missing item, and asks for the desired outcome of a structural tension chart.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -45,7 +45,7 @@
45
45
  "directory": "src/gap-analysis"
46
46
  },
47
47
  "dependencies": {
48
- "@medicine-wheel/creative-orientation": "^0.26.2"
48
+ "@medicine-wheel/creative-orientation": "^0.26.4"
49
49
  },
50
50
  "devDependencies": {
51
51
  "typescript": "^5.7.0"