@feelingmindful/thinking-graph 1.2.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.
- package/dist/compat/sequential.d.ts +45 -0
- package/dist/compat/sequential.js +46 -0
- package/dist/engine/dedup.d.ts +5 -0
- package/dist/engine/dedup.js +17 -0
- package/dist/engine/graph.d.ts +49 -0
- package/dist/engine/graph.js +250 -0
- package/dist/engine/seed.d.ts +7 -0
- package/dist/engine/seed.js +43 -0
- package/dist/engine/types.d.ts +114 -0
- package/dist/engine/types.js +18 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +52 -0
- package/dist/storage/adapter.d.ts +20 -0
- package/dist/storage/adapter.js +1 -0
- package/dist/storage/memory.d.ts +25 -0
- package/dist/storage/memory.js +171 -0
- package/dist/storage/sqlite.d.ts +30 -0
- package/dist/storage/sqlite.js +310 -0
- package/dist/tools/export.d.ts +31 -0
- package/dist/tools/export.js +42 -0
- package/dist/tools/learn.d.ts +66 -0
- package/dist/tools/learn.js +91 -0
- package/dist/tools/recall.d.ts +52 -0
- package/dist/tools/recall.js +63 -0
- package/dist/tools/relate.d.ts +31 -0
- package/dist/tools/relate.js +58 -0
- package/dist/tools/think.d.ts +75 -0
- package/dist/tools/think.js +69 -0
- package/migrations/001-initial.sql +108 -0
- package/package.json +44 -0
- package/seeds/principles.json +92 -0
- package/seeds/skill-registry.json +187 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "principle-orthogonality",
|
|
4
|
+
"type": "principle",
|
|
5
|
+
"content": "Orthogonality: Changes to one module should not require changes to another. Minimize coupling between components. Each component should have one axis of change.",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"category": "design",
|
|
8
|
+
"detection": "high fan-out, cross-module edits in same commit, shotgun surgery"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "principle-dry",
|
|
13
|
+
"type": "principle",
|
|
14
|
+
"content": "DRY (Don't Repeat Yourself): Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.",
|
|
15
|
+
"metadata": {
|
|
16
|
+
"category": "code",
|
|
17
|
+
"detection": "duplicate code blocks, duplicated constants, copy-paste patterns"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "principle-yagni",
|
|
22
|
+
"type": "principle",
|
|
23
|
+
"content": "YAGNI (You Aren't Gonna Need It): Don't build for hypothetical future requirements. Only implement what is needed now.",
|
|
24
|
+
"metadata": {
|
|
25
|
+
"category": "design",
|
|
26
|
+
"detection": "unused exports, dead code, speculative abstractions, empty interfaces"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "principle-kiss",
|
|
31
|
+
"type": "principle",
|
|
32
|
+
"content": "KISS (Keep It Simple, Stupid): Choose the simplest solution that works. Complexity should be justified by real requirements.",
|
|
33
|
+
"metadata": {
|
|
34
|
+
"category": "code",
|
|
35
|
+
"detection": "cyclomatic complexity >10, deep nesting >4, long methods >50 lines"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "principle-separation-of-concerns",
|
|
40
|
+
"type": "principle",
|
|
41
|
+
"content": "Separation of Concerns: Each module, class, or function should handle one concern. UI should not contain business logic. Data access should not contain presentation logic.",
|
|
42
|
+
"metadata": {
|
|
43
|
+
"category": "architecture",
|
|
44
|
+
"detection": "god classes, mixed business/UI logic, database queries in views"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "principle-single-responsibility",
|
|
49
|
+
"type": "principle",
|
|
50
|
+
"content": "Single Responsibility Principle: A class or module should have one, and only one, reason to change.",
|
|
51
|
+
"metadata": {
|
|
52
|
+
"category": "architecture",
|
|
53
|
+
"detection": "large files >500 lines, multiple concerns per class, many public methods"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "principle-dependency-inversion",
|
|
58
|
+
"type": "principle",
|
|
59
|
+
"content": "Dependency Inversion Principle: High-level modules should not depend on low-level modules. Both should depend on abstractions.",
|
|
60
|
+
"metadata": {
|
|
61
|
+
"category": "architecture",
|
|
62
|
+
"detection": "direct instantiation instead of DI, concrete type imports across layers"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "principle-open-closed",
|
|
67
|
+
"type": "principle",
|
|
68
|
+
"content": "Open/Closed Principle: Software entities should be open for extension but closed for modification. Add new behavior without changing existing code.",
|
|
69
|
+
"metadata": {
|
|
70
|
+
"category": "architecture",
|
|
71
|
+
"detection": "switch statements on types, no protocol/interface, modification required for new variants"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "principle-liskov-substitution",
|
|
76
|
+
"type": "principle",
|
|
77
|
+
"content": "Liskov Substitution Principle: Objects of a superclass should be replaceable with objects of a subclass without breaking the application.",
|
|
78
|
+
"metadata": {
|
|
79
|
+
"category": "architecture",
|
|
80
|
+
"detection": "protocol violations, unexpected behavior in subclasses, type checks on subtypes"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "principle-interface-segregation",
|
|
85
|
+
"type": "principle",
|
|
86
|
+
"content": "Interface Segregation Principle: No client should be forced to depend on methods it does not use. Prefer many small interfaces over one large one.",
|
|
87
|
+
"metadata": {
|
|
88
|
+
"category": "architecture",
|
|
89
|
+
"detection": "fat protocols/interfaces, empty method implementations, unused required methods"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
]
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "core-research", "pluginName": "premium-core", "skillName": "research", "verb": "research",
|
|
4
|
+
"invocation": "/premium-core:research", "areas": [], "detects": [],
|
|
5
|
+
"produces": ["research"], "invokes": [], "platform": "all"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "core-growth", "pluginName": "premium-core", "skillName": "growth", "verb": "growth",
|
|
9
|
+
"invocation": "/premium-core:growth", "areas": [], "detects": [],
|
|
10
|
+
"produces": ["skill_result", "decision"], "invokes": ["marketing-skills:product-marketing-context", "marketing-skills:onboarding-cro", "marketing-skills:signup-flow-cro", "marketing-skills:paywall-upgrade-cro", "marketing-skills:pricing-strategy", "marketing-skills:churn-prevention", "marketing-skills:referral-program", "marketing-skills:ab-test-setup", "marketing-skills:launch-strategy"], "platform": "all"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "core-humanize", "pluginName": "premium-core", "skillName": "humanize", "verb": "humanize",
|
|
14
|
+
"invocation": "/premium-core:humanize", "areas": ["copy"], "detects": ["needs-work"],
|
|
15
|
+
"produces": ["skill_result", "tech_debt"], "invokes": ["marketing-skills:humanizer"], "platform": "all"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "core-audit", "pluginName": "premium-core", "skillName": "audit", "verb": "audit",
|
|
19
|
+
"invocation": "/premium-core:audit", "areas": ["accessibility", "security", "performance", "copy", "monetization"], "detects": ["missing", "needs-work", "good"],
|
|
20
|
+
"produces": ["detection", "tech_debt"], "invokes": [], "platform": "all"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "ios-research", "pluginName": "premium-ios", "skillName": "research", "verb": "research",
|
|
24
|
+
"invocation": "/premium-ios:research", "areas": [], "detects": [],
|
|
25
|
+
"produces": ["research"], "invokes": ["premium-core:research"], "platform": "ios"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "ios-init", "pluginName": "premium-ios", "skillName": "init", "verb": "init",
|
|
29
|
+
"invocation": "/premium-ios:init", "areas": ["infra", "design-tokens", "monetization"], "detects": ["missing"],
|
|
30
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "ios"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "ios-configure", "pluginName": "premium-ios", "skillName": "configure", "verb": "configure",
|
|
34
|
+
"invocation": "/premium-ios:configure", "areas": ["infra", "security", "monetization"], "detects": ["needs-work"],
|
|
35
|
+
"produces": ["code_fact"], "invokes": [], "platform": "ios"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "ios-refactor", "pluginName": "premium-ios", "skillName": "refactor", "verb": "refactor",
|
|
39
|
+
"invocation": "/premium-ios:refactor", "areas": ["architecture", "design-tokens", "icons", "copy", "animations"], "detects": ["needs-work"],
|
|
40
|
+
"produces": ["tech_debt", "code_fact", "decision"], "invokes": ["premium-core:humanize"], "platform": "ios"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "ios-create", "pluginName": "premium-ios", "skillName": "create", "verb": "create",
|
|
44
|
+
"invocation": "/premium-ios:create", "areas": ["design-tokens", "animations", "typography", "icons", "monetization"], "detects": ["missing"],
|
|
45
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "ios"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "ios-audit", "pluginName": "premium-ios", "skillName": "audit", "verb": "audit",
|
|
49
|
+
"invocation": "/premium-ios:audit", "areas": ["architecture", "design-tokens", "typography", "animations", "icons", "copy", "monetization", "security"], "detects": ["missing", "needs-work", "good"],
|
|
50
|
+
"produces": ["detection", "tech_debt"], "invokes": ["premium-core:audit"], "platform": "ios"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "ios-full", "pluginName": "premium-ios", "skillName": "full", "verb": "full",
|
|
54
|
+
"invocation": "/premium-ios:full", "areas": [], "detects": [],
|
|
55
|
+
"produces": [], "invokes": ["premium-ios:research", "premium-ios:init", "premium-ios:configure", "premium-ios:refactor", "premium-ios:create", "premium-core:growth", "premium-core:humanize", "premium-ios:audit"], "platform": "ios"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "android-research", "pluginName": "premium-android", "skillName": "research", "verb": "research",
|
|
59
|
+
"invocation": "/premium-android:research", "areas": [], "detects": [],
|
|
60
|
+
"produces": ["research"], "invokes": ["premium-core:research"], "platform": "android"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "android-init", "pluginName": "premium-android", "skillName": "init", "verb": "init",
|
|
64
|
+
"invocation": "/premium-android:init", "areas": ["infra", "design-tokens", "monetization"], "detects": ["missing"],
|
|
65
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "android"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "android-configure", "pluginName": "premium-android", "skillName": "configure", "verb": "configure",
|
|
69
|
+
"invocation": "/premium-android:configure", "areas": ["infra", "security", "monetization"], "detects": ["needs-work"],
|
|
70
|
+
"produces": ["code_fact"], "invokes": [], "platform": "android"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "android-refactor", "pluginName": "premium-android", "skillName": "refactor", "verb": "refactor",
|
|
74
|
+
"invocation": "/premium-android:refactor", "areas": ["architecture", "design-tokens", "icons", "copy", "animations"], "detects": ["needs-work"],
|
|
75
|
+
"produces": ["tech_debt", "code_fact", "decision"], "invokes": ["premium-core:humanize"], "platform": "android"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "android-create", "pluginName": "premium-android", "skillName": "create", "verb": "create",
|
|
79
|
+
"invocation": "/premium-android:create", "areas": ["design-tokens", "animations", "typography", "icons", "monetization"], "detects": ["missing"],
|
|
80
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "android"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "android-audit", "pluginName": "premium-android", "skillName": "audit", "verb": "audit",
|
|
84
|
+
"invocation": "/premium-android:audit", "areas": ["architecture", "design-tokens", "typography", "animations", "icons", "copy", "monetization", "security"], "detects": ["missing", "needs-work", "good"],
|
|
85
|
+
"produces": ["detection", "tech_debt"], "invokes": ["premium-core:audit"], "platform": "android"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "android-full", "pluginName": "premium-android", "skillName": "full", "verb": "full",
|
|
89
|
+
"invocation": "/premium-android:full", "areas": [], "detects": [],
|
|
90
|
+
"produces": [], "invokes": ["premium-android:research", "premium-android:init", "premium-android:configure", "premium-android:refactor", "premium-android:create", "premium-core:growth", "premium-core:humanize", "premium-android:audit"], "platform": "android"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "nextjs-research", "pluginName": "premium-nextjs", "skillName": "research", "verb": "research",
|
|
94
|
+
"invocation": "/premium-nextjs:research", "areas": [], "detects": [],
|
|
95
|
+
"produces": ["research"], "invokes": ["premium-core:research"], "platform": "nextjs"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "nextjs-init", "pluginName": "premium-nextjs", "skillName": "init", "verb": "init",
|
|
99
|
+
"invocation": "/premium-nextjs:init", "areas": ["infra", "design-tokens", "monetization", "observability"], "detects": ["missing"],
|
|
100
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "nextjs"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "nextjs-configure", "pluginName": "premium-nextjs", "skillName": "configure", "verb": "configure",
|
|
104
|
+
"invocation": "/premium-nextjs:configure", "areas": ["infra", "security", "observability"], "detects": ["needs-work"],
|
|
105
|
+
"produces": ["code_fact"], "invokes": [], "platform": "nextjs"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "nextjs-refactor", "pluginName": "premium-nextjs", "skillName": "refactor", "verb": "refactor",
|
|
109
|
+
"invocation": "/premium-nextjs:refactor", "areas": ["architecture", "design-tokens", "icons", "copy"], "detects": ["needs-work"],
|
|
110
|
+
"produces": ["tech_debt", "code_fact", "decision"], "invokes": ["premium-core:humanize"], "platform": "nextjs"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "nextjs-create", "pluginName": "premium-nextjs", "skillName": "create", "verb": "create",
|
|
114
|
+
"invocation": "/premium-nextjs:create", "areas": ["design-tokens", "animations", "typography", "icons", "monetization"], "detects": ["missing"],
|
|
115
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "nextjs"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "nextjs-audit", "pluginName": "premium-nextjs", "skillName": "audit", "verb": "audit",
|
|
119
|
+
"invocation": "/premium-nextjs:audit", "areas": ["architecture", "design-tokens", "typography", "icons", "copy", "monetization", "security", "observability", "seo"], "detects": ["missing", "needs-work", "good"],
|
|
120
|
+
"produces": ["detection", "tech_debt"], "invokes": ["premium-core:audit"], "platform": "nextjs"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "nextjs-full", "pluginName": "premium-nextjs", "skillName": "full", "verb": "full",
|
|
124
|
+
"invocation": "/premium-nextjs:full", "areas": [], "detects": [],
|
|
125
|
+
"produces": [], "invokes": ["premium-nextjs:research", "premium-nextjs:init", "premium-nextjs:configure", "premium-nextjs:refactor", "premium-nextjs:create", "premium-core:growth", "premium-core:humanize", "premium-nextjs:audit"], "platform": "nextjs"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "astro-research", "pluginName": "premium-astro", "skillName": "research", "verb": "research",
|
|
129
|
+
"invocation": "/premium-astro:research", "areas": [], "detects": [],
|
|
130
|
+
"produces": ["research"], "invokes": ["premium-core:research"], "platform": "astro"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "astro-init", "pluginName": "premium-astro", "skillName": "init", "verb": "init",
|
|
134
|
+
"invocation": "/premium-astro:init", "areas": ["infra", "design-tokens", "monetization", "observability"], "detects": ["missing"],
|
|
135
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "astro"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "astro-configure", "pluginName": "premium-astro", "skillName": "configure", "verb": "configure",
|
|
139
|
+
"invocation": "/premium-astro:configure", "areas": ["infra", "security", "observability"], "detects": ["needs-work"],
|
|
140
|
+
"produces": ["code_fact"], "invokes": [], "platform": "astro"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "astro-refactor", "pluginName": "premium-astro", "skillName": "refactor", "verb": "refactor",
|
|
144
|
+
"invocation": "/premium-astro:refactor", "areas": ["architecture", "design-tokens", "islands-hydration", "copy"], "detects": ["needs-work"],
|
|
145
|
+
"produces": ["tech_debt", "code_fact", "decision"], "invokes": ["premium-core:humanize"], "platform": "astro"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "astro-create", "pluginName": "premium-astro", "skillName": "create", "verb": "create",
|
|
149
|
+
"invocation": "/premium-astro:create", "areas": ["design-tokens", "animations", "typography", "icons", "monetization"], "detects": ["missing"],
|
|
150
|
+
"produces": ["code_fact", "decision"], "invokes": [], "platform": "astro"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "astro-audit", "pluginName": "premium-astro", "skillName": "audit", "verb": "audit",
|
|
154
|
+
"invocation": "/premium-astro:audit", "areas": ["architecture", "design-tokens", "islands-hydration", "content-collections", "copy", "monetization", "security", "observability", "seo"], "detects": ["missing", "needs-work", "good"],
|
|
155
|
+
"produces": ["detection", "tech_debt"], "invokes": ["premium-core:audit"], "platform": "astro"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "astro-full", "pluginName": "premium-astro", "skillName": "full", "verb": "full",
|
|
159
|
+
"invocation": "/premium-astro:full", "areas": [], "detects": [],
|
|
160
|
+
"produces": [], "invokes": ["premium-astro:research", "premium-astro:init", "premium-astro:configure", "premium-astro:refactor", "premium-astro:create", "premium-core:growth", "premium-core:humanize", "premium-astro:audit"], "platform": "astro"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "marketing-product-context", "pluginName": "marketing-skills", "skillName": "product-marketing-context", "verb": "context",
|
|
164
|
+
"invocation": "/marketing-skills:product-marketing-context", "areas": [], "detects": [],
|
|
165
|
+
"produces": ["decision", "insight"], "invokes": [], "platform": "all"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "marketing-onboarding", "pluginName": "marketing-skills", "skillName": "onboarding-cro",
|
|
169
|
+
"invocation": "/marketing-skills:onboarding-cro", "areas": [], "detects": [],
|
|
170
|
+
"produces": ["decision", "skill_result"], "invokes": [], "platform": "all"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "marketing-paywall", "pluginName": "marketing-skills", "skillName": "paywall-upgrade-cro",
|
|
174
|
+
"invocation": "/marketing-skills:paywall-upgrade-cro", "areas": [], "detects": [],
|
|
175
|
+
"produces": ["decision", "skill_result"], "invokes": [], "platform": "all"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "marketing-pricing", "pluginName": "marketing-skills", "skillName": "pricing-strategy",
|
|
179
|
+
"invocation": "/marketing-skills:pricing-strategy", "areas": [], "detects": [],
|
|
180
|
+
"produces": ["decision"], "invokes": [], "platform": "all"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "marketing-humanizer", "pluginName": "marketing-skills", "skillName": "humanizer",
|
|
184
|
+
"invocation": "/marketing-skills:humanizer", "areas": ["copy"], "detects": [],
|
|
185
|
+
"produces": ["skill_result"], "invokes": [], "platform": "all"
|
|
186
|
+
}
|
|
187
|
+
]
|