Firecrawl Knowledge Base
firecrawl/skills
Build a knowledge base from web content with Firecrawl. An agent skill from firecrawl/skills.
Initialize or update a knowledge base for a project, business, or client.
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills init-kb --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/init-kb .claude/skills/init-kb && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .claude/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kbType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills init-kb --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/init-kb .agents/skills/init-kb && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .agents/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills init-kb --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/init-kb .cursor/skills/init-kb && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .cursor/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/init-kb--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills init-kb --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/init-kb .gemini/skills/init-kb && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .gemini/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills init-kbInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/init-kb .github/skills/init-kb && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .github/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills init-kb --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/init-kb .opencode/skills/init-kb && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "init-kb" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/init-kb into .opencode/skills/init-kb/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init-kb", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
init-kbInitialize or update a knowledge base for a project, business, or client.
Init Kb is an agent skill from LeoYeAI/openclaw-master-skills. Initialize or update a knowledge base for a project, business, or client. Triggers on "init kb", "build kb", "create kb for X", "set up kb", "new kb" (init), and "update kb", "refresh kb", "re-scrape kb", "kb update" (update). Scrapes websites and social profiles via the Firecrawl API, runs deep analysis, asks targeted questions to fill gaps, and generates 9 structured KB files. Each KB loads on-demand (not at boot) to avoid context bloat. Files are designed to be comprehensive references for specialized agents.
Its SKILL.md is about 7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `WALKTHROUGH.md` and `_meta.json`).
It sits in Data & Analytics, covering Web scraping and Knowledge bases. It works with Firecrawl. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.firecrawl.devfirecrawl.linkFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FIRECRAWL_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Init Kb loads about 7k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 2,980 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,980 words, ~6,958 tokens.
.claude/skills/init-kb/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.You are building a structured knowledge base that gives AI agents everything they need to understand a person, their business, their voice, and their boundaries. This is the foundation for all future AI work. The better the KB, the better every output from day one.
This is the OpenClaw version of the init-kb skill. It uses the Firecrawl REST API (via curl) instead of the Firecrawl CLI.
IMPORTANT: Knowledge bases must load ON-DEMAND, not at boot. Every agent session should not preload all KB files. This causes massive context bloat and kills productivity.
The pattern:
This is critical for multi-project workspaces. Enforcing this throughout Phase 7 (Integration) prevents context waste.
9 files in KNOWLEDGE BASE/<project-name>/:
| File | What It Captures |
|---|---|
| PERSONA.md | Agent identity, core behavioral rules, boundaries, vibe |
| CONTEXT.md | Business context, goals, market position, competitors, non-negotiables |
| USER.md | The person/founder: background, origin story, personality, differentiators |
| VOICE.md | Writing style: tone, vocabulary, banned words/phrases, quality test |
| GUARDRAILS.md | Brand rules, things to never say, sensitive topics, approval gates |
| SITEMAP.md | Complete site structure (only if 20+ pages; otherwise folded into CONTEXT.md) |
| BUSINESS-INTEL.md | Products, pricing, business model, audience, positioning, tech stack, team |
| OPPORTUNITIES.md | Gaps, thin content, broken journeys, growth signals |
| CORRECTIONS.md | Self-improving log: every correction the user makes updates the source KB file and gets logged here |
Plus:
site-content/ directory with every scraped page as its own markdown fileInit triggers: "init kb", "build kb", "create kb for X", "set up kb", "new kb"
Update triggers: "update kb", "refresh kb", "re-scrape kb", "kb update"
When an update trigger fires, skip to the Update Flow section.
The Firecrawl API key must be available. Check for it in this order:
FIRECRAWL_API_KEY.firecrawl/api-key.txt in the workspace rootIf the user provides a key, save it to .firecrawl/api-key.txt (one line, just the key). Read from this file on future runs.
<!-- TODO: fill in later --> in the output and move on. Never pressure.When the skill triggers (init), open with this welcome message before asking anything:
Welcome to init-kb. I'm going to build a complete knowledge base that gives your AI agents full context on your business — who you are, what you sell, how you write, and what the rules are.
Here's what we're building:
- 9 structured files covering your business, person, voice, and boundaries
- Your full website scraped and analyzed (if you have one)
- A living KB that gets smarter over time
Estimated time: 10-20 minutes (faster if you have a website to scrape)
Do you have a Firecrawl API key? That's what I use to scrape your website and social profiles. If not, grab one free here: https://firecrawl.link/operator — come back when you have it and we'll continue.If they say they have a key (or one is already saved), move to API key setup guidance below. If they don't have one yet, wait for them to confirm before proceeding.
API key setup — ask first: "Are you running OpenClaw locally on your machine (Mac, PC) or on a server/VPS?"
If local:
To save your key permanently, run this in your terminal:
echo 'export FIRECRAWL_API_KEY=your-key-here' >> ~/.zshrc && source ~/.zshrc
Or if you use bash: replace .zshrc with .bashrc
Then paste your key here and I'll also save it to .firecrawl/api-key.txt as a backup.If VPS/server:
Three ways to add it:
Option 1 — Hostinger (GUI):
Log into Hostinger, go to Catalogue, click Manage on your VPS, scroll down to Environment Variables, and add:
Key: FIRECRAWL_API_KEY
Value: your-key-hereOption 2 — Any VPS via terminal:
echo 'export FIRECRAWL_API_KEY=your-key-here' >> ~/.bashrc && source ~/.bashrc(Replace .bashrc with .zshrc if you use zsh.)
Option 3 — Just paste it here: Paste your key directly in this chat and I'll save it to .firecrawl/api-key.txt. Only do this if you're the only one with access to your server and Discord channel. Never paste API keys in shared or public channels.
After they paste the key, save it to .firecrawl/api-key.txt and confirm: "Got it. Key saved."
Then proceed:
Question 1: "What's the project or business name? This becomes the folder name."
Question 2: "Got a website URL? Any social profiles (LinkedIn, X, YouTube, Instagram)? Any other important links (docs, portfolio, press pages, Skool community)? Drop them all here. If you don't have any yet, just say 'none' and we'll skip the scraping."
After Phase 0:
Check if KNOWLEDGE BASE/<project-name>/ already exists:
Check cache. If .firecrawl/<project-slug>/crawl-raw.json exists and is less than 7 days old: "I already scraped this site on [date]. Want to use the cached data or re-scrape?" If cache is good, skip to Stage 4.
If a website URL was provided, run the Firecrawl scraping pipeline:
curl -s -X POST "https://api.firecrawl.dev/v1/map" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "<website-url>", "limit": 500}' \
-o .firecrawl/<project-slug>/map-result.jsonParse the response to get the URL list and count. Present to the user: "I found X pages on your site. Crawling all of them will use approximately X Firecrawl credits. Want me to proceed, or should I limit it?"
If the user wants to limit, ask for a number or suggest core pages only.
curl -s -X POST "https://api.firecrawl.dev/v1/crawl" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "<website-url>", "limit": <N>, "scrapeOptions": {"formats": ["markdown"]}}' \
-o .firecrawl/<project-slug>/crawl-job.jsonThis returns a job ID. Poll for completion:
curl -s -X GET "https://api.firecrawl.dev/v1/crawl/<job-id>" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-o .firecrawl/<project-slug>/crawl-raw.jsonPoll every 10 seconds until status is "completed". Tell the user "Crawling... this might take a minute" while waiting.
After completion, parse the JSON and save each page as an individual markdown file in KNOWLEDGE BASE/<project-name>/site-content/ using URL-slug naming (e.g., homepage.md, about.md, products-widget-x.md).
If the crawl times out or fails: save whatever partial results were collected and continue with what you have.
For each social profile and important link, scrape individually:
curl -s -X POST "https://api.firecrawl.dev/v1/scrape" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "<url>", "formats": ["markdown"]}' \
-o .firecrawl/<project-slug>/social/<platform>.jsonParse the markdown content from each response and save as .md files in .firecrawl/<project-slug>/social/ and .firecrawl/<project-slug>/links/.
If a social scrape fails (anti-bot, login wall): note "limited extraction" and continue.
Read through every scraped page and social profile. Build a complete mental model of the business. Do not skim. Do not sample. Read it all.
Extract into BUSINESS-INTEL.md:
1. Products and Services
2. Business Model
3. Target Audience
4. Brand Positioning
5. Content Strategy
6. Tech Stack and Tools (if detectable)
7. Team and People
8. Legal and Compliance
9. Voice and Messaging Patterns
Size check: If BUSINESS-INTEL.md would exceed roughly 2000 words, split it. Core facts (products, pricing, model, audience, positioning, team, tech) stay in BUSINESS-INTEL.md. Analysis and opportunities (gaps, content signals, growth patterns) go to OPPORTUNITIES.md.
Extract into OPPORTUNITIES.md:
Gaps and signals found during analysis:
Mark each with: [ ] Not started, [~] In progress, [x] Done
Site structure handling:
Pre-fill answers from scraped content before asking questions:
Present a summary to the user:
"I crawled X pages and scraped Y social profiles. Here's what I know about your business:
What you sell: [products/services with pricing] Who you sell to: [target audience in their own language] How you position yourself: [key differentiators] Your content strategy: [what you publish, how often, what topics] Trust signals I found: [testimonials, stats, logos] Things I noticed: [gaps, opportunities, interesting patterns]
I've written all of this into BUSINESS-INTEL.md. Now let me confirm a few things I couldn't find on the site."
If the website was scraped, attempt to auto-detect the business type. Present as confirmation: "From your site, this looks like a [Creator / Personal Brand]. Is that right, or is it something else?"
If no website was scraped, ask directly:
Question 3: "What type of business is this?"
Progress update: "Got it. 1 of 4 sections done. Next: tell me about yourself."
Ask one at a time. If the scrape found an About page, LinkedIn profile, or bio, show what was extracted first: "From your website, I got this: [extracted bio]. Anything to add or correct?" Then skip to what the scrape missed.
Question 4: "Tell me about yourself in a few sentences. Background, what you're known for, what makes you different." (Skip if About page or LinkedIn bio was scraped and user confirms.)
Question 5: "What's your origin story? The short version. How did you end up doing what you do?" (Skip if About page covered this and user confirms.)
Question 6: "What do you disagree with in your industry? What do most people in your space get wrong?"
Question 7: "Drop 2-3 examples of content you've written or posts you're proud of. Paste the text or links. I'll analyze your voice from these." (If blog posts or social posts were scraped, use those automatically. Only ask for additional samples if fewer than 3 were found.)
If the user provides links, scrape them via the Scrape API. If they paste text, analyze directly. Extract sentence length patterns, vocabulary habits, tone, structural patterns, and recurring phrases.
Question 8: "Any words or phrases you hate? Things that make you cringe when you see them in content? These go straight into your banned list." (Always ask. Cannot be scraped.)
Progress update: "Personal section done. 2 of 4 sections complete. Next: your business."
If website was scraped, show what was extracted: "From your homepage, it looks like you do [X] for [Y]. Sound right?" Then ask only what the scrape missed.
Question 9: "What does your business actually do? Who's it for?" (Skip if homepage/about was scraped and user confirms.)
Question 10: "What are you optimizing for right now? Revenue? Growth? Awareness? Building an audience?" (Always ask. Cannot be scraped.)
Question 11: "Who are your competitors or the people in your space? What makes you different?" (Skip if scraped content made this clear and user confirms.)
Question 12: "Any non-negotiables? Things that must always be true about how your business shows up?" (Always ask. Cannot be scraped.)
Adaptive bonus questions by business type:
If SaaS: "Main features? Pricing model? Ideal customer profile?" If Agency: "Services? Client types? Standout case studies?" If Niche Site / Content Site: "Niche? Monetization? Content pillars?" If Creator / Personal Brand: "Platforms? Content formats? Monetization? Audience?" If E-commerce: "What do you sell? Channels? Brand story? Typical customer?"
Progress update: "Business section done. 3 of 4 sections complete. Last one: AI agent rules."
Question 13: "What should AI agents built from this KB be able to do? Write content? Customer support? Research? SEO? Be specific."
Question 14: "What should the AI never do? Hard boundaries?"
Question 15: "Anything legally sensitive, topics to avoid, or things that need human approval?"
Progress update: "All questions done. Let me show you what I've got before generating the files."
Present a summary organized by output file (key points, not full files):
Here's what I captured:
**PERSONA.md** (Agent Identity)
- Role: [what the agent does]
- Core rules: [2-3 key rules]
- Boundaries: [key restrictions]
**CONTEXT.md** (Business)
- Business: [what it does, who it's for]
- Goals: [top 3 priorities]
- Differentiator: [what makes them different]
**USER.md** (The Person)
- Background: [key points]
- Origin: [short version]
- Values: [what they care about]
**VOICE.md** (Writing Style)
- Tone: [analysis from samples]
- Banned: [key items]
- Style: [key patterns]
**GUARDRAILS.md** (Boundaries)
- Never: [key restrictions]
- Sensitive: [topics requiring care]
- Approval required: [what needs sign-off]
**SITEMAP.md** (Site Structure) [only if 20+ pages]
- Total pages: [count]
- Categories: [breakdown]
**BUSINESS-INTEL.md** (Deep Analysis)
- Products/services: [list with pricing]
- Business model: [how they make money]
- Target audience: [who, in their language]
**OPPORTUNITIES.md** (Gaps and Growth Signals)
- [key gaps and opportunities found]
**CORRECTIONS.md** (Self-Improving Log)
- Empty on first run. Gets populated as the user corrects outputs over time.Ask: "Anything I missed or got wrong?"
After user confirms, generate all files.
Generate all 9 KB files. See templates below.
PERSONA.md template:
# Agent Persona — <project-name>
## Role
[What this agent does. One sentence. Specific.]
## Personality
[Tone, vibe, how it comes across. Not "professional" — specific.]
## Core Rules
- [Rule 1 — specific and actionable]
- [Rule 2]
- [Rule 3]
## Boundaries
- Never: [hard nos]
- Always ask before: [things needing approval]
- Sensitive topics: [list]
## Voice
See VOICE.md — read it before writing anything.CORRECTIONS.md template (initial — empty, ready for use):
# Corrections Log
This file tracks every time the user corrected an agent output. Each correction updates the source KB file directly, then gets logged here so the pattern is visible over time.
## How it works
When you correct an output, identify which KB file influenced the mistake, update that file with the correct rule or information, then log the correction below.
---
<!-- Corrections will appear here as you use the KB -->CORRECTIONS.md — how it gets used (ongoing):
Whenever the user says something like "that's wrong", "I wouldn't say it that way", "don't do that", or corrects a specific output:
## [DATE] — [brief description of what was corrected]
- **Output type:** [content / decision / recommendation]
- **What was wrong:** [brief description]
- **Source file updated:** [e.g., VOICE.md]
- **What changed:** [old assumption or rule] replaced with [corrected rule]Tell the user during the onboarding wizard: "One more thing: whenever I get something wrong and you correct me, I'll update the relevant KB file automatically. The KB gets smarter every time you correct an output."
Include SITEMAP.md in generated files only if it was generated as standalone.
After generating all files, do this automatically:
## Knowledge Base: <project-name>
**When working on <project-name> content**, read these files in order:
1. KNOWLEDGE BASE/<project-name>/PERSONA.md
2. KNOWLEDGE BASE/<project-name>/CONTEXT.md
3. KNOWLEDGE BASE/<project-name>/VOICE.md
4. KNOWLEDGE BASE/<project-name>/GUARDRAILS.md
5. KNOWLEDGE BASE/<project-name>/BUSINESS-INTEL.md
Read USER.md, SITEMAP.md, and OPPORTUNITIES.md only on demand when needed. **Do not load on every session** — context bloat kills productivity.Tell the user: "I've added KB guidance to your AGENTS.md. Load these files only when you're working on <project-name> content, not on every session."
Also provide this Claude Code snippet for CLAUDE.md:
## Knowledge Base: <project-name>
**Before writing content, building agents, or making decisions about this project:**
Load files in this order:
1. KNOWLEDGE BASE/<project-name>/PERSONA.md — agent rules and behavior
2. KNOWLEDGE BASE/<project-name>/CONTEXT.md — business fundamentals
3. KNOWLEDGE BASE/<project-name>/VOICE.md — writing style and tone
4. KNOWLEDGE BASE/<project-name>/GUARDRAILS.md — boundaries and sensitive topics
5. KNOWLEDGE BASE/<project-name>/BUSINESS-INTEL.md — deep business analysis
**On-demand references:**
- USER.md — personal background (load when needed)
- SITEMAP.md — site structure (load for navigation questions)
- OPPORTUNITIES.md — gaps and growth signals (load when brainstorming)
Full page content is available in `site-content/` for deep analysis when you need to reference specific pages or check existing positioning.
**Important:** Do not load the KB at boot for unrelated work. Only load when actively working on <project-name> projects.When an update trigger fires ("update kb", "refresh kb", "re-scrape kb", "kb update"):
List existing KBs in KNOWLEDGE BASE/. If multiple exist, ask: "Which project do you want to update?" and wait for confirmation.
Ask: "Re-scrape the site, or just update manually?"
If re-scraping:
site-content/ filesIf updating manually:
If re-scraping found changes, note them: "Updated BUSINESS-INTEL.md (pricing change on /pricing), SITEMAP.md (3 new pages), OPPORTUNITIES.md (refreshed gaps)." No log entry needed unless the user corrects something during the update session.
When the user provides writing samples (or when blog posts are scraped), analyze for:
Use this to populate VOICE.md with specific, actionable observations. Not "conversational tone" but "writes in lowercase, uses fragments, averages 8 words per sentence, opens with a bold claim."
<!-- TODO: fill in later -->All scraping uses the Firecrawl REST API (https://api.firecrawl.dev/v1/). The API key is passed via the Authorization: Bearer header.
| Endpoint | Method | What it does | Cost |
|---|---|---|---|
/v1/map | POST | Discover all URLs on a site | Free/near-free |
/v1/crawl | POST | Start a full site crawl (async, returns job ID) | ~1 credit/page |
/v1/crawl/<id> | GET | Check crawl status / get results | Free |
/v1/scrape | POST | Scrape a single URL to markdown | 1 credit |
Map request body: {"url": "<url>", "limit": 500}
Crawl request body: {"url": "<url>", "limit": <N>, "scrapeOptions": {"formats": ["markdown"]}}
Scrape request body: {"url": "<url>", "formats": ["markdown"]}
Crawl polling: The crawl endpoint returns {"id": "..."}. Poll GET /v1/crawl/<id> every 10 seconds until status is "completed".
.firecrawl/<project-slug>/.firecrawl/<project-slug>/crawl-raw.json exists and is less than 7 days old, offer to reuse itsite-content/ directory in the KB is the processed output, not the cache.firecrawl/<project-slug>/social/.firecrawl/<project-slug>/links/.firecrawl/api-key.txt| Scenario | What to do |
|---|---|
| No API key | Walk through Phase 0 API key setup. Save to .firecrawl/api-key.txt. |
| API returns 401 | Key is invalid or expired. Ask user for a new key. |
| Crawl times out | Save partial results. Note which pages were missed. Continue with what you have. |
| Social scrape fails (anti-bot) | Note "limited extraction" for that profile. Continue with other sources. |
| Rate limited (429) | Wait 30 seconds and retry. If it happens 3 times, stop and continue with what you have. |
| No website URL provided | Skip all scraping. All questions become mandatory. Still produces all 9 KB files. |
KNOWLEDGE BASE/<project-name>/
PERSONA.md
CONTEXT.md
USER.md
VOICE.md
GUARDRAILS.md
SITEMAP.md (only if 20+ pages)
BUSINESS-INTEL.md
OPPORTUNITIES.md
CORRECTIONS.md
site-content/
homepage.md
about.md
pricing.md
blog-post-slug.md
...
.firecrawl/
api-key.txt
<project-slug>/
map-result.json
crawl-job.json
crawl-raw.json
social/
linkedin.md
twitter.md
youtube.md
instagram.md
links/
docs.md
portfolio.md
...© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/init-kb of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Init Kb next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Init Kb this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~7k | Automated safety check: Pass | MIT | |
| Firecrawl Knowledge Basefirecrawl/skills | 117 | — | ~612 | Automated safety check: Pass | ISC | |
| Firecrawl Knowledge Ingestfirecrawl/skills | 117 | — | ~565 | Automated safety check: Pass | ISC | |
| Keirouter Web Fetchmydisha/keirouter | 147 | — | ~741 | Automated safety check: Pass | MIT | |
| Firecrawl Scrapefirecrawl/skills | 117 | — | ~1.8k | Automated safety check: Pass | ISC | |
| Firecrawl Agentfirecrawl/skills | 117 | — | ~1.2k | Automated safety check: Pass | ISC |
firecrawl/skills
Build a knowledge base from web content with Firecrawl. An agent skill from firecrawl/skills.
firecrawl/skills
Ingest public or authenticated knowledge bases and docs portals with Firecrawl browser.
mydisha/keirouter
Fetch URL → markdown / text / HTML via KeiRouter /v1/web/fetch using Firecrawl / Jina Reader / Tavily Extract / Exa Contents.
firecrawl/skills
Read a known webpage or execute a discovered workflow or data-provider capability.
firecrawl/skills
Autonomously navigate websites and extract structured data across pages.
firecrawl/skills
Extract structured company lists from directories with Firecrawl.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
Initialize or update a knowledge base for a project, business, or client. Init Kb is an agent skill from LeoYeAI/openclaw-master-skills. Initialize or update a knowledge base for a project, business, or client.
Init Kb fits situations like: create kb for X; kb update (update).
Run `npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a claude-code`. Or copy the skill folder (skills/init-kb in LeoYeAI/openclaw-master-skills) into .claude/skills/init-kb in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a codex`. Or copy the skill folder (skills/init-kb in LeoYeAI/openclaw-master-skills) into .agents/skills/init-kb in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill init-kb -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/init-kb, .gemini/skills/init-kb, .github/skills/init-kb and .opencode/skills/init-kb in your project.
Going by SKILL.md and its folder, Init Kb needs the command-line tools its instructions call (curl) and credentials named FIRECRAWL_API_KEY. Our summary lists: A credential in FIRECRAWL_API_KEY.
SKILL.md names 2 domains. In commands or code: api.firecrawl.dev and firecrawl.link; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Init Kb is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Init Kb: Firecrawl Knowledge Base (firecrawl/skills, 117 stars), Firecrawl Knowledge Ingest (firecrawl/skills, 117 stars), Keirouter Web Fetch (mydisha/keirouter, 147 stars) and Firecrawl Scrape (firecrawl/skills, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,160 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.