@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.
- package/package.json +1 -1
- package/skills/creator-analysis/SKILL.md +34 -10
- package/skills/creator-analysis/references/contracts/creator-card-fields.md +2 -0
- package/skills/creator-analysis/references/contracts/work-card-fields.md +40 -4
- package/skills/creator-analysis/references/platform-guides/douyin.md +41 -36
- package/skills/creator-analysis/references/platform-guides/generic.md +11 -7
- package/skills/creator-analysis/references/platform-guides/xiaohongshu.md +45 -30
- package/skills/creator-analysis/references/schemas/author-analysis-v2.schema.json +224 -95
- package/skills/creator-analysis/references/workflow.md +8 -3
- package/skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py +205 -21
- package/skills/creator-analysis/scripts/author_home/analyzers/author_analysis_v2_support.py +54 -11
- package/skills/creator-analysis/scripts/author_home/analyzers/prompt_first_analyzers.py +200 -13
- package/skills/creator-analysis/scripts/author_home/analyzers/sampled_work_batch_explainer.py +113 -42
- package/skills/creator-analysis/scripts/author_home/asr/home_asr.py +65 -7
- package/skills/creator-analysis/scripts/author_home/builders/home_builders.py +82 -18
- package/skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py +198 -32
- package/skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py +374 -31
- package/skills/creator-analysis/scripts/author_home/orchestrator/work_analysis_artifacts.py +68 -12
- package/skills/creator-analysis/scripts/core/storage_router.py +3 -0
- package/skills/creator-analysis/scripts/writers/write_author_homepage_samples.py +3 -2
- package/skills/creator-analysis/scripts/writers/write_benchmark_card.py +314 -137
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@ description: Use this skill for creator, account profile, and content-collection
|
|
|
8
8
|
## When To Use
|
|
9
9
|
|
|
10
10
|
- Use this skill when the target is a creator, account, profile page, channel, or content collection rather than a single content item.
|
|
11
|
-
- Use this skill when the user wants a creator card,
|
|
11
|
+
- Use this skill when the user wants a creator card, author sample cards, sampled explanations, or aggregated creator-level conclusions.
|
|
12
12
|
- Use this skill when multiple videos under one profile should go through batch ASR first.
|
|
13
13
|
- Use this skill when the user provides a profile URL, creator handle, account identifier, channel entry, or another creator-level entry point.
|
|
14
14
|
|
|
@@ -16,12 +16,12 @@ description: Use this skill for creator, account profile, and content-collection
|
|
|
16
16
|
|
|
17
17
|
- Fetch and normalize creator-side fact fields.
|
|
18
18
|
- Fetch and normalize the full content collection under a profile.
|
|
19
|
-
- Produce
|
|
19
|
+
- Produce author sample cards for the retrieved items.
|
|
20
20
|
- Run batch ASR for video items when needed.
|
|
21
21
|
- Complete bucketing, sampling, sampled explanations, and creator-level analysis.
|
|
22
|
-
- Return creator cards,
|
|
22
|
+
- Return creator cards, author sample cards, sampled enhanced cards, and aggregated conclusions.
|
|
23
23
|
|
|
24
|
-
## Core Rules
|
|
24
|
+
## Core Workflow Rules
|
|
25
25
|
|
|
26
26
|
- Keep the task scoped to a creator, account profile, or content collection.
|
|
27
27
|
- Prefer the platform guide first. Only go back to API discovery references when the guide is insufficient.
|
|
@@ -31,26 +31,50 @@ description: Use this skill for creator, account profile, and content-collection
|
|
|
31
31
|
- Treat `author_analysis_v2` as the formal creator-level analysis object.
|
|
32
32
|
- If `analysis_eligibility=incomplete`, keep the fact card but exclude the item from sampling, sampled explanations, and creator-level analysis.
|
|
33
33
|
|
|
34
|
+
## Shared Layer Boundaries
|
|
35
|
+
|
|
36
|
+
- Shared layer owns orchestration order, status semantics, output contracts, sampled-work explanation constraints, and final card-writing rules.
|
|
37
|
+
- Platform layer owns route strategy, collector behavior, platform-field compatibility, adapter normalization, and platform-specific cleaning rules.
|
|
38
|
+
- Keep sampled explanations as a batch-stage artifact. Do not reintroduce per-work deep analysis in the creator path.
|
|
39
|
+
- Treat `author`, `author_sample_work`, and sampled enhanced cards as separate output roles with explicit routing semantics.
|
|
40
|
+
|
|
41
|
+
## Platform Navigation
|
|
42
|
+
|
|
43
|
+
- Start with the platform guide:
|
|
44
|
+
- Douyin: `references/platform-guides/douyin.md`
|
|
45
|
+
- Xiaohongshu: `references/platform-guides/xiaohongshu.md`
|
|
46
|
+
- Other platforms: `references/platform-guides/generic.md`
|
|
47
|
+
- Route strategy, collector behavior, and raw payload retrieval:
|
|
48
|
+
- First stop: `scripts/author_home/collectors/homepage_collectors.py`
|
|
49
|
+
- Platform-field compatibility and normalization:
|
|
50
|
+
- First stop: `scripts/author_home/adapters/platform_adapters.py`
|
|
51
|
+
- Orchestration order, stage status, degradation, persistence, and final result assembly:
|
|
52
|
+
- First stop: `scripts/author_home/orchestrator/run_author_analysis.py`
|
|
53
|
+
- Work-analysis artifacts, cache behavior, and structural labels:
|
|
54
|
+
- First stop: `scripts/author_home/orchestrator/work_analysis_artifacts.py`
|
|
55
|
+
- Sampled explanations and creator-level analysis logic:
|
|
56
|
+
- First stop: `scripts/author_home/analyzers/`
|
|
57
|
+
- Card writing and markdown rendering:
|
|
58
|
+
- First stop: `scripts/writers/write_author_homepage_samples.py`
|
|
59
|
+
- Supporting renderer: `scripts/writers/write_benchmark_card.py`
|
|
60
|
+
|
|
34
61
|
## Do Not
|
|
35
62
|
|
|
36
63
|
- Do not paste sampled explanations directly into every work-card body.
|
|
37
64
|
- Do not expose platform process fields directly in the final card body.
|
|
38
65
|
- Do not introduce per-work LLM explanations inside the creator path.
|
|
39
|
-
- Do not
|
|
66
|
+
- Do not bypass the platform guide and jump straight into local helpers without understanding the route and contract expectations first.
|
|
40
67
|
|
|
41
68
|
## Workflow
|
|
42
69
|
|
|
43
70
|
1. Identify the platform and confirm that the target is a creator, account profile, channel, or content collection.
|
|
44
71
|
2. Read `references/contracts/creator-card-fields.md` to confirm required creator-card fields.
|
|
45
72
|
3. Read `references/contracts/work-card-fields.md` to confirm required work-card fields for the collected items.
|
|
46
|
-
4. Read the platform guide first
|
|
47
|
-
- Douyin: `references/platform-guides/douyin.md`
|
|
48
|
-
- Xiaohongshu: `references/platform-guides/xiaohongshu.md`
|
|
49
|
-
- Other platforms: `references/platform-guides/generic.md`
|
|
73
|
+
4. Read the platform guide first and then the first-stop implementation file for the problem type you are solving.
|
|
50
74
|
5. If video items are involved, read `references/service-guides/asr-u2-u3-fallback.md` and then `references/asr-orchestration.md` to run batch ASR and fallback.
|
|
51
75
|
6. Read `references/api-capability-index.md`, `references/api-tags/`, and `references/api-contracts/` only when the platform guide does not provide enough route or field detail.
|
|
52
76
|
7. Read `references/workflow.md` to complete bucketing, sampling, sampled explanations, and `author_analysis_v2`.
|
|
53
|
-
8. Return the creator card,
|
|
77
|
+
8. Return the creator card, author sample cards, sampled enhanced cards, and aggregated conclusions.
|
|
54
78
|
|
|
55
79
|
## References
|
|
56
80
|
|
|
@@ -20,4 +20,6 @@
|
|
|
20
20
|
|
|
21
21
|
- The creator card is the fact container for creator-level data.
|
|
22
22
|
- The creator-level analysis body comes from `author_analysis_v2`, not from platform process fields.
|
|
23
|
+
- The creator-card body should present the `author_analysis_v2` modules and representative works, not a raw JSON dump.
|
|
24
|
+
- Debug JSON, validation, and trace data belong in appendix/details blocks rather than the main body.
|
|
23
25
|
- Platform-native IDs stay in the internal reference layer and should not appear in the final creator-card body.
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
# Creator Work Card Fields
|
|
1
|
+
# Creator Analysis Work Card Fields
|
|
2
|
+
|
|
3
|
+
## Card Roles
|
|
4
|
+
|
|
5
|
+
- `author_sample_card`
|
|
6
|
+
- Fact-and-structure card for every retrieved work in creator analysis.
|
|
7
|
+
- `sample_work_card`
|
|
8
|
+
- Sampled-only enhanced card that reuses the same fact-and-structure fields and adds the explanation block.
|
|
2
9
|
|
|
3
10
|
## Fixed Display Fields
|
|
4
11
|
|
|
@@ -20,13 +27,42 @@
|
|
|
20
27
|
- `share_url`
|
|
21
28
|
- `primary_text`
|
|
22
29
|
|
|
23
|
-
##
|
|
30
|
+
## Structural Display Fields
|
|
31
|
+
|
|
32
|
+
- `performance_score`
|
|
33
|
+
- `performance_score_norm`
|
|
34
|
+
- `bucket`
|
|
35
|
+
- `hook_type`
|
|
36
|
+
- `structure_type`
|
|
37
|
+
- `cta_type`
|
|
38
|
+
- `content_form`
|
|
39
|
+
- `style_markers`
|
|
40
|
+
- `tags`
|
|
41
|
+
|
|
42
|
+
## Shared Appendix Fields
|
|
43
|
+
|
|
44
|
+
- `analysis_eligibility`
|
|
45
|
+
- `analysis_exclusion_reason`
|
|
46
|
+
|
|
47
|
+
## Video-Only Appendix Fields
|
|
24
48
|
|
|
25
49
|
- `asr_raw`
|
|
26
50
|
- `video_download_url`
|
|
27
51
|
|
|
52
|
+
## Sampled-Only Explanation Block
|
|
53
|
+
|
|
54
|
+
- `sampled_explanation.why_it_worked_or_failed`
|
|
55
|
+
- `sampled_explanation.copyable_elements`
|
|
56
|
+
- `sampled_explanation.non_copyable_elements`
|
|
57
|
+
- `sampled_explanation.emotional_triggers`
|
|
58
|
+
- `sampled_explanation.cognitive_gap`
|
|
59
|
+
- `sampled_explanation.commercial_signal`
|
|
60
|
+
|
|
28
61
|
## Key Rules
|
|
29
62
|
|
|
30
|
-
- Keep
|
|
31
|
-
-
|
|
63
|
+
- Keep author sample cards for all retrieved works.
|
|
64
|
+
- Only sampled works receive the sampled explanation block.
|
|
65
|
+
- The final card should not expose `content_type`, `publish_time`, `create_time_sec`, `subtitle_raw`, `asr_source`, `asr_status`, or `asr_error_reason`.
|
|
66
|
+
- Use `primary_text` as the main reading body and keep `asr_raw` in appendix/details only.
|
|
32
67
|
- If a video item cannot obtain `asr_raw`, keep the fact card but mark `analysis_eligibility=incomplete` and exclude that item from creator analysis.
|
|
68
|
+
- Do not introduce per-work standalone LLM analysis in creator analysis.
|
|
@@ -1,49 +1,54 @@
|
|
|
1
1
|
# Douyin Creator Guide
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Use This Guide For
|
|
4
4
|
|
|
5
5
|
- Use this guide first for Douyin creator, profile, and account tasks.
|
|
6
|
-
- The validated chain in this repository is profile input -> `sec_user_id` resolution -> creator profile -> paginated post list.
|
|
7
|
-
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
6
|
+
- The validated creator chain in this repository is profile input -> `sec_user_id` resolution -> creator profile -> paginated post list.
|
|
7
|
+
|
|
8
|
+
## Validated Route Chain
|
|
9
|
+
|
|
10
|
+
1. Resolve `sec_user_id`: `GET /api/u1/v1/douyin/web/get_sec_user_id`
|
|
11
|
+
2. Fetch creator profile: `GET /api/u1/v1/douyin/app/v3/handler_user_profile`
|
|
12
|
+
3. Fetch paginated post list: `GET /api/u1/v1/douyin/app/v3/fetch_user_post_videos`
|
|
13
|
+
|
|
14
|
+
## Required Unified Fields
|
|
15
|
+
|
|
16
|
+
- creator side:
|
|
17
|
+
- `platform_author_id`
|
|
18
|
+
- `author_handle`
|
|
19
|
+
- `nickname`
|
|
20
|
+
- `ip_location`
|
|
21
|
+
- `signature`
|
|
22
|
+
- `avatar_url`
|
|
23
|
+
- `fans_count`
|
|
24
|
+
- `liked_count`
|
|
25
|
+
- `works_count`
|
|
26
|
+
- `verified`
|
|
27
|
+
- work side:
|
|
28
|
+
- `platform_work_id`
|
|
29
|
+
- `title`
|
|
30
|
+
- `caption_raw`
|
|
31
|
+
- `published_date`
|
|
32
|
+
- `digg_count`
|
|
33
|
+
- `comment_count`
|
|
34
|
+
- `collect_count`
|
|
35
|
+
- `share_count`
|
|
36
|
+
- `play_count`
|
|
37
|
+
- `cover_image`
|
|
38
|
+
- `share_url`
|
|
39
|
+
- `source_url`
|
|
40
|
+
- `video_download_url`
|
|
38
41
|
|
|
39
42
|
## Route Rules
|
|
40
43
|
|
|
41
44
|
- If `sec_user_id` is already available, skip the resolution route.
|
|
42
45
|
- Default to the latest-post pagination path. Do not search random feed routes first.
|
|
46
|
+
- The post-list route must supply stable `aweme_id`, publish time, and engagement fields before creator analysis can continue.
|
|
43
47
|
- If batch U2 ASR is still incomplete after 120 seconds, follow `references/service-guides/asr-u2-u3-fallback.md` and use U3 fallback only for the unsuccessful subset.
|
|
44
48
|
- If the profile chain still cannot supply key creator fields, go back to `references/api-capability-index.md` and the matching `references/api-tags/*.md` to find supplemental routes instead of giving up on the creator card.
|
|
45
49
|
|
|
46
|
-
##
|
|
50
|
+
## First Stops In Code
|
|
47
51
|
|
|
48
|
-
- `skills/creator-analysis/scripts/author_home/
|
|
49
|
-
- `skills/creator-analysis/scripts/author_home/
|
|
52
|
+
- Route and pagination behavior: `skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py`
|
|
53
|
+
- Platform-field normalization: `skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py`
|
|
54
|
+
- Shared creator pipeline: `skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py`
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
# Generic Creator Guide
|
|
1
|
+
# Generic Creator Adaptation Guide
|
|
2
2
|
|
|
3
3
|
## Goal
|
|
4
4
|
|
|
5
|
-
Map an unfamiliar platform into the
|
|
5
|
+
Map an unfamiliar platform into the creator-analysis contracts and only then feed it into the shared creator pipeline.
|
|
6
6
|
|
|
7
7
|
## Read Order
|
|
8
8
|
|
|
9
9
|
- Start with `references/api-capability-index.md` to lock onto the relevant platform tag.
|
|
10
10
|
- Read the matching `references/api-tags/<tag>.md` for route summaries, inputs, request bodies, and success-response summaries.
|
|
11
11
|
- Prioritize routes related to `user / author / creator / profile / home / channel / posts / notes / videos`.
|
|
12
|
+
- Then read `references/contracts/creator-card-fields.md`, `references/contracts/work-card-fields.md`, and `references/workflow.md`.
|
|
12
13
|
- Add comment, media-download, subtitle, and extra-metric routes only when needed.
|
|
13
14
|
|
|
14
15
|
## Minimum Mapping Checklist
|
|
15
16
|
|
|
16
|
-
creator side:
|
|
17
|
+
- creator side:
|
|
17
18
|
|
|
18
19
|
- `platform_author_id`
|
|
19
20
|
- `author_handle`
|
|
@@ -27,7 +28,7 @@ creator side:
|
|
|
27
28
|
- `works_count`
|
|
28
29
|
- `verified`
|
|
29
30
|
|
|
30
|
-
work side:
|
|
31
|
+
- work side:
|
|
31
32
|
|
|
32
33
|
- the required fields from the unified work-card field dictionary
|
|
33
34
|
- for video items: `video_download_url`
|
|
@@ -38,9 +39,12 @@ work side:
|
|
|
38
39
|
- If the platform provides multiple profile routes or posts routes, prefer the variant with fuller fields and more stable pagination.
|
|
39
40
|
- The work-list route must reliably provide `platform_work_id` and the main published-time and engagement fields before sampling or aggregation can begin.
|
|
40
41
|
- If video items have no subtitles and no download path, mark ASR as infeasible at the route-selection stage.
|
|
42
|
+
- Do not invent platform cleaning rules inside the shared layer. Normalize in the platform adapter first.
|
|
43
|
+
- If the platform still cannot satisfy the unified creator/work contracts, stop and report the mapping gap instead of pushing half-complete data into creator analysis.
|
|
41
44
|
- If batch U2 ASR is still incomplete after 120 seconds, follow `references/service-guides/asr-u2-u3-fallback.md` and use U3 fallback only for the unsuccessful subset.
|
|
42
45
|
|
|
43
|
-
##
|
|
46
|
+
## First Stops For Adaptation
|
|
44
47
|
|
|
45
|
-
- `skills/creator-analysis/scripts/author_home
|
|
46
|
-
- `skills/creator-analysis/scripts/
|
|
48
|
+
- Collector and route selection: `skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py`
|
|
49
|
+
- Platform normalization: `skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py`
|
|
50
|
+
- Shared creator orchestration: `skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py`
|
|
@@ -1,54 +1,69 @@
|
|
|
1
1
|
# Xiaohongshu Creator Guide
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Use This Guide For
|
|
4
4
|
|
|
5
5
|
- Use this guide first for Xiaohongshu creator, profile, and account tasks.
|
|
6
|
-
- The validated chain in this repository is profile input -> `user_id` / `xsec_token` resolution -> profile cascade -> post-list cascade.
|
|
6
|
+
- The validated creator chain in this repository is profile input -> `user_id` / `xsec_token` resolution -> profile cascade -> post-list cascade.
|
|
7
7
|
|
|
8
|
-
## Preferred
|
|
8
|
+
## Preferred Route Comparator
|
|
9
9
|
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- avatar
|
|
14
|
-
- fan count, liked count, work count
|
|
10
|
+
- source priority: `app > web`
|
|
11
|
+
- version priority within the same source: `v2 > v1`
|
|
12
|
+
- desired order for the current creator-home pipeline: `app v2 -> app -> web v2`
|
|
15
13
|
|
|
16
|
-
##
|
|
14
|
+
## Validated Route Chain
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
- title / caption: `title` / `desc` / `content`
|
|
20
|
-
- for video items, check native subtitles first
|
|
21
|
-
- engagement metrics: digg, comment, collect, share, play
|
|
22
|
-
|
|
23
|
-
## Preferred Route Chain
|
|
24
|
-
|
|
25
|
-
1. Profile identifier resolution: `GET /api/u1/v1/xiaohongshu/app/get_user_id_and_xsec_token`
|
|
26
|
-
- OpenAPI-required input: `share_link`
|
|
27
|
-
- The current implementation also sends `share_url` and `url` redundantly.
|
|
16
|
+
1. Resolve `user_id` / `xsec_token`: `GET /api/u1/v1/xiaohongshu/app/get_user_id_and_xsec_token`
|
|
28
17
|
2. Profile cascade:
|
|
29
18
|
- `GET /api/u1/v1/xiaohongshu/app_v2/get_user_info`
|
|
30
|
-
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_user_info_app`
|
|
31
19
|
- `GET /api/u1/v1/xiaohongshu/app/get_user_info`
|
|
32
|
-
-
|
|
20
|
+
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_user_info_app`
|
|
33
21
|
3. Post-list cascade:
|
|
34
22
|
- `GET /api/u1/v1/xiaohongshu/app_v2/get_user_posted_notes`
|
|
35
|
-
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_home_notes_app`
|
|
36
23
|
- `GET /api/u1/v1/xiaohongshu/app/get_user_notes`
|
|
37
|
-
-
|
|
24
|
+
- `GET /api/u1/v1/xiaohongshu/web_v2/fetch_home_notes_app`
|
|
38
25
|
|
|
39
|
-
## Unified Fields
|
|
26
|
+
## Required Unified Fields
|
|
40
27
|
|
|
41
|
-
- creator
|
|
42
|
-
-
|
|
28
|
+
- creator side:
|
|
29
|
+
- `platform_author_id`
|
|
30
|
+
- `author_handle`
|
|
31
|
+
- `nickname`
|
|
32
|
+
- `ip_location`
|
|
33
|
+
- `signature`
|
|
34
|
+
- `avatar_url`
|
|
35
|
+
- `fans_count`
|
|
36
|
+
- `liked_count`
|
|
37
|
+
- `collected_count`
|
|
38
|
+
- `works_count`
|
|
39
|
+
- `verified`
|
|
40
|
+
- work side:
|
|
41
|
+
- `platform_work_id`
|
|
42
|
+
- `title`
|
|
43
|
+
- `caption_raw`
|
|
44
|
+
- `published_date`
|
|
45
|
+
- `digg_count`
|
|
46
|
+
- `comment_count`
|
|
47
|
+
- `collect_count`
|
|
48
|
+
- `share_count`
|
|
49
|
+
- `play_count`
|
|
50
|
+
- `cover_image`
|
|
51
|
+
- `share_url`
|
|
52
|
+
- `source_url`
|
|
53
|
+
- `video_download_url`
|
|
43
54
|
|
|
44
55
|
## Route Rules
|
|
45
56
|
|
|
46
57
|
- If `user_id` is already available, skip the resolution route. Treat `xsec_token` as supplemental rather than universally required.
|
|
47
|
-
-
|
|
58
|
+
- Apply the comparator above consistently to both profile and post-list cascades.
|
|
59
|
+
- Switch to fallback based on field completeness, not only on HTTP success.
|
|
60
|
+
- For the current fixed pipeline, do not add a web-v1 fallback unless a later plan explicitly freezes its endpoint, parameters, and accept rules.
|
|
61
|
+
- For video items, prefer native subtitles first; only move into batch ASR when native text is insufficient.
|
|
48
62
|
- If batch U2 ASR is still incomplete after 120 seconds, follow `references/service-guides/asr-u2-u3-fallback.md` and use U3 fallback only for the unsuccessful subset.
|
|
49
63
|
- If the profile-post chain still cannot provide stable fields, go back to `references/api-capability-index.md` and the matching `references/api-tags/*.md` for supplemental routes instead of sending half-complete data into creator analysis.
|
|
50
64
|
|
|
51
|
-
##
|
|
65
|
+
## First Stops In Code
|
|
52
66
|
|
|
53
|
-
- `skills/creator-analysis/scripts/author_home/
|
|
54
|
-
- `skills/creator-analysis/scripts/author_home/
|
|
67
|
+
- Route and pagination behavior: `skills/creator-analysis/scripts/author_home/collectors/homepage_collectors.py`
|
|
68
|
+
- Platform-field normalization: `skills/creator-analysis/scripts/author_home/adapters/platform_adapters.py`
|
|
69
|
+
- Shared creator pipeline: `skills/creator-analysis/scripts/author_home/orchestrator/run_author_analysis.py`
|