@contractspec/module.lifecycle-core 3.7.6 → 3.7.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/module.lifecycle-core",
3
- "version": "3.7.6",
3
+ "version": "3.7.7",
4
4
  "description": "Core lifecycle stage definitions and transitions",
5
5
  "keywords": [
6
6
  "contractspec",
@@ -26,15 +26,15 @@
26
26
  "dev": "contractspec-bun-build dev",
27
27
  "clean": "rimraf dist .turbo",
28
28
  "lint": "bun lint:fix",
29
- "lint:fix": "eslint src --fix",
30
- "lint:check": "eslint src",
29
+ "lint:fix": "biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .",
30
+ "lint:check": "biome check .",
31
31
  "test": "bun test",
32
32
  "prebuild": "contractspec-bun-build prebuild",
33
33
  "typecheck": "tsc --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "@contractspec/lib.lifecycle": "3.7.6",
37
- "@contractspec/lib.contracts-spec": "3.7.6"
36
+ "@contractspec/lib.lifecycle": "3.7.7",
37
+ "@contractspec/lib.contracts-spec": "4.0.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@contractspec/tool.typescript": "3.7.6",
@@ -1,87 +1,87 @@
1
1
  [
2
- {
3
- "id": "stage0-problem-statement",
4
- "stage": 0,
5
- "category": "product",
6
- "title": "Write the pain statement",
7
- "description": "Capture the clearest description of the top problem in the customer’s own words.",
8
- "priority": 1,
9
- "actionItems": [
10
- "Interview at least 5 ideal customers",
11
- "Synthesize quotes into a one-page brief"
12
- ]
13
- },
14
- {
15
- "id": "stage1-prototype-loop",
16
- "stage": 1,
17
- "category": "product",
18
- "title": "Prototype feedback loop",
19
- "description": "Ship a clickable prototype and gather 3 rounds of feedback.",
20
- "priority": 2,
21
- "actionItems": [
22
- "Create a low-fidelity prototype",
23
- "Schedule standing feedback calls"
24
- ]
25
- },
26
- {
27
- "id": "stage2-activation",
28
- "stage": 2,
29
- "category": "operations",
30
- "title": "Activation checklist",
31
- "description": "Define the minimum steps required for a new user to succeed.",
32
- "priority": 1,
33
- "actionItems": [
34
- "Document onboarding flow",
35
- "Instrument activation analytics"
36
- ]
37
- },
38
- {
39
- "id": "stage3-retention-narrative",
40
- "stage": 3,
41
- "category": "product",
42
- "title": "Retention narrative",
43
- "description": "Create the before/after story that proves why users stay.",
44
- "priority": 2,
45
- "actionItems": [
46
- "Interview 3 retained users",
47
- "Publish a one-pager with concrete metrics"
48
- ]
49
- },
50
- {
51
- "id": "stage4-growth-loop",
52
- "stage": 4,
53
- "category": "growth",
54
- "title": "Install a growth loop",
55
- "description": "Stand up a repeatable acquisition → activation → referral motion.",
56
- "priority": 1,
57
- "actionItems": [
58
- "Define loop metrics",
59
- "Assign owners for each stage",
60
- "Review weekly"
61
- ]
62
- },
63
- {
64
- "id": "stage5-platform-blueprint",
65
- "stage": 5,
66
- "category": "product",
67
- "title": "Platform blueprint",
68
- "description": "Align on APIs, integrations, and governance for partners.",
69
- "priority": 2,
70
- "actionItems": [
71
- "Create integration scoring rubric",
72
- "Publish partner onboarding checklist"
73
- ]
74
- },
75
- {
76
- "id": "stage6-renewal-ops",
77
- "stage": 6,
78
- "category": "operations",
79
- "title": "Renewal operating rhythm",
80
- "description": "Decide whether to optimize, reinvest, or sunset each major surface.",
81
- "priority": 1,
82
- "actionItems": [
83
- "Hold quarterly renewal review",
84
- "Document reinvestment bets"
85
- ]
86
- }
2
+ {
3
+ "id": "stage0-problem-statement",
4
+ "stage": 0,
5
+ "category": "product",
6
+ "title": "Write the pain statement",
7
+ "description": "Capture the clearest description of the top problem in the customer’s own words.",
8
+ "priority": 1,
9
+ "actionItems": [
10
+ "Interview at least 5 ideal customers",
11
+ "Synthesize quotes into a one-page brief"
12
+ ]
13
+ },
14
+ {
15
+ "id": "stage1-prototype-loop",
16
+ "stage": 1,
17
+ "category": "product",
18
+ "title": "Prototype feedback loop",
19
+ "description": "Ship a clickable prototype and gather 3 rounds of feedback.",
20
+ "priority": 2,
21
+ "actionItems": [
22
+ "Create a low-fidelity prototype",
23
+ "Schedule standing feedback calls"
24
+ ]
25
+ },
26
+ {
27
+ "id": "stage2-activation",
28
+ "stage": 2,
29
+ "category": "operations",
30
+ "title": "Activation checklist",
31
+ "description": "Define the minimum steps required for a new user to succeed.",
32
+ "priority": 1,
33
+ "actionItems": [
34
+ "Document onboarding flow",
35
+ "Instrument activation analytics"
36
+ ]
37
+ },
38
+ {
39
+ "id": "stage3-retention-narrative",
40
+ "stage": 3,
41
+ "category": "product",
42
+ "title": "Retention narrative",
43
+ "description": "Create the before/after story that proves why users stay.",
44
+ "priority": 2,
45
+ "actionItems": [
46
+ "Interview 3 retained users",
47
+ "Publish a one-pager with concrete metrics"
48
+ ]
49
+ },
50
+ {
51
+ "id": "stage4-growth-loop",
52
+ "stage": 4,
53
+ "category": "growth",
54
+ "title": "Install a growth loop",
55
+ "description": "Stand up a repeatable acquisition → activation → referral motion.",
56
+ "priority": 1,
57
+ "actionItems": [
58
+ "Define loop metrics",
59
+ "Assign owners for each stage",
60
+ "Review weekly"
61
+ ]
62
+ },
63
+ {
64
+ "id": "stage5-platform-blueprint",
65
+ "stage": 5,
66
+ "category": "product",
67
+ "title": "Platform blueprint",
68
+ "description": "Align on APIs, integrations, and governance for partners.",
69
+ "priority": 2,
70
+ "actionItems": [
71
+ "Create integration scoring rubric",
72
+ "Publish partner onboarding checklist"
73
+ ]
74
+ },
75
+ {
76
+ "id": "stage6-renewal-ops",
77
+ "stage": 6,
78
+ "category": "operations",
79
+ "title": "Renewal operating rhythm",
80
+ "description": "Decide whether to optimize, reinvest, or sunset each major surface.",
81
+ "priority": 1,
82
+ "actionItems": [
83
+ "Hold quarterly renewal review",
84
+ "Document reinvestment bets"
85
+ ]
86
+ }
87
87
  ]
@@ -1,109 +1,109 @@
1
1
  {
2
- "Exploration": {
3
- "base": 0.35,
4
- "metrics": {
5
- "activeUsers": { "weight": 0.3, "direction": "lte", "threshold": 5 },
6
- "customerCount": { "weight": 0.2, "direction": "lte", "threshold": 3 },
7
- "teamSize": { "weight": 0.1, "direction": "lte", "threshold": 3 }
8
- },
9
- "signalKinds": {
10
- "qualitative": 0.4,
11
- "metric": 0.1
12
- }
13
- },
14
- "ProblemSolutionFit": {
15
- "base": 0.4,
16
- "metrics": {
17
- "activeUsers": { "weight": 0.2, "direction": "gte", "threshold": 5 },
18
- "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 3 }
19
- },
20
- "signalKinds": {
21
- "qualitative": 0.3,
22
- "event": 0.1
23
- }
24
- },
25
- "MvpEarlyTraction": {
26
- "base": 0.45,
27
- "metrics": {
28
- "activeUsers": { "weight": 0.25, "direction": "gte", "threshold": 25 },
29
- "weeklyActiveUsers": {
30
- "weight": 0.25,
31
- "direction": "gte",
32
- "threshold": 20
33
- },
34
- "retentionRate": { "weight": 0.2, "direction": "gte", "threshold": 0.25 }
35
- },
36
- "signalKinds": {
37
- "metric": 0.15,
38
- "event": 0.1
39
- }
40
- },
41
- "ProductMarketFit": {
42
- "base": 0.5,
43
- "metrics": {
44
- "retentionRate": {
45
- "weight": 0.35,
46
- "direction": "gte",
47
- "threshold": 0.45
48
- },
49
- "monthlyRecurringRevenue": {
50
- "weight": 0.25,
51
- "direction": "gte",
52
- "threshold": 10000
53
- },
54
- "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 30 }
55
- },
56
- "signalKinds": {
57
- "metric": 0.15,
58
- "event": 0.1
59
- }
60
- },
61
- "GrowthScaleUp": {
62
- "base": 0.55,
63
- "metrics": {
64
- "retentionRate": { "weight": 0.2, "direction": "gte", "threshold": 0.55 },
65
- "monthlyRecurringRevenue": {
66
- "weight": 0.3,
67
- "direction": "gte",
68
- "threshold": 50000
69
- },
70
- "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 15 }
71
- },
72
- "signalKinds": {
73
- "event": 0.2,
74
- "metric": 0.15
75
- }
76
- },
77
- "ExpansionPlatform": {
78
- "base": 0.6,
79
- "metrics": {
80
- "monthlyRecurringRevenue": {
81
- "weight": 0.35,
82
- "direction": "gte",
83
- "threshold": 150000
84
- },
85
- "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 100 },
86
- "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 40 }
87
- },
88
- "signalKinds": {
89
- "event": 0.2,
90
- "milestone": 0.1
91
- }
92
- },
93
- "MaturityRenewal": {
94
- "base": 0.6,
95
- "metrics": {
96
- "monthlyRecurringRevenue": {
97
- "weight": 0.25,
98
- "direction": "gte",
99
- "threshold": 250000
100
- },
101
- "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 80 },
102
- "burnMultiple": { "weight": 0.2, "direction": "lte", "threshold": 1.5 }
103
- },
104
- "signalKinds": {
105
- "event": 0.2,
106
- "milestone": 0.15
107
- }
108
- }
2
+ "Exploration": {
3
+ "base": 0.35,
4
+ "metrics": {
5
+ "activeUsers": { "weight": 0.3, "direction": "lte", "threshold": 5 },
6
+ "customerCount": { "weight": 0.2, "direction": "lte", "threshold": 3 },
7
+ "teamSize": { "weight": 0.1, "direction": "lte", "threshold": 3 }
8
+ },
9
+ "signalKinds": {
10
+ "qualitative": 0.4,
11
+ "metric": 0.1
12
+ }
13
+ },
14
+ "ProblemSolutionFit": {
15
+ "base": 0.4,
16
+ "metrics": {
17
+ "activeUsers": { "weight": 0.2, "direction": "gte", "threshold": 5 },
18
+ "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 3 }
19
+ },
20
+ "signalKinds": {
21
+ "qualitative": 0.3,
22
+ "event": 0.1
23
+ }
24
+ },
25
+ "MvpEarlyTraction": {
26
+ "base": 0.45,
27
+ "metrics": {
28
+ "activeUsers": { "weight": 0.25, "direction": "gte", "threshold": 25 },
29
+ "weeklyActiveUsers": {
30
+ "weight": 0.25,
31
+ "direction": "gte",
32
+ "threshold": 20
33
+ },
34
+ "retentionRate": { "weight": 0.2, "direction": "gte", "threshold": 0.25 }
35
+ },
36
+ "signalKinds": {
37
+ "metric": 0.15,
38
+ "event": 0.1
39
+ }
40
+ },
41
+ "ProductMarketFit": {
42
+ "base": 0.5,
43
+ "metrics": {
44
+ "retentionRate": {
45
+ "weight": 0.35,
46
+ "direction": "gte",
47
+ "threshold": 0.45
48
+ },
49
+ "monthlyRecurringRevenue": {
50
+ "weight": 0.25,
51
+ "direction": "gte",
52
+ "threshold": 10000
53
+ },
54
+ "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 30 }
55
+ },
56
+ "signalKinds": {
57
+ "metric": 0.15,
58
+ "event": 0.1
59
+ }
60
+ },
61
+ "GrowthScaleUp": {
62
+ "base": 0.55,
63
+ "metrics": {
64
+ "retentionRate": { "weight": 0.2, "direction": "gte", "threshold": 0.55 },
65
+ "monthlyRecurringRevenue": {
66
+ "weight": 0.3,
67
+ "direction": "gte",
68
+ "threshold": 50000
69
+ },
70
+ "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 15 }
71
+ },
72
+ "signalKinds": {
73
+ "event": 0.2,
74
+ "metric": 0.15
75
+ }
76
+ },
77
+ "ExpansionPlatform": {
78
+ "base": 0.6,
79
+ "metrics": {
80
+ "monthlyRecurringRevenue": {
81
+ "weight": 0.35,
82
+ "direction": "gte",
83
+ "threshold": 150000
84
+ },
85
+ "customerCount": { "weight": 0.2, "direction": "gte", "threshold": 100 },
86
+ "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 40 }
87
+ },
88
+ "signalKinds": {
89
+ "event": 0.2,
90
+ "milestone": 0.1
91
+ }
92
+ },
93
+ "MaturityRenewal": {
94
+ "base": 0.6,
95
+ "metrics": {
96
+ "monthlyRecurringRevenue": {
97
+ "weight": 0.25,
98
+ "direction": "gte",
99
+ "threshold": 250000
100
+ },
101
+ "teamSize": { "weight": 0.15, "direction": "gte", "threshold": 80 },
102
+ "burnMultiple": { "weight": 0.2, "direction": "lte", "threshold": 1.5 }
103
+ },
104
+ "signalKinds": {
105
+ "event": 0.2,
106
+ "milestone": 0.15
107
+ }
108
+ }
109
109
  }