Poll competitive crawl triggers, aggregate the last 6 months of product, review, and QA data by category, produce structured analysis context and a report skeleton, upload outputs to OSS, then send a
by @wandervine
Poll competitive crawl triggers, aggregate the last 6 months of product, review, and QA data by category, produce structured analysis context and a report sk...
clawhub install bbt-competitive-analysisπ About This Skill
name: competitive_analysis description: Poll competitive crawl triggers, aggregate the last 6 months of product, review, and QA data by category, produce structured analysis context and a report skeleton, upload outputs to OSS, then send a DingTalk summary. Use for database-driven scheduled competitor analysis in OpenClaw. compatibility: Requires Python 3.10+, PostgreSQL access, OSS access, and a DingTalk webhook. metadata: {"openclaw":{"requires":{"bins":["python3"],"env":["COMPETITIVE_ANALYSIS_DSN","DINGTALK_WEBHOOK","OSS_ENDPOINT","OSS_BUCKET","OSS_ACCESS_KEY_ID","OSS_ACCESS_KEY_SECRET"]}},"owner":"bbt","skillType":"enterprise","reportTemplate":".docs/η«εεζ/BUBBLETREEεΏη«₯ζεΈεΊζΊδΌεζζ₯ε.pdf"}
Competitive Analysis
Use When
competitive_crawl_trigger on a schedule.category.Do not use this skill for:
Required Inputs
COMPETITIVE_ANALYSIS_DSNOSS_ENDPOINTOSS_BUCKETOSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRETDINGTALK_WEBHOOKDINGTALK_SECRETskills.entries.competitive_analysis.envGoal
1. Find unconsumed trigger rows where status='success'.
2. Load the last 6 months of product, review, and QA data.
3. Aggregate results by category.
4. Produce analysis_context.json for the host to continue narrative generation.
5. Generate a Markdown/HTML skeleton that follows the reference PDF structure.
6. Send a DingTalk summary.
7. Mark trigger rows as consumed after success.
Entry Points
Primary command:
python3 {baseDir}/scripts/run_report.py
Common arguments:
--category CATEGORY--since-months 6--limit 20Files
SKILL.md: skill entry instructionsreferences/report-outline.md: report structure contractreferences/data-contract.md: data contract and field expectationsreferences/openclaw-setup.md: OpenClaw setup examplescripts/run_report.py: main CLIscripts/render_report.py: Markdown/HTML renderingscripts/send_dingtalk.py: DingTalk deliveryanalysis_context.json: structured analysis context for the host runtimeRules
ζͺιι or εΎ
θ‘₯ε
.analysis_context.json and references/report-outline.md..env.Minimal Workflow
1. Read references/data-contract.md.
2. Confirm that the trigger table already includes the consumption fields.
3. Configure skills.entries.competitive_analysis.env as shown in references/openclaw-setup.md.
4. Start a new OpenClaw session so the skill reloads.
5. Run python3 {baseDir}/scripts/run_report.py or invoke it from an external scheduler.
6. Read the generated analysis_context.json.
7. Let the host runtime generate the final narrative based on references/report-outline.md.
8. Validate the final output against the report outline.
Success Criteria
category.π Constraints
ζͺιι or εΎ
θ‘₯ε
.analysis_context.json and references/report-outline.md..env.