OpenClaw/clawhub-security-signals huggingface dataset:
Skill: odysseus0/feed-digest (version 1.0.0)

--- name: feed-digest description: "Agentic feed digest using the feed CLI. Fetch, triage, and summarize RSS/Atom/JSON feeds to surface high-signal posts. Use when: (1) reading feeds or catching up on news, (2) user asks for a digest, roundup, or summary of recent posts, (3) user asks what's new or interesting today, (4) user mentions feed, RSS, blogs, or subscriptions." metadata: {"openclaw": {"emoji": "📡", "requires": {"bins": ["feed"]}, "install": [{"kind": "brew", "formula": "odysseus0/tap/feed", "bins": ["feed"], "label": "Install via Homebrew"}, {"kind": "go", "package": "github.com/odysseus0/feed/cmd/feed@latest", "bins": ["feed"], "label": "Install via Go"}]}} --- # RSS Digest Surface what's worth reading from your feeds. Requires `feed` CLI (`brew install odysseus0/tap/feed`). ## Workflow 1. **Fetch** — `feed fetch` to pull latest entries. 2. **Scan** — `feed get entries --limit 50` for recent unread (title, feed, date, summary). 3. **Triage** — Pick 5-10 high-signal posts. Prioritize: AI progress, systems engineering, developer tools, anything surprising or contrarian. 4. **Read** — `feed get entry <id>` for each pick (full post as Markdown). 5. **Synthesize** — For each post: title, source, 2-3 sentence summary of why it matters. Group by theme if natural clusters emerge. 6. **Mark read** — `feed update entries --read <id1> <id2> ...` to mark triaged entries as read. ## Commands ``` feed fetch # pull latest from all feeds feed get entries --limit N # list unread entries (table) feed get entries --feed <id> --limit N # filter by feed feed get entry <id> # read full post (Markdown) feed search "<query>" # full-text search feed update entries --read <id> ... # batch mark read feed get feeds # list feeds with unread counts feed get stats # database stats ``` ## Notes - Default output is table — most token-efficient for scanning. Avoid `-o json`. - `feed get entry <id>` returns Markdown — read this for the actual post content. - Filter by feed if too many entries: `--feed <feed_id>`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 51mee-com/51mee-resume-parse (version 1.2.1)

--- name: 51mee-resume-parse description: 简历解析。触发场景：用户上传简历文件要求解析、提取结构化信息。 --- # 简历解析技能 ## 功能说明 读取简历文件（PDF/DOC/DOCX/JPG/PNG），使用大模型提取结构化信息。 ## 处理流程 1. **读取文件** - 用户上传简历时，读取文件内容 2. **提取文本** - 从文件中提取纯文本内容 3. **调用大模型** - 使用以下 prompt 解析 4. **返回 JSON** - 解析结果为结构化数据 ## Prompt 模板 ``` ```html {简历文本内容} ``` 扮演一个简历分析专家，详细地分析上面的简历 1. 按照下方的typescript结构定义，返回json格式的ResumeInfo结构 2. 有数据就填上数据，简历上没有提到，相应的值即为null，绝对不要虚构新的或者删除定义中的字段 3. 不要做任何解释，直接返回json 4. 日期格式："Y-m-d"，如 "2025-01-01"; 年格式："Y"，如 "2025" 5. 手机号无区号，如"19821450628" ```typescript export interface WorkExperience { startDate: string | null; endDate: string | null; company: string; industry: string | null; department: string | null; positionName: string; blueCollarPosition: boolean | null; responsibility: string | null; workPerformance: string | null; current: boolean | null; workDesc: string | null; }; export interface ProjectExperience { name: string; startDate: string | null; endDate: string | null; roleName: string | null; projectDesc: string | null; }; export interface EducationExperience { startDate: string | null; endDate: string | null; school: string; major: string | null; degreeName: string | null; // 高中、本科、专科、硕士、博士、其它 }; export interface ResumeInfo { name: string | null; gender: number | null; // 0=男, 1=女 age: string | null; birthday: string | null; description: string | null; workExpList: WorkExperience[]; projExpList: ProjectExperience[]; eduExpList: EducationExperience[]; expectPosition: { positionName: string | null; lowSalary: number | null; highSalary: number | null; locationName: string | null; }; contact: { phone: string | null; weixin: string | null; email: string | null; }; keywords: string[]; awards: string[]; englishCertificates: string[]; professionalSkills: string; } ``` ``` ## 返回数据结构 ```json { "name": "张三", "gender": 0, "age": "30", "birthday": "1995-01-15", "description": "5年Java开发经验...", "workExpList": [...], "projExpList": [...], "eduExpList": [...], "expectPosition": {...}, "contact": {...}, "keywords": ["Java", "Spring"], "awards": ["优秀员工"], "englishCertificates": ["CET-6"], "professionalSkills": "精通Java..." } ``` ## 输出格式 ```markdown ## 简历解析结果 ### 基本信息 - **姓名**: [name] - **性别**: [男/女] - **年龄**: [age] - **生日**: [birthday] ### 联系方式 - **手机**: [phone] - **微信**: [weixin] - **邮箱**: [email] ### 工作经历 [遍历 workExpList] ### 项目经历 [遍历 projExpList] ### 教育经历 [遍历 eduExpList] ### 期望职位 - **职位**: [positionName] - **薪资**: [lowSalary]K-[highSalary]K - **地点**: [locationName] ### 关键词 [keywords] ### 奖项 [awards] ### 英语证书 [englishCertificates] ### 专业技能 [professionalSkills] ``` ## 注意事项 - 支持格式：PDF、DOC、DOCX、JPG、PNG - 日期格式统一为 `Y-m-d` - 没有 的字段填 `null` - 直接返回 JSON，不要额外解释


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: comphone/group-logger (version 1.0.0)

# group_logger บันทึกข้อความจากกลุ่ม LINE อัตโนมัติ และสรุปข้อมูลตามลูกค้าหรืองาน ## Description Skill นี้ทำงาน 2 โหมด: 1. โหมดบันทึก — รับทุกข้อความในกลุ่ม บันทึกลง CSV โดยไม่ตอบกลับ 2. โหมดสรุป — เมื่อถูก @mention ให้ดึงข้อมูลจาก CSV มาสรุป ## Triggers โหมดบันทึก (ไม่ต้อง @mention): - ทุกข้อความที่มีคีย์เวิร์ด: JOB, งาน, ลูกค้า, ซ่อม, ติดตั้ง, ส่ง, รับ, เสร็จ, pending, นัด โหมดสรุป (ต้อง @mention): - "สรุปงาน [ชื่อลูกค้า]" - "ดูงาน JOB-XXX" - "งานค้างทั้งหมด" - "สรุปวันนี้" - "รายงานประจำวัน" ## File Paths - Log file: C:\Users\Server\.openclaw\workspace\group_log.csv - Backup: C:\Users\Server\.openclaw\workspace\group_log_backup.csv ## CSV Format timestamp,sender,group_id,message,keywords,job_id,customer_name,status ## Implementation ### โหมดบันทึก 1. รับข้อความจากกลุ่ม 2. ตรวจจับคีย์เวิร์ดสำคัญ 3. ดึง job_id (รูปแบบ JOB-XXX) ถ้ามี 4. ดึงชื่อลูกค้าจากข้อความ 5. บันทึกลง group_log.csv 6. ไม่ตอบกลับ (silent logging) ### โหมดสรุป 1. อ่านไฟล์ group_log.csv 2. กรองข้อมูลตามชื่อลูกค้าหรือ JOB ที่ระบุ 3. จัดกลุ่มข้อมูลตามลูกค้า 4. สรุปเป็นรายงานภาษาไทย ## Examples ### บันทึกอัตโนมัติ ข้อความในกลุ่ม: "ช่างโต้ไปหน้างาน JOB-029 บ้านเจนวิทย์แล้วครับ" บันทึก: timestamp, ช่างโต้, group_id, ข้อความ, keywords=[JOB,งาน], JOB-029, เจนวิทย์, in-progress ### สรุปเมื่อถูก @mention User: "@Comphone สรุปงานเจนวิทย์" Action: อ่าน CSV กรองชื่อ เจนวิทย์ สรุปทุกรายการ ผลลัพธ์: 📋 สรุปงาน: เจนวิทย์โฮม - JOB-029 | นัด 9:30 น. 14/3/69 - ช่างโต้ถึงหน้างานแล้ว 10:15 น. - สถานะ: In Progress ## Keywords ที่ตรวจจับ งาน, JOB, ลูกค้า, ซ่อม, ติดตั้ง, ส่ง, รับ, เสร็จ, pending, นัด, เช็คอิน, ถึงแล้ว, เดินทาง, อะไหล่, ค่าแรง, เก็บเงิน, Invoice, กล้อง, WiFi, ไฟ, สวิทช์, เราเตอร์, NVR, DVR ## Notes - บันทึกทุกข้อความที่มี keyword เท่านั้น ข้อความทั่วไปไม่บันทึก - ไม่ตอบกลับเมื่อบันทึก เพื่อประหยัด token - Backup ไฟล์ทุกวันอัตโนมัติ - รองรับหลายกลุ่มในไฟล์เดียวกัน โดยแยกด้วย group_id


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: gyifei/ai-news-research (version 1.0.0)

--- name: AI-NEWS description: 当需要梳理某段时间内AI行业重要新闻时，可以调用使用这个技能。 --- # AI-NEWS skill ## When to use this skill 当需要梳理某段时间内AI行业细分领域重要新闻时，可以调用使用这个技能。 ## How to extract text 1. 从用户消息中提取 2 个核心信息： - 查询时间段（用户指定的时间范围）； - 特定板块（用户指定的某个细分领域，如“模型” /“算力”/“硬件”/“AI应用”等）； 2. 用 web_fetch 直接抓的网页数据以收集并梳理指定时间段内特定AI行业细分领域重要新闻 3. 整理数据并返回，格式要求： - 开头明确“细分领域 + 时间”（如“算力 2026年2月16-22日 重要新闻”）； - 核心信息：具体公司/领域、事项情况、预计影响； ---


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: leon5876/evm-analyst (version 1.0.3)

--- name: fund-flow-analyst description: Analyze Polygon EVM fund-flow patterns from seed addresses, tx hashes, and Dune log outputs. Use fixed registered Dune queries only. version: 0.2.1-slim --- # Fund Flow Analyst Use this skill when the user provides Polygon seed addresses, transaction hashes, decoded logs, raw `polygon.logs` rows, or Dune query results and asks for fund-flow reconstruction, pattern annotation, or accounting classification. ## Hard rules 1. Use only registered Dune queries in `references/dune_query_registry.md`. Do not invent query IDs or URLs. 2. Do not fabricate amounts, addresses, relationships, labels, or transaction counts. 3. Do not hard-exclude a transaction merely because it contains a known pattern. Exclude only when all material logs are explained. 4. Same address appears once in `addresses`; pattern differences belong in `flow_edges` and `log_annotations`. 5. `flow_edges` contains only transfer-class events, including mint/burn. Swap, Sync, Approval, and custom events stay in `log_annotations` unless they directly transfer value. 6. One transaction may match multiple patterns. 7. Separate `external_capital_inflow` from `protocol_token_recycle`. 8. If data is insufficient, output `next_query_plan` instead of guessing. 9. For topic0 decoding, use `references/topic0_dictionary.md` when available. Unknown topic0 should be marked `unknown_event_signature`. 10. Preserve raw evidence: include sample tx hash, log index, contract address, topic0, token address, and decoded from/to/amount where available. ## Required output Keep results concise and structured. Prefer these tables when relevant: - `addresses`: address, role_guess, evidence, confidence - `patterns`: pattern_id, pattern_name, description, confidence - `pattern_steps`: pattern_id, step_no, event_type, contract_address, topic0, meaning - `flow_edges`: tx_hash, log_index, from_address, to_address, token_contract, amount_raw, amount_normalized, edge_type - `log_annotations`: tx_hash, log_index, contract_address, topic0, decoded_signature, interpretation - `tx_classification`: tx_hash, classification, reason, unresolved_items - `accounting_summary`: bucket, token_contract, gross_in, gross_out, net, notes - `discovered_addresses`: address, first_seen_tx, reason_to_follow - `next_query_plan`: query_code, purpose, parameters_needed Do not output prose-only analysis.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: 275254cl-hash/bilibili-insight (version 1.0.0)

--- name: bilibili-insight version: 1.0.0 description: B 站 UP 主分析、视频数据追踪、粉丝画像、爆款内容拆解。适合内容创作者、品牌方、MCN 机构。 homepage: https://github.com/openclaw/skills metadata: { "openclaw": { "emoji": "📺", "requires": { "bins": ["python3", "curl"] }, "install": [ { "id": "requests", "kind": "pip", "package": "requests", "label": "安装依赖：pip3 install requests", }, ], }, } --- # B 站数据分析技能 分析 B 站 UP 主数据、视频表现、粉丝画像，拆解爆款内容公式。 ## 功能 1. **UP 主分析**: 粉丝数、播放量、更新频率、成长趋势 2. **视频数据**: 播放、点赞、投币、收藏、评论分析 3. **粉丝画像**: 年龄、性别、地域、兴趣分布 4. **爆款拆解**: 分析高播放视频的内容结构 5. **竞品监控**: 追踪同领域 UP 主的表现 6. **选题建议**: 基于数据生成选题方向 ## 使用方式 ``` 分析这个 UP 主的数据：https://space.bilibili.com/xxx ``` ``` 查看这个视频的详细数据：[视频链接] ``` ``` 帮我找科技区上升最快的 UP 主 ``` ``` 分析这个爆款视频为什么火 ``` ## 输出示例 ``` 📺 B 站 UP 主分析 👤 UP 主信息： ├─ 昵称：XXX ├─ 粉丝：125.6w（+2.3w/月） ├─ 获赞：3200w ├─ 视频数：456 └─ 分区：科技/数码 📊 视频数据（近 30 天）： ├─ 平均播放：85w ├─ 最高播放：320w（标题：XXX） ├─ 平均点赞：3.2w ├─ 平均投币：1.8w ├─ 平均收藏：2.5w └─ 互动率：8.5% 🎯 粉丝画像： ├─ 年龄：18-24 岁（45%）、25-30 岁（35%） ├─ 性别：男性 78%、女性 22% ├─ 地域：广东、江苏、浙江、北京、上海 └─ 兴趣：数码、游戏、科技、汽车 💡 爆款公式： - 标题：数字 + 痛点 + 悬念 - 封面：产品对比图 + 大字标题 - 时长：8-12 分钟 - 更新频率：每周 2-3 更 ``` ## 变现模式 - 免费：每日 5 次查询 - 付费 (¥59/月)：无限查询 + 实时监控 + 竞品对比 - 付费 (¥109/月)：+ 粉丝画像 + 定制报告 + 数据导出 --- **声明**: 数据来源于公开信息，仅供参考。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: googleworkspace-bot/gws-modelarmor (version 1.0.12)

--- name: gws-modelarmor description: "Google Model Armor: Filter user-generated content for safety." metadata: version: 0.22.5 openclaw: category: "productivity" requires: bins: - gws cliHelp: "gws modelarmor --help" --- # modelarmor (v1) > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. ```bash gws modelarmor <resource> <method> [flags] ``` ## Helper Commands | Command | Description | |---------|-------------| | [`+sanitize-prompt`](../gws-modelarmor-sanitize-prompt/SKILL.md) | Sanitize a user prompt through a Model Armor template | | [`+sanitize-response`](../gws-modelarmor-sanitize-response/SKILL.md) | Sanitize a model response through a Model Armor template | | [`+create-template`](../gws-modelarmor-create-template/SKILL.md) | Create a new Model Armor template | ## Discovering Commands Before calling any API method, inspect it: ```bash # Browse resources and methods gws modelarmor --help # Inspect a method's required params, types, and defaults gws schema modelarmor.<resource>.<method> ``` Use `gws schema` output to build your `--params` and `--json` flags.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: biosaylom/my-claw-shell (version 1.0.0)

# claw-shell-kali ALWAYS USES TMUX SESSION `claw`. ## PURPOSE - RUN SHELL COMMANDS INSIDE TMUX SESSION `claw` - NEVER TOUCH ANY OTHER SESSION - READ OUTPUT BACK TO THE AGENT ## INTERFACE ### Tool: `claw_shell_run` **Inputs:** - `command` (string, required): shell command to run inside session `claw`. **Behavior:** 1. Attach to tmux session `claw` (create it if missing: `tmux new -s claw -d`). 2. Send the command followed by Enter. 3. Capture the latest pane output. 4. Return the captured output to the agent. ## SAFETY - DO NOT RUN: - `sudo` - `rm` (without explicit user approval) - `reboot`, `shutdown`, or destructive system-level commands - IF THE COMMAND CONTAINS ANY OF THE ABOVE: - ASK USER FOR CONFIRMATION BEFORE EXECUTING. ## EXAMPLES - SAFE: - `ls -la` - `bird read https://x.com/...` - `git status` - DANGEROUS (ASK FIRST): - `rm -rf ...` - `docker system prune -a` - `chmod -R ...`


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: mecyalika/power-trading-96-to-24 (version 1.0.0)

--- name: power-trading-96-to-24 description: Convert 电力交易/电网边界条件 96点数据 into 24点小时数据 by averaging each consecutive 4 quarter-hour rows. Use when the user asks to do 96转24、96点转24点、15分钟转小时、日前96点边界条件汇总、检查96点模板公式、修复24点表引用列，尤其是 Excel/xlsx 场景。 --- # Power Trading 96 To 24 Convert 96-point electricity-trading data to 24-point hourly data with the fixed rule: **every 4 consecutive 15-minute points become 1 hourly point by arithmetic mean**. ## Workflow 1. Identify the 96-point source sheet. 2. Confirm there are 96 non-empty data rows. 3. Build the 24-point result by averaging rows `1-4`, `5-8`, ..., `93-96` for each metric column. 4. If writing into a template, ensure each 24-point metric column references the matching 96-point source column. 5. Verify at least the first 3 hours manually. ## Column Mapping Rule Typical columns: - 时刻 - 统调负荷 - 省间联络线 - 总出力 - 非现货机组出力 - 新能源 - 水电 - 抽蓄 For hour `n` in the 24-point table, average source rows `((n-1)*4+1)` to `(n*4)`. Example: - 24点第1小时 ← 96点第1~4行平均 - 24点第2小时 ← 96点第5~8行平均 - 24点第24小时 ← 96点第93~96行平均 ## Formula Pattern When the source sheet is named `source96`, use this pattern in the 24-point formula sheet: ```excel =SUM(OFFSET(source96!$B$2,(ROW()-2)*4,0,4,1))/4 ``` Change the column letter only. Do not change the matching logic. ## Critical Checks - Keep **same-column mapping**. `水电` must reference the 96-point `水电` column, not another metric. - Do not call a column "correct" only because the formula shape looks valid; verify the referenced source column. - If a 24-point column seems missing, check whether its width was shrunk to near zero instead of being deleted. - Formula sheets may look blank in readers that do not recalc Excel caches. Check the numeric result sheet for actual values. ## Quick Commands Create a new workbook with `source96`, `result24`, and `formula24`: ```bash python scripts/convert_96_to_24.py input.xlsx output.xlsx ``` Specify the source sheet explicitly when auto-detection is ambiguous: ```bash python scripts/convert_96_to_24.py input.xlsx output.xlsx --source-sheet "日前96点边界条件数据" ``` ## Template Fix Guidance If the user asks to repair an existing template: - Edit the existing file minimally. - Change only the wrong `<f>` formula nodes or the target column width. - Preserve the rest of the workbook. - Re-validate formulas after packing. A common correct `水电` formula is: ```excel =SUM(OFFSET(日前96点边界条件数据!$H$2,(ROW()-2)*4,0,4,1))/4 ``` ## Output Expectation Prefer delivering: 1. A source 96-point sheet 2. A computed 24-point value sheet 3. A formula-based 24-point sheet for auditability If the user instead wants an existing template updated in place, modify that template rather than creating a separate workbook.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (MEDIUM)
Skill: cemoso/pr-review-loop (version 1.0.0)

--- name: pr-review-loop description: Autonomous PR review loop with Greptile. Use when an agent creates a PR and needs to autonomously handle code review feedback — reading Greptile reviews, fixing issues, pushing fixes, re-triggering review, and auto-merging when score is 4/5+. Trigger on commands like "pr review {url}", "review my PR", or when a Greptile review webhook/poll delivers feedback. --- # PR Review Loop Autonomous cycle: Greptile reviews PR → agent fixes feedback → pushes → re-triggers → repeats until score ≥ 4/5 or max rounds. ## Quick Start When triggered with a PR URL or review payload: ```bash # Run the review loop bash scripts/pr-review-loop.sh <owner/repo> <pr-number> ``` Or invoke steps manually — see below. ## Workflow ### 1. Fetch Review ```bash # Get latest Greptile review gh api "/repos/{owner}/{repo}/pulls/{pr}/reviews" \ --jq '[.[] | select(.user.login == "greptile-apps[bot]")] | last' # Get inline comments gh api "/repos/{owner}/{repo}/pulls/{pr}/comments" \ --jq '[.[] | select(.user.login == "greptile-apps[bot]")]' ``` ### 2. Parse Score Look for confidence/quality score in review body. Greptile typically includes a score like `Score: X/5` or `Confidence: X/5`. Extract it: - **Score ≥ 4/5** → auto-merge - **Score < 4/5** → fix issues - **No score found** → treat as needing fixes if there are comments, otherwise merge ### 3. Auto-Merge (score ≥ 4) ```bash gh pr merge <number> --merge --delete-branch --repo <owner/repo> ``` ### 4. Fix Issues (score < 4) For each Greptile comment: 1. Read the file and line referenced 2. Understand the feedback 3. Apply the fix 4. Stage changes Commit with a descriptive message listing each fix: ``` Address Greptile review feedback (round N) - Fix X in path/to/file.ts - Fix Y in path/to/other.ts - Improve Z per reviewer suggestion ``` Push and re-trigger: ```bash git push gh pr comment <number> --repo <owner/repo> --body "@greptileai review" ``` ### 5. Track State Maintain `review-state.json` in workspace: ```json { "owner/repo#123": { "rounds": 2, "maxRounds": 5, "lastScore": 3, "sameScoreCount": 1 } } ``` Update after each round. Check exit conditions: - **rounds ≥ 5** → merge anyway, notify Master - **sameScoreCount ≥ 2** (same score 2 rounds in a row) → merge anyway, notify Master ### 6. Escalation - **Architectural decisions** (review mentions architecture, design patterns, breaking changes) → ping Master on Telegram, don't auto-fix - **Max rounds reached** → merge + notify Master with summary - **Unclear feedback** → ask Master ## Command Interface Agents should respond to: - `pr review <url>` — start review loop on a PR - `pr review <owner/repo#number>` — same, by reference - `pr status` — show active review loops and their state ## References See `references/greptile-patterns.md` for common Greptile feedback patterns and fix strategies.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: symboy/flutter-schema (version 2.0.0)

--- name: flutter-schema tags: flutter, schema, getx, scaffold, template description: Flutter GetX 三层架构规范。core + shared + modules 纵向分层，业务模块 GetX 化。适用于新模块创建、目录设计、代码评审。支持 scaffold 搭建目录结构。 --- # Flutter GetX 三层架构规范 ## 架构概览 **纵向分层**（自上而下单向依赖，modules 依赖 core 和 shared）： ``` shared（底）← core ← modules（顶） ``` **模块内 GetX 结构**： ``` Binding（注入） + View ← Logic → State ``` ## 层级速查 | 层级 | 职责 | |------|------| | **core** | 配置、路由、服务、工具、通用 UI 组件 | | **shared** | 业务基类、存储、网络、可复用能力 | | **modules** | 业务功能实现，按功能拆模块，模块间走路由 | ## 模块目录模板 ``` {module}/ ├── {feature}/ # 子功能（可选） │ ├── xxx_binding.dart │ ├── xxx_logic.dart │ ├── xxx_state.dart │ ├── xxx_view.dart │ ├── model/ │ └── view/ ├── binding/ ├── model/ ├── view/ ├── db/ # 本地数据（可选） └── upload/ # 上传（可选） ``` ## 命名约定 - binding / logic / state / view：`xxx_binding.dart` → `XxxBinding` 等 - logic 继承项目内 BaseController 基类 - 视图文件以 `_view` 结尾，类名以 `Page` 或 `View` 结尾 - 避免使用 `widget` 作为文件或类名后缀 ## 依赖约束 - 仅允许上层依赖下层 - 同级模块不互相 import，通过路由（Get.toNamed）通信 - Logic 不持有 BuildContext、不直接操作 UI ## Scaffold 能力 用户要求**创建目录**、**搭建架构**、**新建模块**时： **全量**：创建 core/config、constants、navigation、utils、services、widgets；shared/data、domain；modules/{name} **增量**：在 modules 下新建 `{module_name}/`，可用 validate.py 生成页面骨架 模块名使用小写下划线（如 order_list、user_profile）。 ## 页面生成 - 普通页：`python ~/flutter-schema/scripts/validate.py <name> [dir]` 完整说明见 [schema.md](schema.md)。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: guohongbin-git/douyin-creator-cn (version 1.0.0)

--- name: douyin-creator-cn version: 1.0.0 description: Douyin Creator Assistant - Tag recommendations, best posting times, title optimization, and competitor analysis license: MIT --- # Douyin Creator Assistant 🎬 AI-powered assistant for Douyin (TikTok China) content creators. ## Features ### 1. Tag Recommendations 🏷️ Get personalized hashtag suggestions. ```bash ./scripts/tags.sh "美食" ``` ### 2. Best Posting Time ⏰ Learn when to post for maximum engagement. ```bash ./scripts/time.sh "美食博主" ``` ### 3. Title Optimization ✍️ Improve your video titles. ```bash ./scripts/title.sh "今天做了红烧肉" ``` ### 4. Competitor Analysis 📊 Study successful accounts. ```bash ./scripts/analyze.sh "@美食作家王刚" ``` ## Installation ```bash clawhub install douyin-creator-cn ``` ## Author money-maker-ai ## Changelog ### v1.0.0 (2026-02-18) - Initial release


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)