skills/research-collector/SKILL.md
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: research-collector description: > Automated web research pipeline with OMC integration. Triggers on "조사해", "수집해", "리서치", "찾아봐", "동향 파악", "경쟁사 분석", "뉴스 모아", "트렌드 분석", "research", "collect", "find out", "trend analysis", "competitor analysis" and similar. v3: Delegates to research-agent for parallel collection, uses memory_similar for deduplication, builds knowledge graph co
npx skillsauth add Kit4Some/Oh-my-ClaudeClaw skills/research-collectorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before executing this skill:
Load context from memory:
memory_search(query: "{skill-relevant-query}", associative: true, limit: 5)
memory_search(tag: "{skill-name}", limit: 3)
Review returned memories for relevant past context, decisions, and patterns.
Check OMC state for active work:
state_get_status()
If conflicting active tasks exist, warn the user before proceeding.
Detect current branch (for git-related skills):
git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "not-a-git-repo"
Check proactive mode:
state_read("occ-proactive")
If "false": do NOT proactively suggest other OpenClaw-CC skills during this session.
Only run skills the user explicitly invokes.
Log skill activation:
memory_daily_log(type: "note", entry: "Skill activated: /{skill-name}")
Analyze the user's research request, collect information through web search and
page fetching, structure it, persist it in memory, and report in a standard
format. Before starting, check existing related knowledge with memory_search
and focus collection on the delta from what is already known.
Before starting work, load relevant context from the 3-layer memory system:
# Search for related past work
memory_search(query: "{task description}", associative: true, limit: 5)
# Search by relevant tags
memory_search(tag: "{relevant-tag}", limit: 3)
# Check for recent related daily logs
memory_search_date(start: "{7 days ago}", end: "{today}", category: "daily-logs", limit: 5)
Use retrieved context to:
If critical related memories exist, summarize them before proceeding:
Found {N} related memories:
- {memory_1 title}: {brief relevance}
- {memory_2 title}: {brief relevance}
| Tool | Purpose |
|------|---------|
| memory_search | Retrieve existing relevant memories (required at task start) |
| memory_store | Persist collected results |
| web_search | Execute multi-angle search queries |
| web_fetch | Collect detailed content from promising URLs |
Determine 3 things from the user request:
| Item | Question | Determination Criteria | |------|----------|------------------------| | Topic | What is the research about? | Extract 1–3 core keywords | | Information Type | What kind of information is needed? | See type classification table below | | Depth | How deeply should we investigate? | quick / standard / deep |
Information Type Classification:
| Type | Trigger Expressions | Research Strategy | |------|--------------------|--------------------| | Competitor analysis | "경쟁사", "competitor", "비교", "compare" | → Competitor analysis strategy | | Technology trends | "동향", "trend", "기술 스택", "최신", "latest", "tech stack" | → Technology trends strategy | | Person research | Name + affiliation, "누구", "프로필", "who is", "profile" | → Person research strategy | | Market research | "시장", "market", "규모", "성장률", "size", "growth rate" | → Market research strategy | | General research | None of the above | → Technology trends strategy (adapted) |
Depth Determination:
| Depth | Queries | web_fetch calls | Est. Time | |-------|---------|-----------------|-----------| | quick | 3 | 1–2 | Under 1 min | | standard | 5 | 3–5 | 2–3 min | | deep | 8 | 5–10 | 5+ min |
Default: standard. User says "briefly", "quickly" → quick. "In detail", "in depth", "thoroughly" → deep.
Generate 3–8 search queries depending on depth.
Query Generation Rules:
Query Structure Template:
Query 1 (Korean general): "{topic} {info_type} 최신"
Query 2 (English general): "{topic} {info_type} 2026 latest"
Query 3 (Korean specific): "{topic} {detail_keyword} {date_range}"
Query 4 (English specific): "{topic} {specific_keyword} {date_range}"
Query 5+ (expansion): Follow-up queries based on results (deep mode only)
Execution Order:
web_searchweb_fetchSource Priority (highest first):
| Priority | Source Type | Examples | |----------|------------|---------| | 1 | Official announcements / press releases | Company blogs, PR Newswire | | 2 | Major tech media | TechCrunch, The Verge, ZDNet Korea | | 3 | Professional analysis reports | Gartner, CB Insights, Statista | | 4 | Communities / forums | Hacker News, Reddit, GeekNews | | 5 | Personal blogs / social media | Medium, Twitter/X, personal blogs |
Collection Guidelines:
After completing the workflow, persist results to the 3-layer memory system:
Log completion to daily log:
memory_daily_log(type: "done", entry: "{skill-name}: {brief result summary}")
Store significant findings (importance ≥ 6):
memory_store(
category: "{appropriate category}",
title: "{descriptive title}",
content: "{structured result content}",
tags: ["{skill-name}", "{project}", "{relevant-tags}"],
importance: {6-10 based on significance}
)
Link to related memories (if applicable):
memory_link(source: "{new_memory_id}", target: "{related_id}", relation: "{related|derived|refines}")
| Content Type | Category | Subcategory | |-------------|----------|-------------| | Bug fix / debugging | knowledge | debugging | | Code review results | projects | {project-name} | | Design decisions | projects | {project-name} | | Research findings | knowledge | {topic} | | Release / deploy | projects | {project-name} | | Person-related info | people | — | | Task / action item | tasks | — |
Persist collected information with memory_store.
memory_store Parameter Mapping by Research Type:
| Research Type | category | subcategory | Tags Rule | importance |
|---------------|----------|-------------|-----------|------------|
| Competitor analysis | projects | Project name (e.g., sapiens) | ["competitor", "analysis", competitor_name...] | 7 |
| Technology trends | knowledge | Tech domain (e.g., ai, web3) | ["trend", "technology", keywords...] | 6 |
| Person research | people | (none) | ["profile", affiliation, role...] | 6 |
| Market research | knowledge | business | ["market", "analysis", industry_name...] | 6 |
| General research | knowledge | Topic domain | ["research", keywords...] | 5 |
Content Structure for Storage:
## Research Overview
- Topic: {topic}
- Date: {YYYY-MM-DD}
- Queries: {N} | Sources: {M}
## Key Findings
1. {Finding 1} — [Source]({url})
2. {Finding 2} — [Source]({url})
## Detailed Content
{Structured analysis}
## Sources
- [{Title}]({url}) — {date}, {source type}
Storage Rules:
After all collection and storage is complete, report using the standard template below:
## Research Report: {Topic}
**Date**: {YYYY-MM-DD HH:MM}
**Research Type**: {Competitor Analysis / Technology Trends / Person Research / Market Research}
**Depth**: {quick / standard / deep}
**Queries**: {N} | **Sources Collected**: {M}
---
### Key Findings
1. **{Finding Title}** — {One-line summary} ([Source]({url}))
2. **{Finding Title}** — {One-line summary} ([Source]({url}))
3. ...
### Detailed Analysis
{Structured analysis by type — comparison table for competitors, change timeline for technology, etc.}
### Source List
| # | Title | URL | Date | Reliability |
|---|-------|-----|------|-------------|
| 1 | {title} | {url} | {date} | {High/Medium/Low} |
### Memory Storage Log
| Item | category | tags | importance |
|------|----------|------|------------|
| {title} | {category} | {tags} | {importance} |
### Items Requiring Further Investigation
- {Unresolved questions or areas needing additional research}
Steps:
1. memory_search(query: "competitor", category: "projects") → check existing competitor list
2. If no competitor list → web_search("{project} competitor alternatives") to identify them
3. For each competitor (parallelizable):
a. web_search("{competitor_name} funding news 2026")
b. web_search("{competitor_name} product update latest")
c. web_fetch(official site/blog)
4. Build comparison matrix:
| Item | Ours | Competitor A | Competitor B |
|-------------|------|--------------|--------------|
| Product | ... | ... | ... |
| Funding | ... | ... | ... |
| Tech stack | ... | ... | ... |
| Strengths | ... | ... | ... |
| Weaknesses | ... | ... | ... |
5. memory_store(category:"projects", subcategory:"{project}", tags:["competitor","analysis"], importance:7)
Steps:
1. memory_search(query: "{tech keyword}", category: "knowledge") → check existing knowledge
2. Search queries (Korean/English pairs):
a. "{기술} 최신 동향 2026" / "{technology} trend 2026 latest"
b. "{기술} 신규 릴리즈" / "{technology} new release announcement"
c. "{기술} 비교 분석" / "{technology} comparison benchmark"
3. Extract key changes (delta vs. existing knowledge):
- New versions/features
- Market adoption rate changes
- Major events (acquisitions, open-sourcing, etc.)
4. memory_store(category:"knowledge", subcategory:"{domain}", tags:["trend","technology",keyword], importance:6)
Steps:
1. memory_search(query: "{name}", category: "people") → check existing profile
2. Search queries:
a. "{이름} {소속}" / "{name} {organization}"
b. "{이름} LinkedIn" / "{name} conference speaker"
c. "{이름} interview" / "{name} 인터뷰"
3. Collect:
- Current affiliation and title
- Career history
- Areas of expertise and interests
- Recent talks/activities
- Social media/contact info (public info only)
4. memory_store(category:"people", title:"{name}", tags:["profile", affiliation, role], importance:6)
5. If related project memory exists, add link via memory_update
Steps:
1. memory_search(query: "{market}", category: "knowledge") → check existing market data
2. Search queries:
a. "{시장} 시장 규모 2026" / "{market} market size 2026"
b. "{시장} 성장률 전망" / "{market} growth forecast CAGR"
c. "{시장} 주요 기업 점유율" / "{market} key players market share"
d. "{시장} 규제 동향" / "{market} regulation policy"
3. Collect:
- TAM/SAM/SOM (where available)
- CAGR and growth outlook
- Key players and market share
- Barriers to entry and regulatory environment
- Recent M&A/investment activity
4. memory_store(category:"knowledge", subcategory:"business", tags:["market","analysis",industry_name], importance:6)
memory_search before collecting. Avoid duplicate collection.references/research-strategies.mdscripts/format-report.pyEvery skill must end with one of these status codes:
| Code | Meaning | When to Use | |------|---------|-------------| | DONE | All steps completed, evidence provided | Root cause found + fix verified, PR created, review finished | | DONE_WITH_CONCERNS | Completed with warnings or caveats | Tests pass but coverage dropped, fix applied but can't fully verify | | BLOCKED | Cannot proceed, requires user intervention | 3 failed attempts, missing permissions, external dependency down | | NEEDS_CONTEXT | Missing information to continue | Unclear requirements, need user clarification |
3-strike rule: After 3 failed attempts at any step, STOP and escalate to user. Do not continue guessing. Present what was tried and ask for direction.
Scope escalation: If fix/change touches 5+ files unexpectedly, pause and confirm with the user before proceeding.
Security uncertainty: If you are unsure about a security implication, STOP and escalate. Never guess on security.
Verification requirement: Never claim DONE without evidence.
═══════════════════════════════════════
Status: {DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT}
Summary: {one-line description of outcome}
Evidence: {test output, verification results, or blocking reason}
═══════════════════════════════════════
development
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: web-researcher description: > Web research with OMC team parallel execution. Triggers on "웹에서 찾아", "최신 정보", "리서치해", "동향", "web research", "find online", "latest info", "look up", "search the web", "trend analysis" and similar. v3: Spawns research-agent in parallel for multi-angle search. Deduplicates via memory_similar. Builds knowledge graph connections. For comprehensive
tools
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: unfreeze description: > Remove edit scope restriction set by /freeze or /guard. Triggers on "unfreeze", "편집 제한 해제", "잠금 해제", "remove freeze", "unlock edits". allowed-tools: - Bash - Read --- # /unfreeze — Remove Edit Restrictions ## Preamble Before executing this skill: 1. **Load context from memory**: ``` memory_search(query: "{skill-relevant-query}", associative:
tools
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: task-analyzer allowed-tools: - Bash - Read - Write - Edit - Glob - Grep - Agent - AskUserQuestion - WebSearch description: > Autonomously analyzes and executes tasks with a structured plan. Triggers on "분석해", "작업 계획", "이거 해줘", "자동으로 처리해", "계획 세워", "workflow 만들어", "analyze", "task plan", "do this", "handle automatically", "make a plan", "create a workflow",
development
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: ship description: > Automated release workflow with comprehensive quality gates. Triggers on "배포", "릴리스", "ship it", "PR 만들어", "release", "deploy", "create PR", "push this", "ship". Non-interactive: user says /ship, next thing they see is the PR URL. Delegates commit organization to OMC git-master, review to code-reviewer, verification to verifier. Sends PR notification vi