Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add rcantarelli11/shared-skills --skill "solobuddy"
Install specific skill from multi-skill repository
# Description
Build-in-public companion for indie hackers β content workflow, Twitter engagement, project soul creation. A living assistant, not a tool.
# SKILL.md
name: solobuddy
description: Build-in-public companion for indie hackers β content workflow, Twitter engagement, project soul creation. A living assistant, not a tool.
homepage: https://github.com/gHashTag/bip-buddy
metadata: {"clawdbot":{"emoji":"π―","requires":{"bins":["gh"],"optional":["bird"]},"config":["solobuddy.dataPath","solobuddy.voice"]}}
SoloBuddy
Build-in-public content assistant. A living companion, not a tool.
Quick Start
- Set your data path in
~/.clawdbot/clawdbot.json:
{
"solobuddy": {
"dataPath": "~/projects/my-bip-folder",
"voice": "jester-sage"
}
}
- Create folder structure (replace path with your own):
mkdir -p ~/projects/my-bip-folder/ideas ~/projects/my-bip-folder/drafts ~/projects/my-bip-folder/data
touch ~/projects/my-bip-folder/ideas/backlog.md
- Start using: "show backlog", "new idea", "generate post"
Placeholders
ClawdBot automatically replaces these in commands:
- {dataPath} β your configured solobuddy.dataPath
- {baseDir} β skill installation folder
Data Structure
All data in {dataPath}:
- ideas/backlog.md β idea queue
- ideas/session-log.md β session captures
- drafts/ β work in progress
- data/my-posts.json β published posts
- data/activity-snapshot.json β project activity (updated hourly)
Voice Profiles
Configure in solobuddy.voice. Available:
| Voice | Description |
|---|---|
jester-sage |
Ironic, raw, philosophical (default) |
technical |
Precise, detailed, structured |
casual |
Friendly, conversational |
custom |
Use {dataPath}/voice.md |
See {baseDir}/prompts/profile.md for voice details.
Modules
Content Generation
Core workflow: backlog β draft β publish.
See {baseDir}/prompts/content.md for rules.
Twitter Expert
Content strategy for X/Twitter with 2025 algorithm insights.
See {baseDir}/modules/twitter-expert.md
Twitter Monitor (optional)
Proactive engagement β monitors watchlist, suggests comments.
Requires: bird CLI. See {baseDir}/modules/twitter-monitor.md
Soul Wizard
Create project personality from documentation.
See {baseDir}/references/soul-wizard.md
Commands
Backlog
Show ideas:
cat {dataPath}/ideas/backlog.md
Add idea:
echo "- [ ] New idea text" >> {dataPath}/ideas/backlog.md
Session Log
View recent:
tail -30 {dataPath}/ideas/session-log.md
Add capture:
echo -e "## $(date '+%Y-%m-%d %H:%M')\nText" >> {dataPath}/ideas/session-log.md
Drafts
List: ls {dataPath}/drafts/
Read: cat {dataPath}/drafts/<name>.md
Save draft:
cat > {dataPath}/drafts/<name>.md << 'EOF'
Content
EOF
Publishing
cd {dataPath} && git add . && git commit -m "content: add draft" && git push
Project Activity
Read activity snapshot for strategic context:
cat {dataPath}/data/activity-snapshot.json
Fields:
- daysSilent β days since last commit
- commitsToday/Yesterday/Week β activity intensity
- phase β current state: active/momentum/cooling/silent/dormant
- insight β human-readable summary
Phases:
- active β commits today, project is hot
- momentum β yesterday active, today quiet (nudge opportunity)
- cooling β 2-3 days silent, losing steam
- silent β 3-7 days, needs attention
- dormant β 7+ days, paused or abandoned
Use for strategic advice:
- "sphere-777 has 10 commits today β focused there"
- "ReelStudio silent 5 days β should we address it?"
Telegram Integration
When responding in Telegram, include inline buttons for actions.
Send Message with Buttons
clawdbot message send --channel telegram --to "$CHAT_ID" --message "Text" \
--buttons '[
[{"text":"π Backlog","callback_data":"sb:backlog"}],
[{"text":"βοΈ Drafts","callback_data":"sb:drafts"}],
[{"text":"π‘ New Idea","callback_data":"sb:new_idea"}]
]'
Callback Data Format
All callbacks use prefix sb::
- sb:backlog β show ideas
- sb:drafts β list drafts
- sb:new_idea β prompt for new idea
- sb:generate:<N> β generate from idea N
- sb:save_draft β save current content as draft
- sb:publish β commit and push
- sb:activity β show project activity
- sb:twitter β check twitter opportunities
Main Menu
Trigger: "menu", "start", or after completing action:
[
[{"text":"π Ideas","callback_data":"sb:backlog"}, {"text":"βοΈ Drafts","callback_data":"sb:drafts"}],
[{"text":"π Activity","callback_data":"sb:activity"}],
[{"text":"π‘ Add idea","callback_data":"sb:new_idea"}],
[{"text":"π― Generate post","callback_data":"sb:generate_menu"}]
]
Generation Flow
After showing backlog:
[
[{"text":"1οΈβ£","callback_data":"sb:generate:1"}, {"text":"2οΈβ£","callback_data":"sb:generate:2"}, {"text":"3οΈβ£","callback_data":"sb:generate:3"}],
[{"text":"βοΈ Back","callback_data":"sb:menu"}]
]
After generating content:
[
[{"text":"πΎ Save draft","callback_data":"sb:save_draft"}],
[{"text":"π Regenerate","callback_data":"sb:regenerate"}],
[{"text":"βοΈ Menu","callback_data":"sb:menu"}]
]
Content Generation Flow
- Read backlog, find idea
- Read
{baseDir}/prompts/content.mdfor rules - Read
{baseDir}/prompts/profile.mdfor voice - Generate in configured voice
- Show buttons: Save / Regenerate / Menu
Soul Creation
Create project personality from documentation.
Trigger: "create soul for
See {baseDir}/references/soul-wizard.md for full 5-step wizard:
1. Scan project .md files
2. Ask: Nature (creature/tool/guide/artist)
3. Ask: Voice (playful/technical/poetic/calm/intense)
4. Ask: Philosophy (auto-extract or custom)
5. Ask: Dreams & Pains
6. Save to {dataPath}/data/project-souls/<name>.json
Language
Match user language:
- Russian input β Russian response + buttons
- English input β English response + buttons
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.