Compare commits

...

10 Commits

Author SHA1 Message Date
dennisthiessen b1e9b484a8 first commit 2026-05-21 11:11:53 +02:00
Anthony Taglianetti 3991cb39d9 Fix profile updates to target named sections at session end
Previously the session-end protocol told the AI to update profile.md
if new insights emerged, with no guidance on where. Over many sessions
this caused freeform bold-text entries to accumulate without structure.

Now requires each update to match an existing H2 section in the file,
with explicit rules against creating new top-level sections.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 21:00:00 -07:00
Anthony Taglianetti 6863b118e2 Distinguish API key vs Pro/Max plan retention in privacy table
API key auth has 7-day retention with no training. Pro/Max plan auth
follows consumer retention (30 days, or up to 5 years if opted in).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 18:21:42 -08:00
Anthony Taglianetti 8afc2b60bb Clarify privacy section with explicit data retention comparison
Community feedback pointed out that "real privacy" could be misleading
without distinguishing between local file storage and API server contact.
Added retention comparison table across platforms and linked to official
privacy policies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 18:15:16 -08:00
Anthony Taglianetti 554df77939 Remove private vault path from public repo
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 20:13:53 -08:00
Anthony Taglianetti 4b6385d5bd Add 2.1.1 changelog entry for setup import fix
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 15:31:22 -08:00
Anthony Taglianetti 4784775a87 Implement complete import processing in setup flow
Expand Step 6 to categorize files (profile.md, ChatGPT exports, markdown,
PDF), extract profile information, and convert conversations to session
format. Add conditional logic in File Creation to populate profile.md
from imports instead of copying blank template. Add Step 6 for creating
dated session files from imported conversations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 15:26:57 -08:00
Anthony Taglianetti 2515398ec5 Fix manifest to list all library files explicitly
WebFetch can't handle glob patterns. Now manifest lists each persona,
modality, and structure file explicitly. Update command now checks for
new library options and offers to add them.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 14:54:33 -08:00
Anthony Taglianetti ed4e89f106 Update changelog: fix years to 2026, add setup reorder 2026-02-08 14:50:36 -08:00
Anthony Taglianetti 7a73700ec1 Reorder setup: import before modalities for smarter recommendations
Import step now comes before modality selection. If user imports notes,
therapist reads them and recommends modalities based on their history.
Also adds reminder that modalities can be changed and therapist auto-switches.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 14:49:44 -08:00
7 changed files with 244 additions and 72 deletions
+13
View File
@@ -0,0 +1,13 @@
{
"permissions": {
"allow": [
"Bash(cp safety-protocol.md commands.md \"$HOME/Sage/.therapy/\")",
"Bash(cp personas/*.md \"$HOME/Sage/.therapy/library/personas/\")",
"Bash(cp modalities/*.md \"$HOME/Sage/.therapy/library/modalities/\")",
"Bash(cp structures/*.md \"$HOME/Sage/.therapy/library/structures/\")",
"Bash(cp \"personas/direct-challenging.md\" \"$HOME/Sage/.therapy/persona.md\")",
"Bash(printf '@echo off\\\\r\\\\ncd /d \"\"C:\\\\\\\\Users\\\\\\\\Dennis\\\\\\\\Anette\"\"\\\\r\\\\nclaude\\\\r\\\\n')",
"Bash(\"C:/Users/Dennis/Anette/start-session.bat\")"
]
}
}
+19 -3
View File
@@ -4,22 +4,38 @@ All notable changes to Inner Dialogue.
---
## [2.1.0] - 2025-02-08
## [2.1.2] - 2026-05-09
### Fixed
- **Profile updates now target specific sections** — At session end, the AI must match each update to an existing H2 section in `profile.md` rather than appending freeform. Prevents `profile.md` from accumulating unstructured content over many sessions.
---
## [2.1.1] - 2026-02-08
### Fixed
- **Setup import flow now fully implemented** — Step 6 now includes complete logic for categorizing files (profile.md, ChatGPT exports, markdown, PDF), extracting profile information, and converting conversations to dated session files. Previously the setup instructions referenced import handling but didn't include the processing steps.
---
## [2.1.0] - 2026-02-08
### Added
- **Import command** — Import notes anytime during a session, not just at setup. Say "import" or "I have files to import" and provide a path.
- **Manifest-based updates** — Updates now use `manifest.json` to discover all available components. Existing users can get new features automatically.
- **Smart modality recommendations** — If you import notes during setup, your therapist reads them and recommends modalities based on your history.
### Changed
- **Smarter import handling** — Imported files now become session history (`sessions/YYYY-MM-DD.md`) with original dates, plus key patterns extracted to `profile.md`. This gives natural relevance decay like real memory.
- **Commands moved to updatable file** — Customization commands now live in `.therapy/commands.md` so existing users receive new commands via updates.
- **Setup flow reordered** — Import step now comes before modality selection, enabling personalized recommendations.
### For Existing Users
Run "update" or "check for updates" during a session to get these features.
---
## [2.0.0] - 2025-02-01
## [2.0.0] - 2026-02-01
### Added
- **8 communication styles** (up from 2):
@@ -56,7 +72,7 @@ Run "update" or "check for updates" during a session to get these features.
---
## [1.0.0] - 2025-01-15
## [1.0.0] - 2026-01-15
### Initial Release
- Basic AI therapist setup with persistent sessions
+125 -35
View File
@@ -1,7 +1,5 @@
# Inner Dialogue - Setup
> **Maintainer docs:** `~/Documents/My Vault/Contexts/Personal/Career/Side Projects/Inner Dialogue/`
You are helping a user set up their Inner Dialogue environment. **Start setup immediately** when the user opens this project.
## On First Message
@@ -85,9 +83,88 @@ Ask these conversationally, one at a time.
- 7 → `personas/philosophical.md`
- 8 → `personas/creative.md`
### 4. Therapeutic Approaches
### 4. Session Structure
> Which therapeutic approaches? Pick any combination (e.g., "1,2,3"):
> How structured do you want sessions?
>
> 1. **Structured** - Homework, exercises, progress tracking
> 2. **Moderate** - Some structure, flexible approach
> 3. **Freeform** - Just conversation, minimal assignments
>
> (Default: 2)
**Map selection to structure file:**
- 1 → `structures/structured.md`
- 2 → `structures/moderate.md`
- 3 → `structures/freeform.md`
### 5. Storage Location
> Where should your therapy files be stored?
>
> 1. `~/{therapist_name}` - Simple
> 2. `~/Documents/{therapist_name}` - In Documents
> 3. Custom path
>
> (Default: 1)
### 6. Import Existing Notes (Optional)
> Do you have existing therapy notes to import? (ChatGPT exports, markdown, PDF, text files)
If no: Continue to step 7.
If yes:
1. **Ask for file paths**
> What files would you like to import? Provide paths separated by commas.
> (e.g., `~/Downloads/chatgpt-export.zip`, `~/Documents/therapy-notes.md`)
2. **Read and categorize each file:**
- **profile.md** → Mark for merge (this is an existing profile, not a session)
- **ChatGPT JSON/ZIP** → Parse conversations
- **Markdown/text files** → Session notes or journals
- **PDF** → Extract and read text
3. **Extract profile information** from ALL imported content:
- Background and key context
- Patterns and recurring themes
- Triggers and coping mechanisms
- Relationships and dynamics
- Values and goals
- Any therapeutic observations
Store this extracted content—you will use it to populate `profile.md` in Step 2 of File Creation.
4. **Convert conversations to session format:**
For each conversation or session note:
- Extract the date from content if available → use for filename `YYYY-MM-DD.md`
- If date unclear, **ask the user** for approximate dates
- If user doesn't know, **consolidate undated content** into a single file: `{import_date}-import.md`
- Format as session notes (themes, observations, patterns)
- Store these to write to `sessions/` during File Creation
5. **Summarize for user and inform modality recommendations:**
> I've reviewed your files. Here's what I found:
> - [Key patterns you noticed]
> - [Themes that emerged]
> - [Relevant background]
>
> This will help me recommend approaches that fit your history.
### 7. Therapeutic Approaches
**If user imported notes:** Read through the imports and recommend modalities based on what you find:
> Based on what I'm seeing in your notes, I'd recommend:
> - **[Modality]** — [why it fits based on their history]
> - **[Modality]** — [why it fits]
>
> Does that sound right? You can also add others or choose something different.
**If imports don't provide enough context**, or **if user didn't import:**
> Which therapeutic approaches would you like? Pick any combination (e.g., "1,2,3"):
>
> 1. **CBT** - Thoughts affect feelings and actions
> 2. **ACT** - Values-based, mindful acceptance
@@ -104,6 +181,10 @@ Ask these conversationally, one at a time.
>
> (Default: 1)
**After selection, remind user:**
> You can change these anytime—just ask. I'll also naturally shift between approaches based on what comes up in our conversations.
**Map selections to modality files:**
- 1 → `modalities/cbt.md`
- 2 → `modalities/act.md`
@@ -118,37 +199,6 @@ Ask these conversationally, one at a time.
- 11 → `modalities/sfbt.md`
- 12 → `modalities/somatic-experiencing.md`
### 5. Session Structure
> How structured do you want sessions?
>
> 1. **Structured** - Homework, exercises, progress tracking
> 2. **Moderate** - Some structure, flexible approach
> 3. **Freeform** - Just conversation, minimal assignments
>
> (Default: 2)
**Map selection to structure file:**
- 1 → `structures/structured.md`
- 2 → `structures/moderate.md`
- 3 → `structures/freeform.md`
### 6. Storage Location
> Where should your therapy files be stored?
>
> 1. `~/{therapist_name}` - Simple
> 2. `~/Documents/{therapist_name}` - In Documents
> 3. Custom path
>
> (Default: 1)
### 7. Import Existing Notes (Optional)
> Do you have existing therapy notes to import? (ChatGPT exports, markdown, PDF, text files)
If yes, ask for file paths. Store paths for processing during first session.
---
## File Creation
@@ -225,6 +275,18 @@ Then copy the user's selected modalities to the active modalities folder:
cp "modalities/{selected_modality_1}.md" "modalities/{selected_modality_2}.md" ... "{storage_path}/.therapy/modalities/"
```
**If user imported files**, replace the blank profile with populated content:
Use the Write tool to create `{storage_path}/profile.md` with the profile information extracted during import. Fill in the template sections with actual data:
- Background → key context from imports
- Primary Concerns → main issues identified
- Patterns → recurring themes found
- Core Beliefs → beliefs revealed in content
- Coping Mechanisms → what's working and what isn't
- Values & Goals → values and goals mentioned
Do NOT copy the blank template—create a pre-populated profile.
### Step 3: Create CLAUDE.md (use Write tool)
Read `CLAUDE.template.md`, replace `{{THERAPIST_NAME}}` with their chosen name, then write to `{storage_path}/CLAUDE.md`.
@@ -263,6 +325,34 @@ chmod +x "{storage_path}/start-session.command"
printf '@echo off\r\ncd /d "%s"\r\nclaude\r\n' "{storage_path}" > "{storage_path}/start-session.bat"
```
### Step 6: Create Session Files from Imports (if applicable)
If imported conversations were processed, write each to `{storage_path}/sessions/YYYY-MM-DD.md`:
```markdown
# Session: YYYY-MM-DD
## Key Themes
- [Themes from that conversation]
## Emotional State
- [Observations about affect]
## Patterns Noted
- [Patterns observed]
## Observations
- [Therapeutic notes]
---
*Imported from [source]*
```
For multiple sessions on the same date, use: `YYYY-MM-DD-2.md`, `YYYY-MM-DD-3.md`, etc.
For undated content (user couldn't provide dates), consolidate into a single file:
`{import_date}-import.md` containing all undated sessions with clear separators.
**Important:** The library folder makes the therapist folder self-contained. Users can delete the inner-dialogue repo after setup.
---
+10 -7
View File
@@ -140,13 +140,16 @@ When the client indicates the session is ending:
- [Your observations, hypotheses, what's working]
```
**2. Update `profile.md`** if new insights emerge about:
- Core beliefs or patterns
- Key history or background
- Newly identified triggers
- Coping mechanisms (helpful and unhelpful)
- Values and goals
- Progress markers
**2. Update `profile.md`** if new insights emerge.
**How to update:**
- Read the current `profile.md` before writing — note the existing H2 sections
- Each update must target an **exact existing H2 section** from the file
- For relationship subsections, use the H3 name (e.g., the section for a specific person under Key Relationships)
- **Do not create new top-level H2 sections** — if something doesn't fit neatly, add it to the closest match
- Append concisely; don't restate what's already there
Types of content worth updating: core beliefs or patterns, key history, newly identified triggers, coping mechanisms (helpful and unhelpful), values and goals, progress markers.
**3. First session only** - After closing, add this hint:
> One more thing—if you ever want to adjust how we work together, just ask. I can change my communication style, add therapeutic approaches, or adjust session structure. I can also check for updates to keep my knowledge current.
+19 -5
View File
@@ -86,7 +86,7 @@ Your AI therapist uses evidence-based approaches — choose any combination duri
Your AI therapist:
- Remembers everything from previous sessions
- Takes notes at the end of each conversation
- Updates your profile as new insights emerge
- Updates your profile as new insights emerge, organized into named sections so it stays readable over time
- Follows up on anything you committed to try
### Your Files
@@ -146,13 +146,27 @@ Your AI therapist:
## Privacy
All your files stay on your computer. Nothing is uploaded by this toolkit.
**Your files stay on your computer.** Session notes, your profile, and therapeutic framework components are never uploaded anywhere by this toolkit.
When you chat, your messages go through the AI provider you're using (Claude or ChatGPT). Their privacy policies apply, but API access is more private than their consumer chat apps—your conversations aren't used to train their models.
**Your conversations do pass through AI servers.** When you chat, your messages are sent to whichever AI provider you're using (Anthropic, OpenAI, Google, etc.) for processing. This is how all AI tools work, including ChatGPT and Claude.ai.
**Want more privacy options?** See [SECURITY.md](SECURITY.md) for:
The difference is what happens after:
| Platform | Data Retention | Used for Training? |
|----------|---------------|-------------------|
| **Claude Code (API key)** | 7 days, then deleted | No |
| **Claude Code (Pro/Max plan)** | 30 days (up to 5 years if you opt into training) | Only if you opt in |
| **Claude.ai** | 30 days (up to 5 years if you opt into training) | Only if you opt in |
| **ChatGPT** | Indefinitely unless you delete | Only if you opt in |
| **Local models** | Never leaves your machine | No |
API access (what Claude Code and similar tools use) is meaningfully more private than consumer chat apps. Your conversations aren't stored long-term and aren't used to train models.
For full details, see [Anthropic's privacy policy](https://privacy.claude.com/en/articles/10023548-how-long-do-you-store-my-data) and [OpenAI's data retention policy](https://help.openai.com/en/articles/8983778-chat-and-file-retention-policies-in-chatgpt).
**Want even more privacy?** See [SECURITY.md](SECURITY.md) for:
- Password-protected folders
- Running a fully local AI (nothing leaves your computer)
- Running a fully local AI (nothing leaves your computer at all)
---
+13 -2
View File
@@ -1,4 +1,4 @@
<!-- version: 1.1.0 -->
<!-- version: 1.2.0 -->
# Customization Commands
The client can request changes to their therapy setup during a session. All customization files are stored locally in `.therapy/library/`.
@@ -70,7 +70,7 @@ Recognize conversational requests, not just exact command phrases:
https://raw.githubusercontent.com/ataglianetti/inner-dialogue/main/manifest.json
```
3. For each component in manifest, fetch the file and extract its version from `<!-- version: X.Y.Z -->` header
3. For each component in `components`, fetch the file and extract its version from `<!-- version: X.Y.Z -->` header
4. Compare with installed versions and show available updates:
> **Updates available:**
@@ -86,6 +86,17 @@ Recognize conversational requests, not just exact command phrases:
6. Always recommend safety-protocol updates (crisis resources should never be stale)
7. **Check library for new options:**
- Compare files in manifest's `library` section against `.therapy/library/`
- If new personas, modalities, or structures are available:
> **New options available:**
> - 2 new personas (Creative & Playful, Contemplative & Spacious)
> - 3 new modalities (IFS, Somatic Experiencing, Narrative)
>
> Add these to your library?
- Fetch each file from `base_url` + file path
- Write to the `target` directory
## When client says "import", "import notes", or "I have files to import"
1. Ask for the file or folder path:
+37 -12
View File
@@ -1,6 +1,7 @@
{
"version": "1.0.0",
"version": "1.1.0",
"description": "Inner Dialogue updatable components",
"base_url": "https://raw.githubusercontent.com/ataglianetti/inner-dialogue/main/",
"components": {
"safety-protocol": {
"file": "safety-protocol.md",
@@ -13,25 +14,49 @@
"target": ".therapy/commands.md",
"required": true,
"description": "Customization commands (import, update, persona, etc.)"
}
},
"library": {
"personas": {
"files": "personas/*.md",
"target": ".therapy/library/personas/",
"required": false,
"description": "Communication style options"
"description": "Communication style options",
"files": [
"personas/warm-4o.md",
"personas/direct-challenging.md",
"personas/warm-supportive.md",
"personas/coach.md",
"personas/grounded-real.md",
"personas/contemplative.md",
"personas/philosophical.md",
"personas/creative.md"
]
},
"modalities": {
"files": "modalities/*.md",
"target": ".therapy/library/modalities/",
"required": false,
"description": "Therapeutic approach options"
"description": "Therapeutic approach options",
"files": [
"modalities/cbt.md",
"modalities/act.md",
"modalities/cft.md",
"modalities/dbt-skills.md",
"modalities/ifs.md",
"modalities/lifespan-integration.md",
"modalities/motivational-interviewing.md",
"modalities/narrative.md",
"modalities/polyvagal.md",
"modalities/psychodynamic.md",
"modalities/sfbt.md",
"modalities/somatic-experiencing.md"
]
},
"structures": {
"files": "structures/*.md",
"target": ".therapy/library/structures/",
"required": false,
"description": "Session structure options"
"description": "Session structure options",
"files": [
"structures/structured.md",
"structures/moderate.md",
"structures/freeform.md"
]
}
}
},
"base_url": "https://raw.githubusercontent.com/ataglianetti/inner-dialogue/main/"
}