@@ -60,44 +60,39 @@ trap 'rm -rf "$TEMP_DIR"' EXIT
6060git clone --depth 1 -q " $REPO_URL " " $TEMP_DIR " || error " Failed to clone template repository."
6161
6262# --- Discovery ---
63- FILES_TO_EXTRACT=(
64- " GEMINI.md"
65- " makefile"
66- " TASKS.md"
67- " CHANGELOG.md"
68- " README.md"
69- )
70-
71- CONTENT_DIRS=(
72- " journal"
73- " plans"
74- " research"
75- " drafts"
76- )
63+ CORE_FILES=(" GEMINI.md" )
64+ SCAFFOLD_FILES=(" README.md" " TASKS.md" " CHANGELOG.md" " makefile" )
65+ CONTENT_DIRS=(" journal" " plans" " research" " drafts" )
7766
7867WILL_CREATE=()
7968WILL_UPDATE=()
8069
81- # Check .gemini directory
70+ # 1. Core Framework Check
8271if [[ -d " .gemini" ]]; then
8372 WILL_UPDATE+=(" .gemini/ (core framework)" )
8473else
8574 WILL_CREATE+=(" .gemini/ (core framework)" )
8675fi
8776
88- # Check top-level files
89- for f in " ${FILES_TO_EXTRACT[@]} " ; do
77+ for f in " ${CORE_FILES[@]} " ; do
9078 if [[ -e " $f " ]]; then
91- WILL_UPDATE+=(" $f " )
79+ WILL_UPDATE+=(" $f (core framework) " )
9280 else
93- WILL_CREATE+=(" $f " )
81+ WILL_CREATE+=(" $f (core framework) " )
9482 fi
9583done
9684
97- # Check content directories
85+ # 2. Project Scaffolding Check
86+ for f in " ${SCAFFOLD_FILES[@]} " ; do
87+ if [[ ! -e " $f " ]]; then
88+ WILL_CREATE+=(" $f (new scaffolding)" )
89+ fi
90+ done
91+
92+ # 3. Content Directories Check
9893for d in " ${CONTENT_DIRS[@]} " ; do
9994 if [[ ! -d " $d " ]]; then
100- WILL_CREATE+=(" $d /" )
95+ WILL_CREATE+=(" $d / (new content directory) " )
10196 fi
10297done
10398
@@ -109,7 +104,7 @@ if [[ ${#WILL_CREATE[@]} -gt 0 ]]; then
109104fi
110105
111106if [[ ${# WILL_UPDATE[@]} -gt 0 ]]; then
112- echo -e " \033[1;34mExisting files/folders to update (framework only ):\033[0m"
107+ echo -e " \033[1;34mExisting files/folders to update (core framework ):\033[0m"
113108 for f in " ${WILL_UPDATE[@]} " ; do echo " ~ $f " ; done
114109fi
115110
@@ -128,20 +123,27 @@ echo "🛠️ Applying changes..."
128123mkdir -p .gemini
129124cp -r " $TEMP_DIR /.gemini/." .gemini/
130125
131- # 2. Update Top-Level Files
132- for f in " ${FILES_TO_EXTRACT [@]} " ; do
126+ # 2. Update Core Files (Always)
127+ for f in " ${CORE_FILES [@]} " ; do
133128 cp " $TEMP_DIR /$f " .
134129done
135130
136- # 3. Ensure Content Directories & .gitkeep
131+ # 3. Create Scaffolding Files (Only if missing)
132+ for f in " ${SCAFFOLD_FILES[@]} " ; do
133+ if [[ ! -f " $f " ]]; then
134+ cp " $TEMP_DIR /$f " .
135+ fi
136+ done
137+
138+ # 4. Ensure Content Directories & .gitkeep
137139for d in " ${CONTENT_DIRS[@]} " ; do
138140 mkdir -p " $d "
139141 if [[ -f " $TEMP_DIR /$d /.gitkeep" ]]; then
140142 cp " $TEMP_DIR /$d /.gitkeep" " $d /"
141143 fi
142144done
143145
144- # 4 . Journal Entry
146+ # 5 . Journal Entry
145147TODAY=$( date +%Y-%m-%d)
146148mkdir -p journal
147149JOURNAL_FILE=" journal/$TODAY .md"
0 commit comments