@productbrain/cli 0.1.0-beta.8945 → 0.1.0-beta.8955

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.
@@ -65,14 +65,14 @@ describe('formatCaptureReceipt — coaching section (WP-475 E1)', () => {
65
65
  ...failingCoaching.verdict, canonicalKey: 'strategy',
66
66
  criteria: [
67
67
  { id: 'coherent_narrative', passed: true, weight: 3, hint: 'h', questionTemplate: 'q' },
68
- { id: 'decisiveness', passed: false, weight: 3, hint: 'h', questionTemplate: 'q', failedBy: 'check' },
68
+ { id: 'decisiveness', passed: false, weight: 3, hint: 'h', questionTemplate: 'q' },
69
69
  { id: 'time_bounded', passed: true, weight: 2, hint: 'h', questionTemplate: 'q' },
70
70
  ],
71
71
  },
72
72
  },
73
73
  });
74
74
  expect(out).toContain('Quality checklist for strategy:');
75
- expect(out).toContain('[~] Connect the diagnosis, the policy and the first actions (40+ words) (still judging)');
75
+ expect(out).toContain('[~] Connect the diagnosis, the policy and the first actions (still judging)');
76
76
  expect(out).toContain('[ ] Say what you will not do');
77
77
  expect(out).not.toContain('Coaching hint');
78
78
  });
@@ -1 +1 @@
1
- {"version":3,"file":"capture-receipt-coaching.test.js","sourceRoot":"","sources":["../../src/__tests__/capture-receipt-coaching.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture-receipt-coaching.test.js","sourceRoot":"","sources":["../../src/__tests__/capture-receipt-coaching.test.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ const MIRRORED_DECLARATIONS = [
29
29
  { name: 'CriterionResult', pattern: /export interface CriterionResult \{[\s\S]*?\n\}/ },
30
30
  { name: 'QualityVerdict', pattern: /export interface QualityVerdict \{[\s\S]*?\n\}/ },
31
31
  ];
32
- const PINNED_KERNEL_DECLARATIONS_SHA256 = '0e0a3c537c17525ad733f3222111e40c5831d21d2f70f1fa0303cebaeaf2a4d2';
32
+ const PINNED_KERNEL_DECLARATIONS_SHA256 = 'd42d4cc6fc6e4519e48a3ce53b5da81dc2d08fbd6dad4fed78ce9de5cea6ce2a';
33
33
  describe('coaching mirror drift guard (WP-475 E1)', () => {
34
34
  it('kernel/quality/types.ts mirrored declarations match the pinned hash — on failure, re-verify formatters/coaching.ts and re-pin', () => {
35
35
  const src = readFileSync(KERNEL_TYPES_PATH, 'utf-8');
@@ -22,16 +22,6 @@ export interface CoachingCriterion {
22
22
  questionTemplate: string;
23
23
  /** WP-680 (TEN-3205): concrete absent element on an LLM fail; empty/absent otherwise. */
24
24
  missing?: string;
25
- /**
26
- * TEN-4282 (TASK-558): who failed this criterion ('check' = the structural check, 'judge' = the
27
- * LLM judge). Mirror only: on these heuristic-only receipts every fail is 'check', so not printed.
28
- */
29
- failedBy?: 'check' | 'judge';
30
- /**
31
- * TEN-4282 (TASK-558): the structural check failed this criterion and the LLM judge found it met.
32
- * Mirror only: set by the LLM merge, so it never reaches these heuristic-only receipts (see header).
33
- */
34
- overruledByCheck?: boolean;
35
25
  }
36
26
  export interface CoachingVerdict {
37
27
  entryId: string;
@@ -44,9 +34,6 @@ export interface CoachingVerdict {
44
34
  criterion: string;
45
35
  hint: string;
46
36
  questionTemplate: string;
47
- /** TEN-4282: both carried from the weakest criterion (mirror only, as above). */
48
- failedBy?: 'check' | 'judge';
49
- overruledByCheck?: boolean;
50
37
  } | null;
51
38
  overridden: boolean;
52
39
  /** WP-475 E3: rubric methodology that produced the verdict (v1-vs-v2 seam). */
@@ -1 +1 @@
1
- {"version":3,"file":"coaching.d.ts","sourceRoot":"","sources":["../../src/formatters/coaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC;QACzB,iFAAiF;QACjF,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,IAAI,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CA2B3F"}
1
+ {"version":3,"file":"coaching.d.ts","sourceRoot":"","sources":["../../src/formatters/coaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,IAAI,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CA2B3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"coaching.js","sourceRoot":"","sources":["../../src/formatters/coaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgDtD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAA2C;IAC/E,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC;IAClC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,+FAA+F;IAC/F,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACtG,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,EAAE,2BAA2B,OAAO,CAAC,YAAY,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAEpE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,6BAA6B,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;IAC1H,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uBAAuB,WAAW,IAAI,KAAK,sBAAsB,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC3H,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACtC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"coaching.js","sourceRoot":"","sources":["../../src/formatters/coaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmCtD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAA2C;IAC/E,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC;IAClC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,+FAA+F;IAC/F,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IACtG,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,EAAE,2BAA2B,OAAO,CAAC,YAAY,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAEpE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,6BAA6B,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;IAC1H,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uBAAuB,WAAW,IAAI,KAAK,sBAAsB,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC3H,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACtC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * A blocked or pending accept shows every criterion of the entry's rubric as one short
5
5
  * instruction with one of three states: met, not yet, or still judging (the AI verdict has
6
- * not landed, so a criterion the structural check passed may still fail). The line is the
7
- * repair; an unmet line adds what the AI judge named as missing. The judge's free-text
8
- * explanation is never shown, so it can never contradict a tick.
6
+ * not landed). The line is the repair; an unmet line adds what the AI judge named as missing.
7
+ * The judge's free-text explanation is never shown, so it can never contradict a tick.
9
8
  *
10
- * Lines exist only for the gated rubrics, strategy and vision (DEC-1913), and for the
11
- * strategy-link gate's rungs (TASK-609: kernel/strategy/spineRefusal.ts marks each rung above a
12
- * work package, key result or objective met or not yet); for any other key `renderChecklist`
13
- * returns null. No Chain ids in any line: these strings reach users.
9
+ * Lines exist only for the gated spine rubrics, purpose, vision, strategy, objective and key
10
+ * result (DEC-1913, DEC-1935), and for the strategy-link gate's rungs (TASK-609:
11
+ * kernel/strategy/spineRefusal.ts marks each rung above a work package, key result or objective
12
+ * met or not yet); for any other key `renderChecklist` returns null. No Chain ids in any line:
13
+ * these strings reach users. The AI judge decides every spine line, so no line names a word count.
14
14
  *
15
15
  * Dependency-free on purpose: scripts/generate-mcp-embedded-copies.mjs ships this exact
16
16
  * source to the CLI and the MCP server, and the accept gate (convex/lib/gates/evaluate.ts)
@@ -1 +1 @@
1
- {"version":3,"file":"checklist.d.ts","sourceRoot":"","sources":["../../src/lib/checklist.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gGAAgG;AAChG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAkBtF,CAAC;AAEF,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,EAAE,OAAO,GACd,MAAM,EAAE,GAAG,IAAI,CAWjB"}
1
+ {"version":3,"file":"checklist.d.ts","sourceRoot":"","sources":["../../src/lib/checklist.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gGAAgG;AAChG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAmCtF,CAAC;AAEF,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,OAAO,EAAE,OAAO,GACd,MAAM,EAAE,GAAG,IAAI,CAWjB"}
@@ -6,14 +6,14 @@
6
6
  *
7
7
  * A blocked or pending accept shows every criterion of the entry's rubric as one short
8
8
  * instruction with one of three states: met, not yet, or still judging (the AI verdict has
9
- * not landed, so a criterion the structural check passed may still fail). The line is the
10
- * repair; an unmet line adds what the AI judge named as missing. The judge's free-text
11
- * explanation is never shown, so it can never contradict a tick.
9
+ * not landed). The line is the repair; an unmet line adds what the AI judge named as missing.
10
+ * The judge's free-text explanation is never shown, so it can never contradict a tick.
12
11
  *
13
- * Lines exist only for the gated rubrics, strategy and vision (DEC-1913), and for the
14
- * strategy-link gate's rungs (TASK-609: kernel/strategy/spineRefusal.ts marks each rung above a
15
- * work package, key result or objective met or not yet); for any other key `renderChecklist`
16
- * returns null. No Chain ids in any line: these strings reach users.
12
+ * Lines exist only for the gated spine rubrics, purpose, vision, strategy, objective and key
13
+ * result (DEC-1913, DEC-1935), and for the strategy-link gate's rungs (TASK-609:
14
+ * kernel/strategy/spineRefusal.ts marks each rung above a work package, key result or objective
15
+ * met or not yet); for any other key `renderChecklist` returns null. No Chain ids in any line:
16
+ * these strings reach users. The AI judge decides every spine line, so no line names a word count.
17
17
  *
18
18
  * Dependency-free on purpose: scripts/generate-mcp-embedded-copies.mjs ships this exact
19
19
  * source to the CLI and the MCP server, and the accept gate (convex/lib/gates/evaluate.ts)
@@ -21,16 +21,33 @@
21
21
  */
22
22
  /** One instruction per criterion id, per gated rubric. A kernel test pins it to the rubrics. */
23
23
  export const CHECKLIST_LINES = {
24
- strategy: {
25
- coherent_narrative: 'Connect the diagnosis, the policy and the first actions (40+ words)',
26
- decisiveness: 'Say what you will not do',
27
- time_bounded: 'Name a horizon: a date, a duration or a milestone',
24
+ purpose: {
25
+ stranger_test: 'Explain it so a stranger knows why this company exists',
26
+ specificity: 'Say what would be missing from the world without this company',
27
+ not_a_platitude: 'Say something a reasonable company would not also claim',
28
+ beneficiary_named: 'Name who the company exists for: a role, a persona or a segment',
29
+ durable_not_dated: 'Leave out dates and planning cycles; those belong on goals',
28
30
  },
29
31
  vision: {
30
- specificity: 'Say what will be different, in words only this product could use (15+ words)',
32
+ specificity: 'Say what will be different, in words only this product could use',
31
33
  beneficiary: 'Name who benefits: a role, a persona or a segment',
32
34
  falsifiability: 'Choose a direction a reasonable rival would reject',
33
- stranger_test: 'Explain it so a stranger knows what you build (20+ words)',
35
+ stranger_test: 'Explain it so a stranger knows what will be different, and for whom',
36
+ },
37
+ strategy: {
38
+ coherent_narrative: 'Connect the diagnosis, the policy and the first actions',
39
+ decisiveness: 'Say what you will not do',
40
+ time_bounded: 'Name a horizon: a date, a duration or a milestone',
41
+ },
42
+ objective: {
43
+ outcome_not_activity: 'State what will be true once it is met, not the work to do',
44
+ serves_strategy: 'Say what must be true for the strategy to succeed',
45
+ observable: 'Make it something a reader could see has happened',
46
+ },
47
+ key_result: {
48
+ measurable: 'Name a measure and the target value or state',
49
+ bounded: 'Say by when, or how often, the measure is read',
50
+ moves_the_objective: 'Pick a result that shows the objective is happening, not that work was done',
34
51
  },
35
52
  /** One line per spine rung, keyed by the rung it reaches (kernel/strategy/spineTrace.ts order). */
36
53
  strategy_link: {
@@ -1 +1 @@
1
- {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../src/lib/checklist.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,gEAAgE;AAChE,uDAAuD;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAA+D;IAC1F,QAAQ,EAAE;QACT,kBAAkB,EAAE,qEAAqE;QACzF,YAAY,EAAE,0BAA0B;QACxC,YAAY,EAAE,mDAAmD;KACjE;IACD,MAAM,EAAE;QACP,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE,mDAAmD;QAChE,cAAc,EAAE,oDAAoD;QACpE,aAAa,EAAE,2DAA2D;KAC1E;IACD,mGAAmG;IACnG,aAAa,EAAE;QACd,UAAU,EAAE,uDAAuD;QACnE,SAAS,EAAE,gDAAgD;QAC3D,QAAQ,EAAE,8CAA8C;KACxD;CACD,CAAC;AASF,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAW,CAAC;AAErE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC9B,YAAoB,EACpB,QAAuC,EACvC,OAAgB;IAEhB,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,QAAQ;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../src/lib/checklist.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,gEAAgE;AAChE,uDAAuD;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAA+D;IAC1F,OAAO,EAAE;QACR,aAAa,EAAE,wDAAwD;QACvE,WAAW,EAAE,+DAA+D;QAC5E,eAAe,EAAE,yDAAyD;QAC1E,iBAAiB,EAAE,iEAAiE;QACpF,iBAAiB,EAAE,4DAA4D;KAC/E;IACD,MAAM,EAAE;QACP,WAAW,EAAE,kEAAkE;QAC/E,WAAW,EAAE,mDAAmD;QAChE,cAAc,EAAE,oDAAoD;QACpE,aAAa,EAAE,qEAAqE;KACpF;IACD,QAAQ,EAAE;QACT,kBAAkB,EAAE,yDAAyD;QAC7E,YAAY,EAAE,0BAA0B;QACxC,YAAY,EAAE,mDAAmD;KACjE;IACD,SAAS,EAAE;QACV,oBAAoB,EAAE,4DAA4D;QAClF,eAAe,EAAE,mDAAmD;QACpE,UAAU,EAAE,mDAAmD;KAC/D;IACD,UAAU,EAAE;QACX,UAAU,EAAE,8CAA8C;QAC1D,OAAO,EAAE,gDAAgD;QACzD,mBAAmB,EAAE,6EAA6E;KAClG;IACD,mGAAmG;IACnG,aAAa,EAAE;QACd,UAAU,EAAE,uDAAuD;QACnE,SAAS,EAAE,gDAAgD;QAC3D,QAAQ,EAAE,8CAA8C;KACxD;CACD,CAAC;AASF,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAW,CAAC;AAErE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC9B,YAAoB,EACpB,QAAuC,EACvC,OAAgB;IAEhB,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,QAAQ;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -49,6 +49,13 @@ export interface FormatOwnerLineOptions {
49
49
  /** The leading label — plain `'Owner:'` (CLI, browser) or MCP's bold `'**Owner:**'`. */
50
50
  label?: string;
51
51
  }
52
+ /** The owning role and its team as two names, for a surface that shows them apart (the browser
53
+ * Rail's role pill with the team beside it, DEC-1932). `null` for every kind but `one`: those keep
54
+ * their sentence from `formatOwnerLine`, which builds its `one` sentence from these same names. */
55
+ export declare function ownerLineParts(owner: OwnerLine): {
56
+ role: string;
57
+ team: string;
58
+ } | null;
52
59
  /** Exhaustive over the four kinds above. The `default:` arm below is not a silent catch-all —
53
60
  * it assigns the narrowed remainder to a `never`-typed const, so an unhandled kind fails to
54
61
  * compile HERE regardless of which tsconfig's strictness flags apply at the call site
@@ -1 +1 @@
1
- {"version":3,"file":"ownerLine.d.ts","sourceRoot":"","sources":["../../src/lib/ownerLine.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAE/D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAKnD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE1G,MAAM,WAAW,sBAAsB;IACtC;8DAC0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;yFAIyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM,CAoC9F"}
1
+ {"version":3,"file":"ownerLine.d.ts","sourceRoot":"","sources":["../../src/lib/ownerLine.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAE/D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAKnD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE1G,MAAM,WAAW,sBAAsB;IACtC;8DAC0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;oGAEoG;AACpG,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEtF;AAED;;;;yFAIyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,sBAA2B,GAAG,MAAM,CAuC9F"}
@@ -1,6 +1,12 @@
1
1
  // GENERATED by scripts/generate-mcp-embedded-copies.mjs from kernel/organisationalAuthority/ownerLine.ts.
2
2
  // DO NOT EDIT. Run `npm run mcp:embedded-copies` to regenerate.
3
3
  // Local runtime copy for the isolated connector build.
4
+ /** The owning role and its team as two names, for a surface that shows them apart (the browser
5
+ * Rail's role pill with the team beside it, DEC-1932). `null` for every kind but `one`: those keep
6
+ * their sentence from `formatOwnerLine`, which builds its `one` sentence from these same names. */
7
+ export function ownerLineParts(owner) {
8
+ return owner.kind === 'one' ? { role: owner.role.name, team: owner.team.name } : null;
9
+ }
4
10
  /** Exhaustive over the four kinds above. The `default:` arm below is not a silent catch-all —
5
11
  * it assigns the narrowed remainder to a `never`-typed const, so an unhandled kind fails to
6
12
  * compile HERE regardless of which tsconfig's strictness flags apply at the call site
@@ -10,7 +16,10 @@ export function formatOwnerLine(owner, options = {}) {
10
16
  const ids = options.ids ?? true;
11
17
  const label = options.label ?? 'Owner:';
12
18
  switch (owner.kind) {
13
- case 'one': return `${label} ${owner.role.name} in ${owner.team.name}`;
19
+ case 'one': {
20
+ const { role, team } = ownerLineParts(owner);
21
+ return `${label} ${role} in ${team}`;
22
+ }
14
23
  case 'none': return `${label} none`;
15
24
  case 'many': return `${label} conflicting — ${owner.count}${owner.truncated ? '+' : ''} owners recorded`;
16
25
  case 'dangling': {
@@ -1 +1 @@
1
- {"version":3,"file":"ownerLine.js","sourceRoot":"","sources":["../../src/lib/ownerLine.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,gEAAgE;AAChE,uDAAuD;AAwCvD;;;;yFAIyF;AACzF,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,UAAkC,EAAE;IACrF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,KAAK,OAAO,CAAC;QACpC,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,KAAK,kBAAkB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC;QACzG,KAAK,UAAU,CAAC,CAAC,CAAC;YACjB,6EAA6E;YAC7E,+EAA+E;YAC/E,mFAAmF;YACnF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;gBACrC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;gBACxD,CAAC,CAAC,KAAK,CAAC,IAAI;oBACX,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;oBACvC,CAAC,CAAC,KAAK,CAAC,IAAI;wBACX,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;wBACvC,CAAC,CAAC,qCAAqC,CAAC;YAC3C,wEAAwE;YACxE,wDAAwD;YACxD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,2BAA2B,KAAK,UAAU,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,2BAA2B,KAAK,EAAE,CAAC;QACnJ,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,qFAAqF;YACrF,gFAAgF;YAChF,oFAAoF;YACpF,qFAAqF;YACrF,uFAAuF;YACvF,uFAAuF;YACvF,oFAAoF;YACpF,uFAAuF;YACvF,qEAAqE;YACrE,MAAM,WAAW,GAAU,KAAK,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAE,KAA4B,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QAC9K,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"ownerLine.js","sourceRoot":"","sources":["../../src/lib/ownerLine.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,gEAAgE;AAChE,uDAAuD;AAwCvD;;oGAEoG;AACpG,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvF,CAAC;AAED;;;;yFAIyF;AACzF,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,UAAkC,EAAE;IACrF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,KAAK,CAAE,CAAC;YAC9C,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,KAAK,OAAO,CAAC;QACpC,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,KAAK,kBAAkB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC;QACzG,KAAK,UAAU,CAAC,CAAC,CAAC;YACjB,6EAA6E;YAC7E,+EAA+E;YAC/E,mFAAmF;YACnF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;gBACrC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;gBACxD,CAAC,CAAC,KAAK,CAAC,IAAI;oBACX,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;oBACvC,CAAC,CAAC,KAAK,CAAC,IAAI;wBACX,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc;wBACvC,CAAC,CAAC,qCAAqC,CAAC;YAC3C,wEAAwE;YACxE,wDAAwD;YACxD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,2BAA2B,KAAK,UAAU,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,2BAA2B,KAAK,EAAE,CAAC;QACnJ,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,qFAAqF;YACrF,gFAAgF;YAChF,oFAAoF;YACpF,qFAAqF;YACrF,uFAAuF;YACvF,uFAAuF;YACvF,oFAAoF;YACpF,uFAAuF;YACvF,qEAAqE;YACrE,MAAM,WAAW,GAAU,KAAK,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAE,KAA4B,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QAC9K,CAAC;IACF,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productbrain/cli",
3
- "version": "0.1.0-beta.8945",
3
+ "version": "0.1.0-beta.8955",
4
4
  "description": "Product Brain — Chain knowledge and write-back CLI",
5
5
  "type": "module",
6
6
  "bin": {