fix: resolve lonely if ESLint warning

This commit is contained in:
Noah Brier
2025-09-15 08:49:07 -04:00
parent 61d14875d5
commit 3909ab476c
29 changed files with 1300 additions and 790 deletions
+169 -113
View File
@@ -1,17 +1,22 @@
---
name: init-bootstrap
description: Interactive setup wizard that helps new users create a personalized CLAUDE.md file based on their Obsidian workflow preferences
description:
Interactive setup wizard that helps new users create a personalized CLAUDE.md
file based on their Obsidian workflow preferences
allowed-tools: [Read, Write, MultiEdit, Bash, Task]
argument-hint: "(optional) path to existing vault or 'new' for fresh setup"
---
# Initialize Bootstrap Configuration
This command helps you create a personalized CLAUDE.md configuration file by asking questions about your Obsidian workflow and preferences.
This command helps you create a personalized CLAUDE.md configuration file by
asking questions about your Obsidian workflow and preferences.
## Task
Read the CLAUDE-BOOTSTRAP.md template and interactively gather information about the user's:
Read the CLAUDE-BOOTSTRAP.md template and interactively gather information about
the user's:
- Existing vault structure (if any)
- Workflow preferences
- Note-taking style
@@ -36,7 +41,8 @@ Then generate a customized CLAUDE.md file tailored to their needs.
- Personal vault: Remove origin and .github folder
- Contributing: Keep origin and workflows intact
- If clean local repo: Ready to go
- Don't create folders yet - wait until after asking about organization method
- Don't create folders yet - wait until after asking about organization
method
2. **Check Existing Configuration**
- Look for existing CLAUDE.md
@@ -46,8 +52,10 @@ Then generate a customized CLAUDE.md file tailored to their needs.
3. **Gather Vault Information**
- Search common locations for existing Obsidian vaults (.obsidian folder)
- Check: ~/Documents, ~/Desktop, home directory, current directory parent
- If found, ask: "Found Obsidian vault at [path]. Is this the vault you want to import?"
- Count files correctly: `find [path] -type f -name "*.md" | wc -l` (no depth limit)
- If found, ask: "Found Obsidian vault at [path]. Is this the vault you want
to import?"
- Count files correctly: `find [path] -type f -name "*.md" | wc -l` (no depth
limit)
- Show vault size: `du -sh [path]`
- If confirmed, analyze vault structure:
- Run `tree -L 3 -d [path]` to see folder hierarchy
@@ -61,19 +69,22 @@ Then generate a customized CLAUDE.md file tailored to their needs.
4. **Ask Configuration Questions**
- "What's your name?" (for personalization)
- "Would you like me to research your public work to better understand your context?"
- "Would you like me to research your public work to better understand your
context?"
- If yes: Search for information
- ALWAYS show findings and ask "Is this correct?" for confirmation
- If multiple people found, list them numbered for selection
- If wrong person, offer to search again or skip
- Save relevant context about their work, writing style, areas of expertise
- "Do you follow the PARA method or have a different organization system?"
- "What are your main use cases? (research, writing, project management, knowledge base, daily notes)"
- "What are your main use cases? (research, writing, project management,
knowledge base, daily notes)"
**If using PARA, ask specific setup questions:**
[PARA Method by Tiago Forte](https://fortelabs.com/blog/para/)
- "What active projects are you working on?" (Create folders in 01_Projects)
- "What areas of responsibility do you maintain?" (e.g., Work, Health, Finance, Family)
- "What areas of responsibility do you maintain?" (e.g., Work, Health,
Finance, Family)
- "What topics do you research frequently?" (Set up in 03_Resources)
- "Any projects you recently completed?" (Can archive with summaries)
@@ -91,20 +102,30 @@ Then generate a customized CLAUDE.md file tailored to their needs.
5. **Optional Tool Setup**
**Gemini Vision (already included)**
- Ask: "Gemini Vision is already included for analyzing images, PDFs, and videos. Would you like to activate it? (yes/no/later)"
- Explain: "You just need a free API key from Google. This lets Claude analyze any visual content in your vault."
- If later: "No problem! You can set it up anytime by running `/setup-gemini`"
- Ask: "Gemini Vision is already included for analyzing images, PDFs, and
videos. Would you like to activate it? (yes/no/later)"
- Explain: "You just need a free API key from Google. This lets Claude
analyze any visual content in your vault."
- If later: "No problem! You can set it up anytime by running
`/setup-gemini`"
- If yes:
- Guide to get API key from https://aistudio.google.com/apikey (free, takes 30 seconds)
- Guide to get API key from https://aistudio.google.com/apikey (free, takes
30 seconds)
- Help add to shell profile (.zshrc, .bashrc, etc.)
- Run `claude mcp add --scope project gemini-vision node .claude/mcp-servers/gemini-vision.mjs`
- Run
`claude mcp add --scope project gemini-vision node .claude/mcp-servers/gemini-vision.mjs`
- Configure .mcp.json with API key
- Test the connection with a sample command
**Firecrawl (already included)**
- Ask: "Firecrawl is included for web research. Would you like to set it up? (yes/no/later)"
- Explain: "This is a game-changer for research! When you find an article or website, you can save it directly to your vault as markdown - preserving the content forever, making it searchable, and letting Claude analyze it. Perfect for building a research library."
- Example: "Just tell Claude: 'Save this article to my vault: [URL]' and it's done!"
- Ask: "Firecrawl is included for web research. Would you like to set it up?
(yes/no/later)"
- Explain: "This is a game-changer for research! When you find an article or
website, you can save it directly to your vault as markdown - preserving
the content forever, making it searchable, and letting Claude analyze it.
Perfect for building a research library."
- Example: "Just tell Claude: 'Save this article to my vault: [URL]' and it's
done!"
- If later: "You can set it up anytime by running `/setup-firecrawl`"
- If yes:
- Guide to get API key from https://firecrawl.dev (free tier available)
@@ -122,7 +143,11 @@ Then generate a customized CLAUDE.md file tailored to their needs.
"companies": ["Variance", "Percolate"],
"roles": ["Co-founder", "Writer"],
"publications": ["Why Is This Interesting?", "every.to"],
"expertise": ["Developer tools", "Marketing tech", "Systems thinking"],
"expertise": [
"Developer tools",
"Marketing tech",
"Systems thinking"
],
"interests": ["AI for thinking", "Note-taking systems", "Creativity"]
},
"profileSources": [
@@ -164,7 +189,8 @@ Then generate a customized CLAUDE.md file tailored to their needs.
7. **Import Existing Vault (if applicable)**
- If user has existing vault:
- Create OLD_VAULT folder: `mkdir OLD_VAULT`
- Copy entire vault preserving structure: `cp -r [vault-path]/* ./OLD_VAULT/`
- Copy entire vault preserving structure:
`cp -r [vault-path]/* ./OLD_VAULT/`
- Copy Obsidian configuration: `cp -r [vault-path]/.obsidian ./`
- Check for and copy other important files:
- `.trash/` (Obsidian's trash folder)
@@ -172,7 +198,8 @@ Then generate a customized CLAUDE.md file tailored to their needs.
- Any workspace files: `.obsidian.vimrc`, etc.
- Skip copying: `.git/` (they'll have their own), `.claude/` (using ours)
- Show summary: "Imported your vault to OLD_VAULT/ (X files, Y folders)"
- Explain: "Your original structure is preserved in OLD_VAULT. You can gradually migrate files to the PARA folders as needed."
- Explain: "Your original structure is preserved in OLD_VAULT. You can
gradually migrate files to the PARA folders as needed."
8. **Create Supporting Files**
- Generate initial folder structure if new vault
@@ -195,22 +222,22 @@ Then generate a customized CLAUDE.md file tailored to their needs.
- Verify git is tracking files correctly
10. **Provide Next Steps**
- Summary of what was created and configured
- Quick start guide specific to their setup
- List of available commands they can use
- Test commands to verify everything works
- Suggestions for first tasks based on their use cases
- How to modify configuration later
- Summary of what was created and configured
- Quick start guide specific to their setup
- List of available commands they can use
- Test commands to verify everything works
- Suggestions for first tasks based on their use cases
- How to modify configuration later
## Example Output
```markdown
# Your Obsidian Vault Configuration
Generated on: [Run `date +"%B %d, %Y"` to get current date]
Last updated: [Same date]
Based on your preferences for: [main use cases]
Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
Generated on: [Run `date +"%B %d, %Y"` to get current date] Last updated: [Same
date] Based on your preferences for: [main use cases] Setup completed with: ✅
Dependencies ✅ Folder structure ✅ Git initialized
## Your Custom Folder Structure
@@ -219,12 +246,15 @@ Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
## Your Workflows
### Daily Routine
[Based on their answers]
### Project Management
[Their specific approach]
### Research Method (Noah Brier Style)
- Capture everything you read
- Let important ideas naturally resurface
- Start with writing to test understanding
@@ -232,20 +262,24 @@ Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
- [Learn more from Noah's system](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452)
### Weekly Review Ritual
[If enabled: Every Thursday at 4pm, review all projects]
## Your Preferences
### File Naming
- Pattern: [their convention]
- Examples: [specific examples]
### Tools & Scripts
[Relevant scripts for their workflow]
## MCP Servers (if configured)
### Gemini Vision
- Status: ✅ Configured and tested
- API Key: Set in .mcp.json
- Test with: `Use gemini-vision to analyze [image path]`
@@ -253,11 +287,13 @@ Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
## Available Commands
### Vault Management
- `pnpm vault:stats` - Show vault statistics
- `pnpm attachments:list` - List unprocessed attachments
- `pnpm attachments:organized` - Count organized files
### Claude Commands
- `claude run thinking-partner` - Collaborative thinking mode
- `claude run daily-review` - Review your day
- `claude run init-bootstrap` - Re-run this setup
@@ -271,21 +307,20 @@ Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
## Pro Tips from Research Masters
- **Be a token maximalist**: Provide lots of context to Claude
- **Writing scales**: Document everything for future reference ([Noah Brier](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452))
- **Writing scales**: Document everything for future reference
([Noah Brier](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452))
- **Trust emergence**: Important ideas will keep surfacing
- **Start with writing**: Always begin projects in text form
- **Review regularly**: Set aside time weekly to prune and update
- **PARA Method**: Projects, Areas, Resources, Archive ([Tiago Forte](https://fortelabs.com/blog/para/))
- **PARA Method**: Projects, Areas, Resources, Archive
([Tiago Forte](https://fortelabs.com/blog/para/))
## Setup Summary
✅ Dependencies installed (pnpm/npm)
✅ Folder structure created
Git repository initialized and disconnected from original
✅ CLAUDE.md personalized
✅ First-run setup completed
[✅ MCP Gemini Vision configured - if set up]
[✅ First commit made - if git was initialized]
✅ Dependencies installed (pnpm/npm) ✅ Folder structure created ✅ Git
repository initialized and disconnected from original ✅ CLAUDE.md personalized
First-run setup completed [✅ MCP Gemini Vision configured - if set up] [✅
First commit made - if git was initialized]
```
## Important Implementation Notes
@@ -293,24 +328,30 @@ Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
### Handling Multiple Vaults
When multiple vaults are detected:
1. **Always list all vaults found** with clear numbering and details
2. **Require explicit selection** - don't assume which vault to use
3. **Confirm the selection** before proceeding with import
4. **Handle ambiguous responses** - if user provides unclear input (like pasting a screenshot), ask for clarification:
- "I see you've shared a screenshot. Could you please type the number (1-3) of the vault you'd like to import?"
- "I need a clear selection. Please type '1', '2', or '3' to choose a vault, or 'skip' to start fresh."
4. **Handle ambiguous responses** - if user provides unclear input (like pasting
a screenshot), ask for clarification:
- "I see you've shared a screenshot. Could you please type the number (1-3)
of the vault you'd like to import?"
- "I need a clear selection. Please type '1', '2', or '3' to choose a vault,
or 'skip' to start fresh."
### Never Proceed Without Clear Confirmation
If the user's response is unclear:
- Don't guess or assume
- Ask for explicit confirmation
- Provide clear options again
- Example: "I want to make sure I import the right vault. Please type the number of your choice (1, 2, or 3)."
- Example: "I want to make sure I import the right vault. Please type the number
of your choice (1, 2, or 3)."
## Interactive Example
```
````
User: claude run init-bootstrap
Assistant: Welcome! I'll help you set up your personalized Obsidian + Claude configuration.
@@ -347,34 +388,33 @@ git remote remove origin # Disconnect from claudesidian repo
# If user says "Yes" (contributing):
# Keep .github folder and origin remote
echo "Development setup preserved for contributing"
```
````
*Why: Personal vaults don't need GitHub Actions, but contributors benefit from the automation*
_Why: Personal vaults don't need GitHub Actions, but contributors benefit from
the automation_
📂 **Creating Folder Structure**
[Creates folders based on your chosen organization method]
*Why: A good structure helps you organize and find your knowledge effectively*
📂 **Creating Folder Structure** [Creates folders based on your chosen
organization method] _Why: A good structure helps you organize and find your
knowledge effectively_
🎯 **Finalizing Setup**
[Checks git status and removes first-run marker]
*Why: Git gives you version control, and removing the marker ensures you won't see the welcome message again*
🎯 **Finalizing Setup** [Checks git status and removes first-run marker] _Why:
Git gives you version control, and removing the marker ensures you won't see the
welcome message again_
✅ Folder renamed (if requested)
✅ Dependencies installed
✅ Core folders created
✅ Git repository ready (disconnected from original claudesidian)
✅ First-run marker removed
✅ Folder renamed (if requested) ✅ Dependencies installed ✅ Core folders
created ✅ Git repository ready (disconnected from original claudesidian) ✅
First-run marker removed
Now let me ask you a few questions to customize your setup:
🔍 **Searching for existing Obsidian vaults...**
[Searches ~/Documents, ~/Desktop, ~/, and parent directories]
🔍 **Searching for existing Obsidian vaults...** [Searches ~/Documents,
~/Desktop, ~/, and parent directories]
### Case 1: Single Vault Found
Found Obsidian vault at: ~/Documents/MyNotes
📊 Vault stats: 2,517 markdown files, 1.1GB total size
Would you like to import this vault?
Found Obsidian vault at: ~/Documents/MyNotes 📊 Vault stats: 2,517 markdown
files, 1.1GB total size Would you like to import this vault?
- **yes** - Import this vault
- **no** - Search for a different vault
- **skip** - Start fresh without importing
@@ -399,6 +439,7 @@ User: yes
- Contains: Personal notes, drafts
**Which vault would you like to import?**
- Enter **1-3** to select a vault
- **all** - Import all vaults (each to a separate folder)
- **skip** - Start fresh without importing
@@ -406,45 +447,47 @@ User: yes
User: 1
**Confirming your selection:**
You selected: ~/Documents/MyNotes (2,517 files, 1.1GB)
**Confirming your selection:** You selected: ~/Documents/MyNotes (2,517 files,
1.1GB)
Is this correct? (yes/no)
User: yes
Great! I'll import your vault to OLD_VAULT/ where it will be safely preserved. You can migrate files to the PARA folders at your own pace.
Great! I'll import your vault to OLD_VAULT/ where it will be safely preserved.
You can migrate files to the PARA folders at your own pace.
📦 **Analyzing your vault structure...**
[Running tree to see folder hierarchy]
[Sampling notes to understand content]
[Detecting naming patterns from recent files]
📦 **Analyzing your vault structure...** [Running tree to see folder hierarchy]
[Sampling notes to understand content] [Detecting naming patterns from recent
files]
I can see you're using:
- A modified PARA structure with custom folders
- Date-prefixed files for daily notes (YYYY-MM-DD)
- Project folders with nested research
- Heavy use of the Resources folder for reference material
📦 **Importing your vault...**
[Copying files to OLD_VAULT/]
[Preserving .obsidian settings]
[Checking for plugin folders]
📦 **Importing your vault...** [Copying files to OLD_VAULT/] [Preserving
.obsidian settings] [Checking for plugin folders]
✅ Imported 2,517 files (1.1GB) to OLD_VAULT/
Your original structure is completely preserved!
✅ Imported 2,517 files (1.1GB) to OLD_VAULT/ Your original structure is
completely preserved!
Now let's personalize your setup:
1. **What's your name?**
*Why I'm asking:* I'll use this to personalize your CLAUDE.md file and help me understand your context better. This creates a more tailored experience where I can reference your work and interests naturally.
_Why I'm asking:_ I'll use this to personalize your CLAUDE.md file and help
me understand your context better. This creates a more tailored experience
where I can reference your work and interests naturally.
User: Noah Brier
2. **Would you like me to research your public work?**
*Why this helps:* By understanding your background, expertise, and interests, I can:
_Why this helps:_ By understanding your background, expertise, and interests,
I can:
- Tailor suggestions to your specific field and workflow
- Reference relevant examples from your domain
- Better understand the context of your questions
@@ -452,7 +495,9 @@ User: Noah Brier
User: Yes
Great! To make sure I find information about the real you, could you provide any of these details?
Great! To make sure I find information about the real you, could you provide any
of these details?
- Your company or organization
- Your location (city/country)
- A unique project you've worked on
@@ -467,9 +512,11 @@ Perfect! Let me search for you with those details...
[Searches for information using the provided identifying information]
Based on your details, I found you - Noah Brier, co-founder of Variance and Percolate, writer at every.to.
Based on your details, I found you - Noah Brier, co-founder of Variance and
Percolate, writer at every.to.
Let me confirm this is correct:
- Co-founded Variance (developer tools) and Percolate (marketing software)
- Write at every.to and Why Is This Interesting? newsletter
- Focus on systems thinking, creativity, and technology
@@ -480,8 +527,9 @@ User: yes
Excellent! I've identified the right profile.
**Building Your Profile**
Would you like me to read any specific pages to better understand your work?
**Building Your Profile** Would you like me to read any specific pages to better
understand your work?
- Your personal website or blog
- Recent articles or papers you've written
- Company/project pages
@@ -494,6 +542,7 @@ User: https://whyisthisinteresting.com/about, https://every.to/@noahbrier
[Fetches and analyzes the provided URLs]
I've built a comprehensive profile:
- You co-founded Variance (developer tools) and Percolate (marketing software)
- You write Why Is This Interesting? newsletter with Colin Nagy
- You explore creativity, technology, and systems thinking
@@ -503,70 +552,77 @@ Is there anything else I should know about your work or interests?
User: I'm really interested in how AI can augment thinking, not just writing
Got it! I'll remember that you focus on AI as a thinking tool, not just a writing assistant.
Got it! I'll remember that you focus on AI as a thinking tool, not just a
writing assistant.
3. **What will you primarily use this vault for?**
(research, writing, project management, daily notes, knowledge base, or combination?)
3. **What will you primarily use this vault for?** (research, writing, project
management, daily notes, knowledge base, or combination?)
User: I'll use it for research and writing, plus managing client projects
Assistant: Great! I'll configure your vault for research, writing, and client project management.
Assistant: Great! I'll configure your vault for research, writing, and client
project management.
2. **What specific projects are you currently working on?**
(I'll create folders for each in 01_Projects)
2. **What specific projects are you currently working on?** (I'll create folders
for each in 01_Projects)
User: I'm writing a book about productivity systems, building a SaaS app, and planning a conference talk
User: I'm writing a book about productivity systems, building a SaaS app, and
planning a conference talk
Assistant: Perfect! I'll set up project folders for:
- 01_Projects/Book - Productivity Systems/
- 01_Projects/SaaS App Development/
- 01_Projects/Conference Talk/
3. **What ongoing areas of responsibility do you maintain?**
(These go in 02_Areas - things without an end date)
- 01_Projects/Book - Productivity Systems/
- 01_Projects/SaaS App Development/
- 01_Projects/Conference Talk/
3. **What ongoing areas of responsibility do you maintain?** (These go in
02_Areas - things without an end date)
User: My newsletter, health & fitness, personal finances, and family activities
Assistant: I'll create area folders for:
- 02_Areas/Newsletter/
- 02_Areas/Health & Fitness/
- 02_Areas/Finances/
- 02_Areas/Family/
4. **What topics do you frequently research or reference?**
(I'll organize these in 03_Resources)
- 02_Areas/Newsletter/
- 02_Areas/Health & Fitness/
- 02_Areas/Finances/
- 02_Areas/Family/
4. **What topics do you frequently research or reference?** (I'll organize these
in 03_Resources)
User: AI tools, productivity methods, SaaS metrics, and writing techniques
Assistant: Setting up resource folders for:
- 03_Resources/AI Tools/
- 03_Resources/Productivity Methods/
- 03_Resources/SaaS Metrics/
- 03_Resources/Writing Techniques/
- 03_Resources/AI Tools/
- 03_Resources/Productivity Methods/
- 03_Resources/SaaS Metrics/
- 03_Resources/Writing Techniques/
[Continues with questions...]
**Gemini Vision Setup**
Gemini Vision is already included in claudesidian! It can analyze images, PDFs, and videos in your vault.
To activate it, you just need a free Google API key (takes 30 seconds).
Would you like to set it up now? (yes/no/later)
**Gemini Vision Setup** Gemini Vision is already included in claudesidian! It
can analyze images, PDFs, and videos in your vault. To activate it, you just
need a free Google API key (takes 30 seconds). Would you like to set it up now?
(yes/no/later)
User: later
No problem! You can set it up anytime by running `/setup-gemini` when you're ready.
No problem! You can set it up anytime by running `/setup-gemini` when you're
ready.
**Firecrawl Setup**
Firecrawl is a game-changer for research! Save any article or website directly to your vault as markdown.
Perfect for building a permanent, searchable research library.
Would you like to set it up? (yes/no/later)
**Firecrawl Setup** Firecrawl is a game-changer for research! Save any article
or website directly to your vault as markdown. Perfect for building a permanent,
searchable research library. Would you like to set it up? (yes/no/later)
User: yes
Great choice! Firecrawl will transform how you collect research.
Assistant: Excellent! Here's how to get your API key:
1. Go to https://aistudio.google.com/apikey
2. Click "Create API Key"
3. Copy the key (starts with AIzaSy...)
Once you have it, paste it here and I'll configure everything for you.
Once you have it, paste it here and I'll configure everything for you.