@tikomni/skills 0.1.1 → 0.1.2

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 (21) hide show
  1. package/package.json +1 -1
  2. package/skills/creator-analysis/SKILL.md +34 -10
  3. package/skills/creator-analysis/references/contracts/creator-card-fields.md +2 -0
  4. package/skills/creator-analysis/references/contracts/work-card-fields.md +40 -4
  5. package/skills/creator-analysis/references/platform-guides/douyin.md +41 -36
  6. package/skills/creator-analysis/references/platform-guides/generic.md +11 -7
  7. package/skills/creator-analysis/references/platform-guides/xiaohongshu.md +45 -30
  8. package/skills/creator-analysis/references/schemas/author-analysis-v2.schema.json +224 -95
  9. package/skills/creator-analysis/references/workflow.md +8 -3
  10. package/skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py +205 -21
  11. package/skills/creator-analysis/scripts/author_home/analyzers/author_analysis_v2_support.py +54 -11
  12. package/skills/creator-analysis/scripts/author_home/analyzers/prompt_first_analyzers.py +200 -13
  13. package/skills/creator-analysis/scripts/author_home/analyzers/sampled_work_batch_explainer.py +113 -42
  14. package/skills/creator-analysis/scripts/author_home/asr/home_asr.py +65 -7
  15. package/skills/creator-analysis/scripts/author_home/builders/home_builders.py +82 -18
  16. package/skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py +198 -32
  17. package/skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py +374 -31
  18. package/skills/creator-analysis/scripts/author_home/orchestrator/work_analysis_artifacts.py +68 -12
  19. package/skills/creator-analysis/scripts/core/storage_router.py +3 -0
  20. package/skills/creator-analysis/scripts/writers/write_author_homepage_samples.py +3 -2
  21. package/skills/creator-analysis/scripts/writers/write_benchmark_card.py +314 -137
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "tikomni/author-analysis-v2.schema.json",
3
4
  "title": "author_analysis_v2",
4
5
  "type": "object",
6
+ "additionalProperties": false,
5
7
  "required": [
6
8
  "author_positioning",
7
9
  "trust_model",
@@ -13,146 +15,273 @@
13
15
  "evidence_pack",
14
16
  "clone_guidance"
15
17
  ],
18
+ "$defs": {
19
+ "stringArray": {
20
+ "type": "array",
21
+ "items": { "type": "string" }
22
+ },
23
+ "themeCluster": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": ["name", "keywords"],
27
+ "properties": {
28
+ "name": { "type": "string" },
29
+ "keywords": { "$ref": "#/$defs/stringArray" }
30
+ }
31
+ },
32
+ "tensionItem": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["label", "surface", "deep_reason", "strategic_implication"],
36
+ "properties": {
37
+ "label": { "type": "string" },
38
+ "surface": { "type": "string" },
39
+ "deep_reason": { "type": "string" },
40
+ "strategic_implication": { "type": "string" }
41
+ }
42
+ },
43
+ "representativeWork": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["platform_work_id", "title", "bucket"],
47
+ "properties": {
48
+ "platform_work_id": { "type": "string" },
49
+ "title": { "type": "string" },
50
+ "bucket": { "type": "string" }
51
+ }
52
+ }
53
+ },
16
54
  "properties": {
17
55
  "author_positioning": {
18
56
  "type": "object",
19
- "required": ["role", "audience", "problem", "value"],
57
+ "additionalProperties": false,
58
+ "required": [
59
+ "one_liner",
60
+ "author_type",
61
+ "primary_role",
62
+ "secondary_roles",
63
+ "target_audience",
64
+ "core_problem_solved",
65
+ "core_value_proposition",
66
+ "evidence"
67
+ ],
20
68
  "properties": {
21
- "role": { "type": "string" },
22
- "audience": { "type": "string" },
23
- "problem": { "type": "string" },
24
- "value": { "type": "string" }
25
- },
26
- "additionalProperties": false
69
+ "one_liner": { "type": "string" },
70
+ "author_type": { "type": "string" },
71
+ "primary_role": { "type": "string" },
72
+ "secondary_roles": { "$ref": "#/$defs/stringArray" },
73
+ "target_audience": { "type": "string" },
74
+ "core_problem_solved": { "type": "string" },
75
+ "core_value_proposition": { "type": "string" },
76
+ "evidence": { "$ref": "#/$defs/stringArray" }
77
+ }
27
78
  },
28
79
  "trust_model": {
29
80
  "type": "object",
30
- "required": ["trust_source", "relationship_posture", "trust_risks"],
81
+ "additionalProperties": false,
82
+ "required": [
83
+ "primary_trust_source",
84
+ "secondary_trust_sources",
85
+ "trust_building_mechanisms",
86
+ "trust_risks",
87
+ "relationship_posture",
88
+ "evidence"
89
+ ],
31
90
  "properties": {
32
- "trust_source": { "type": "string" },
33
- "relationship_posture": { "type": "string" },
34
- "trust_risks": {
35
- "type": "array",
36
- "items": { "type": "string" }
37
- }
38
- },
39
- "additionalProperties": false
91
+ "primary_trust_source": { "type": "string" },
92
+ "secondary_trust_sources": { "$ref": "#/$defs/stringArray" },
93
+ "trust_building_mechanisms": { "$ref": "#/$defs/stringArray" },
94
+ "trust_risks": { "$ref": "#/$defs/stringArray" },
95
+ "relationship_posture": {
96
+ "type": "object",
97
+ "additionalProperties": false,
98
+ "required": ["distance", "authority_level", "affinity_level"],
99
+ "properties": {
100
+ "distance": { "type": "string" },
101
+ "authority_level": { "type": "string" },
102
+ "affinity_level": { "type": "string" }
103
+ }
104
+ },
105
+ "evidence": { "$ref": "#/$defs/stringArray" }
106
+ }
40
107
  },
41
108
  "cognitive_engine": {
42
109
  "type": "object",
43
- "required": ["worldview", "problem_definition", "reasoning_modes"],
110
+ "additionalProperties": false,
111
+ "required": [
112
+ "worldview",
113
+ "value_priority",
114
+ "problem_definition_style",
115
+ "reasoning_modes",
116
+ "knowledge_sources",
117
+ "judgment_style",
118
+ "core_cognitive_actions",
119
+ "evidence"
120
+ ],
44
121
  "properties": {
45
122
  "worldview": { "type": "string" },
46
- "problem_definition": { "type": "string" },
47
- "reasoning_modes": {
48
- "type": "array",
49
- "items": { "type": "string" }
50
- }
51
- },
52
- "additionalProperties": false
123
+ "value_priority": { "$ref": "#/$defs/stringArray" },
124
+ "problem_definition_style": { "type": "string" },
125
+ "reasoning_modes": { "$ref": "#/$defs/stringArray" },
126
+ "knowledge_sources": { "$ref": "#/$defs/stringArray" },
127
+ "judgment_style": {
128
+ "type": "object",
129
+ "additionalProperties": false,
130
+ "required": ["certainty_level", "notes"],
131
+ "properties": {
132
+ "certainty_level": { "type": "string" },
133
+ "notes": { "type": "string" }
134
+ }
135
+ },
136
+ "core_cognitive_actions": { "$ref": "#/$defs/stringArray" },
137
+ "evidence": { "$ref": "#/$defs/stringArray" }
138
+ }
53
139
  },
54
140
  "expression_hooks": {
55
141
  "type": "object",
56
- "required": ["hook_keywords", "hook_patterns", "memorability_sources"],
142
+ "additionalProperties": false,
143
+ "required": [
144
+ "language_style",
145
+ "hook_keywords",
146
+ "hook_types",
147
+ "argument_patterns",
148
+ "emotion_patterns",
149
+ "memorability_sources",
150
+ "evidence"
151
+ ],
57
152
  "properties": {
58
- "hook_keywords": {
59
- "type": "array",
60
- "items": { "type": "string" }
61
- },
62
- "hook_patterns": {
63
- "type": "array",
64
- "items": { "type": "string" }
153
+ "language_style": {
154
+ "type": "object",
155
+ "additionalProperties": false,
156
+ "required": ["oral_level", "assertiveness", "emotional_intensity", "professional_density"],
157
+ "properties": {
158
+ "oral_level": { "type": "string" },
159
+ "assertiveness": { "type": "string" },
160
+ "emotional_intensity": { "type": "string" },
161
+ "professional_density": { "type": "string" }
162
+ }
65
163
  },
66
- "memorability_sources": {
67
- "type": "array",
68
- "items": { "type": "string" }
69
- }
70
- },
71
- "additionalProperties": false
164
+ "hook_keywords": { "$ref": "#/$defs/stringArray" },
165
+ "hook_types": { "$ref": "#/$defs/stringArray" },
166
+ "argument_patterns": { "$ref": "#/$defs/stringArray" },
167
+ "emotion_patterns": { "$ref": "#/$defs/stringArray" },
168
+ "memorability_sources": { "$ref": "#/$defs/stringArray" },
169
+ "evidence": { "$ref": "#/$defs/stringArray" }
170
+ }
72
171
  },
73
172
  "content_mechanism": {
74
173
  "type": "object",
75
- "required": ["topic_sources", "topic_goals", "winning_structures", "traffic_drivers"],
174
+ "additionalProperties": false,
175
+ "required": [
176
+ "topic_sources",
177
+ "topic_goals",
178
+ "winning_content_structures",
179
+ "repeatable_series",
180
+ "traffic_drivers",
181
+ "content_flywheel",
182
+ "cross_platform_variation",
183
+ "dominant_themes",
184
+ "theme_clusters",
185
+ "evidence"
186
+ ],
76
187
  "properties": {
77
- "topic_sources": {
78
- "type": "array",
79
- "items": { "type": "string" }
80
- },
81
- "topic_goals": {
188
+ "topic_sources": { "$ref": "#/$defs/stringArray" },
189
+ "topic_goals": { "$ref": "#/$defs/stringArray" },
190
+ "winning_content_structures": { "$ref": "#/$defs/stringArray" },
191
+ "repeatable_series": { "$ref": "#/$defs/stringArray" },
192
+ "traffic_drivers": { "$ref": "#/$defs/stringArray" },
193
+ "content_flywheel": { "type": "string" },
194
+ "cross_platform_variation": { "type": "string" },
195
+ "dominant_themes": { "$ref": "#/$defs/stringArray" },
196
+ "theme_clusters": {
82
197
  "type": "array",
83
- "items": { "type": "string" }
198
+ "items": { "$ref": "#/$defs/themeCluster" }
84
199
  },
85
- "winning_structures": {
86
- "type": "array",
87
- "items": { "type": "string" }
88
- },
89
- "traffic_drivers": {
90
- "type": "array",
91
- "items": { "type": "string" }
92
- }
93
- },
94
- "additionalProperties": false
200
+ "evidence": { "$ref": "#/$defs/stringArray" }
201
+ }
95
202
  },
96
203
  "commercial_bridge": {
97
204
  "type": "object",
98
- "required": ["funnel_role", "conversion_path", "commercial_risks"],
205
+ "additionalProperties": false,
206
+ "required": [
207
+ "content_role_in_funnel",
208
+ "likely_products",
209
+ "conversion_path",
210
+ "content_product_fit",
211
+ "business_model_signals",
212
+ "commercial_risks",
213
+ "evidence"
214
+ ],
99
215
  "properties": {
100
- "funnel_role": { "type": "string" },
216
+ "content_role_in_funnel": { "$ref": "#/$defs/stringArray" },
217
+ "likely_products": { "$ref": "#/$defs/stringArray" },
101
218
  "conversion_path": { "type": "string" },
102
- "commercial_risks": {
103
- "type": "array",
104
- "items": { "type": "string" }
105
- }
106
- },
107
- "additionalProperties": false
219
+ "content_product_fit": { "type": "string" },
220
+ "business_model_signals": { "$ref": "#/$defs/stringArray" },
221
+ "commercial_risks": { "$ref": "#/$defs/stringArray" },
222
+ "evidence": { "$ref": "#/$defs/stringArray" }
223
+ }
108
224
  },
109
225
  "core_tensions": {
110
- "type": "array",
111
- "items": {
112
- "type": "object",
113
- "required": ["label", "surface", "deep_reason", "strategic_implication"],
114
- "properties": {
115
- "label": { "type": "string" },
116
- "surface": { "type": "string" },
117
- "deep_reason": { "type": "string" },
118
- "strategic_implication": { "type": "string" }
226
+ "type": "object",
227
+ "additionalProperties": false,
228
+ "required": ["tensions", "most_important_tension", "evidence"],
229
+ "properties": {
230
+ "tensions": {
231
+ "type": "array",
232
+ "items": { "$ref": "#/$defs/tensionItem" }
119
233
  },
120
- "additionalProperties": false
234
+ "most_important_tension": { "type": "string" },
235
+ "evidence": { "$ref": "#/$defs/stringArray" }
121
236
  }
122
237
  },
123
238
  "evidence_pack": {
124
239
  "type": "object",
125
- "required": ["sample_size", "sample_confidence", "boundaries"],
240
+ "additionalProperties": false,
241
+ "required": [
242
+ "sample_size",
243
+ "sample_confidence",
244
+ "representative_works",
245
+ "top_keywords",
246
+ "observed_hooks",
247
+ "observed_ctas",
248
+ "observed_structures",
249
+ "notes"
250
+ ],
126
251
  "properties": {
127
252
  "sample_size": { "type": "integer", "minimum": 0 },
128
253
  "sample_confidence": {
129
254
  "type": "string",
130
- "enum": ["low", "medium", "high"]
255
+ "enum": ["low", "mid", "high"]
256
+ },
257
+ "representative_works": {
258
+ "type": "array",
259
+ "items": { "$ref": "#/$defs/representativeWork" }
131
260
  },
132
- "boundaries": { "type": "string" }
133
- },
134
- "additionalProperties": false
261
+ "top_keywords": { "$ref": "#/$defs/stringArray" },
262
+ "observed_hooks": { "$ref": "#/$defs/stringArray" },
263
+ "observed_ctas": { "$ref": "#/$defs/stringArray" },
264
+ "observed_structures": { "$ref": "#/$defs/stringArray" },
265
+ "notes": { "$ref": "#/$defs/stringArray" }
266
+ }
135
267
  },
136
268
  "clone_guidance": {
137
269
  "type": "object",
138
- "required": ["copyable_elements", "non_copyable_elements", "danger_zones", "if_only_learn_one_thing"],
270
+ "additionalProperties": false,
271
+ "required": [
272
+ "copyable_elements",
273
+ "non_copyable_elements",
274
+ "borrowable_flavor",
275
+ "danger_zones",
276
+ "if_only_learn_one_thing"
277
+ ],
139
278
  "properties": {
140
- "copyable_elements": {
141
- "type": "array",
142
- "items": { "type": "string" }
143
- },
144
- "non_copyable_elements": {
145
- "type": "array",
146
- "items": { "type": "string" }
147
- },
148
- "danger_zones": {
149
- "type": "array",
150
- "items": { "type": "string" }
151
- },
279
+ "copyable_elements": { "$ref": "#/$defs/stringArray" },
280
+ "non_copyable_elements": { "$ref": "#/$defs/stringArray" },
281
+ "borrowable_flavor": { "$ref": "#/$defs/stringArray" },
282
+ "danger_zones": { "$ref": "#/$defs/stringArray" },
152
283
  "if_only_learn_one_thing": { "type": "string" }
153
- },
154
- "additionalProperties": false
284
+ }
155
285
  }
156
- },
157
- "additionalProperties": false
286
+ }
158
287
  }
@@ -3,16 +3,21 @@
3
3
  ## Main Flow
4
4
 
5
5
  1. Collect creator fact fields.
6
- 2. Collect the content set and write a fact card for each work.
6
+ 2. Collect the content set.
7
7
  3. Run batch ASR for video items.
8
8
  4. Exclude works with `analysis_eligibility=incomplete` from downstream analysis.
9
- 5. Run full aggregation, bucketing, and sampling.
9
+ 5. Run normalization, aggregation, bucketing, and sampling.
10
10
  6. Run one batch explanation step for sampled works.
11
11
  7. Generate `author_analysis_v2`.
12
- 8. Return the creator card, work cards, and aggregated conclusions.
12
+ 8. Write author sample cards for all retrieved works.
13
+ 9. Write sampled enhanced cards for sampled works only.
14
+ 10. Write the creator card.
15
+ 11. Return the creator card, author sample cards, sampled enhanced cards, and aggregated conclusions.
13
16
 
14
17
  ## Required Rules
15
18
 
16
19
  - Do not run per-work LLM deep analysis.
17
20
  - `sampled_work_explanations` must come from one batch stage only.
18
21
  - `author_analysis_v2` is the formal creator-level primary output.
22
+ - Author sample cards are the fact-and-structure cards for all retrieved works.
23
+ - Sampled enhanced cards reuse the sampled works only and add the explanation block from `sampled_work_explanations`.