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" \
|
"None" \
|
||||||
--header "License type")
|
--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
|
# Confirm
|
||||||
#######################################
|
#######################################
|
||||||
@@ -236,7 +258,8 @@ Git: $GIT_INIT | Remote: $GIT_REMOTE
|
|||||||
Syncthing: $SYNCTHING_OPT
|
Syncthing: $SYNCTHING_OPT
|
||||||
Claude-mem: $CLAUDE_MEM
|
Claude-mem: $CLAUDE_MEM
|
||||||
Database: $DATABASE
|
Database: $DATABASE
|
||||||
License: $LICENSE"
|
License: $LICENSE
|
||||||
|
TickTick: $TICKTICK_TASKS | Obsidian: $OBSIDIAN_NOTE"
|
||||||
|
|
||||||
if [ -n "$SUBDOMAIN" ]; then
|
if [ -n "$SUBDOMAIN" ]; then
|
||||||
SUMMARY="$SUMMARY
|
SUMMARY="$SUMMARY
|
||||||
@@ -1008,6 +1031,92 @@ if [[ "$GIT_REMOTE" == *"GitHub"* ]]; then
|
|||||||
fi
|
fi
|
||||||
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!
|
# Success!
|
||||||
#######################################
|
#######################################
|
||||||
@@ -1045,4 +1154,14 @@ if [ -n "$SUBDOMAIN" ]; then
|
|||||||
echo " Subdomain: https://$SUBDOMAIN (configure Traefik)"
|
echo " Subdomain: https://$SUBDOMAIN (configure Traefik)"
|
||||||
fi
|
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 ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user