codymaster 4.4.5 → 4.5.1

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 (186) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +29 -14
  3. package/commands/demo.md +1 -1
  4. package/dist/context-bus.js +70 -0
  5. package/dist/context-db.js +265 -0
  6. package/dist/continuity.js +12 -0
  7. package/dist/file-watcher.js +79 -0
  8. package/dist/index.js +152 -1
  9. package/dist/l0-indexer.js +158 -0
  10. package/dist/mcp-context-server.js +400 -0
  11. package/dist/migrate-json-to-sqlite.js +126 -0
  12. package/dist/skill-chain.js +19 -3
  13. package/dist/token-budget.js +108 -0
  14. package/dist/uri-resolver.js +203 -0
  15. package/package.json +4 -1
  16. package/skills/_shared/helpers.md +50 -14
  17. package/skills/cm-autopilot/SKILL.md +29 -0
  18. package/skills/cm-autopilot/scripts/autopilot.py +190 -0
  19. package/skills/cm-continuity/SKILL.md +90 -28
  20. package/skills/cm-skill-chain/SKILL.md +47 -1
  21. package/skills/cm-start/SKILL.md +11 -2
  22. package/skills/boxme-git-config/SKILL.md +0 -56
  23. package/skills/boxme-local-dev/SKILL.md +0 -66
  24. package/skills/jobs-to-be-done/SKILL.md +0 -266
  25. package/skills/jobs-to-be-done/references/case-studies.md +0 -154
  26. package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
  27. package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
  28. package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
  29. package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
  30. package/skills/marketplace-report-crawler/SKILL.md +0 -176
  31. package/skills/marketplace-report-crawler/config/accounts.json +0 -41
  32. package/skills/marketplace-report-crawler/config/report-types.json +0 -422
  33. package/skills/marketplace-report-crawler/config/sessions.json +0 -3
  34. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
  35. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
  36. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
  37. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
  38. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
  39. package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
  40. package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
  41. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
  42. package/skills/medical-research/SKILL.md +0 -194
  43. package/skills/medical-research/scripts/evidence_checker.py +0 -288
  44. package/skills/mom-test/SKILL.md +0 -267
  45. package/skills/mom-test/references/avoiding-bad-data.md +0 -221
  46. package/skills/mom-test/references/case-studies.md +0 -306
  47. package/skills/mom-test/references/commitment-advancement.md +0 -219
  48. package/skills/mom-test/references/finding-conversations.md +0 -251
  49. package/skills/mom-test/references/processing-learning.md +0 -256
  50. package/skills/mom-test/references/question-patterns.md +0 -198
  51. package/skills/pandasai-analytics/SKILL.md +0 -251
  52. package/skills/release-it/SKILL.md +0 -235
  53. package/skills/release-it/references/anti-patterns.md +0 -279
  54. package/skills/release-it/references/capacity-planning.md +0 -285
  55. package/skills/release-it/references/chaos-engineering.md +0 -325
  56. package/skills/release-it/references/deployment-strategies.md +0 -331
  57. package/skills/release-it/references/observability.md +0 -301
  58. package/skills/release-it/references/stability-patterns.md +0 -355
  59. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
  60. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
  61. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
  62. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
  63. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
  64. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
  65. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
  66. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
  67. package/skills/skill-creator-ultra/README.md +0 -1242
  68. package/skills/skill-creator-ultra/SKILL.md +0 -388
  69. package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
  70. package/skills/skill-creator-ultra/agents/comparator.md +0 -202
  71. package/skills/skill-creator-ultra/agents/grader.md +0 -223
  72. package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
  73. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
  74. package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
  75. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
  76. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
  77. package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
  78. package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
  79. package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
  80. package/skills/skill-creator-ultra/install.ps1 +0 -289
  81. package/skills/skill-creator-ultra/install.sh +0 -313
  82. package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
  83. package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
  84. package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
  85. package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
  86. package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
  87. package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
  88. package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
  89. package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
  90. package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
  91. package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
  92. package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
  93. package/skills/skill-creator-ultra/resources/checklist.md +0 -243
  94. package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
  95. package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
  96. package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
  97. package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
  98. package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
  99. package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
  100. package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
  101. package/skills/skill-creator-ultra/resources/schemas.md +0 -430
  102. package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
  103. package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
  104. package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
  105. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
  106. package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
  107. package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
  108. package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
  109. package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
  110. package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
  111. package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
  112. package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
  113. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
  114. package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
  115. package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
  116. package/skills/tailwind-mastery/SKILL.md +0 -229
  117. package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
  118. package/skills/vercel-react-best-practices/README.md +0 -123
  119. package/skills/vercel-react-best-practices/SKILL.md +0 -143
  120. package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  121. package/skills/vercel-react-best-practices/rules/_template.md +0 -28
  122. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  123. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  124. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  125. package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  126. package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  127. package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  128. package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  129. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  130. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  131. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  132. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  133. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  134. package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  135. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  136. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  137. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  138. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  139. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  140. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  141. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  142. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  143. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  144. package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  145. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  146. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  147. package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  148. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  149. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  150. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  151. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  152. package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  153. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  154. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  155. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  156. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  157. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  158. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  159. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  160. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  161. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  162. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  163. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  164. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  165. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  166. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  167. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  168. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  169. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  170. package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  171. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  172. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  173. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  174. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  175. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  176. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  177. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  178. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  179. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  180. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  181. package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  182. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  183. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
  184. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  185. package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  186. package/skills/web-design-guidelines/SKILL.md +0 -39
@@ -1,176 +0,0 @@
1
- ---
2
- name: marketplace-report-crawler
3
- description: |
4
- Automated marketplace report crawler for Shopee, Lazada, TikTok seller portals.
5
- Uses CSV-based account config with credential security. Includes dashboard,
6
- activity/bug logging, and progress reporting.
7
-
8
- SECURITY: AI MUST NEVER read username/password columns from accounts.csv.
9
- Use get-credential.js to retrieve credentials for browser-only use.
10
-
11
- ALWAYS trigger for: marketplace report, crawl data, download marketplace report, export shopee,
12
- export lazada, export tiktok, GBS data, seller report, download seller report,
13
- "aggregate reports", "crawl marketplace", "data crawling", "seller data",
14
- "marketplace income", "ads report", "affiliate report", "advertising report",
15
- "wallet statement", "shipping fee", "shipping cost"
16
- ---
17
-
18
- # Marketplace Report Crawler v2.0
19
-
20
- ## Key Principle: Agent-Native + Session Persistence
21
-
22
- > **Login happens ONCE. OTP is entered ONCE. Sessions are saved FOREVER.**
23
-
24
- Marketplaces require OTP/CAPTCHA to login. OTP codes are held by customers/accountants
25
- and can't be requested repeatedly. Therefore:
26
-
27
- 1. **First login**: AI agent uses its OWN browser to login (bypasses CAPTCHA naturally)
28
- 2. **Export cookies**: After login, cookies are saved to disk
29
- 3. **Future runs**: Inject saved cookies → skip login entirely
30
- 4. **Only re-login**: When session actually expires (rare)
31
-
32
- ## 🔒 Security Rules
33
-
34
- > **CRITICAL**: These rules MUST be followed at all times.
35
-
36
- 1. **NEVER** read/log/print `username`/`password` columns from `accounts.csv`
37
- 2. **ONLY** use helper scripts to access credentials:
38
- - `node scripts/get-credential.js <id> username` → raw username
39
- - `node scripts/get-credential.js <id> password` → raw password
40
- 3. Credentials go **directly** into browser form fields — never stored in context
41
-
42
- ## Architecture
43
-
44
- ```
45
- scripts/
46
- ├── get-login-info.js # Platform config (URL, selectors) — NO credentials
47
- ├── get-credential.js # Raw credential value for browser fill
48
- ├── session-store.js # Cookie persistence (save/check/inject/list)
49
- ├── auto-login.js # Automated login (agent-browser) + agent-delegate
50
- ├── pipeline.js # Sequential pipeline orchestrator
51
- ├── csv-reader.js # CSV parser with credential masking
52
- ├── logger.js # Activity + Bug logging
53
- └── run-report.js # Progress report generator
54
-
55
- config/
56
- ├── accounts.csv # 🔐 Credentials (gitignored)
57
- ├── pipeline-config.json # Platform selectors, timeouts
58
- └── report-types.json # 25 report type definitions
59
-
60
- ~/.marketplace-crawler/sessions/ # Persistent cookie storage
61
- └── <account_id>/
62
- ├── cookies.json
63
- └── session-meta.json
64
- ```
65
-
66
- ## Workflow: First-Time Login (One-Time)
67
-
68
- ### Step 1: Get Login Info
69
- ```bash
70
- node scripts/get-login-info.js zott-lazada
71
- # Returns: { loginUrl, platform, dashboardUrl, loginSelectors }
72
- ```
73
-
74
- ### Step 2: Login via Agent Browser
75
-
76
- Use YOUR browser tool (browser_subagent / Claude browser / Manus Chrome):
77
-
78
- 1. Navigate to the `loginUrl` from step 1
79
- 2. Get credentials:
80
- ```bash
81
- node scripts/get-credential.js zott-lazada username # → nguy...@zott.vn
82
- node scripts/get-credential.js zott-lazada password # → raw password
83
- ```
84
- 3. Fill username into the login form
85
- 4. Fill password
86
- 5. Click login button
87
- 6. **If CAPTCHA**: Solve it visually (your browser looks like a real user)
88
- 7. **If OTP**: Ask user for the 6-digit code, enter it
89
- 8. Verify you reached the dashboard
90
-
91
- ### Step 3: Export & Save Cookies
92
-
93
- After successful login, run this in the browser console:
94
- ```javascript
95
- // Get all cookies for the current domain
96
- const cookies = document.cookie.split(';').map(c => {
97
- const [name, ...rest] = c.trim().split('=');
98
- return { name, value: rest.join('='), domain: location.hostname, path: '/' };
99
- });
100
- JSON.stringify(cookies);
101
- ```
102
-
103
- Save the output:
104
- ```bash
105
- echo '<cookies_json>' | node scripts/session-store.js save zott-lazada agent-browser
106
- ```
107
-
108
- ### Step 4: Verify Session Saved
109
- ```bash
110
- node scripts/session-store.js list
111
- node scripts/session-store.js check zott-lazada
112
- ```
113
-
114
- ## Workflow: Subsequent Runs (Automatic)
115
-
116
- ```bash
117
- # 1. Check if session is still valid
118
- node scripts/session-store.js check zott-lazada
119
-
120
- # 2. Inject cookies and navigate to dashboard
121
- node scripts/session-store.js inject zott-lazada
122
- # → Outputs JS to set cookies in browser
123
-
124
- # 3. Run pipeline for reports
125
- node scripts/pipeline.js --period 202603 --platform lazada --dry-run
126
- node scripts/pipeline.js --period 202603 --platform lazada
127
- ```
128
-
129
- ## Auto-Login Fallback
130
-
131
- For accounts without CAPTCHA/OTP challenges, `auto-login.js` can automate login:
132
-
133
- ```bash
134
- # Automated login via agent-browser CLI
135
- node scripts/auto-login.js --account zott-lazada --headed
136
-
137
- # If CAPTCHA detected → exits with code 2 + JSON with screenshot
138
- # Agent then takes over with its own browser
139
-
140
- # After agent solves challenge:
141
- node scripts/auto-login.js --account zott-lazada --verify
142
- ```
143
-
144
- ## Pipeline Commands
145
-
146
- ```bash
147
- # Dry run — see what will happen
148
- node scripts/pipeline.js --period 202603 --dry-run
149
-
150
- # Run specific platform
151
- node scripts/pipeline.js --period 202603 --platform lazada
152
-
153
- # Run single account
154
- node scripts/pipeline.js --period 202603 --account zott-lazada --headed
155
-
156
- # Resume after interruption
157
- node scripts/pipeline.js --period 202603 --resume
158
- ```
159
-
160
- ## Report Types (25 total)
161
-
162
- | Platform | Reports | Format |
163
- |----------|---------|--------|
164
- | Shopee (7) | Income, PDF Report, Wallet, Affiliate Invoice/Product, Ads, Ads Wallet | Excel/PDF |
165
- | Lazada (7) | Income, PDF Report, Wallet, Ads Onsite/Product, Ads Wallet, Shipping Fee | Excel/PDF |
166
- | TikTok (7) | Income, Wallet, Affiliate Orders/Invoice, Ads Dashboard/Cost/Revenue | Excel |
167
-
168
- ## Session Store Commands
169
-
170
- ```bash
171
- node scripts/session-store.js save <id> # Save cookies from stdin
172
- node scripts/session-store.js check <id> # Check validity
173
- node scripts/session-store.js inject <id> # Output injection JS
174
- node scripts/session-store.js list # List all sessions
175
- node scripts/session-store.js export-script <id> # Browser export helper
176
- ```
@@ -1,41 +0,0 @@
1
- {
2
- "defaultOutputRoot": "/Users/todyle/Builder/Boxme/AutomateReport/data",
3
- "accounts": [
4
- {
5
- "id": "vita-dairy",
6
- "brand": "Vita Dairy",
7
- "brandSlug": "Vita_Dairy",
8
- "platforms": ["shopee", "lazada", "tiktok"],
9
- "chromeProfile": "Vita Dairy",
10
- "active": true,
11
- "notes": "Primary brand across all platforms"
12
- },
13
- {
14
- "id": "dutch-lady",
15
- "brand": "Dutch Lady",
16
- "brandSlug": "Dutch_Lady",
17
- "platforms": ["shopee", "lazada", "tiktok"],
18
- "chromeProfile": "Dutch Lady",
19
- "active": true,
20
- "notes": "Active on all 3 platforms"
21
- },
22
- {
23
- "id": "friso",
24
- "brand": "Friso",
25
- "brandSlug": "Friso",
26
- "platforms": ["tiktok"],
27
- "chromeProfile": "Friso",
28
- "active": true,
29
- "notes": "TikTok only (from flow analysis)"
30
- },
31
- {
32
- "id": "wilmar",
33
- "brand": "Wilmar",
34
- "brandSlug": "Wilmar",
35
- "platforms": ["tiktok"],
36
- "chromeProfile": "Wilmar",
37
- "active": true,
38
- "notes": "TikTok only (from flow analysis)"
39
- }
40
- ]
41
- }
@@ -1,422 +0,0 @@
1
- {
2
- "reportTypes": [
3
- {
4
- "id": "platform_income",
5
- "name": "Income Sàn",
6
- "nameVi": "Thu nhập sàn",
7
- "platform": "shopee",
8
- "url": "https://banhang.shopee.vn/portal/finance/income?type=2&dateRange=THIS_WEEK",
9
- "frequency": "monthly",
10
- "priority": true,
11
- "exportFormat": "excel",
12
- "fileExtension": "xlsx",
13
- "screenshotRef": "https://prnt.sc/K1mqjTIc1S6t",
14
- "status": "active",
15
- "dateSelectionType": "calendar_range",
16
- "exportSteps": [
17
- "Click date range dropdown → 'Chọn ngày'",
18
- "Navigate calendar to target month",
19
- "Select first day → last day",
20
- "Click 'Xuất' button"
21
- ]
22
- },
23
- {
24
- "id": "platform_report",
25
- "name": "Report Sàn (PDF)",
26
- "nameVi": "Báo cáo tổng hợp thu nhập (PDF)",
27
- "platform": "shopee",
28
- "url": "https://banhang.shopee.vn/portal/finance/income/statement",
29
- "frequency": "monthly",
30
- "priority": true,
31
- "exportFormat": "pdf",
32
- "fileExtension": "pdf",
33
- "screenshotRef": "https://prnt.sc/TvOCUH0QMxEZ",
34
- "status": "active",
35
- "dateSelectionType": "month_picker",
36
- "exportSteps": [
37
- "Select target month",
38
- "Click download PDF"
39
- ]
40
- },
41
- {
42
- "id": "platform_wallet",
43
- "name": "Sao kê số dư ví",
44
- "nameVi": "Sao kê ví ShopeePay",
45
- "platform": "shopee",
46
- "url": "https://banhang.shopee.vn/portal/finance/wallet/shopeepay",
47
- "frequency": "monthly",
48
- "priority": true,
49
- "exportFormat": "excel",
50
- "fileExtension": "xlsx",
51
- "screenshotRef": "https://prnt.sc/cLm_o9lJ0zFj",
52
- "status": "active",
53
- "dateSelectionType": "calendar_range",
54
- "exportSteps": [
55
- "Open date range picker",
56
- "Navigate to target month",
57
- "Select first day → last day",
58
- "Click export"
59
- ]
60
- },
61
- {
62
- "id": "affiliate_bill",
63
- "name": "Data tiếp thị liên kết theo hóa đơn",
64
- "nameVi": "Dữ liệu affiliate theo hoá đơn",
65
- "platform": "shopee",
66
- "url": "https://banhang.shopee.vn/portal/web-seller-affiliate/validation_bill",
67
- "frequency": "monthly",
68
- "priority": false,
69
- "exportFormat": "excel",
70
- "fileExtension": "xlsx",
71
- "screenshotRef": "https://prnt.sc/H3M6TCwnUtbY",
72
- "status": "active",
73
- "dateSelectionType": "date_picker",
74
- "exportSteps": [
75
- "Select date range",
76
- "Click export"
77
- ]
78
- },
79
- {
80
- "id": "paid_ads_onsite_report",
81
- "name": "Báo cáo paid ads onsite",
82
- "nameVi": "Quảng cáo trả phí onsite",
83
- "platform": "shopee",
84
- "url": "https://banhang.shopee.vn/portal/marketing/pas/index",
85
- "frequency": "daily_overwrite",
86
- "priority": false,
87
- "exportFormat": "excel",
88
- "fileExtension": "xlsx",
89
- "screenshotRef": "https://prnt.sc/G37bF0Qa9DB7",
90
- "status": "active",
91
- "dateSelectionType": "date_input",
92
- "exportSteps": [
93
- "Set start date input",
94
- "Set end date input",
95
- "Click download"
96
- ]
97
- },
98
- {
99
- "id": "affiliate_product",
100
- "name": "Báo cáo tiếp thị liên kết theo Product",
101
- "nameVi": "Affiliate theo sản phẩm",
102
- "platform": "shopee",
103
- "url": "https://banhang.shopee.vn/portal/web-seller-affiliate/product_analytics",
104
- "frequency": "daily_overwrite",
105
- "priority": false,
106
- "exportFormat": "excel",
107
- "fileExtension": "xlsx",
108
- "screenshotRef": "https://prnt.sc/VOUR10z1kJMT",
109
- "status": "active",
110
- "dateSelectionType": "date_picker",
111
- "exportSteps": [
112
- "Select date range",
113
- "Click export"
114
- ]
115
- },
116
- {
117
- "id": "ads_wallet_historical",
118
- "name": "Paid ads onsite historical wallet",
119
- "nameVi": "Lịch sử ví quảng cáo",
120
- "platform": "shopee",
121
- "url": "https://banhang.shopee.vn/portal/marketing/pas/wallet",
122
- "frequency": "monthly",
123
- "priority": true,
124
- "exportFormat": "excel",
125
- "fileExtension": "xlsx",
126
- "screenshotRef": "https://prnt.sc/R-QW1TK3_aZ2",
127
- "status": "active",
128
- "dateSelectionType": "calendar_range",
129
- "exportSteps": [
130
- "Open date range picker",
131
- "Select month range",
132
- "Click export"
133
- ]
134
- },
135
- {
136
- "id": "platform_income",
137
- "name": "Income Sàn",
138
- "nameVi": "Thu nhập sàn Lazada",
139
- "platform": "lazada",
140
- "url": "https://sellercenter.lazada.vn/portal/apps/finance/myIncome/index",
141
- "frequency": "monthly",
142
- "priority": true,
143
- "exportFormat": "excel",
144
- "fileExtension": "xlsx",
145
- "screenshotRef": "https://prnt.sc/uGGgnTJ4QTjx",
146
- "status": "active",
147
- "dateSelectionType": "next_calendar_range",
148
- "exportSteps": [
149
- "Click 'Chi tiết Thu nhập'",
150
- "Open date picker",
151
- "Navigate calendar to target month (using next-calendar-btn)",
152
- "Select first day → last day",
153
- "Click 'Tải xuống' → 'Chi tiết đơn hàng (Excel)'",
154
- "Wait for processing → Download Result File"
155
- ]
156
- },
157
- {
158
- "id": "platform_report",
159
- "name": "Report Sàn (PDF)",
160
- "nameVi": "Sao kê tháng Lazada",
161
- "platform": "lazada",
162
- "url": "https://sellercenter.lazada.vn/portal/apps/finance/myIncome/index",
163
- "frequency": "monthly",
164
- "priority": true,
165
- "exportFormat": "pdf",
166
- "fileExtension": "pdf",
167
- "screenshotRef": "https://prnt.sc/5la14Lqd2eYJ",
168
- "status": "active",
169
- "dateSelectionType": "month_tab",
170
- "exportSteps": [
171
- "Click 'Sao kê tháng' tab",
172
- "Click 'Tải xuống' → 'Tổng quan giao dịch (pdf)'",
173
- "Wait → Download"
174
- ]
175
- },
176
- {
177
- "id": "platform_wallet",
178
- "name": "Sao kê số dư ví",
179
- "nameVi": "Sao kê ví Lazada",
180
- "platform": "lazada",
181
- "url": "https://sellercenter.lazada.vn/apps/balance",
182
- "frequency": "monthly",
183
- "priority": true,
184
- "exportFormat": "excel",
185
- "fileExtension": "xlsx",
186
- "screenshotRef": "https://prnt.sc/rl7NgvOjQntp",
187
- "status": "active",
188
- "dateSelectionType": "next_calendar_range",
189
- "exportSteps": [
190
- "Open date range picker",
191
- "Navigate calendar to target month",
192
- "Select first day → last day",
193
- "Click 'Xuất dữ liệu' → 'Chi tiết giao dịch (excel)'",
194
- "Wait → Download Result File"
195
- ]
196
- },
197
- {
198
- "id": "paid_ads_onsite_report",
199
- "name": "Báo cáo paid ads onsite",
200
- "nameVi": "Quảng cáo trả phí onsite Lazada",
201
- "platform": "lazada",
202
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/report/",
203
- "frequency": "daily_overwrite",
204
- "priority": false,
205
- "exportFormat": "excel",
206
- "fileExtension": "xlsx",
207
- "screenshotRef": "https://prnt.sc/2e6e9sOfHAq2",
208
- "status": "active",
209
- "dateSelectionType": "date_input_lazada",
210
- "exportSteps": [
211
- "Check 'product' checkbox",
212
- "Set start date DD/MM/YYYY",
213
- "Set end date DD/MM/YYYY",
214
- "Click 'Tải xuống'"
215
- ]
216
- },
217
- {
218
- "id": "paid_ads_product",
219
- "name": "Báo cáo paid ads onsite product",
220
- "nameVi": "Quảng cáo theo sản phẩm Lazada",
221
- "platform": "lazada",
222
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/report/",
223
- "frequency": "daily_overwrite",
224
- "priority": false,
225
- "exportFormat": "excel",
226
- "fileExtension": "xlsx",
227
- "screenshotRef": "https://prnt.sc/2LSm7ALMhy32",
228
- "status": "active",
229
- "dateSelectionType": "date_input_lazada",
230
- "exportSteps": [
231
- "Same as paid_ads_onsite but with product filter"
232
- ]
233
- },
234
- {
235
- "id": "ads_wallet_historical",
236
- "name": "Paid ads onsite historical wallet",
237
- "nameVi": "Lịch sử giao dịch ví quảng cáo Lazada",
238
- "platform": "lazada",
239
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/sd-account/#!/ads/1",
240
- "frequency": "monthly",
241
- "priority": true,
242
- "exportFormat": "excel",
243
- "fileExtension": "xlsx",
244
- "screenshotRef": "https://prnt.sc/jAuuSj7gcMvX",
245
- "status": "active",
246
- "dateSelectionType": "rc_calendar_range",
247
- "exportSteps": [
248
- "Scroll down to 'Lịch Sử Giao Dịch'",
249
- "Open date range picker",
250
- "Navigate rc-calendar to target month",
251
- "Select first → last day",
252
- "Click 'Tải Xuống'"
253
- ]
254
- },
255
- {
256
- "id": "shipping_fee_details",
257
- "name": "Chi tiết phí vận chuyển",
258
- "nameVi": "Phí vận chuyển theo đơn hàng",
259
- "platform": "lazada",
260
- "url": "https://sellercenter.lazada.vn/apps/finance/logisticsfee/index?curtab=order-fee",
261
- "frequency": "monthly",
262
- "priority": true,
263
- "exportFormat": "excel",
264
- "fileExtension": "xlsx",
265
- "screenshotRef": "https://prnt.sc/u5BX1bsaaZ5S",
266
- "status": "active",
267
- "dateSelectionType": "multi_select_menu",
268
- "exportSteps": [
269
- "Open statement period dropdown",
270
- "Select all dates matching target YYYY-MM",
271
- "Click 'Xuất dữ liệu tổng quan đơn hàng'",
272
- "Click 'Xuất dữ liệu với bộ lọc hiện tại'",
273
- "Wait (long) → Download"
274
- ]
275
- },
276
- {
277
- "id": "platform_income",
278
- "name": "Income Sàn",
279
- "nameVi": "Thu nhập sàn TikTok",
280
- "platform": "tiktok",
281
- "url": "https://seller-vn.tiktok.com/finance/transactions?shop_region=VN&tab=settled_tab",
282
- "frequency": "monthly",
283
- "priority": true,
284
- "exportFormat": "excel",
285
- "fileExtension": "xlsx",
286
- "screenshotRef": "https://prnt.sc/oj8apfNx6mCH",
287
- "status": "active",
288
- "dateSelectionType": "core_picker",
289
- "exportSteps": [
290
- "Wait for 'Lịch sử xuất dữ liệu' to appear",
291
- "Click 'Xuất'",
292
- "Open date picker (SVG icon)",
293
- "Clear existing range (SVG click)",
294
- "Select first day → last day using core-picker-cell-in-view",
295
- "Click OK",
296
- "Click 'Xuất'",
297
- "Wait for 'Đang xuất' to complete",
298
- "Click 'Tải xuống'"
299
- ]
300
- },
301
- {
302
- "id": "platform_wallet",
303
- "name": "Sao kê số dư ví",
304
- "nameVi": "Sao kê ví TikTok",
305
- "platform": "tiktok",
306
- "url": "https://seller-vn.tiktok.com/finance/withdraw-new?is_new_connect=0&register_libra=&shop_region=VN",
307
- "frequency": "monthly",
308
- "priority": true,
309
- "exportFormat": "excel",
310
- "fileExtension": "xlsx",
311
- "screenshotRef": "https://prnt.sc/ESRF6bEhlbbu",
312
- "status": "active",
313
- "dateSelectionType": "core_picker",
314
- "exportSteps": [
315
- "Wait for 'Lịch sử xuất dữ liệu'",
316
- "Scroll down 500px",
317
- "Click 'Xuất'",
318
- "Open date picker → clear → select range",
319
- "Click OK → Export",
320
- "Wait for completion → Download"
321
- ]
322
- },
323
- {
324
- "id": "affiliate_orders",
325
- "name": "Báo cáo đơn hàng Affiliate",
326
- "nameVi": "Đơn hàng affiliate TikTok",
327
- "platform": "tiktok",
328
- "url": "https://affiliate.tiktok.com/product/order?shop_region=VN&order_type=1",
329
- "frequency": "daily_overwrite",
330
- "priority": true,
331
- "exportFormat": "excel",
332
- "fileExtension": "xlsx",
333
- "screenshotRef": "https://prnt.sc/4bmmSLHdm_wl",
334
- "status": "active",
335
- "dateSelectionType": "date_picker",
336
- "exportSteps": [
337
- "Select date range",
338
- "Click export"
339
- ]
340
- },
341
- {
342
- "id": "ads_dashboard",
343
- "name": "Ads TikTok Dashboard",
344
- "nameVi": "Bảng điều khiển quảng cáo TikTok",
345
- "platform": "tiktok",
346
- "url": "https://seller-vn.tiktok.com/ads-creation/dashboard",
347
- "frequency": "daily",
348
- "priority": true,
349
- "exportFormat": "excel",
350
- "fileExtension": "xlsx",
351
- "screenshotRef": "https://prnt.sc/eXGtbkNrlUQf",
352
- "status": "active",
353
- "dateSelectionType": "dashboard_filter",
354
- "exportSteps": [
355
- "Set date filter",
356
- "Download dashboard data"
357
- ]
358
- },
359
- {
360
- "id": "ads_cost",
361
- "name": "Báo cáo paid ads onsite - chi phí",
362
- "nameVi": "Chi phí quảng cáo TikTok",
363
- "platform": "tiktok",
364
- "url": "https://business.tiktok.com/manage/transaction?org_id=7384265942869524481",
365
- "frequency": "monthly",
366
- "priority": true,
367
- "exportFormat": "excel",
368
- "fileExtension": "xlsx",
369
- "screenshotRef": "https://prnt.sc/AcnxB06ZZKHV",
370
- "status": "in_progress",
371
- "dateSelectionType": "business_center",
372
- "exportSteps": [
373
- "Navigate to transaction history",
374
- "Set date range",
375
- "Export data"
376
- ]
377
- },
378
- {
379
- "id": "ads_revenue",
380
- "name": "Báo cáo paid ads onsite - doanh thu",
381
- "nameVi": "Doanh thu quảng cáo TikTok",
382
- "platform": "tiktok",
383
- "url": "https://business.tiktok.com/manage/transaction?org_id=7384265942869524481",
384
- "frequency": "monthly",
385
- "priority": true,
386
- "exportFormat": "excel",
387
- "fileExtension": "xlsx",
388
- "screenshotRef": "https://prnt.sc/rcC_Gy47r0XT",
389
- "status": "in_progress",
390
- "dateSelectionType": "business_center",
391
- "exportSteps": [
392
- "Navigate to transaction history (revenue tab)",
393
- "Set date range",
394
- "Export data"
395
- ]
396
- },
397
- {
398
- "id": "affiliate_invoice",
399
- "name": "Báo cáo hoá đơn affiliate",
400
- "nameVi": "Hoá đơn hoa hồng liên kết TikTok",
401
- "platform": "tiktok",
402
- "url": "https://seller-vn.tiktok.com/finance/invoice?shop_region=VN",
403
- "frequency": "monthly",
404
- "priority": true,
405
- "exportFormat": "excel",
406
- "fileExtension": "xlsx",
407
- "screenshotRef": "https://prnt.sc/W8kOcqiA6mmz",
408
- "status": "active",
409
- "dateSelectionType": "core_month_picker",
410
- "exportSteps": [
411
- "Wait for page load",
412
- "Click 'Biên nhận hoa hồng liên kết'",
413
- "Open month picker",
414
- "Select target month (Jan-Dec)",
415
- "Click OK",
416
- "Check if data exists",
417
- "If data: set 50/Page, get max pages, extract table per page",
418
- "Save each part as Excel"
419
- ]
420
- }
421
- ]
422
- }
@@ -1,3 +0,0 @@
1
- {
2
- "sessions": []
3
- }