Add TickTick and Obsidian integrations to wizard
TickTick integration: - Creates setup tasks in TickTick Inbox when selected - Tasks: Set up dev env, Review brief, Write first test, Implement MVP - Uses existing PA Python CLI integration Obsidian integration: - Creates project note in ~/Notes/Projects/ - Includes quick links, project brief, tech stack - Auto-opens note in Obsidian after creation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -218,6 +218,28 @@ LICENSE=$(gum choose \
|
||||
"None" \
|
||||
--header "License type")
|
||||
|
||||
#######################################
|
||||
# TickTick Integration
|
||||
#######################################
|
||||
echo ""
|
||||
gum style --foreground 245 "Create setup tasks in TickTick?"
|
||||
|
||||
TICKTICK_TASKS=$(gum choose \
|
||||
"Yes - Create project setup tasks" \
|
||||
"No" \
|
||||
--header "TickTick integration")
|
||||
|
||||
#######################################
|
||||
# Open in Obsidian
|
||||
#######################################
|
||||
echo ""
|
||||
gum style --foreground 245 "Create project note in Obsidian?"
|
||||
|
||||
OBSIDIAN_NOTE=$(gum choose \
|
||||
"Yes - Create note in ~/Notes/Projects/" \
|
||||
"No" \
|
||||
--header "Obsidian integration")
|
||||
|
||||
#######################################
|
||||
# Confirm
|
||||
#######################################
|
||||
@@ -236,7 +258,8 @@ Git: $GIT_INIT | Remote: $GIT_REMOTE
|
||||
Syncthing: $SYNCTHING_OPT
|
||||
Claude-mem: $CLAUDE_MEM
|
||||
Database: $DATABASE
|
||||
License: $LICENSE"
|
||||
License: $LICENSE
|
||||
TickTick: $TICKTICK_TASKS | Obsidian: $OBSIDIAN_NOTE"
|
||||
|
||||
if [ -n "$SUBDOMAIN" ]; then
|
||||
SUMMARY="$SUMMARY
|
||||
@@ -1008,6 +1031,92 @@ if [[ "$GIT_REMOTE" == *"GitHub"* ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
#######################################
|
||||
# TickTick Tasks
|
||||
#######################################
|
||||
if [[ "$TICKTICK_TASKS" == *"Yes"* ]]; then
|
||||
PA_DIR="$HOME/Projects/personal-assistant"
|
||||
if [ -d "$PA_DIR" ] && [ -f "$PA_DIR/venv/bin/python" ]; then
|
||||
gum spin --spinner dot --title "Creating TickTick tasks..." -- sleep 0.5
|
||||
|
||||
# Create project setup tasks
|
||||
(
|
||||
cd "$PA_DIR"
|
||||
source venv/bin/activate
|
||||
|
||||
# Create tasks for the new project
|
||||
python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Set up development environment" --project "Inbox" 2>/dev/null || true
|
||||
python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Review PROJECT_BRIEF.md and refine requirements" --project "Inbox" 2>/dev/null || true
|
||||
python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Write first test" --project "Inbox" 2>/dev/null || true
|
||||
python -m src.integrations.ticktick.cli add "[$PROJECT_NAME] Implement MVP" --project "Inbox" 2>/dev/null || true
|
||||
) 2>/dev/null
|
||||
|
||||
TICKTICK_CREATED="Yes"
|
||||
else
|
||||
TICKTICK_CREATED="(PA not found)"
|
||||
fi
|
||||
fi
|
||||
|
||||
#######################################
|
||||
# Obsidian Note
|
||||
#######################################
|
||||
OBSIDIAN_NOTE_PATH=""
|
||||
if [[ "$OBSIDIAN_NOTE" == *"Yes"* ]]; then
|
||||
gum spin --spinner dot --title "Creating Obsidian note..." -- sleep 0.3
|
||||
|
||||
NOTES_DIR="$HOME/Notes/Projects"
|
||||
mkdir -p "$NOTES_DIR"
|
||||
|
||||
OBSIDIAN_NOTE_PATH="$NOTES_DIR/$PROJECT_NAME.md"
|
||||
|
||||
cat > "$OBSIDIAN_NOTE_PATH" << OBSIDIAN_EOF
|
||||
# $PROJECT_NAME
|
||||
|
||||
$PROJECT_DESC
|
||||
|
||||
## Quick Links
|
||||
|
||||
- **Project**: [Open in Finder](file://$PROJECT_PATH)
|
||||
- **CLAUDE.md**: [Open](file://$PROJECT_PATH/CLAUDE.md)
|
||||
- **Project Brief**: [Open](file://$PROJECT_PATH/docs/PROJECT_BRIEF.md)
|
||||
OBSIDIAN_EOF
|
||||
|
||||
# Add repo links if available
|
||||
if [ -n "$GITEA_URL" ] && [ "$GITEA_URL" != "(failed)" ]; then
|
||||
echo "- **Gitea**: [$PROJECT_NAME]($GITEA_URL)" >> "$OBSIDIAN_NOTE_PATH"
|
||||
fi
|
||||
if [ -n "$GITHUB_URL" ] && [[ "$GITHUB_URL" != *"not installed"* ]]; then
|
||||
echo "- **GitHub**: [$PROJECT_NAME]($GITHUB_URL)" >> "$OBSIDIAN_NOTE_PATH"
|
||||
fi
|
||||
if [ -n "$SUBDOMAIN" ]; then
|
||||
echo "- **URL**: https://$SUBDOMAIN" >> "$OBSIDIAN_NOTE_PATH"
|
||||
fi
|
||||
|
||||
cat >> "$OBSIDIAN_NOTE_PATH" << OBSIDIAN_EOF2
|
||||
|
||||
## Project Brief
|
||||
|
||||
$PROJECT_BRIEF
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- **Type**: $PROJECT_TYPE
|
||||
- **Database**: $DATABASE
|
||||
- **License**: $LICENSE
|
||||
|
||||
## Notes
|
||||
|
||||
<!-- Add your project notes here -->
|
||||
|
||||
---
|
||||
|
||||
*Created $(date '+%Y-%m-%d') via newproject wizard*
|
||||
OBSIDIAN_EOF2
|
||||
|
||||
# Open in Obsidian
|
||||
open "obsidian://open?vault=Notes&file=Projects/$PROJECT_NAME" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
#######################################
|
||||
# Success!
|
||||
#######################################
|
||||
@@ -1045,4 +1154,14 @@ if [ -n "$SUBDOMAIN" ]; then
|
||||
echo " Subdomain: https://$SUBDOMAIN (configure Traefik)"
|
||||
fi
|
||||
|
||||
if [ -n "$TICKTICK_CREATED" ] && [ "$TICKTICK_CREATED" = "Yes" ]; then
|
||||
echo ""
|
||||
echo " ✅ TickTick tasks created (check Inbox)"
|
||||
fi
|
||||
|
||||
if [ -n "$OBSIDIAN_NOTE_PATH" ]; then
|
||||
echo ""
|
||||
echo " 📝 Obsidian note: ~/Notes/Projects/$PROJECT_NAME.md"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user