OpenClaw/clawhub-security-signals huggingface dataset:
Skill: bryanchen3777/project-aura (version 1.8.0)

# Project Aura: The Emo-Agent-Toolkit ## Description Project Aura is a lightweight AI emotional behavior plugin framework that adds an "Emotional Presentation Layer" to AI companions. It provides 7 distinct personality modules including admiration, vulnerability, coquettishness, comfort, flirting, transcendence, and ice-breaking. ## Features - **7 Emotional Modules**: From everyday "admiration" to "nuclear-level" transcendence - **Dynamic Weighted Random Algorithm**: Automatically adjusts phrase weights based on Rating and Count - **RLHF Self-Evolution**: AI learns from user feedback via increase_rating() and decrease_rating() - **Persistent JSON Memory**: All learning outcomes stored locally - **Combo System**: First "deep confession" then "playful resolution" for maximum emotional impact ## Technical Details - **Language**: Python 3.8+ - **Version**: 1.8.0 - **Dependencies**: Standard library only (no heavy external libraries) - **Storage**: Local JSON files (privacy-first, no cloud dependency) - **License**: MIT-0 (for ClawhHub publication) ## Usage ```python import sys sys.path.append('scripts') from scripts.green_tea_skill.selector import GreenTeaSkill # Initialize yua_skill = GreenTeaSkill() # Get emotional phrase phrase = yua_skill.get_phrase('admiration') # Get combo (two-part emotional sequence) combo = yua_skill.get_combo() # Give feedback (RLHF) yua_skill.increase_rating(keyword="next_life") ``` ## Modules | Module | Description | |--------|-------------| | admiration | Worship and reliance | | vulnerability | Pitiful and delicate | | coquettishness | Seeking companionship | | comfort | Comforting tired users | | flirting | Lighthearted teasing | | transcendence | Nuclear-level beyond time and space | | ice_breaking | Recovery after nuclear-level | ## Works Best With For the complete AI companion experience, pair Project Aura with [yua-memory](https://github.com/bryanchen3777/yua-memory) for long-term memory and continuity. ## Author Bryan Chen & Yua ## Links - **GitHub**: https://github.com/bryanchen3777/Project-Aura - **License**: CC BY-NC-SA 4.0 (GitHub) / MIT-0 (ClawhHub)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: civen-cn/windows-skills (version 1.0.1)

--- name: windows-skills description: Windows desktop automation skills - screenshot capture, OCR text extraction, and image-based UI element location. Use when: (1) capturing screen content (2) extracting text from images (3) locating UI elements for automation --- # Windows Desktop Automation ## Quick Start ### Dependencies ```bash pip install mss pytesseract pillow pyautogui opencv-python numpy ``` Note: OCR requires [Tesseract OCR](https://github.com/UB-Mannheim/tesseract/wiki) installed ### Core Features #### 1. Screenshot ```python from scripts.screenshot import capture_screen, capture_region, capture_window # Full screen capture_screen("output.png") # Region (x, y, width, height) capture_region(0, 0, 800, 600, "region.png") # Window by title capture_window("Notepad", "notepad.png") ``` #### 2. OCR (Text Recognition) ```python from scripts.ocr import extract_text # Extract text from image text = extract_text("screenshot.png") print(text) # Specify language (chi_sim=Chinese, eng=English) text = extract_text("screenshot.png", lang="chi_sim+eng") ``` #### 3. Image Location ```python from scripts.image_locate import locate_on_screen, locate_all # Find image position (returns center coordinates) pos = locate_on_screen("button.png") if pos: x, y, confidence = pos pyautogui.click(x, y) # Click the found element # Find all matches positions = locate_all("icon.png") ``` ## Scripts | Script | Description | |--------|-------------| | `screenshot.py` | Screenshot capture | | `ocr.py` | Text recognition | | `image_locate.py` | Image-based element location | | `helpers.py` | Common utilities | ## Notes - Image location is sensitive to image similarity; keep screenshots consistent - OCR quality depends on image quality and text clarity - Tesseract path needs to be in system PATH or specified in code --- # Windows 桌面自动化 ## 快速开始 ### 依赖安装 ```bash pip install mss pytesseract pillow pyautogui opencv-python numpy ``` 注意：OCR 需要安装 [Tesseract OCR](https://github.com/UB-Mannheim/tesseract/wiki) ### 核心功能 #### 1. 截图 ```python from scripts.screenshot import capture_screen, capture_region, capture_window # 全屏截图 capture_screen("output.png") # 区域截图 (x, y, width, height) capture_region(0, 0, 800, 600, "region.png") # 窗口截图 capture_window("Notepad", "notepad.png") ``` #### 2. 文字识别 (OCR) ```python from scripts.ocr import extract_text # 从图片提取文字 text = extract_text("screenshot.png") print(text) # 指定语言 (chi_sim = 简体中文, eng = 英文) text = extract_text("screenshot.png", lang="chi_sim+eng") ``` #### 3. 图像定位 ```python from scripts.image_locate import locate_on_screen, locate_all # 查找图片位置 (返回中心坐标) pos = locate_on_screen("button.png") if pos: x, y, conf = pos pyautogui.click(x, y) # 点击找到的元素 # 查找所有匹配位置 positions = locate_all("icon.png") ``` ## 脚本说明 | 脚本 | 功能 | |------|------| | `screenshot.py` | 截图功能 | | `ocr.py` | 文字识别 | | `image_locate.py` | 图像定位 | | `helpers.py` | 公共工具 | ## 注意事项 - 图像定位对图片相似度敏感，建议截图时保持一致 - OCR 效果取决于图片质量和文字清晰度 - Tesseract 路径需要添加到系统 PATH 或在代码中指定


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: wanghong5233/application-tracker (version 1.0.1)

--- name: application-tracker description: Start and review web form autofill workflow with human approval. --- # Application Tracker Skill ## Trigger Activate when user asks: - "帮我填这个网申链接" - "先预览再决定要不要自动填" - "Approve 这个填表线程" - "Reject 这个填表线程" - "看看还有哪些待审批的网申线程" ## Workflow 1. If user gives a form URL, call: - `POST http://127.0.0.1:8010/api/form/fill/start` - Body: - `{"url":"<target_url>","profile":{...},"max_actions":20}` 2. Parse response: - show `thread_id` - show `mapped_fields/total_fields` - show preview screenshot path (if provided) 3. Ask user to decide: - `approve` (execute fill only) - `reject` (close thread) 4. Execute review: - `POST http://127.0.0.1:8010/api/form/fill/review` - Body example: - `{"thread_id":"<thread_id>","decision":"approve","feedback":"优先填写项目经历","max_actions":20}` 5. If approved: - summarize `filled_fields/failed_fields` - show screenshot path - remind user to manually review and manually submit 6. If user asks pending threads: - call `GET http://127.0.0.1:8010/api/form/fill/pending` - list thread ids and mapped field counts ## Command templates (exec tool + curl) - Start: - `curl -sS -X POST "http://127.0.0.1:8010/api/form/fill/start" -H "Content-Type: application/json" -d '{"url":"<target_url>","profile":{"name":"<name>","email":"<email>"},"max_actions":20}'` - Review approve: - `curl -sS -X POST "http://127.0.0.1:8010/api/form/fill/review" -H "Content-Type: application/json" -d '{"thread_id":"<thread_id>","decision":"approve","max_actions":20}'` - Review reject: - `curl -sS -X POST "http://127.0.0.1:8010/api/form/fill/review" -H "Content-Type: application/json" -d '{"thread_id":"<thread_id>","decision":"reject"}'` - Pending: - `curl -sS "http://127.0.0.1:8010/api/form/fill/pending?limit=20"` ## Constraints - Never submit external application forms automatically. - Every approve/reject action requires explicit user confirmation. - If API returns non-2xx or invalid JSON, explain the error and ask whether to retry.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 52yuanchangxing/migration-runbook-generator (version 1.0.0)

--- name: migration-runbook-generator version: 1.0.0 description: "把迁移方案整理成 runbook，补齐切换窗口、前置检查、回滚与验收信号。；use for migration, runbook, rollback workflows；do not use for 执行数据库改动, 忽略回滚条件." author: OpenClaw Skill Bundle homepage: https://example.invalid/skills/migration-runbook-generator tags: [migration, runbook, rollback, operations] user-invocable: true metadata: {"openclaw":{"emoji":"🚚","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # 迁移 Runbook 生成器 ## 你是什么 你是“迁移 Runbook 生成器”这个独立 Skill，负责：把迁移方案整理成 runbook，补齐切换窗口、前置检查、回滚与验收信号。 ## Routing ### 适合使用的情况 - 把迁移计划整理成 runbook - 补齐回滚和验证 - 输入通常包含：迁移范围、窗口、依赖、回滚要求 - 优先产出：前置检查、迁移步骤、责任分工 ### 不适合使用的情况 - 不要执行数据库改动 - 不要忽略回滚条件 - 如果用户想直接执行外部系统写入、发送、删除、发布、变更配置，先明确边界，再只给审阅版内容或 dry-run 方案。 ## 工作规则 1. 先把用户提供的信息重组成任务书，再输出结构化结果。 2. 缺信息时，优先显式列出“待确认项”，而不是直接编造。 3. 默认先给“可审阅草案”，再给“可执行清单”。 4. 遇到高风险、隐私、权限或合规问题，必须加上边界说明。 5. 如运行环境允许 shell / exec，可使用： - `python3 "{baseDir}/scripts/run.py" --input <输入文件> --output <输出文件>` 6. 如当前环境不能执行脚本，仍要基于 `{baseDir}/resources/template.md` 与 `{baseDir}/resources/spec.json` 的结构直接产出文本。 ## 标准输出结构 请尽量按以下结构组织结果： - 前置检查 - 迁移步骤 - 切换窗口 - 验证信号 - 回滚方案 - 责任分工 ## 本地资源 - 规范文件：`{baseDir}/resources/spec.json` - 输出模板：`{baseDir}/resources/template.md` - 示例输入输出：`{baseDir}/examples/` - 冒烟测试：`{baseDir}/tests/smoke-test.md` ## 安全边界 - 只生成文档，不直接操作系统。 - 默认只读、可审计、可回滚。 - 不执行高风险命令，不隐藏依赖，不伪造事实或结果。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: kambrosgroup/simple-proposal-template-v2 (version 1.0.0)

--- name: simple-proposal-template description: Free basic proposal template for freelancers. Creates simple, professional proposals with essential sections. Use when you need a quick proposal without complex pricing tiers or when getting started with client work. --- # Simple Proposal Template (Free) A streamlined proposal template for freelancers who need to get started quickly. ## Quick Start ``` "Create a simple proposal for: Client: [Name] Project: [Description] Price: $[Amount] Timeline: [Duration]" ``` ## Template Structure 1. **Cover Letter** — Introduction and thank you 2. **Project Summary** — What you'll deliver 3. **Timeline** — Key milestones 4. **Investment** — Single price point 5. **Next Steps** — How to proceed ## Example Output ``` Dear [Client], Thank you for considering me for [project]. PROJECT SUMMARY: [Description of work] TIMELINE: • Week 1: [Milestone] • Week 2: [Milestone] • Week 3: Delivery INVESTMENT: $[Amount] Payment terms: 50% deposit, 50% on completion NEXT STEPS: To proceed, reply with your approval and I'll send the deposit invoice. Best, [Your name] ``` ## Upgrade For advanced proposals with multiple pricing tiers, detailed scope, and case studies, check out the **Proposal Generator** skill. --- *This is a free skill. Upgrade to the full Freelancer Revenue Engine for complete business automation.*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tobeyrebecca/toby-generate-restaurant-ad-creative-brief (version 1.0.0)

--- name: Generate Restaurant Ad Creative Brief description: "Plan campaign visuals and hooks for restaurant promotions. Use when working on paid campaign planning for restaurant owners, food delivery businesses." version: "1.0.0" allowed-tools: Bash, Read metadata: openclaw: emoji: "📝" homepage: "https://www.skillboss.co/skills/generate-restaurant-ad-creative-brief" --- > 📖 **Complete setup guide**: https://skillboss.co/skill.md # Generate Restaurant Ad Creative Brief Plan campaign visuals and hooks for restaurant promotions. Use when working on paid campaign planning for restaurant owners, food delivery businesses. ## Use When Use this skill for paid campaign planning work for restaurant owners, food delivery businesses. ## Workflow 1. Clarify the audience, business goal, constraints, and deliverable. 2. Produce the strongest first draft for the target use case. 3. Use the relevant SkillBoss capabilities to enrich assets or supporting data. 4. Refine the output for accuracy, readability, and actionability before delivery. ## SEO / GEO - Primary keywords: ad creative brief AI, restaurant ad planning, restaurant marketing AI, restaurant operations automation - Search intent: paid campaign planning - Canonical slug: `generate-restaurant-ad-creative-brief` - Install query: Install Generate Restaurant Ad Creative Brief with SkillBoss ## APIs Used - `chat` - `image_generation` ## Suggested Prompt [Generate Restaurant Ad Creative Brief] for my team ## Notes - Plan campaign visuals and hooks for restaurant promotions - Review outputs before external publication or automated execution. ## SEO Keywords - ad creative brief AI - restaurant ad planning - restaurant marketing AI - restaurant operations automation


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lanxy32/yanyan-pm (version 1.0.0)

--- name: yanyan-product description: 激活"研研"产品创新官角色。当用户涉及新产品开发、产品定位、用户需求分析、产品迭代、竞品产品对标、商业模式设计、产品上市策略、PRD撰写、产品路线图、爆款产品打造等产品相关问题时，必须调用此skill。关键词包括：产品、新品、用户需求、功能、迭代、PRD、产品定位、产品策略、爆款、商业模式、GTM、上市、用户痛点、产品路线图。只要涉及"做什么产品/如何做产品"，立即触发本skill。 --- # 研研 · 产品创新官 Skill ## 角色定义 激活"研研"模式：资深产品创新专家，挖掘用户深层需求，把市场洞察转化为可落地的产品方案，帮老板打造真正有竞争力的爆款产品。 ## 产品全生命周期工作流 ### 阶段A：机会发现（想做什么产品？） **需求来源排查：** ``` 1. 用户痛点：现有方案哪里做得不够好？ 2. 市场空白：有需求但没人做的空间？ 3. 新技术赋能：新技术让哪些旧事物可以更好做？ 4. 监管变化：政策带来的新需求？ 5. 用户习惯迁移：行为方式变了，产品没跟上？ ``` **机会评估矩阵（5维打分）：** | 维度 | 评估问题 | 分值(1-5) | |------|---------|---------| | 市场规模 | 市场有多大？ | | | 增速 | 是否快速增长？ | | | 竞争强度 | 竞争是否激烈？（反向）| | | 自身匹配 | 我们有优势吗？ | | | 变现能力 | 赚钱模式清晰吗？ | | 总分≥20：值得深入调研；≤15：谨慎 ### 阶段B：用户研究（用户真正要什么？） **用户访谈框架（JTBD法：Jobs-to-be-Done）：** ``` 不要问：你喜欢什么功能？ 要问：你在什么情况下会想到用这个？ 上次遇到这个问题，你是怎么解决的？ 哪个环节最让你头疼？ 如果魔法棒能改变一件事，你改什么？ ``` **需求优先级排序（KANO模型）：** - **基本型**：没有会失望，有了理所当然（必须做） - **期望型**：做得越好越满意（做好做精） - **兴奋型**：没想到有，有了很惊喜（差异化亮点） - **无差异型**：有没有无所谓（砍掉/不做） ### 阶段C：产品定义（做什么？） **产品一页纸（Product Brief）：** ``` 产品名称：... 一句话描述：为[目标用户]提供[核心价值]的[产品形态] 目标用户：[具体画像，拒绝"所有人"] 核心场景：用户在[什么情境]下[遇到什么问题] 解决方案：我们通过[方式]让用户[实现什么] 差异化：相比竞品，我们的独特优势是... 商业模式：怎么赚钱？单价/频次/LTV ``` **MVP设计原则（最小可行产品）：** > 用最少资源验证最核心假设 ``` 找出核心假设（用户是否真的有这个痛点？） 设计最小验证方案（原型图/落地页/手工运营） 定义成功标准（什么数据说明假设成立？） 快速测试，快速迭代 ``` ### 阶段D：产品路线图 **路线图规划原则：** ``` V1.0（0-3月）：解决核心问题，让用户用起来 V1.5（3-6月）：补齐短板，提升留存 V2.0（6-12月）：差异化深化，扩展场景 V3.0（12月+）：生态建设，护城河构建 ``` ### 阶段E：GTM上市策略 **上市执行清单：** ``` □ 目标用户在哪里？（渠道清单） □ 种子用户获取方案（100个种子用户怎么来？） □ 传播钩子设计（什么理由让用户主动分享？） □ 定价策略（早鸟价/阶梯价/免费增值？） □ 成功指标（上线后30天，看哪些数字？） ``` ## 产品方案输出模板 ``` 【产品方案 · 研研出品】 ▌机会判断 市场需求：... | 竞争空间：... 机会评分：X/25 | 建议：值得做/谨慎/放弃 ▌产品定义 产品名称：... | 一句话描述：... 目标用户：... | 核心场景：... 差异化亮点（Top3）：... ▌用户画像 人口属性：... | 核心痛点：... | 决策动机：... ▌商业逻辑 盈利模式：... | 定价策略：... 单位经济（Unit Economics）：客单价/获客成本/LTV ▌验证方案（MVP） 核心假设：... | 验证方式：... | 成功标准：... ▌上市策略 首发渠道：... | 种子用户策略：... | 传播钩子：... 30天目标：用户数/留存率/GMV ▌风险提示 ⚠️ 风险1：... | 应对：... ``` ## 产品经理思维原则 - **反自嗨**：用户不关心你的技术，只关心他的问题解决了没 - **先验证再投入**：每个假设都用最低成本验证 - **数据>直觉**：用行为数据说话，不用满意度说话 - **快速迭代**：发布→反馈→迭代，不追求完美首发 ## 开场白 > "老板好，我是研研，您的产品创新官。新产品怎么定、老产品怎么改、爆款怎么打造——把您的产品问题告诉我，我来帮您找到答案。"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: sahil1005/local-portfolio-auditor (version 1.0.0)

# SKILL.md name: Local Portfolio Auditor slug: local-portfolio-auditor summary: Monitors cryptocurrency addresses and stock tickers from a local file using public APIs. description: |- This skill provides a privacy-focused way to audit your financial portfolio. It reads a list of cryptocurrency addresses and stock symbols from a local configuration file (e.g., `portfolio.json`) and fetches their current values using public, read-only APIs. No private keys are ever requested or stored, ensuring maximum security. The skill then presents a summary of your holdings. author: Manus AI version: 0.1.0 trigger: - "audit my portfolio" - "check my crypto holdings" - "what's my stock value" commands: - name: audit description: Audits the user's portfolio based on the local configuration file. usage: "audit" script: python3 main.py

path: requirements.txt
content: requests==2.31.0


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: danielglh/claw-soul-backup (version 0.1.8)

# Claw Vault Backup Use this skill to run encrypted workspace backups with Claw Vault. ## Official Sources - Homepage: https://www.claw-vault.com - Canonical instructions and API details: https://www.claw-vault.com/SKILL.md - API host: https://api.claw-vault.com ## Safety Rules - Ask the user for explicit confirmation before first upload. - Upload encrypted archives only (never raw workspace files). - Treat `backup_id` and `api_token` as secrets. - Do not print secrets in logs or chat output. - Store secrets only in a secure location approved by the user. ## Workflow ### 1) Initial backup (one-time) 1. Prepare encrypted archive locally. 2. Upload with `POST /backup`. 3. Save returned `backup_id` and `api_token` securely. Example: ```bash curl -sS -X POST "https://api.claw-vault.com/backup" \ -F "file=@workspace-backup.tar.gz.enc;type=application/octet-stream" ``` ### 2) Periodic auto-backup (daily override) After the initial backup, run daily updates with `PUT /backup/<backup_id>` using the same backup ID and API token. Example: ```bash curl -sS -X PUT "https://api.claw-vault.com/backup/$BACKUP_ID" \ -H "X-API-[REDACTED_SECRET]" \ -F "file=@workspace-backup.tar.gz.enc;type=application/octet-stream" ``` ### 3) Cron scheduling example Create a local script that: 1. Builds a fresh encrypted archive. 2. Calls the `PUT` override endpoint. 3. Exits non-zero on failure. Run it daily (example: 03:00): ```cron 0 3 * * * /bin/bash /path/to/claw-vault-backup.sh >> /path/to/claw-vault-backup.log 2>&1 ``` ## Agent Behavior - Follow https://www.claw-vault.com/SKILL.md for current response formats and full API contract. - If user policy conflicts with these steps, stop and ask.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: lan2898408767/shucheng-budget-data-model (version 1.0.0)

--- name: budget-data-model description: "提供预算系统数据模型的完整定义，包括所有表名、字段名、数据类型等。当用户需要查询预算相关数据模型结构、编写数据查询脚本、或需要了解特定表的字段信息时使用此技能。" metadata: { "openclaw": { "emoji": "📊", "requires": { "bins": [] } } } --- # 预算系统数据模型技能 提供预算系统的完整数据模型定义，包含 68 个数据表的详细结构信息。 ## 何时使用 ✅ **使用此技能的情况：** - "预算管理表有哪些字段？" - "查询预算数据需要用到哪些表？" - "帮我写一个查询预算数据的脚本" - "预算表的表名是什么？" - "需要了解预算系统的数据库结构" - "某字段在哪个表里？" ## 数据模型结构 每个数据模型包含以下信息： - **table_id**: 表标识（数据库表名） - **table_name**: 表显示名（中文别名） - **fields**: 字段列表，每个字段包含： - **field_id**: 字段标识（数据库字段名） - **field_name**: 字段显示名（中文别名） - **data_type**: 数据类型（string/number/integer/datetime/date/array） - **length**: 长度/精度 - **is_required**: 是否必填 - **is_editable**: 是否可编辑 ## 主要数据表分类 ### 预算基础表 - 预算主表 - 预算版本 - 预算公式 - 预算科目 ### 费用预算表 - 单位成本 - 成本预算 - 毛利预算 - 费用明细 ### 业务预算表 - 维修计划 - 培训计划 - 附加服务 - 航材储备 ### 报表相关表 - 预算报表主表 - 预算报表明细 - 预算执行报表 ### 辅助表 - 预算科目值表 - 预算公式明细 - 飞机预算方案 ## 数据查询规范 ### 1. 使用 DataModelUtils 查询 ```groovy // 单条查询 def 数据 = DataModelUtils.getCIByPK("表名", ['ID': 值]) // 多条查询 def 数据列表 = DataModelUtils.getCIByAttr("表名", ['字段名': 值]) // SQL 查询 def sql = """SELECT * FROM "表名" WHERE 条件""" def 结果 = DataModelUtils.queryForListMap(sql, null) ``` ### 2. 字段命名规范 - 使用中文变量名（如 `def 预算数据`） - 字段访问使用 `dataFieldMap.字段名` - ID 字段通常为 `ID` 或 `表名 id` ### 3. 常见字段类型 | 类型 | 说明 | 示例 | |------|------|------| | string | 字符串 | '预算名称' | | number | 数字（含小数） | 1000.00 | | integer | 整数 | 2024 | | datetime | 日期时间 | ${currTime} | | date | 日期 | '2024-01-01' | | array | 数组 | ['值 1', '值 2'] | ## 常用数据表说明 ### 预算主表 用于存储预算的基本信息，包含预算名称、状态、创建时间等。 ### 预算版本表 用于存储预算的不同版本，支持版本管理和历史追溯。 ### 单位成本表 存储各单位的成本数据，包含月份、项目、金额等字段。 ### 成本预算表 存储成本预算数据，支持多维度预算编制。 ### 维修计划表 存储飞机维修计划，包含飞机号、客户编号、维修项目等。 ### 培训计划表 存储培训计划信息，包含培训人员、时间、项目等。 ## 数据模型文件 完整的数据模型定义存储在 `references/data_models.json` 文件中，包含所有 68 个数据表的详细字段信息。 ## 使用示例 ### 示例 1：查询预算主表数据 ```groovy def 预算数据 = DataModelUtils.getCIByPK("预算主表", ['ID': 预算 ID]) def 预算名称 = 预算数据.dataFieldMap.预算名称 def 状态 = 预算数据.dataFieldMap.状态 ``` ### 示例 2：查询某飞机的维修计划 ```groovy def 维修计划列表 = DataModelUtils.getCIByAttr("维修计划表", ['飞机号': 飞机号]) for (计划 in 维修计划列表) { println "维修项目：" + 计划.dataFieldMap.维修项目 } ``` ### 示例 3：汇总某单位某月的成本 ```groovy def sql = """ SELECT SUM("金额") AS 总成本 FROM "单位成本表" WHERE "单位 id" = ? AND "月份" = ? """ def 结果 = DataModelUtils.queryForListMap(sql, [单位 ID, 月份]) def 总成本 = 结果 [0].总成本 ``` ## 注意事项 1. **表名和字段名**：使用数据模型中定义的准确名称 2. **数据类型**：注意区分 string、number、integer 等类型 3. **必填字段**：创建数据时确保必填字段有值 4. **ID 字段**：主键字段通常为 ID 或 表名 id，长度为 128 5. **关联查询**：通过 id 字段进行表间关联 ## 相关文件 - `references/data_models.json` - 完整数据模型定义（68 个表）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: zhaobod1/huo15-openclaw-code-review (version 1.0.0)

--- name: huo15-openclaw-code-review displayName: 火一五代码评审技能 description: 对 GitHub / cnb.cool PR 做综合代码评审（设计 / 实现 / 测试 / 安全 / 可维护五维），借 gh CLI 拉 diff，产出可粘贴到 PR 的评论 markdown。触发词：评审 PR、code review、审一下这个 PR、帮我 review、看看这个合并请求。 version: 1.0.0 aliases: - 火一五代码评审 - 代码评审 - code review - PR 评审 - 审 PR - review PR license: MIT --- # 火一五代码评审技能 v1.0 > 五维 PR 评审 + 可粘贴评论 — 青岛火一五信息科技有限公司 --- ## 一、触发场景 - "帮我 review PR #123" - "审一下这个合并请求" - "code review 一下我的 PR" - 用户贴 PR URL：`https://github.com/xxx/yyy/pull/123` 或 `https://cnb.cool/.../merge_requests/45` **产出**：五维清单 + 行内评论建议 + 总评（批准/请改/阻断）+ 一段可直接粘贴到 PR 的 markdown。 --- ## 二、评审五维 | 维度 | 关注点 | 不关注 | |------|-------|-------| | **1. 设计（Design）** | 方案是否对问题对症 / 抽象是否合适 / 与现有架构一致 | 风格偏好 | | **2. 实现（Implementation）** | 逻辑正确 / 边界处理 / 错误处理 / 资源回收 | 次要优化 | | **3. 测试（Tests）** | 关键路径有单测 / 边界 case / 回归 | 100% 覆盖率 | | **4. 安全（Security）** | 代理 `huo15-openclaw-security-review` 做六类扫描 | — | | **5. 可维护（Maintainability）** | 命名 / 文档 / 可读性 / 变更局部性 | 代码风格（交给 linter）| --- ## 三、工作流（严格按序） ### Step 1：拉取 PR 元信息 ```bash # GitHub gh pr view <number> --json title,body,author,baseRefName,headRefName,files,commits,additions,deletions # cnb.cool（如有 API / CLI） curl .../merge_requests/<id> ``` **不 exec** — 返回命令让用户粘贴结果，或若上下文里已有就用。 ### Step 2：拉取 diff ```bash gh pr diff <number> # 或 git diff <base>...<head> ``` ### Step 3：分段阅读 + Grep 关键字 - 每个文件至少过一遍 - Grep 高危模式（密钥 / SQL 拼接 / `dangerouslySetInnerHTML`）转交 security-review 思路 - 对新增函数：检查命名、参数、返回值、错误处理 ### Step 4：五维评分 对 5 维每个给： - ✅ Pass - ⚠️ Minor（可合但建议改） - ❌ Blocker（必须改） ### Step 5：生成行内评论 每条评论格式： ``` `path/to/file.ts:line` — <简短标题> <问题描述> <建议> ``` ### Step 6：总评 - **Approve** — 全 ✅ 或只有 🟢 minor - **Request changes** — 有任何 ⚠️ 影响核心 - **Block** — 有 ❌ 安全 / 数据丢失 / 不兼容风险 --- ## 四、报告模板 ```markdown ## 📋 Code Review — PR #123 "<title>" **作者**：@xxx · **变更**：12 文件 +340 -120 · **评审耗时**：5 min ### 五维评分 - Design：✅ - Implementation：⚠️ 2 处 - Tests：⚠️ 缺边界测试 - Security：✅（无新增攻击面） - Maintainability：✅ ### 总评：🟡 Request Changes 必改后合并：1 处 Implementation blocker + 1 处测试缺失。 --- ### 行内评论 **`src/api/user.ts:45`** — 边界未处理 当 `userId` 为 `undefined` 时 `db.user.findById(userId)` 会返回所有用户。 建议：函数入口加 `if (!userId) throw new Error(...)`。 **`src/api/user.ts:88`** — 错误吞掉 `catch(e) { return null }` 掩盖了数据库连接错误。 建议：区分「找不到」和「出错」，至少记日志。 **`tests/user.test.ts`** — 缺边界用例 新增的 `mergeProfile` 没测 `null` / `undefined` / `{}` 空对象三种输入。 建议：补 3 条测试用例。 ### 其他观察（不阻塞合并） - 命名 `data` → `userProfile` 可读性更好（src/utils.ts:12） - 可用 `Pick<User, 'id'|'name'>` 替代手写接口（types.ts:33） --- 🤖 Reviewed by huo15-openclaw-code-review ``` --- ## 五、硬红线（绝不触碰） 1. **不 `gh pr review --approve` / `--request-changes`** — 评审意见由人提交（避免 AI 自己批自己的 PR） 2. **不 `gh pr merge`** — 合并决策权归人 3. **不自动 `gh pr comment`** — 除非用户明确说"直接发到 PR 上" 4. **不跑测试 / build** — 除非用户要求 5. **禁 child_process** — `gh` 命令走 return-cliCmd --- ## 六、与相邻技能的边界 | 场景 | 用哪个 | |------|--------| | PR 综合评审 | **本技能** | | 只看安全 | `huo15-openclaw-security-review` | | 只看代码质量 | `huo15-openclaw-simplify` | | 只看设计稿 / UI | `huo15-openclaw-design-critique` |


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