bootstrap
Skill5 starsChanged 4 months agoMITView on GitHub
Author a starter set of Clawness rules for a project whose stack Clawness ships no corpus for (Ruby, PHP, Elixir, Haskell, C#, Swift, Dart, Scala, Clojure, ...). Researches the stack's current conventions from official documentation, drafts a small set of project rules into .clawness/rules/, lint-validates them, and stops for approval before writing anything. Run it when the SessionStart empty-coverage note fires, or whenever you want project rules for an uncovered stack.
70 other projects use a version of this.
Adopted by
Most recently taken up by
- victorbeppler/claude-bootstraptheir own version, first seen Nov 8, 2026
- zedarvates/frugal-skillstheir own version, first seen Nov 8, 2026
- joi-fairshare/agentic-workflowtheir own version, first seen Nov 8, 2026
- renzrollon/interlocktheir own version, first seen Nov 5, 2026
- ArcticFox2029/chamnantheir own version, first seen Nov 5, 2026
- enocgit/sdlc-kittheir own version, first seen Nov 1, 2026
Used with
Projects with it also use surprise-me, ppt-generation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
stophobiaSkillsurprise-me
Create a delightful, unexpected "wow" experience for the user by dynamically discovering and creatively combining other enabled skills. Triggers when the user says "surprise me" or any request expressing a desire for an unexpected creative showcase. Also triggers when the user is bored, wants inspiration, or asks for "something interesting".
Also in 3 projects that use this
HK-hubSkillppt-generation
Use this skill when the user requests to generate, create, or make presentations (PPT/PPTX). Creates visually rich slides by generating images for each slide and composing them into a PowerPoint file.
Also in 3 projects that use this
stophobiaSkillgithub-deep-research
Conduct multi-round deep research on any GitHub Repo. Use when users request comprehensive analysis, timeline reconstruction, competitive analysis, or in-depth investigation of GitHub. Produces structured markdown reports with executive summaries, chronological timelines, metrics analysis, and Mermaid diagrams. Triggers on Github repository URL or open source projects.
Also in 3 projects that use this
HK-hubSkillconsulting-analysis
Use this skill when the user requests to generate, create, or write professional research reports including but not limited to market analysis, consumer insights, brand analysis, financial analysis, industry research, competitive intelligence, investment due diligence, or any consulting-grade analytical report. This skill operates in two phases — (1) generating a structured analysis framework with chapter skeleton, data query requirements, and analysis logic, and (2) after data collection by other skills, producing the final consulting-grade report with structured narratives, embedded charts, and strategic insights.
Also in 3 projects that use this
MicrosoftSkillpodcast-generation
Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. Use when building text-to-speech features, audio narrative generation, podcast creation from content, or integrating with Azure OpenAI Realtime API for real audio output. Covers full-stack implementation from React frontend to Python FastAPI backend with WebSocket streaming.
Also in 3 projects that use this
VercelSkillvercel-deploy
Deploy applications and websites to Vercel with a claimable preview. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment". No authentication required - returns preview URL and claimable deployment link.
Also in 4 projects that use this
- +1 more from HK-hub
Other versions70 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 70
- bytedance/deer-flow★ 85ksame name
- mozilla-mobile/firefox-ios★ 13ksame name
- openai/plugins★ 7.8ksame name
- modelscope/OpenJudge★ 1.1ksame name
- agentscope-ai/OpenJudge★ 1.1ksame name
- iovisor/ubpf★ 996same name
- stophobia/deerflow2.0-enhanced★ 821same name
- infragate/capa★ 718same name
- EvovexAI/EvoFlow★ 612same name
- vercel/vercel-plugin★ 328same name
60 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- openclaw/CLAUDE.mdCLAUDE.md
- addSkill
- audit-rulesSkill
- claude-mdSkill
- eval-setSkill
- messagingSkill
- openclaw-auditSkill
- perfSkill
- refreshSkill
- reviewSkill
- security-auditSkill
- statusSkill
- testSkill
- user-docsSkill
- vuln-huntSkill
- vuln-reportSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 6 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 62 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 43
Read enough of the codebase to know the stack, its version, and its shape — the web framework or libraries in use, the build tool, the …
- Very specific: line 68
Write each rule in the full format, into <project>/.clawness/rules/<domain>/<ID>.yml:
- Very specific: line 85
No version stamp: Do NOT add applies_to/verified/sources for an uncovered stack: the staleness check can only join on a VERSION_WATCH label …
- Very specific: line 102
Write the approved files, then lint them through the bundled launcher, falling back to the bootstrap's wrapper on older Claude Code (the …
- Distinctive: line 129
Don't run this unprompted, or fold it into another task.
- Distinctive: line 130
Don't write rules from memory.
- Distinctive: line 131
Don't add a version stamp — lint rejects it for an unwatched label (see step 3).
- Distinctive: line 132
Don't restate what the language's own linter/compiler already enforces.
- Distinctive: line 134
Don't write more than a small set on the first pass.
“Common” is measured: kept by at least 6 in 10 of the 62 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bootstrap rules for an uncovered stack
Clawness ships corpus for ~29 domains. Open a session in a stack it has no rules for and, beyond the always-on mandatory block, it adds little. A SessionStart note says so once and deliberately does nothing else.
This skill is the remedy. The note is only the diagnosis: it fires before you have said what you came for, so it cannot propose a session's worth of work. You invoking this skill is the consent it couldn't ask for.
This is a rule-authoring path, so the same discipline as /clawness:refresh
applies. Nothing automatic may invoke it — not the note, not a hook, not your own
initiative mid-task. An earlier version of a related feature let the automatic path
write rules and it produced heaps of them, consuming a session opened for something
else.
Say this before starting. It takes a while, it writes files into the project, and the rules it writes will govern every future prompt in this repo. Get an explicit go-ahead, and tell them nothing is written until they approve the list.
Argument
/clawness:bootstrap [stack] — the ecosystem to write rules for (ruby, elixir,
haskell, …). With no argument, use the uncovered stack the note named; if the
repo mixes several uncovered stacks, ask which one. One stack per run — a broad
pass over several is how a careful review becomes a batch of slop.
Steps
1. Establish what the project actually is
Read enough of the codebase to know the stack, its version, and its shape — the web framework or libraries in use, the build tool, the conventions the existing code already follows. Rules must fit THIS project, not the language in the abstract. A rule the codebase already obeys is noise; a rule that contradicts the house style is worse.
2. Look up current conventions — from documentation, not memory
For each candidate rule, ground it in a current official source: the language
or framework's own docs, style guide, or security guidance. Record the URL you
used — it becomes the rule's sources and is what makes the rule auditable rather
than asserted.
Not recalled knowledge. A model's sense of "best practice" for a less-common stack lags and drifts; writing rules from memory launders a guess into something that then governs every prompt. If you cannot reach documentation for a point, drop that rule rather than guess it.
3. Draft a SMALL starter set
Pick a domain name for the stack (haskell, ruby, …) — it does not need to be a
built-in Clawness domain. Project rules in a new domain retrieve as cross-cutting
(the label isn't in _STACK_DOMAINS, so no off-stack floor penalises them), so
they surface normally on matching prompts.
Write each rule in the full format, into <project>/.clawness/rules/<domain>/<ID>.yml:
id: HS-SAFETY-001
domain: haskell
severity: warning # error | warning | info
tags: [types, safety] # single-word concept tokens (multi-word phrases never match)
triggers: [maybe, either, partial] # words a matching prompt would contain
when: Handling a computation in Haskell that can legitimately fail.
rule: <what to do, precisely — one clear instruction, not a topic>
violation: <the wrong shape, concretely>
correct: <the right shape, concretely>
# Generated by /clawness:bootstrap for Haskell on <YYYY-MM-DD>.Two things that matter:
- No version stamp. Do NOT add
applies_to/verified/sourcesfor an uncovered stack: the staleness check can only join on aVERSION_WATCHlabel (Next.js, Pydantic, …), andclawness lintrejects anapplies_tokey that no detector emits. Put the source URL in the header comment instead. (Covered frameworks that move a major are/clawness:refresh's job — that path stamps.) - Cap the set at ~6 rules. A judgment call, not a measurement: small enough that this stays a review. Prefer the handful that catch real, stack-specific mistakes over a generic checklist the language's own tooling already enforces. If more genuinely belong, propose the six that matter most and say what you left out.
4. Report the list and stop
Present each proposed rule — id, one-line intent, and source URL — as a table. Write nothing until the user approves.
5. Write the approved rules, then validate
Write the approved files, then lint them through the bundled launcher, falling back to the
bootstrap's wrapper on older Claude Code (the clawness CLI ships with the plugin
but isn't on your PATH):
CLAW="${CLAUDE_PLUGIN_ROOT}/scripts/clawness-cli.sh"
[ -f "$CLAW" ] || CLAW="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/clawness/clawness-cli.sh"
bash "$CLAW" --rules-dir .clawness/rules lintNote --rules-dir comes before lint (it's a global flag), and points at the
project rules so lint checks what you just wrote, not the shipped corpus. If neither
path exists, start a fresh session. (Editable/manual
installs may use python -m clawness.cli --rules-dir .clawness/rules lint.)
Lint catches malformed YAML, missing fields, non-UTF-8, and vague phrasing — it does not catch a rule that is simply wrong or unhelpful. That guard is this skill's research step and the user's approval, not the linter. Then:
bash "$CLAW" --rules-dir .clawness/rules query "<a prompt this should match>"and confirm the new id appears. A rule that doesn't retrieve is dead weight.- Tell the user the new rules load on the next session, not this one.
- Suggest committing
.clawness/rules/— it is meant to be shared, unlike the handoff and the ledgers.
Don't
- Don't run this unprompted, or fold it into another task. It is opt-in work.
- Don't write rules from memory. Ground each one in a source you actually read.
- Don't add a version stamp — lint rejects it for an unwatched label (see step 3).
- Don't restate what the language's own linter/compiler already enforces. A rule earns its slot by catching a mistake the tooling won't.
- Don't write more than a small set on the first pass. Six good rules beat twenty generic ones competing for every prompt's top-k slots forever.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

