commit 6a55b32ed97163ad985ecd0558b704ac8e8fd8a3 Author: Shawn Anderson Date: Sun Apr 13 09:28:28 2025 -0700 Publishing initial version of seed script for cognitive ecosystem. diff --git a/init.fish b/init.fish new file mode 100755 index 0000000..e631e91 --- /dev/null +++ b/init.fish @@ -0,0 +1,362 @@ +#!/usr/bin/env fish +# Cognitive Ecosystem - Initialization Script +# Creates the essential structure for your knowledge system + +# Configuration +set CURRENT_DIR (pwd) +set TEMPLATES_PATH "$CURRENT_DIR/.templates" +set CURRENT_DATE (date +%Y-%m-%d) +set DEFAULT_EDITOR "nvim" # Change to your preferred editor + +# Colors for prettier output +set GREEN '\033[0;32m' +set BLUE '\033[0;34m' +set YELLOW '\033[0;33m' +set RED '\033[0;31m' +set NC '\033[0m' # No Color + +function log_step + echo -e "$BLUE→ $argv$NC" +end + +function log_done + echo -e "$GREEN✓ $argv$NC" +end + +function log_warn + echo -e "$YELLOW! $argv$NC" +end + +function log_error + echo -e "$RED✗ $argv$NC" +end + +# Prompt for username +log_step "Please enter your username for the seed file:" +read -l USERNAME +if test -z "$USERNAME" + set USERNAME "user" + log_warn "No username provided, using 'user' as default" +else + log_done "Using username: $USERNAME" +end + +# Safety check - confirm if critical directories already exist +if test -d "$CURRENT_DIR/journal" -o -d "$CURRENT_DIR/.templates" + log_warn "Some system directories already exist in: $CURRENT_DIR" + read -l -P "Continue and potentially overwrite existing files? (y/N) " confirm + + if test "$confirm" != "y" -a "$confirm" != "Y" + log_error "Initialization aborted by user" + exit 1 + end +end + +# Create basic README +log_step "Creating README.md..." +echo "# Cognitive Ecosystem" > "$CURRENT_DIR/README.md" +echo "" >> "$CURRENT_DIR/README.md" +echo "A personal knowledge management system designed for deep integration of ideas, code, and resources." >> "$CURRENT_DIR/README.md" +log_done "README created" + +# Create all necessary directories +log_step "Creating directory structure..." +# Main directories +mkdir -p "$CURRENT_DIR/journal/daily" +mkdir -p "$CURRENT_DIR/journal/weekly" +mkdir -p "$CURRENT_DIR/journal/monthly" +mkdir -p "$CURRENT_DIR/journal/quarterly" +mkdir -p "$CURRENT_DIR/journal/yearly" +mkdir -p "$CURRENT_DIR/projects" +mkdir -p "$CURRENT_DIR/people" +mkdir -p "$CURRENT_DIR/knowledge" +mkdir -p "$CURRENT_DIR/notebooks" +mkdir -p "$CURRENT_DIR/code" +mkdir -p "$CURRENT_DIR/resources" +mkdir -p "$TEMPLATES_PATH" +log_done "Directory structure created" + +# Create seed node template +log_step "Creating seed node template..." +set SEED_TEMPLATE "$TEMPLATES_PATH/01-seed-node.md" +echo "---" > $SEED_TEMPLATE +echo "aliases: [\"Home\", \"Hub\", \"Seed\"]" >> $SEED_TEMPLATE +echo "tags: [system/core]" >> $SEED_TEMPLATE +echo "created: $CURRENT_DATE" >> $SEED_TEMPLATE +echo "---" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "# Personal Seed Node" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "## Input Stream" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "## Navigation" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "- [[journal/00-index|Journal]]" >> $SEED_TEMPLATE +echo "- [[projects/00-index|Projects]]" >> $SEED_TEMPLATE +echo "- [[people/00-index|People]]" >> $SEED_TEMPLATE +echo "- [[knowledge/00-index|Knowledge]]" >> $SEED_TEMPLATE +echo "- [[notebooks/00-index|Notebooks]]" >> $SEED_TEMPLATE +echo "- [[code/00-index|Code]]" >> $SEED_TEMPLATE +echo "- [[resources/00-index|Resources]]" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "## Current Focus" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +echo "" >> $SEED_TEMPLATE +log_done "Seed node template created" + +# Create daily note template +log_step "Creating daily note template..." +set DAILY_TEMPLATE "$TEMPLATES_PATH/10-daily-note.md" +echo "---" > $DAILY_TEMPLATE +echo "tags: [journal/daily]" >> $DAILY_TEMPLATE +echo "date: {{date}}" >> $DAILY_TEMPLATE +echo "---" >> $DAILY_TEMPLATE +echo "# {{date_pretty}}" >> $DAILY_TEMPLATE +echo "" >> $DAILY_TEMPLATE +echo "## Morning Thoughts" >> $DAILY_TEMPLATE +echo "" >> $DAILY_TEMPLATE +echo "## Ideas & Notes" >> $DAILY_TEMPLATE +echo "" >> $DAILY_TEMPLATE +echo "## Evening Reflection" >> $DAILY_TEMPLATE +echo "" >> $DAILY_TEMPLATE +log_done "Daily note template created" + +# Create project note template +log_step "Creating project note template..." +set PROJECT_TEMPLATE "$TEMPLATES_PATH/20-project-note.md" +echo "---" > $PROJECT_TEMPLATE +echo "tags: [project]" >> $PROJECT_TEMPLATE +echo "status: idea" >> $PROJECT_TEMPLATE +echo "started: {{date}}" >> $PROJECT_TEMPLATE +echo "---" >> $PROJECT_TEMPLATE +echo "# {{title}}" >> $PROJECT_TEMPLATE +echo "" >> $PROJECT_TEMPLATE +echo "## Purpose" >> $PROJECT_TEMPLATE +echo "" >> $PROJECT_TEMPLATE +echo "## Current Status" >> $PROJECT_TEMPLATE +echo "" >> $PROJECT_TEMPLATE +echo "## Next Steps" >> $PROJECT_TEMPLATE +echo "" >> $PROJECT_TEMPLATE +log_done "Project template created" + +# Create knowledge note template +log_step "Creating knowledge note template..." +set KNOWLEDGE_TEMPLATE "$TEMPLATES_PATH/30-knowledge-note.md" +echo "---" > $KNOWLEDGE_TEMPLATE +echo "tags: [knowledge]" >> $KNOWLEDGE_TEMPLATE +echo "created: {{date}}" >> $KNOWLEDGE_TEMPLATE +echo "---" >> $KNOWLEDGE_TEMPLATE +echo "# {{title}}" >> $KNOWLEDGE_TEMPLATE +echo "" >> $KNOWLEDGE_TEMPLATE +echo "## Overview" >> $KNOWLEDGE_TEMPLATE +echo "" >> $KNOWLEDGE_TEMPLATE +echo "## Key Concepts" >> $KNOWLEDGE_TEMPLATE +echo "" >> $KNOWLEDGE_TEMPLATE +echo "## Connections" >> $KNOWLEDGE_TEMPLATE +echo "" >> $KNOWLEDGE_TEMPLATE +log_done "Knowledge template created" + +# Create .env file template +log_step "Creating .env file template..." +set ENV_TEMPLATE "$TEMPLATES_PATH/50-env.template" +echo "# Cognitive Ecosystem Configuration" > $ENV_TEMPLATE +echo "" >> $ENV_TEMPLATE +echo "# API Keys" >> $ENV_TEMPLATE +echo "OPENAI_API_KEY=" >> $ENV_TEMPLATE +echo "ANTHROPIC_API_KEY=" >> $ENV_TEMPLATE +echo "" >> $ENV_TEMPLATE +echo "# Model Configuration" >> $ENV_TEMPLATE +echo "DEFAULT_LLM_PROVIDER=anthropic" >> $ENV_TEMPLATE +echo "DEFAULT_LLM_MODEL=claude-3-7-sonnet-20250219" >> $ENV_TEMPLATE +echo "DEFAULT_EMBEDDING_MODEL=text-embedding-3-large" >> $ENV_TEMPLATE +echo "" >> $ENV_TEMPLATE +echo "# System Settings" >> $ENV_TEMPLATE +echo "LOG_LEVEL=info" >> $ENV_TEMPLATE +echo "ENABLE_AUTONOMOUS_AGENTS=false" >> $ENV_TEMPLATE +log_done ".env template created" + +# Create basic .gitignore +log_step "Creating .gitignore..." +echo ".env" > "$CURRENT_DIR/.gitignore" +echo ".DS_Store" >> "$CURRENT_DIR/.gitignore" +echo "__pycache__/" >> "$CURRENT_DIR/.gitignore" +echo "*.pyc" >> "$CURRENT_DIR/.gitignore" +log_done ".gitignore created" + +# Create initial seed node +log_step "Creating seed node..." +set SEED_NODE "$CURRENT_DIR/people/01-seed-$USERNAME.md" +cat "$TEMPLATES_PATH/01-seed-node.md" > $SEED_NODE +log_done "Seed node created at $SEED_NODE" + +# Create today's daily note +log_step "Creating today's daily note..." +set TODAY_NOTE "$CURRENT_DIR/journal/daily/$CURRENT_DATE.md" +cat "$TEMPLATES_PATH/10-daily-note.md" | sed "s/{{date}}/$CURRENT_DATE/g" | sed "s/{{date_pretty}}/"(date '+%A, %B %-d, %Y')"/g" > $TODAY_NOTE +log_done "Today's note created at $TODAY_NOTE" + +# Create index files +log_step "Creating index files..." +# Journal index +set JOURNAL_INDEX "$CURRENT_DIR/journal/00-index.md" +echo "# Journal" > $JOURNAL_INDEX +echo "" >> $JOURNAL_INDEX +echo "## Daily Entries" >> $JOURNAL_INDEX +echo "- [[$CURRENT_DATE]] (Today)" >> $JOURNAL_INDEX +echo "" >> $JOURNAL_INDEX +echo "## Time Periods" >> $JOURNAL_INDEX +echo "- [[weekly/00-index|Weekly Reviews]]" >> $JOURNAL_INDEX +echo "- [[monthly/00-index|Monthly Reviews]]" >> $JOURNAL_INDEX +echo "- [[quarterly/00-index|Quarterly Reviews]]" >> $JOURNAL_INDEX +echo "- [[yearly/00-index|Yearly Reviews]]" >> $JOURNAL_INDEX +echo "" >> $JOURNAL_INDEX + +# Journal sub-indexes +echo "# Weekly Reviews" > "$CURRENT_DIR/journal/weekly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/weekly/00-index.md" +echo "# Monthly Reviews" > "$CURRENT_DIR/journal/monthly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/monthly/00-index.md" +echo "# Quarterly Reviews" > "$CURRENT_DIR/journal/quarterly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/quarterly/00-index.md" +echo "# Yearly Reviews" > "$CURRENT_DIR/journal/yearly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/yearly/00-index.md" + +# Projects index +echo "# Projects" > "$CURRENT_DIR/projects/00-index.md" +echo "" >> "$CURRENT_DIR/projects/00-index.md" +echo "## Active Projects" >> "$CURRENT_DIR/projects/00-index.md" +echo "" >> "$CURRENT_DIR/projects/00-index.md" + +# People index +echo "# People" > "$CURRENT_DIR/people/00-index.md" +echo "" >> "$CURRENT_DIR/people/00-index.md" +echo "## Connections" >> "$CURRENT_DIR/people/00-index.md" +echo "- [[01-seed-$USERNAME|$USERNAME (Me)]]" >> "$CURRENT_DIR/people/00-index.md" +echo "" >> "$CURRENT_DIR/people/00-index.md" + +# Knowledge index +echo "# Knowledge" > "$CURRENT_DIR/knowledge/00-index.md" +echo "" >> "$CURRENT_DIR/knowledge/00-index.md" +echo "## Domains" >> "$CURRENT_DIR/knowledge/00-index.md" +echo "" >> "$CURRENT_DIR/knowledge/00-index.md" + +# Notebooks index +echo "# Notebooks" > "$CURRENT_DIR/notebooks/00-index.md" +echo "" >> "$CURRENT_DIR/notebooks/00-index.md" +echo "## Experiments" >> "$CURRENT_DIR/notebooks/00-index.md" +echo "" >> "$CURRENT_DIR/notebooks/00-index.md" + +# Code index +echo "# Code" > "$CURRENT_DIR/code/00-index.md" +echo "" >> "$CURRENT_DIR/code/00-index.md" +echo "## Components" >> "$CURRENT_DIR/code/00-index.md" +echo "" >> "$CURRENT_DIR/code/00-index.md" + +# Resources index +echo "# Resources" > "$CURRENT_DIR/resources/00-index.md" +echo "" >> "$CURRENT_DIR/resources/00-index.md" +echo "## Papers" >> "$CURRENT_DIR/resources/00-index.md" +echo "" >> "$CURRENT_DIR/resources/00-index.md" +log_done "Index files created" + +# Create .env file from template +log_step "Creating .env file..." +set ENV_FILE "$CURRENT_DIR/.env" +cp "$TEMPLATES_PATH/50-env.template" "$ENV_FILE" +log_done ".env file created" + +# Set up fish abbreviation directly in current shell and in config +log_step "Setting up fish abbreviation..." +set REPO_PATH (realpath $CURRENT_DIR) + +# Create the abbreviation in the current shell +abbr -a s "cd \"$REPO_PATH\" && $DEFAULT_EDITOR \"people/01-seed-$USERNAME.md\"" + +# Also add it to the config file if not already there +if not contains "abbr -Ua s" ~/.config/fish/config.fish + echo "" >> ~/.config/fish/config.fish + echo "# Cognitive Ecosystem - quick access to seed node" >> ~/.config/fish/config.fish + echo "abbr -Ua s 'cd \"$REPO_PATH\" && $DEFAULT_EDITOR \"people/01-seed-$USERNAME.md\"'" >> ~/.config/fish/config.fish + log_done "Added abbreviation 's' to fish config and current shell" +else + log_warn "Abbreviation 's' already exists in fish config" + log_done "Added abbreviation 's' to current shell only" +end + +# Create next steps document +log_step "Creating next steps document..." +set NEXT_STEPS "$CURRENT_DIR/00-NEXT-STEPS.md" +echo "# Next Steps for Your Cognitive Ecosystem" > $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "Now that you have your basic structure in place, here are some suggested next steps:" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "## Immediate Actions" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "1. **Initialize Git Repository**" >> $NEXT_STEPS +echo " ```bash" >> $NEXT_STEPS +echo " git init" >> $NEXT_STEPS +echo " git add ." >> $NEXT_STEPS +echo " git commit -m \"Initial commit: Cognitive Ecosystem seed\"" >> $NEXT_STEPS +echo " ```" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "2. **Set Up Obsidian**" >> $NEXT_STEPS +echo " - Open this folder in Obsidian" >> $NEXT_STEPS +echo " - Configure graph view for better visualization" >> $NEXT_STEPS +echo " - Consider useful plugins like Dataview or Calendar" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "3. **Begin Journal Practice**" >> $NEXT_STEPS +echo " - Start using the daily journal for note-taking" >> $NEXT_STEPS +echo " - Use the seed node as your dashboard" >> $NEXT_STEPS +echo " - Begin organizing knowledge as it emerges" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "## Development Paths" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "1. **Basic CLI Tool**" >> $NEXT_STEPS +echo " - Create a simple Python CLI in the code directory" >> $NEXT_STEPS +echo " - Implement commands for common operations" >> $NEXT_STEPS +echo " - Add FZF integration for navigation" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "2. **Resource Processing**" >> $NEXT_STEPS +echo " - Set up a pipeline for processing PDFs" >> $NEXT_STEPS +echo " - Implement YouTube transcript extraction" >> $NEXT_STEPS +echo " - Create a system for code documentation" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "3. **Agent Framework**" >> $NEXT_STEPS +echo " - Implement a basic receptionist agent" >> $NEXT_STEPS +echo " - Set up vector storage for embeddings" >> $NEXT_STEPS +echo " - Create a simple chat interface" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "## File Numbering Convention" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "The system uses a numerical prefix convention for organizing files:" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "- **00-**: Index files that provide an overview of a directory" >> $NEXT_STEPS +echo "- **01-09**: Primary/core files (e.g., seed node)" >> $NEXT_STEPS +echo "- **10-49**: Standard content files" >> $NEXT_STEPS +echo "- **50-99**: Configuration and system files" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "The only files without numerical prefixes are journal entries, which use date-based naming." >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "## System Evolution" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "As your system grows, consider:" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "- **Git Hooks** for automation" >> $NEXT_STEPS +echo "- **Dashboard Development** for system visibility" >> $NEXT_STEPS +echo "- **Integration with External Tools** like tmux and neovim" >> $NEXT_STEPS +echo "- **Autonomous Processing** for knowledge metabolism" >> $NEXT_STEPS +echo "" >> $NEXT_STEPS +echo "Remember that the system should grow organically based on your actual usage patterns." >> $NEXT_STEPS +echo "Focus on establishing consistent practices before implementing complex automations." >> $NEXT_STEPS +log_done "Next steps document created" + +echo "" +log_done "Initialization complete! Your cognitive ecosystem is ready." +echo "" +echo -e "$GREEN""To access your seed node, type 's' (works in current shell)""$NC" +echo -e "$BLUE""Or navigate to: $SEED_NODE""$NC" +echo "" +echo -e "$YELLOW""See 00-NEXT-STEPS.md for suggested actions to continue development""$NC" +echo "" diff --git a/init.sh b/init.sh new file mode 100644 index 0000000..4791538 --- /dev/null +++ b/init.sh @@ -0,0 +1,368 @@ +#!/usr/bin/env bash +# Cognitive Ecosystem - Initialization Script +# Creates the essential structure for your knowledge system + +# Configuration +CURRENT_DIR=$(pwd) +TEMPLATES_PATH="$CURRENT_DIR/.templates" +CURRENT_DATE=$(date +%Y-%m-%d) +DEFAULT_EDITOR="nvim" # Change to your preferred editor + +# Colors for prettier output +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[0;33m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +function log_step() { + echo -e "${BLUE}→ $1${NC}" +} + +function log_done() { + echo -e "${GREEN}✓ $1${NC}" +} + +function log_warn() { + echo -e "${YELLOW}! $1${NC}" +} + +function log_error() { + echo -e "${RED}✗ $1${NC}" +} + +# Prompt for username +log_step "Please enter your username for the seed file:" +read USERNAME +if [ -z "$USERNAME" ]; then + USERNAME="user" + log_warn "No username provided, using 'user' as default" +else + log_done "Using username: $USERNAME" +fi + +# Safety check - confirm if critical directories already exist +if [ -d "$CURRENT_DIR/journal" ] || [ -d "$CURRENT_DIR/.templates" ]; then + log_warn "Some system directories already exist in: $CURRENT_DIR" + read -p "Continue and potentially overwrite existing files? (y/N) " confirm + + if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then + log_error "Initialization aborted by user" + exit 1 + fi +fi + +# Create basic README +log_step "Creating README.md..." +echo "# Cognitive Ecosystem" > "$CURRENT_DIR/README.md" +echo "" >> "$CURRENT_DIR/README.md" +echo "A personal knowledge management system designed for deep integration of ideas, code, and resources." >> "$CURRENT_DIR/README.md" +log_done "README created" + +# Create all necessary directories +log_step "Creating directory structure..." +# Main directories +mkdir -p "$CURRENT_DIR/journal/daily" +mkdir -p "$CURRENT_DIR/journal/weekly" +mkdir -p "$CURRENT_DIR/journal/monthly" +mkdir -p "$CURRENT_DIR/journal/quarterly" +mkdir -p "$CURRENT_DIR/journal/yearly" +mkdir -p "$CURRENT_DIR/projects" +mkdir -p "$CURRENT_DIR/people" +mkdir -p "$CURRENT_DIR/knowledge" +mkdir -p "$CURRENT_DIR/notebooks" +mkdir -p "$CURRENT_DIR/code" +mkdir -p "$CURRENT_DIR/resources" +mkdir -p "$TEMPLATES_PATH" +log_done "Directory structure created" + +# Create seed node template +log_step "Creating seed node template..." +SEED_TEMPLATE="$TEMPLATES_PATH/01-seed-node.md" +echo "---" > "$SEED_TEMPLATE" +echo "aliases: [\"Home\", \"Hub\", \"Seed\"]" >> "$SEED_TEMPLATE" +echo "tags: [system/core]" >> "$SEED_TEMPLATE" +echo "created: $CURRENT_DATE" >> "$SEED_TEMPLATE" +echo "---" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "# Personal Seed Node" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "## Input Stream" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "## Navigation" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "- [[journal/00-index|Journal]]" >> "$SEED_TEMPLATE" +echo "- [[projects/00-index|Projects]]" >> "$SEED_TEMPLATE" +echo "- [[people/00-index|People]]" >> "$SEED_TEMPLATE" +echo "- [[knowledge/00-index|Knowledge]]" >> "$SEED_TEMPLATE" +echo "- [[notebooks/00-index|Notebooks]]" >> "$SEED_TEMPLATE" +echo "- [[code/00-index|Code]]" >> "$SEED_TEMPLATE" +echo "- [[resources/00-index|Resources]]" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "## Current Focus" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +echo "" >> "$SEED_TEMPLATE" +log_done "Seed node template created" + +# Create daily note template +log_step "Creating daily note template..." +DAILY_TEMPLATE="$TEMPLATES_PATH/10-daily-note.md" +echo "---" > "$DAILY_TEMPLATE" +echo "tags: [journal/daily]" >> "$DAILY_TEMPLATE" +echo "date: {{date}}" >> "$DAILY_TEMPLATE" +echo "---" >> "$DAILY_TEMPLATE" +echo "# {{date_pretty}}" >> "$DAILY_TEMPLATE" +echo "" >> "$DAILY_TEMPLATE" +echo "## Morning Thoughts" >> "$DAILY_TEMPLATE" +echo "" >> "$DAILY_TEMPLATE" +echo "## Ideas & Notes" >> "$DAILY_TEMPLATE" +echo "" >> "$DAILY_TEMPLATE" +echo "## Evening Reflection" >> "$DAILY_TEMPLATE" +echo "" >> "$DAILY_TEMPLATE" +log_done "Daily note template created" + +# Create project note template +log_step "Creating project note template..." +PROJECT_TEMPLATE="$TEMPLATES_PATH/20-project-note.md" +echo "---" > "$PROJECT_TEMPLATE" +echo "tags: [project]" >> "$PROJECT_TEMPLATE" +echo "status: idea" >> "$PROJECT_TEMPLATE" +echo "started: {{date}}" >> "$PROJECT_TEMPLATE" +echo "---" >> "$PROJECT_TEMPLATE" +echo "# {{title}}" >> "$PROJECT_TEMPLATE" +echo "" >> "$PROJECT_TEMPLATE" +echo "## Purpose" >> "$PROJECT_TEMPLATE" +echo "" >> "$PROJECT_TEMPLATE" +echo "## Current Status" >> "$PROJECT_TEMPLATE" +echo "" >> "$PROJECT_TEMPLATE" +echo "## Next Steps" >> "$PROJECT_TEMPLATE" +echo "" >> "$PROJECT_TEMPLATE" +log_done "Project template created" + +# Create knowledge note template +log_step "Creating knowledge note template..." +KNOWLEDGE_TEMPLATE="$TEMPLATES_PATH/30-knowledge-note.md" +echo "---" > "$KNOWLEDGE_TEMPLATE" +echo "tags: [knowledge]" >> "$KNOWLEDGE_TEMPLATE" +echo "created: {{date}}" >> "$KNOWLEDGE_TEMPLATE" +echo "---" >> "$KNOWLEDGE_TEMPLATE" +echo "# {{title}}" >> "$KNOWLEDGE_TEMPLATE" +echo "" >> "$KNOWLEDGE_TEMPLATE" +echo "## Overview" >> "$KNOWLEDGE_TEMPLATE" +echo "" >> "$KNOWLEDGE_TEMPLATE" +echo "## Key Concepts" >> "$KNOWLEDGE_TEMPLATE" +echo "" >> "$KNOWLEDGE_TEMPLATE" +echo "## Connections" >> "$KNOWLEDGE_TEMPLATE" +echo "" >> "$KNOWLEDGE_TEMPLATE" +log_done "Knowledge template created" + +# Create .env file template +log_step "Creating .env file template..." +ENV_TEMPLATE="$TEMPLATES_PATH/50-env.template" +echo "# Cognitive Ecosystem Configuration" > "$ENV_TEMPLATE" +echo "" >> "$ENV_TEMPLATE" +echo "# API Keys" >> "$ENV_TEMPLATE" +echo "OPENAI_API_KEY=" >> "$ENV_TEMPLATE" +echo "ANTHROPIC_API_KEY=" >> "$ENV_TEMPLATE" +echo "" >> "$ENV_TEMPLATE" +echo "# Model Configuration" >> "$ENV_TEMPLATE" +echo "DEFAULT_LLM_PROVIDER=anthropic" >> "$ENV_TEMPLATE" +echo "DEFAULT_LLM_MODEL=claude-3-7-sonnet-20250219" >> "$ENV_TEMPLATE" +echo "DEFAULT_EMBEDDING_MODEL=text-embedding-3-large" >> "$ENV_TEMPLATE" +echo "" >> "$ENV_TEMPLATE" +echo "# System Settings" >> "$ENV_TEMPLATE" +echo "LOG_LEVEL=info" >> "$ENV_TEMPLATE" +echo "ENABLE_AUTONOMOUS_AGENTS=false" >> "$ENV_TEMPLATE" +log_done ".env template created" + +# Create basic .gitignore +log_step "Creating .gitignore..." +echo ".env" > "$CURRENT_DIR/.gitignore" +echo ".DS_Store" >> "$CURRENT_DIR/.gitignore" +echo "__pycache__/" >> "$CURRENT_DIR/.gitignore" +echo "*.pyc" >> "$CURRENT_DIR/.gitignore" +log_done ".gitignore created" + +# Create initial seed node +log_step "Creating seed node..." +SEED_NODE="$CURRENT_DIR/people/01-seed-$USERNAME.md" +cat "$TEMPLATES_PATH/01-seed-node.md" > "$SEED_NODE" +log_done "Seed node created at $SEED_NODE" + +# Create today's daily note +log_step "Creating today's daily note..." +TODAY_NOTE="$CURRENT_DIR/journal/daily/$CURRENT_DATE.md" +DATE_PRETTY=$(date '+%A, %B %-d, %Y') +sed "s/{{date}}/$CURRENT_DATE/g" "$TEMPLATES_PATH/10-daily-note.md" | sed "s/{{date_pretty}}/$DATE_PRETTY/g" > "$TODAY_NOTE" +log_done "Today's note created at $TODAY_NOTE" + +# Create index files +log_step "Creating index files..." +# Journal index +JOURNAL_INDEX="$CURRENT_DIR/journal/00-index.md" +echo "# Journal" > "$JOURNAL_INDEX" +echo "" >> "$JOURNAL_INDEX" +echo "## Daily Entries" >> "$JOURNAL_INDEX" +echo "- [[$CURRENT_DATE]] (Today)" >> "$JOURNAL_INDEX" +echo "" >> "$JOURNAL_INDEX" +echo "## Time Periods" >> "$JOURNAL_INDEX" +echo "- [[weekly/00-index|Weekly Reviews]]" >> "$JOURNAL_INDEX" +echo "- [[monthly/00-index|Monthly Reviews]]" >> "$JOURNAL_INDEX" +echo "- [[quarterly/00-index|Quarterly Reviews]]" >> "$JOURNAL_INDEX" +echo "- [[yearly/00-index|Yearly Reviews]]" >> "$JOURNAL_INDEX" +echo "" >> "$JOURNAL_INDEX" + +# Journal sub-indexes +echo "# Weekly Reviews" > "$CURRENT_DIR/journal/weekly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/weekly/00-index.md" +echo "# Monthly Reviews" > "$CURRENT_DIR/journal/monthly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/monthly/00-index.md" +echo "# Quarterly Reviews" > "$CURRENT_DIR/journal/quarterly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/quarterly/00-index.md" +echo "# Yearly Reviews" > "$CURRENT_DIR/journal/yearly/00-index.md" +echo "" >> "$CURRENT_DIR/journal/yearly/00-index.md" + +# Projects index +echo "# Projects" > "$CURRENT_DIR/projects/00-index.md" +echo "" >> "$CURRENT_DIR/projects/00-index.md" +echo "## Active Projects" >> "$CURRENT_DIR/projects/00-index.md" +echo "" >> "$CURRENT_DIR/projects/00-index.md" + +# People index +echo "# People" > "$CURRENT_DIR/people/00-index.md" +echo "" >> "$CURRENT_DIR/people/00-index.md" +echo "## Connections" >> "$CURRENT_DIR/people/00-index.md" +echo "- [[01-seed-$USERNAME|$USERNAME (Me)]]" >> "$CURRENT_DIR/people/00-index.md" +echo "" >> "$CURRENT_DIR/people/00-index.md" + +# Knowledge index +echo "# Knowledge" > "$CURRENT_DIR/knowledge/00-index.md" +echo "" >> "$CURRENT_DIR/knowledge/00-index.md" +echo "## Domains" >> "$CURRENT_DIR/knowledge/00-index.md" +echo "" >> "$CURRENT_DIR/knowledge/00-index.md" + +# Notebooks index +echo "# Notebooks" > "$CURRENT_DIR/notebooks/00-index.md" +echo "" >> "$CURRENT_DIR/notebooks/00-index.md" +echo "## Experiments" >> "$CURRENT_DIR/notebooks/00-index.md" +echo "" >> "$CURRENT_DIR/notebooks/00-index.md" + +# Code index +echo "# Code" > "$CURRENT_DIR/code/00-index.md" +echo "" >> "$CURRENT_DIR/code/00-index.md" +echo "## Components" >> "$CURRENT_DIR/code/00-index.md" +echo "" >> "$CURRENT_DIR/code/00-index.md" + +# Resources index +echo "# Resources" > "$CURRENT_DIR/resources/00-index.md" +echo "" >> "$CURRENT_DIR/resources/00-index.md" +echo "## Papers" >> "$CURRENT_DIR/resources/00-index.md" +echo "" >> "$CURRENT_DIR/resources/00-index.md" +log_done "Index files created" + +# Create .env file from template +log_step "Creating .env file..." +ENV_FILE="$CURRENT_DIR/.env" +cp "$TEMPLATES_PATH/50-env.template" "$ENV_FILE" +log_done ".env file created" + +# Set up bash alias directly in current shell and in config +log_step "Setting up bash alias..." +REPO_PATH=$(realpath "$CURRENT_DIR") + +# Create the alias in the current shell +alias s="cd \"$REPO_PATH\" && $DEFAULT_EDITOR \"people/01-seed-$USERNAME.md\"" + +# Also add it to the config file if not already there +BASH_RC="$HOME/.bashrc" +if [ -f "$HOME/.bash_profile" ]; then + BASH_RC="$HOME/.bash_profile" +fi + +if ! grep -q "alias s='cd \"$REPO_PATH\"" "$BASH_RC"; then + echo "" >> "$BASH_RC" + echo "# Cognitive Ecosystem - quick access to seed node" >> "$BASH_RC" + echo "alias s='cd \"$REPO_PATH\" && $DEFAULT_EDITOR \"people/01-seed-$USERNAME.md\"'" >> "$BASH_RC" + log_done "Added alias 's' to bash config and current shell" +else + log_warn "Alias 's' already exists in bash config" + log_done "Added alias 's' to current shell only" +fi + +# Create next steps document +log_step "Creating next steps document..." +NEXT_STEPS="$CURRENT_DIR/00-NEXT-STEPS.md" +echo "# Next Steps for Your Cognitive Ecosystem" > "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "Now that you have your basic structure in place, here are some suggested next steps:" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "## Immediate Actions" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "1. **Initialize Git Repository**" >> "$NEXT_STEPS" +echo " \`\`\`bash" >> "$NEXT_STEPS" +echo " git init" >> "$NEXT_STEPS" +echo " git add ." >> "$NEXT_STEPS" +echo " git commit -m \"Initial commit: Cognitive Ecosystem seed\"" >> "$NEXT_STEPS" +echo " \`\`\`" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "2. **Set Up Obsidian**" >> "$NEXT_STEPS" +echo " - Open this folder in Obsidian" >> "$NEXT_STEPS" +echo " - Configure graph view for better visualization" >> "$NEXT_STEPS" +echo " - Consider useful plugins like Dataview or Calendar" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "3. **Begin Journal Practice**" >> "$NEXT_STEPS" +echo " - Start using the daily journal for note-taking" >> "$NEXT_STEPS" +echo " - Use the seed node as your dashboard" >> "$NEXT_STEPS" +echo " - Begin organizing knowledge as it emerges" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "## Development Paths" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "1. **Basic CLI Tool**" >> "$NEXT_STEPS" +echo " - Create a simple Python CLI in the code directory" >> "$NEXT_STEPS" +echo " - Implement commands for common operations" >> "$NEXT_STEPS" +echo " - Add FZF integration for navigation" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "2. **Resource Processing**" >> "$NEXT_STEPS" +echo " - Set up a pipeline for processing PDFs" >> "$NEXT_STEPS" +echo " - Implement YouTube transcript extraction" >> "$NEXT_STEPS" +echo " - Create a system for code documentation" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "3. **Agent Framework**" >> "$NEXT_STEPS" +echo " - Implement a basic receptionist agent" >> "$NEXT_STEPS" +echo " - Set up vector storage for embeddings" >> "$NEXT_STEPS" +echo " - Create a simple chat interface" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "## File Numbering Convention" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "The system uses a numerical prefix convention for organizing files:" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "- **00-**: Index files that provide an overview of a directory" >> "$NEXT_STEPS" +echo "- **01-09**: Primary/core files (e.g., seed node)" >> "$NEXT_STEPS" +echo "- **10-49**: Standard content files" >> "$NEXT_STEPS" +echo "- **50-99**: Configuration and system files" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "The only files without numerical prefixes are journal entries, which use date-based naming." >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "## System Evolution" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "As your system grows, consider:" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "- **Git Hooks** for automation" >> "$NEXT_STEPS" +echo "- **Dashboard Development** for system visibility" >> "$NEXT_STEPS" +echo "- **Integration with External Tools** like tmux and neovim" >> "$NEXT_STEPS" +echo "- **Autonomous Processing** for knowledge metabolism" >> "$NEXT_STEPS" +echo "" >> "$NEXT_STEPS" +echo "Remember that the system should grow organically based on your actual usage patterns." >> "$NEXT_STEPS" +echo "Focus on establishing consistent practices before implementing complex automations." >> "$NEXT_STEPS" +log_done "Next steps document created" + +echo "" +log_done "Initialization complete! Your cognitive ecosystem is ready." +echo "" +echo -e "${GREEN}To access your seed node, type 's' (works in current shell)${NC}" +echo -e "${BLUE}Or navigate to: $SEED_NODE${NC}" +echo "" +echo -e "${YELLOW}See 00-NEXT-STEPS.md for suggested actions to continue development${NC}" +echo ""