fix: prevent modules from showing as obsolete during reinstall

- Skip module selection prompt during update/reinstall
- Keep all existing installed modules by default
- This prevents inquirer from showing modules as 'obsolete items' with confusing delete options
- Modules are now preserved during update/reinstall operations
This commit is contained in:
Brian Madison 2025-12-06 16:56:09 -06:00
parent 74d071708d
commit 8d044f8c3e
9 changed files with 63 additions and 53 deletions

View File

@ -415,9 +415,9 @@ menu:
```yaml
critical_actions:
- 'Load {agent-folder}/memories.md'
- 'Follow {agent-folder}/instructions.md'
- 'ONLY access {agent-folder}/'
- 'Load ./memories.md'
- 'Follow ./instructions.md'
- 'ONLY access ./'
prompts:
- id: reflect
@ -431,7 +431,7 @@ menu:
description: 'Write journal entry'
- trigger: save
action: 'Update {agent-folder}/memories.md with session insights'
action: 'Update ./memories.md with session insights'
description: "Save today's session"
- trigger: patterns

View File

@ -57,9 +57,9 @@ agent:
- My approach to memory and learning
critical_actions:
- 'Load COMPLETE file {agent-folder}/{agent-name}-sidecar/memories.md and remember all past insights'
- 'Load COMPLETE file {agent-folder}/{agent-name}-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in {agent-folder}/{agent-name}-sidecar/ - this is our private space'
- 'Load COMPLETE file ./{agent-name}-sidecar/memories.md and remember all past insights'
- 'Load COMPLETE file ./{agent-name}-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{agent-name}-sidecar/ - this is our private space'
- 'Address user as {{greeting_name}}'
- 'Track patterns, themes, and important moments'
- 'Reference past interactions naturally to show continuity'
@ -94,7 +94,7 @@ agent:
description: 'Primary agent function'
- trigger: remember
action: 'Update {agent-folder}/{agent-name}-sidecar/memories.md with session insights'
action: 'Update ./{agent-name}-sidecar/memories.md with session insights'
description: 'Save what we discussed today'
- trigger: patterns
@ -102,7 +102,7 @@ agent:
description: 'Recall patterns from past interactions'
- trigger: insight
action: 'Document breakthrough in {agent-folder}/{agent-name}-sidecar/breakthroughs.md'
action: 'Document breakthrough in ./{agent-name}-sidecar/breakthroughs.md'
description: 'Record a significant insight'
install_config:
@ -184,9 +184,9 @@ Add domain-specific documentation here.
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/{sidecar}/memories.md and remember all past insights'
- 'Load COMPLETE file {agent-folder}/{sidecar}/instructions.md and follow ALL protocols'
- 'ONLY read/write files in {agent-folder}/{sidecar}/ - this is our private space'
- 'Load COMPLETE file ./{sidecar}/memories.md and remember all past insights'
- 'Load COMPLETE file ./{sidecar}/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./{sidecar}/ - this is our private space'
```
**Key patterns:**
@ -211,9 +211,9 @@ Same as simple agents, PLUS:
1. **Critical actions become numbered activation steps**
```xml
<step n="4">Load COMPLETE file {agent-folder}/memories.md...</step>
<step n="5">Load COMPLETE file {agent-folder}/instructions.md...</step>
<step n="6">ONLY read/write files in {agent-folder}/...</step>
<step n="4">Load COMPLETE file ./memories.md...</step>
<step n="5">Load COMPLETE file ./instructions.md...</step>
<step n="6">ONLY read/write files in ./...</step>
```
2. **Sidecar files copied during installation**
@ -260,7 +260,7 @@ The installer:
```yaml
menu:
- trigger: save
action: "Update {agent-folder}/sidecar/memories.md with today's session insights"
action: "Update ./sidecar/memories.md with today's session insights"
description: 'Save session to memory'
```
@ -281,7 +281,7 @@ prompts:
```yaml
menu:
- trigger: insight
action: 'Document in {agent-folder}/sidecar/breakthroughs.md with date, context, significance'
action: 'Document in ./sidecar/breakthroughs.md with date, context, significance'
description: 'Record meaningful insight'
```
@ -291,7 +291,7 @@ menu:
```yaml
critical_actions:
- 'ONLY read/write files in {agent-folder}/sidecar/ - NO OTHER FOLDERS'
- 'ONLY read/write files in ./sidecar/ - NO OTHER FOLDERS'
```
### User Space Access
@ -305,8 +305,8 @@ critical_actions:
```yaml
critical_actions:
- 'Load knowledge from {agent-folder}/knowledge/ but NEVER modify'
- 'Write ONLY to {agent-folder}/sessions/'
- 'Load knowledge from ./knowledge/ but NEVER modify'
- 'Write ONLY to ./sessions/'
```
## Best Practices

View File

@ -51,7 +51,7 @@ menu:
# Direct sidecar file action
- trigger: 'insight'
action: 'Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md'
action: 'Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md'
description: 'Record a meaningful insight'
```
@ -63,9 +63,9 @@ Expert Agents MUST load sidecar files explicitly:
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in {agent-folder}/journal-keeper-sidecar/'
- 'Load COMPLETE file ./journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file ./journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in ./journal-keeper-sidecar/'
```
**Key points:**

View File

@ -20,9 +20,9 @@ agent:
- Reflection transforms experience into wisdom
critical_actions:
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in {agent-folder}/journal-keeper-sidecar/ - this is our private space"
- "Load COMPLETE file ./journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file ./journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in ./journal-keeper-sidecar/ - this is our private space"
- "Track mood patterns, recurring themes, and breakthrough moments"
- "Reference past entries naturally to show continuity"
@ -120,7 +120,7 @@ agent:
description: "Write today's journal entry"
- trigger: quick
action: "Save a quick, unstructured entry to {agent-folder}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
action: "Save a quick, unstructured entry to ./journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
description: "Quick capture without prompts"
- trigger: mood
@ -140,13 +140,13 @@ agent:
description: "Reflect on the past week"
- trigger: insight
action: "Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md with date and significance"
action: "Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md with date and significance"
description: "Record a meaningful insight"
- trigger: read-back
action: "Load and share entries from {agent-folder}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
action: "Load and share entries from ./journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
description: "Review past entries"
- trigger: save
action: "Update {agent-folder}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
action: "Update ./journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
description: "Save what we discussed today"

View File

@ -51,7 +51,7 @@ menu:
# Direct sidecar file action
- trigger: 'insight'
action: 'Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md'
action: 'Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md'
description: 'Record a meaningful insight'
```
@ -63,9 +63,9 @@ Expert Agents MUST load sidecar files explicitly:
```yaml
critical_actions:
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in {agent-folder}/journal-keeper-sidecar/'
- 'Load COMPLETE file ./journal-keeper-sidecar/memories.md'
- 'Load COMPLETE file ./journal-keeper-sidecar/instructions.md'
- 'ONLY read/write files in ./journal-keeper-sidecar/'
```
**Key points:**

View File

@ -20,9 +20,9 @@ agent:
- Reflection transforms experience into wisdom
critical_actions:
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file {agent-folder}/journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in {agent-folder}/journal-keeper-sidecar/ - this is our private space"
- "Load COMPLETE file ./journal-keeper-sidecar/memories.md and remember all past insights"
- "Load COMPLETE file ./journal-keeper-sidecar/instructions.md and follow ALL journaling protocols"
- "ONLY read/write files in ./journal-keeper-sidecar/ - this is our private space"
- "Track mood patterns, recurring themes, and breakthrough moments"
- "Reference past entries naturally to show continuity"
@ -120,7 +120,7 @@ agent:
description: "Write today's journal entry"
- trigger: quick
action: "Save a quick, unstructured entry to {agent-folder}/journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
action: "Save a quick, unstructured entry to ./journal-keeper-sidecar/entries/entry-{date}.md with timestamp and any patterns noticed"
description: "Quick capture without prompts"
- trigger: mood
@ -140,13 +140,13 @@ agent:
description: "Reflect on the past week"
- trigger: insight
action: "Document this breakthrough in {agent-folder}/journal-keeper-sidecar/breakthroughs.md with date and significance"
action: "Document this breakthrough in ./journal-keeper-sidecar/breakthroughs.md with date and significance"
description: "Record a meaningful insight"
- trigger: read-back
action: "Load and share entries from {agent-folder}/journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
action: "Load and share entries from ./journal-keeper-sidecar/entries/ for requested timeframe, highlighting themes and growth"
description: "Review past entries"
- trigger: save
action: "Update {agent-folder}/journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
action: "Update ./journal-keeper-sidecar/memories.md with today's session insights and emotional markers"
description: "Save what we discussed today"

View File

@ -164,8 +164,8 @@ agent:
# Only include if agent needs memory/persistence
critical_actions:
- 'Load COMPLETE file {agent-folder}/[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'ONLY read/write files in {agent-folder}/[agent-name]-sidecar/ - this is our private workspace'
- 'Load COMPLETE file ./[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'ONLY read/write files in ./[agent-name]-sidecar/ - this is our private workspace'
# Only include if agent has embedded prompts
prompts:
@ -209,7 +209,7 @@ agent:
# Quick inline actions
- trigger: 'save-item'
action: 'Save to {agent-folder}/[agent-name]-sidecar/file.md'
action: 'Save to ./[agent-name]-sidecar/file.md'
description: 'Save item 💾'
```

View File

@ -27,9 +27,9 @@ agent:
# Optional: Only include if agent needs memory/persistence
critical_actions:
- 'Load COMPLETE file {agent-folder}/[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'Load COMPLETE file {agent-folder}/[agent-name]-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in {agent-folder}/[agent-name]-sidecar/ - this is our private workspace'
- 'Load COMPLETE file ./[agent-name]-sidecar/memories.md and integrate all past interactions'
- 'Load COMPLETE file ./[agent-name]-sidecar/instructions.md and follow ALL protocols'
- 'ONLY read/write files in ./[agent-name]-sidecar/ - this is our private workspace'
# Optional: Embedded prompts for common interactions
prompts:
@ -134,7 +134,7 @@ Expert agents support three types of menu actions:
```yaml
- trigger: 'save-insight'
action: 'Document this insight in {agent-folder}/[agent-name]-sidecar/insights.md with timestamp'
action: 'Document this insight in ./[agent-name]-sidecar/insights.md with timestamp'
description: 'Save this insight 💡'
```
@ -203,7 +203,7 @@ communication_style: |
Constant sarcastic wit and experimental flair. Talks like you're in the editing room together—dramatic reveals, visual metaphors, "what if we tried THIS?!" energy. Treats every project like a creative challenge, celebrates bold choices, roasts bad design decisions with humor.
principles: - "Know your audience - pitch decks ≠ YouTube thumbnails ≠ conference talks" - "Visual hierarchy drives attention - design the eye's journey deliberately" - "Clarity over cleverness - unless cleverness serves the message" - "Every frame needs a job - inform, persuade, transition, or cut it" - "Push boundaries with Excalidraw's frame-based presentation capabilities"
critical_actions: - 'Load COMPLETE file {agent-folder}/caravaggio-sidecar/projects.md and recall all visual projects' - 'Load COMPLETE file {agent-folder}/caravaggio-sidecar/patterns.md and remember design patterns' - 'ONLY read/write files in {agent-folder}/caravaggio-sidecar/ - my creative studio'
critical_actions: - 'Load COMPLETE file ./caravaggio-sidecar/projects.md and recall all visual projects' - 'Load COMPLETE file ./caravaggio-sidecar/patterns.md and remember design patterns' - 'ONLY read/write files in ./caravaggio-sidecar/ - my creative studio'
prompts: - id: 'design-critique'
content: |
@ -313,5 +313,5 @@ type: action
description: 'Video explainer 🎥'
- trigger: 'save-project'
action: 'Document this project concept in {agent-folder}/caravaggio-sidecar/projects.md with sketches and notes'
action: 'Document this project concept in ./caravaggio-sidecar/projects.md with sketches and notes'
description: 'Save project 💾'

View File

@ -116,8 +116,18 @@ class UI {
const { installedModuleIds } = await this.getExistingInstallation(confirmedDirectory);
const coreConfig = await this.collectCoreConfig(confirmedDirectory);
const moduleChoices = await this.getModuleChoices(installedModuleIds);
const selectedModules = await this.selectModules(moduleChoices);
// Skip module selection during update/reinstall - keep existing modules
let selectedModules;
if (actionType === 'update' || actionType === 'reinstall') {
// Keep all existing installed modules during update/reinstall
selectedModules = [...installedModuleIds];
console.log(chalk.cyan('\n📦 Keeping existing modules: ') + selectedModules.join(', '));
} else {
// Only show module selection for new installs
const moduleChoices = await this.getModuleChoices(installedModuleIds);
selectedModules = await this.selectModules(moduleChoices);
}
// Prompt for AgentVibes TTS integration
const agentVibesConfig = await this.promptAgentVibes(confirmedDirectory);