ci: update CI/CD configuration
This commit is contained in:
parent
a57bff7499
commit
458d835e5a
@ -9,16 +9,16 @@ Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
|------|---------|-----------|------|
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
@ -48,6 +48,7 @@ ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
Last refresh: 2026-03-03T19:50:43Z (2026-03-03 11:50:43 PST)
|
||||
Cascade conversations: 50 (297M)
|
||||
Last refresh: 2026-03-03T20:04:34Z (2026-03-03 12:04:34 PST)
|
||||
Cascade conversations: 50 (300M)
|
||||
Memories: 65
|
||||
Implicit context: 20
|
||||
Code tracker dirs: 190
|
||||
File edit history: 2343 entries
|
||||
Code tracker dirs: 194
|
||||
File edit history: 2350 entries
|
||||
Workspace storage: 28 workspaces
|
||||
Repo docs: 7 files across 2 repos
|
||||
Repo workflows: 37 files across 8 repos
|
||||
Repo workflows: 65 files across 8 repos
|
||||
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -11,14 +11,14 @@ Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequent
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
Run `bash ~/code/mygh/learning_ai_common_plat/scripts/backup-main.sh` from any directory
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap; do
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
@ -29,7 +29,7 @@ echo "✨ All repos pushed!"
|
||||
## What it does:
|
||||
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 5 repos
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
@ -38,6 +38,8 @@ echo "✨ All repos pushed!"
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ description: Smart backup of main branches with duplicate detection
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
// turbo
|
||||
Run `bash ~/code/mygh/learning_ai_common_plat/scripts/backup-main.sh` from any directory
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## What it does:
|
||||
|
||||
@ -24,11 +24,13 @@ Run `bash ~/code/mygh/learning_ai_common_plat/scripts/backup-main.sh` from any d
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- Smart duplicate detection
|
||||
- Automatic cleanup of old backups
|
||||
- Multi-repo support
|
||||
- Safe operations (always returns to main)
|
||||
- Color-coded output for clarity
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
|
||||
@ -1,50 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace
|
||||
|
||||
Commits all pending changes across all 5 workspace repos in logical order.
|
||||
|
||||
## Step 1: Check status of all repos
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git status --short)
|
||||
echo ""
|
||||
done
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
## Step 2: Stage and commit each repo
|
||||
## Example Output:
|
||||
|
||||
For each repo with changes:
|
||||
1. Review the diff
|
||||
2. Stage all changes with `git add -A`
|
||||
3. Write a conventional commit message: `type(scope): description`
|
||||
4. Commit
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
## Commit message conventions:
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
- `feat(scope):` — new feature
|
||||
- `fix(scope):` — bug fix
|
||||
- `refactor(scope):` — code restructuring
|
||||
- `docs(scope):` — documentation only
|
||||
- `test(scope):` — adding/updating tests
|
||||
- `chore(scope):` — maintenance tasks
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
## Order:
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
1. **learning_ai_common_plat** — shared packages first (others may depend on it)
|
||||
2. **learning_voice_ai_agent** — LysnrAI product repo
|
||||
3. **learning_multimodal_memory_agents** — MindLyst product repo
|
||||
4. **learning_ai_clock** — ChronoMind product repo
|
||||
5. **learning_ai_fastgap** — NomGap product repo
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
## Safety:
|
||||
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Always commit common_plat first since other repos may reference its packages
|
||||
- Use `--no-verify` only if pre-commit hooks are blocking on non-code issues
|
||||
- After committing, run `/repo_push-repos` to push all to origin
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Pull latest from origin main across all 5 workspace repos
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos
|
||||
@ -9,7 +9,7 @@ Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap; do
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
@ -17,7 +17,7 @@ done
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Iterates over all 5 workspace repos
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
@ -28,6 +28,8 @@ done
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -7,17 +7,18 @@ description: Refresh the Windsurf chat history archive (re-scan all repos, updat
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 7 workspaces)
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
|------|---------|-----------|------|
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
@ -47,6 +48,7 @@ ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Backup main branches then push all repos to origin in sequence
|
||||
---
|
||||
|
||||
# Backup & Push All Repos
|
||||
|
||||
Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.
|
||||
|
||||
## Step 1: Backup main branches
|
||||
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
echo ""
|
||||
echo "✨ All repos pushed!"
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- End of a work session
|
||||
- Before switching machines
|
||||
- After a batch of commits across repos
|
||||
- Anytime you want a safe checkpoint + sync to remote
|
||||
|
||||
## Notes:
|
||||
|
||||
- Backup runs first so the backup branch includes the latest local commits
|
||||
- Push only pushes `main` — backup branches are pushed by the backup script itself
|
||||
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
|
||||
@ -0,0 +1,36 @@
|
||||
---
|
||||
description: Smart backup of main branches with duplicate detection
|
||||
---
|
||||
|
||||
# Backup Main Branch
|
||||
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Checks each repository for changes
|
||||
2. Skips backup if main hasn't changed since last backup
|
||||
3. Creates timestamped backup branch
|
||||
4. Cleans up old backups (keeps 7 days)
|
||||
5. Returns to main branch
|
||||
|
||||
## Repositories covered:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
@ -0,0 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace
|
||||
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
## Example Output:
|
||||
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
## Safety:
|
||||
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
@ -0,0 +1,44 @@
|
||||
---
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos
|
||||
|
||||
Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- Starting a new work session
|
||||
- After pushing changes from another machine
|
||||
- Before running `/repo_backup-main-branch`
|
||||
|
||||
## Notes:
|
||||
|
||||
- Uses `--ff-only` to prevent accidental merge commits
|
||||
- If a repo has uncommitted changes, `git pull` will still work (fast-forward only)
|
||||
- If a repo has diverged from origin, the pull will fail safely — resolve manually
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Backup main branches then push all repos to origin in sequence
|
||||
---
|
||||
|
||||
# Backup & Push All Repos
|
||||
|
||||
Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.
|
||||
|
||||
## Step 1: Backup main branches
|
||||
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
echo ""
|
||||
echo "✨ All repos pushed!"
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- End of a work session
|
||||
- Before switching machines
|
||||
- After a batch of commits across repos
|
||||
- Anytime you want a safe checkpoint + sync to remote
|
||||
|
||||
## Notes:
|
||||
|
||||
- Backup runs first so the backup branch includes the latest local commits
|
||||
- Push only pushes `main` — backup branches are pushed by the backup script itself
|
||||
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
|
||||
@ -0,0 +1,36 @@
|
||||
---
|
||||
description: Smart backup of main branches with duplicate detection
|
||||
---
|
||||
|
||||
# Backup Main Branch
|
||||
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Checks each repository for changes
|
||||
2. Skips backup if main hasn't changed since last backup
|
||||
3. Creates timestamped backup branch
|
||||
4. Cleans up old backups (keeps 7 days)
|
||||
5. Returns to main branch
|
||||
|
||||
## Repositories covered:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
@ -0,0 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace
|
||||
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
## Example Output:
|
||||
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
## Safety:
|
||||
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
@ -0,0 +1,44 @@
|
||||
---
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos
|
||||
|
||||
Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- Starting a new work session
|
||||
- After pushing changes from another machine
|
||||
- Before running `/repo_backup-main-branch`
|
||||
|
||||
## Notes:
|
||||
|
||||
- Uses `--ff-only` to prevent accidental merge commits
|
||||
- If a repo has uncommitted changes, `git pull` will still work (fast-forward only)
|
||||
- If a repo has diverged from origin, the pull will fail safely — resolve manually
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -1,31 +1,55 @@
|
||||
---
|
||||
description: Backup main branch then push PeakPulse repo to origin
|
||||
description: Backup main branches then push all repos to origin in sequence
|
||||
---
|
||||
|
||||
1. Check for uncommitted changes
|
||||
# Backup & Push All Repos
|
||||
|
||||
Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.
|
||||
|
||||
## Step 1: Backup main branches
|
||||
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git status --short
|
||||
```
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
2. If there are changes, commit them with an appropriate message
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git add -A && git commit -m "chore: save work in progress"
|
||||
```
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
3. Create a timestamped backup branch
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git branch backup/main-$(date +%Y%m%d-%H%M%S)
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
echo ""
|
||||
echo "✨ All repos pushed!"
|
||||
```
|
||||
|
||||
4. Push main to origin
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git push origin main
|
||||
```
|
||||
## What it does:
|
||||
|
||||
5. Verify push succeeded
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git log --oneline -3
|
||||
```
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- End of a work session
|
||||
- Before switching machines
|
||||
- After a batch of commits across repos
|
||||
- Anytime you want a safe checkpoint + sync to remote
|
||||
|
||||
## Notes:
|
||||
|
||||
- Backup runs first so the backup branch includes the latest local commits
|
||||
- Push only pushes `main` — backup branches are pushed by the backup script itself
|
||||
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
|
||||
|
||||
@ -2,26 +2,35 @@
|
||||
description: Smart backup of main branches with duplicate detection
|
||||
---
|
||||
|
||||
1. List existing backup branches
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git branch --list 'backup/*' | tail -5
|
||||
```
|
||||
# Backup Main Branch
|
||||
|
||||
2. Get current HEAD commit
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git rev-parse --short HEAD
|
||||
```
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
3. Create backup branch with timestamp (skip if HEAD hasn't changed since last backup)
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git branch backup/main-$(date +%Y%m%d-%H%M%S)
|
||||
```
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
4. Confirm backup created
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git branch --list 'backup/*' | tail -3
|
||||
```
|
||||
## What it does:
|
||||
|
||||
1. Checks each repository for changes
|
||||
2. Skips backup if main hasn't changed since last backup
|
||||
3. Creates timestamped backup branch
|
||||
4. Cleans up old backups (keeps 7 days)
|
||||
5. Returns to main branch
|
||||
|
||||
## Repositories covered:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
|
||||
@ -1,39 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace Changes — PeakPulse
|
||||
# Commit Workspace
|
||||
|
||||
## Steps
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
1. Check for uncommitted changes:
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git status --short
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
2. If there are changes, stage all files:
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git add -A
|
||||
## Example Output:
|
||||
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
3. Review staged changes to craft an intelligent commit message:
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git diff --cached --stat
|
||||
```
|
||||
## Features:
|
||||
|
||||
4. Commit with a descriptive single-line message following the convention `type(scope): description`:
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git commit -m "<type>(<scope>): <description>"
|
||||
```
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
**Commit types:** feat, fix, docs, refactor, test, chore
|
||||
**Common scopes:** models, services, views, components, platform, tests, config, docs
|
||||
## Safety:
|
||||
|
||||
5. Verify commit:
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git log -1 --oneline
|
||||
```
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
|
||||
@ -1,24 +1,44 @@
|
||||
---
|
||||
description: Pull latest from origin main for PeakPulse repo
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos — PeakPulse
|
||||
# Sync Repos
|
||||
|
||||
## Steps
|
||||
Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
|
||||
1. Ensure working tree is clean:
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git status --short
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
```
|
||||
|
||||
2. Pull latest from origin main:
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git pull origin main
|
||||
```
|
||||
## What it does:
|
||||
|
||||
3. Verify current state:
|
||||
// turbo
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_peakpulse && git log -3 --oneline
|
||||
```
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- Starting a new work session
|
||||
- After pushing changes from another machine
|
||||
- Before running `/repo_backup-main-branch`
|
||||
|
||||
## Notes:
|
||||
|
||||
- Uses `--ff-only` to prevent accidental merge commits
|
||||
- If a repo has uncommitted changes, `git pull` will still work (fast-forward only)
|
||||
- If a repo has diverged from origin, the pull will fail safely — resolve manually
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -0,0 +1,188 @@
|
||||
---
|
||||
description: Build and upload MindLyst iOS app to TestFlight for beta testing
|
||||
---
|
||||
|
||||
## Release MindLyst to TestFlight
|
||||
|
||||
Push a new iOS beta build of MindLyst to TestFlight.
|
||||
|
||||
---
|
||||
|
||||
## Fresh Mac Setup (from scratch)
|
||||
|
||||
### 1. Install tools
|
||||
|
||||
```bash
|
||||
xcode-select --install # Xcode Command Line Tools
|
||||
brew install openjdk@17 # Java 17 for Gradle/KMP
|
||||
```
|
||||
|
||||
Then install full **Xcode** from the Mac App Store (required for iOS builds).
|
||||
|
||||
### 2. Sign in to Apple Developer
|
||||
|
||||
1. Open Xcode → Settings → Accounts → **+** → Apple ID
|
||||
2. Sign in with your Apple Developer account
|
||||
3. Xcode auto-downloads provisioning profiles and signing certificates
|
||||
|
||||
### 3. Create the Xcode project (one-time only)
|
||||
|
||||
MindLyst iOS uses KMP (Kotlin Multiplatform). The `.xcodeproj` must be created manually:
|
||||
|
||||
1. Open Xcode → File → New → Project → iOS → App
|
||||
2. Settings:
|
||||
- Product Name: `MindLyst`
|
||||
- Organization Identifier: `com.mindlyst`
|
||||
- Interface: **SwiftUI**
|
||||
- Language: **Swift**
|
||||
- Save inside: `mindlyst-native/`
|
||||
3. Delete the default `ContentView.swift` and `MindLystApp.swift` created by Xcode
|
||||
4. Drag the existing Swift files from `iosApp/` into the Xcode project:
|
||||
- `MindLystApp.swift`, `ContentView.swift`, `MindLystTheme.swift`
|
||||
- `Components/` folder (CaptureOrb.swift, BrainChipAndTriageCard.swift)
|
||||
- `Navigation/` folder (MainTabView.swift)
|
||||
- `Screens/` folder (HomeScreen, CaptureScreen, SettingsScreen, BrainDetailScreen)
|
||||
5. Link the KMP shared framework (see Step 4 of build steps below)
|
||||
|
||||
See `iosApp/README_SETUP.md` for more details.
|
||||
|
||||
### 4. Verify Gradle/KMP builds
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
cd mindlyst-native && ./gradlew :shared:compileKotlinIosSimulatorArm64
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build + Upload Steps
|
||||
|
||||
### 1. Build the KMP shared framework
|
||||
|
||||
This compiles the Kotlin shared module into an iOS framework.
|
||||
|
||||
```bash
|
||||
cd mindlyst-native && ./gradlew :shared:compileKotlinIosArm64
|
||||
```
|
||||
|
||||
For simulator testing:
|
||||
|
||||
```bash
|
||||
cd mindlyst-native && ./gradlew :shared:compileKotlinIosSimulatorArm64
|
||||
```
|
||||
|
||||
### 2. Embed the shared framework in Xcode
|
||||
|
||||
If not already linked:
|
||||
|
||||
```bash
|
||||
cd mindlyst-native && ./gradlew :shared:embedAndSignAppleFrameworkForXcode
|
||||
```
|
||||
|
||||
Or manually: Xcode → Target → Build Phases → Link Binary With Libraries → add `shared.framework`
|
||||
|
||||
### 3. Bump the build number
|
||||
|
||||
Cascade will auto-increment `CURRENT_PROJECT_VERSION` in `project.pbxproj` (both Debug and Release).
|
||||
Or manually: open Xcode → Target → General → Build.
|
||||
|
||||
### 4. Clean build folder
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
xcodebuild clean -project mindlyst-native/MindLyst.xcodeproj -scheme MindLyst -configuration Release 2>&1 | tail -3
|
||||
```
|
||||
|
||||
### 5. Archive the app
|
||||
|
||||
```bash
|
||||
xcodebuild archive \
|
||||
-project mindlyst-native/MindLyst.xcodeproj \
|
||||
-scheme MindLyst \
|
||||
-configuration Release \
|
||||
-archivePath build/MindLyst.xcarchive \
|
||||
-destination 'generic/platform=iOS' \
|
||||
DEVELOPMENT_TEAM=748N7QPX7J \
|
||||
CODE_SIGN_STYLE=Automatic
|
||||
```
|
||||
|
||||
> **Note:** If using a `.xcworkspace` (e.g. with CocoaPods), replace `-project` with `-workspace`.
|
||||
|
||||
### 6. Export + upload to App Store Connect
|
||||
|
||||
```bash
|
||||
xcodebuild -exportArchive \
|
||||
-archivePath build/MindLyst.xcarchive \
|
||||
-exportPath build/export \
|
||||
-exportOptionsPlist scripts/MindLystExportOptions.plist
|
||||
```
|
||||
|
||||
The `app-store-connect` export method auto-uploads the IPA.
|
||||
|
||||
### 7. Enable for testers
|
||||
|
||||
1. Go to [App Store Connect](https://appstoreconnect.apple.com) → My Apps → MindLyst → TestFlight
|
||||
2. Wait ~5-15 min for processing
|
||||
3. Click the new build → add to testing group
|
||||
- **Internal Testing**: available immediately
|
||||
- **External Testing**: fill in "What to Test" notes, submit for review (~24h)
|
||||
|
||||
---
|
||||
|
||||
## Alternative: Xcode GUI
|
||||
|
||||
1. Open `mindlyst-native/MindLyst.xcodeproj` in Xcode
|
||||
2. Scheme: **MindLyst**, destination: **Any iOS Device**
|
||||
3. Product → Archive
|
||||
4. Organizer → Distribute App → App Store Connect → Upload
|
||||
|
||||
---
|
||||
|
||||
## Reference
|
||||
|
||||
### Key Paths
|
||||
|
||||
| Path | Purpose |
|
||||
| ------------------------------------------- | ---------------------------------------- |
|
||||
| `mindlyst-native/iosApp/` | Swift UI source files |
|
||||
| `mindlyst-native/shared/` | KMP shared module (business logic) |
|
||||
| `mindlyst-native/shared/build.gradle.kts` | KMP build config (iOS targets) |
|
||||
| `mindlyst-native/gradle/libs.versions.toml` | Version catalog |
|
||||
| `mindlyst-native/MindLyst.xcodeproj/` | Xcode project (must be created manually) |
|
||||
| `scripts/MindLystExportOptions.plist` | Export options for TestFlight upload |
|
||||
|
||||
### Build Identity
|
||||
|
||||
| Field | Value |
|
||||
| ------------- | ----------------------- |
|
||||
| Team ID | `748N7QPX7J` |
|
||||
| Bundle ID | `com.mindlyst.MindLyst` |
|
||||
| Signing | Automatic |
|
||||
| KMP Framework | `shared` (static) |
|
||||
| Min iOS | 16.0 |
|
||||
|
||||
### KMP Architecture
|
||||
|
||||
```
|
||||
shared/src/commonMain/ → Business logic (Kotlin)
|
||||
↓ compiles to
|
||||
shared.framework → iOS static framework
|
||||
↓ linked by
|
||||
iosApp/ (SwiftUI) → Thin UI shell
|
||||
```
|
||||
|
||||
All business logic lives in `shared/src/commonMain/`. iOS code in `iosApp/` is a thin UI shell.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
| Problem | Fix |
|
||||
| ----------------------------- | ------------------------------------------------------------------------ |
|
||||
| "No signing certificate" | Xcode → Settings → Accounts → Manage Certificates → + Apple Distribution |
|
||||
| "Provisioning profile" error | Xcode → Target → Signing → Enable "Automatically manage signing" |
|
||||
| "Build number already exists" | Increment build number in step 3 |
|
||||
| KMP build fails | Check Java 17: `java -version`. Install: `brew install openjdk@17` |
|
||||
| "shared.framework not found" | Run `./gradlew :shared:embedAndSignAppleFrameworkForXcode` |
|
||||
| Gradle SSL proxy error | Build on home network (corporate proxy blocks Gradle repos) |
|
||||
| Processing >30 min | Check [Apple system status](https://developer.apple.com/system-status/) |
|
||||
@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Backup main branches then push all repos to origin in sequence
|
||||
---
|
||||
|
||||
# Backup & Push All Repos
|
||||
|
||||
Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.
|
||||
|
||||
## Step 1: Backup main branches
|
||||
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
echo ""
|
||||
echo "✨ All repos pushed!"
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- End of a work session
|
||||
- Before switching machines
|
||||
- After a batch of commits across repos
|
||||
- Anytime you want a safe checkpoint + sync to remote
|
||||
|
||||
## Notes:
|
||||
|
||||
- Backup runs first so the backup branch includes the latest local commits
|
||||
- Push only pushes `main` — backup branches are pushed by the backup script itself
|
||||
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
|
||||
@ -0,0 +1,36 @@
|
||||
---
|
||||
description: Smart backup of main branches with duplicate detection
|
||||
---
|
||||
|
||||
# Backup Main Branch
|
||||
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Checks each repository for changes
|
||||
2. Skips backup if main hasn't changed since last backup
|
||||
3. Creates timestamped backup branch
|
||||
4. Cleans up old backups (keeps 7 days)
|
||||
5. Returns to main branch
|
||||
|
||||
## Repositories covered:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
@ -0,0 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace
|
||||
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
## Example Output:
|
||||
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
## Safety:
|
||||
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
@ -0,0 +1,44 @@
|
||||
---
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos
|
||||
|
||||
Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- Starting a new work session
|
||||
- After pushing changes from another machine
|
||||
- Before running `/repo_backup-main-branch`
|
||||
|
||||
## Notes:
|
||||
|
||||
- Uses `--ff-only` to prevent accidental merge commits
|
||||
- If a repo has uncommitted changes, `git pull` will still work (fast-forward only)
|
||||
- If a repo has diverged from origin, the pull will fail safely — resolve manually
|
||||
@ -0,0 +1,51 @@
|
||||
---
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Files Generated Per Repo
|
||||
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
1. Run the update script:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. Review changes per repo:
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
3. Commit changes (if any):
|
||||
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
@ -0,0 +1,67 @@
|
||||
---
|
||||
description: Refresh the Windsurf chat history archive (re-scan all repos, update symlinks, copy docs/workflows)
|
||||
---
|
||||
|
||||
# Refresh Windsurf Chat History Archive
|
||||
|
||||
Refreshes the centralized Windsurf chat history archive at `__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/`.
|
||||
Auto-discovers new repos, updates symlinks, and re-copies docs + workflows.
|
||||
|
||||
## Covered Repos (All 8 workspaces)
|
||||
|
||||
| Repo | Product | Workflows | Docs |
|
||||
| ----------------------------------- | ---------------- | --------- | ---- |
|
||||
| `learning_voice_ai_agent` | LysnrAI | ✅ | ✅ |
|
||||
| `learning_multimodal_memory_agents` | MindLyst | ✅ | ✅ |
|
||||
| `learning_ai_clock` | ChronoMind | ✅ | — |
|
||||
| `learning_ai_peakpulse` | PeakPulse | ✅ | — |
|
||||
| `learning_ai_fastgap` | NomGap | ✅ | — |
|
||||
| `learning_ai_jarvis_jr` | JarvisJr | ✅ | — |
|
||||
| `learning_ai_common_plat` | Common Platform | ✅ | — |
|
||||
| `learning_agent_monitoring_fx` | Agent Monitoring | ✅ | — |
|
||||
|
||||
## Steps
|
||||
|
||||
// turbo
|
||||
|
||||
1. Run the refresh script:
|
||||
|
||||
```bash
|
||||
/Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/refresh.sh
|
||||
```
|
||||
|
||||
2. Check the refresh log:
|
||||
|
||||
```bash
|
||||
cat /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log
|
||||
```
|
||||
|
||||
3. Verify symlinks are valid:
|
||||
|
||||
```bash
|
||||
ls -la /Users/sd9235/code/mygh/learning_ai_common_plat/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/ | grep "^l"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is **idempotent** — safe to run any number of times.
|
||||
- It auto-discovers repos under `/Users/sd9235/code/mygh/` that have `docs/WINDSURF/` or `.windsurf/workflows/`.
|
||||
- A **launchd job** runs this daily at 11 PM: `~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist`.
|
||||
- Logs: `.last-refresh.log` (stats), `.launchd-stdout.log` / `.launchd-stderr.log` (scheduled run output).
|
||||
- **See also:** [Workflow Sync Guide](/Users/sd9235/code/mygh/learning_ai_common_plat/docs/guides/WORKFLOW_SYNC.md) — how to keep workflows consistent across repos.
|
||||
|
||||
## Manage the scheduled job
|
||||
|
||||
```bash
|
||||
# Check if running
|
||||
launchctl list | grep windsurf-archive
|
||||
|
||||
# Stop
|
||||
launchctl unload ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Start
|
||||
launchctl load ~/Library/LaunchAgents/com.sd9235.windsurf-archive-refresh.plist
|
||||
|
||||
# Force run now
|
||||
launchctl start com.sd9235.windsurf-archive-refresh
|
||||
```
|
||||
@ -0,0 +1,55 @@
|
||||
---
|
||||
description: Backup main branches then push all repos to origin in sequence
|
||||
---
|
||||
|
||||
# Backup & Push All Repos
|
||||
|
||||
Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.
|
||||
|
||||
## Step 1: Backup main branches
|
||||
|
||||
Creates timestamped backup branches with smart duplicate detection.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## Step 2: Push all repos to origin
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ Pushing $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git push origin main 2>&1)
|
||||
done
|
||||
echo ""
|
||||
echo "✨ All repos pushed!"
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
|
||||
2. **Push** — pushes `main` to `origin/main` for all 7 repos
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- End of a work session
|
||||
- Before switching machines
|
||||
- After a batch of commits across repos
|
||||
- Anytime you want a safe checkpoint + sync to remote
|
||||
|
||||
## Notes:
|
||||
|
||||
- Backup runs first so the backup branch includes the latest local commits
|
||||
- Push only pushes `main` — backup branches are pushed by the backup script itself
|
||||
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
|
||||
@ -0,0 +1,36 @@
|
||||
---
|
||||
description: Smart backup of main branches with duplicate detection
|
||||
---
|
||||
|
||||
# Backup Main Branch
|
||||
|
||||
Creates smart backups of main branches across all repositories.
|
||||
|
||||
// turbo
|
||||
Run `bash scripts/backup-main.sh` from any repository root
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Checks each repository for changes
|
||||
2. Skips backup if main hasn't changed since last backup
|
||||
3. Creates timestamped backup branch
|
||||
4. Cleans up old backups (keeps 7 days)
|
||||
5. Returns to main branch
|
||||
|
||||
## Repositories covered:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ Smart duplicate detection
|
||||
- ✅ Automatic cleanup of old backups
|
||||
- ✅ Multi-repo support
|
||||
- ✅ Safe operations (always returns to main)
|
||||
- ✅ Color-coded output for clarity
|
||||
@ -0,0 +1,117 @@
|
||||
---
|
||||
description: Commit all workspace changes in logical order with intelligent messages
|
||||
date: 2025-02-12
|
||||
---
|
||||
|
||||
# Commit Workspace
|
||||
|
||||
Scans all repositories for pending changes and commits them in logical order with intelligent commit messages.
|
||||
|
||||
// turbo
|
||||
~/commit-workspace.sh
|
||||
|
||||
## What it does:
|
||||
|
||||
1. **Scans** all 7 repos for changes:
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
2. **Analyzes** changed files to determine:
|
||||
- Commit scope (auth, ci, docs, feat, chore, etc.)
|
||||
- Appropriate commit message
|
||||
- Logical grouping
|
||||
|
||||
3. **Commits** in dependency order:
|
||||
- Always commits common platform first
|
||||
- Then other repos
|
||||
|
||||
4. Does **NOT** push — use `/repo_sync-repos` or `git push` separately
|
||||
|
||||
## Commit Message Logic:
|
||||
|
||||
The script analyzes file types to generate appropriate messages:
|
||||
|
||||
| File Pattern | Commit Message Example |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| auth/middleware/jwt files | `feat(auth): update authentication and middleware` |
|
||||
| .github/workflows/ | `ci: update CI/CD configuration` |
|
||||
| Dockerfile + package.json | `feat: update Dockerfile for pnpm workspace support` |
|
||||
| package.json, lock files | `chore: update dependencies` |
|
||||
| \*.md files | `docs: update documentation` |
|
||||
| \*.py, requirements.txt | `feat(python): update Python modules` |
|
||||
| test/, _spec_ | `test: add/update tests` |
|
||||
| .env, config files | `chore: update configuration` |
|
||||
| Other files | `chore: update project files` |
|
||||
|
||||
## Usage:
|
||||
|
||||
```bash
|
||||
# Run from anywhere
|
||||
~/commit-workspace.sh
|
||||
|
||||
# Or via Windsurf
|
||||
/commit-workspace
|
||||
```
|
||||
|
||||
## Example Output:
|
||||
|
||||
```
|
||||
📋 Scanning workspace for changes...
|
||||
|
||||
📁 learning_ai_common_plat:
|
||||
- 2 staged
|
||||
- 1 modified
|
||||
|
||||
📁 learning_voice_ai_agent:
|
||||
- 3 untracked
|
||||
|
||||
Found changes in 2 repo(s)
|
||||
|
||||
🚀 Committing in dependency order...
|
||||
|
||||
📝 Committing learning_ai_common_plat...
|
||||
Message: feat(auth): update authentication and middleware
|
||||
✅ Committed
|
||||
|
||||
📝 Committing learning_voice_ai_agent...
|
||||
Message: docs: update documentation
|
||||
✅ Committed
|
||||
|
||||
✨ All changes committed locally!
|
||||
💡 Use /repo_sync-repos or git push to push to remote
|
||||
```
|
||||
|
||||
## Features:
|
||||
|
||||
- ✅ No prompts - fully automated
|
||||
- ✅ Intelligent commit messages
|
||||
- ✅ Logical dependency order
|
||||
- ✅ Stages all changes automatically
|
||||
- ✅ Local commits only (no push)
|
||||
- ✅ Clean, colored output
|
||||
|
||||
## Safety:
|
||||
|
||||
- Always shows what will be committed
|
||||
- Uses conventional commit format
|
||||
- Commits in correct order to avoid issues
|
||||
- Preserves all changes
|
||||
|
||||
## When to Use:
|
||||
|
||||
- After making changes across multiple repos
|
||||
- Before switching contexts/tasks
|
||||
- At the end of a development session
|
||||
- When preparing for releases
|
||||
|
||||
## Notes:
|
||||
|
||||
- Script location: `~/commit-workspace.sh`
|
||||
- Requires git access to all repos
|
||||
- Works with any branch (but assumes main is primary)
|
||||
- Will skip repos with no changes
|
||||
@ -0,0 +1,44 @@
|
||||
---
|
||||
description: Pull latest from origin main across all 7 workspace repos
|
||||
---
|
||||
|
||||
# Sync Repos
|
||||
|
||||
Pulls the latest changes from `origin/main` for all workspace repositories.
|
||||
|
||||
// turbo
|
||||
|
||||
```bash
|
||||
for repo in learning_ai_common_plat learning_voice_ai_agent learning_multimodal_memory_agents learning_ai_clock learning_ai_fastgap learning_ai_jarvis_jr learning_ai_peakpulse; do
|
||||
echo "━━━ $repo ━━━"
|
||||
(cd ~/code/mygh/$repo && git pull --ff-only origin main)
|
||||
done
|
||||
```
|
||||
|
||||
## What it does:
|
||||
|
||||
1. Iterates over all 7 workspace repos
|
||||
2. Runs `git pull --ff-only origin main` in each
|
||||
3. Fails fast if there are local divergent commits (use `git pull --rebase` manually in that case)
|
||||
|
||||
## Repositories:
|
||||
|
||||
- learning_ai_common_plat
|
||||
- learning_voice_ai_agent
|
||||
- learning_multimodal_memory_agents
|
||||
- learning_ai_clock
|
||||
- learning_ai_fastgap
|
||||
- learning_ai_jarvis_jr
|
||||
- learning_ai_peakpulse
|
||||
|
||||
## When to use:
|
||||
|
||||
- Starting a new work session
|
||||
- After pushing changes from another machine
|
||||
- Before running `/repo_backup-main-branch`
|
||||
|
||||
## Notes:
|
||||
|
||||
- Uses `--ff-only` to prevent accidental merge commits
|
||||
- If a repo has uncommitted changes, `git pull` will still work (fast-forward only)
|
||||
- If a repo has diverged from origin, the pull will fail safely — resolve manually
|
||||
@ -1,164 +1,51 @@
|
||||
---
|
||||
description: Scan all repos and regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, copilot-instructions) across the workspace
|
||||
description: Regenerate AI agent docs (AGENTS.md, CLAUDE.md, .cursorrules, etc.) across all repos
|
||||
---
|
||||
|
||||
# Update Agent Documentation
|
||||
# Update Agent Docs Across Workspace
|
||||
|
||||
Scans all three workspace repos, builds a comprehensive understanding of the current state, and regenerates all AI agent communication files. Run this periodically — especially after adding packages, services, modules, or changing conventions.
|
||||
Regenerates all 8 AI agent configuration files across all repos in the workspace.
|
||||
|
||||
## Repos Covered
|
||||
## Files Generated Per Repo
|
||||
|
||||
| Repo | Path | Scope |
|
||||
|------|------|-------|
|
||||
| **learning_voice_ai_agent** | `$HOME/code/mygh/learning_voice_ai_agent` | LysnrAI product code (desktop, backend, dashboards) |
|
||||
| **learning_ai_common_plat** | `$HOME/code/mygh/learning_ai_common_plat` | Shared @bytelyst/* packages + @lysnrai/* microservices |
|
||||
| **learning_multimodal_memory_agents** | `$HOME/code/mygh/learning_multimodal_memory_agents` | MindLyst native app (KMP + SwiftUI + Compose + Next.js) |
|
||||
|
||||
## Files Updated Per Repo
|
||||
|
||||
| File | Tool | Format |
|
||||
|------|------|--------|
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, all agents) | Detailed markdown — full onboarding, structure, conventions, patterns, ownership |
|
||||
| `CLAUDE.md` | Claude Code (Anthropic) | Short markdown (<50 lines) — compact quick-reference summary |
|
||||
| `.cursorrules` | Cursor AI | Plain text — inline completion + chat rules |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot | Markdown — code generation always/never lists |
|
||||
| `.windsurfrules` | Windsurf / Codeium Cascade | Plain text — project rules for Windsurf memory system |
|
||||
| `.clinerules` | Cline / Roo Code (VS Code) | Plain text — mandatory rules + key file locations |
|
||||
| `.aider.conf.yml` | Aider | YAML — context files, conventions pointer, lint commands |
|
||||
| `.editorconfig` | All editors / JetBrains AI | INI — indent, charset, line ending, trim rules |
|
||||
|
||||
---
|
||||
| File | Tool |
|
||||
| --------------------------------- | ----------------------------------------------- |
|
||||
| `AGENTS.md` | Universal (OpenAI Codex, Claude, Copilot, etc.) |
|
||||
| `CLAUDE.md` | Claude Code |
|
||||
| `.cursorrules` | Cursor AI |
|
||||
| `.github/copilot-instructions.md` | GitHub Copilot |
|
||||
| `.windsurfrules` | Windsurf / Cascade |
|
||||
| `.clinerules` | Cline / Roo Code |
|
||||
| `.aider.conf.yml` | Aider |
|
||||
| `.editorconfig` | All editors |
|
||||
|
||||
## Steps
|
||||
|
||||
### Phase 1: Gather Current State
|
||||
1. Run the update script:
|
||||
|
||||
1. **Scan learning_voice_ai_agent structure:**
|
||||
// turbo
|
||||
- Run `find $HOME/code/mygh/learning_voice_ai_agent -maxdepth 2 -type f -name "package.json" -not -path "*/node_modules/*" | head -20` to find all JS projects
|
||||
// turbo
|
||||
- Run `find $HOME/code/mygh/learning_voice_ai_agent -maxdepth 1 -type f -name "*.py" -o -name "*.toml" -o -name "Makefile" | head -20` to find Python config
|
||||
- Read `AGENTS.md`, `README_MONO_REPO.md`, `docker-compose.yml`, `pyproject.toml`
|
||||
- Read each dashboard's `package.json` to check current `@bytelyst/*` dependencies
|
||||
- List `user-dashboard-web/src/lib/` to see which lib files exist
|
||||
- NOTE: admin-dashboard-web and tracker-dashboard-web moved to `../learning_ai_common_plat/dashboards/`
|
||||
- Read `user-dashboard-web/src/lib/cosmos.ts` and `auth-server.ts` to verify which @bytelyst/* packages are wired
|
||||
- Count Python tests: `find tests/ -name "test_*.py" | wc -l`
|
||||
- Count API routes: `find user-dashboard-web/src/app/api -name "route.ts" | wc -l`
|
||||
- Read `.github/workflows/` to count CI workflows
|
||||
- Read `run-local-all-services.sh` header to understand service topology
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_ai_common_plat
|
||||
./scripts/update-agent-docs.sh
|
||||
```
|
||||
|
||||
2. **Scan learning_ai_common_plat structure:**
|
||||
// turbo
|
||||
- Run `find $HOME/code/mygh/learning_ai_common_plat/packages -maxdepth 2 -name "package.json" -not -path "*/node_modules/*"` to list all packages
|
||||
// turbo
|
||||
- Run `find $HOME/code/mygh/learning_ai_common_plat/services -maxdepth 2 -name "package.json" -not -path "*/node_modules/*"` to list all services
|
||||
- Read `AGENTS.md`, `README.md`, `pnpm-workspace.yaml`, `tsconfig.base.json`
|
||||
- Read each package's `src/index.ts` to catalog exports
|
||||
- Read each service's `src/server.ts` to catalog registered modules
|
||||
- Count tests: run `cd $HOME/code/mygh/learning_ai_common_plat && pnpm test 2>&1 | tail -5` (if quick) or count test files
|
||||
- Read `packages/design-tokens/tokens/bytelyst.tokens.json` for current token state
|
||||
- Check `packages/design-tokens/generated/` for what output formats exist
|
||||
2. Review changes per repo:
|
||||
|
||||
3. **Scan learning_multimodal_memory_agents structure:**
|
||||
// turbo
|
||||
- Run `find $HOME/code/mygh/learning_multimodal_memory_agents/mindlyst-native -maxdepth 3 -name "*.kt" -o -name "*.swift" -o -name "*.tsx" | head -30`
|
||||
- Read `AGENTS.md`, `README.md`, `ARCHITECTURE.md`
|
||||
- Read `mindlyst-native/gradle/libs.versions.toml` for dependency versions
|
||||
- Read `mindlyst-native/shared/build.gradle.kts` for KMP targets
|
||||
- List `mindlyst-native/shared/src/commonMain/kotlin/com/mindlyst/shared/` for shared logic files
|
||||
- List `mindlyst-native/iosApp/`, `mindlyst-native/web/src/pages/`
|
||||
- Read `design-system/web/mindlyst.css` header for token sync state
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent && git diff --stat
|
||||
cd /Users/sd9235/code/mygh/learning_multimodal_memory_agents && git diff --stat
|
||||
# ... etc for all repos
|
||||
```
|
||||
|
||||
### Phase 2: Identify Changes
|
||||
3. Commit changes (if any):
|
||||
|
||||
4. **Compare current state against existing agent docs:**
|
||||
- For each repo, diff the gathered info against what's already in AGENTS.md
|
||||
- Identify: new packages, new services, new modules, changed conventions, new file ownership, new env vars, updated test counts, new CI workflows
|
||||
- Note any stale or incorrect information in existing docs
|
||||
|
||||
5. **Build a change summary** — list what needs updating in each file before editing
|
||||
|
||||
### Phase 3: Update learning_voice_ai_agent Agent Docs
|
||||
|
||||
6. **Update `AGENTS.md`** — the most comprehensive file. Ensure these sections are current:
|
||||
- **Project Identity** — product name, IDs, prefixes
|
||||
- **Monorepo Layout** — directory tree with descriptions, including sibling repo structure
|
||||
- **Tech Stack Rules** — Python, TypeScript services, TypeScript dashboards (with @bytelyst/* wiring)
|
||||
- **Coding Conventions** — MUST/MUST NOT rules
|
||||
- **File Ownership Map** — table mapping domains → services → key files (include all @bytelyst/* mappings)
|
||||
- **How to Run Things** — start services, run tests, docker compose, seed
|
||||
- **Common Patterns** — adding modules, pages, service clients, backend routes, debugging
|
||||
- **Environment Variables** — required vars per service, env file locations
|
||||
- **Key Documents** — table of "when you need to..." → "read this"
|
||||
|
||||
7. **Update `CLAUDE.md`** — compact summary (<50 lines):
|
||||
- Identity, key commands, critical rules, current @bytelyst/* wiring state
|
||||
|
||||
8. **Update `.cursorrules`** — Cursor inline completion + chat rules:
|
||||
- Project context, code generation patterns, naming conventions, import patterns
|
||||
- Reference AGENTS.md for full details
|
||||
|
||||
9. **Update `.github/copilot-instructions.md`** — GitHub Copilot code generation guidance:
|
||||
- Always/never lists, commit format, import patterns, type patterns
|
||||
|
||||
10. **Update `.windsurfrules`** — Windsurf/Cascade project rules:
|
||||
- Architecture, key paths, conventions, @bytelyst/* wiring, build verification commands
|
||||
|
||||
11. **Update `.clinerules`** — Cline/Roo Code mandatory rules:
|
||||
- Numbered mandatory rules, key file locations, verify command
|
||||
|
||||
12. **Update `.aider.conf.yml`** — Aider configuration:
|
||||
- Context files to read (AGENTS.md, README), conventions pointer, lint commands
|
||||
|
||||
13. **Update `.editorconfig`** — Editor/formatting rules:
|
||||
- Indent style/size per language, charset, line endings, trim rules
|
||||
|
||||
### Phase 4: Update learning_ai_common_plat Agent Docs
|
||||
|
||||
14. **Update all 8 agent doc files** in common platform, ensuring:
|
||||
- `AGENTS.md`: Package exports, service modules, file ownership (27+ domains), dependency graph, consumer info, test count
|
||||
- `CLAUDE.md`: Compact summary
|
||||
- `.cursorrules`: Completion rules for @bytelyst/* and @lysnrai/*
|
||||
- `.github/copilot-instructions.md`: Generation rules
|
||||
- `.windsurfrules`: pnpm workspace rules, ESM conventions
|
||||
- `.clinerules`: Mandatory rules for package/service development
|
||||
- `.aider.conf.yml`: Context files, pnpm lint commands
|
||||
- `.editorconfig`: Already exists — verify still correct
|
||||
|
||||
### Phase 5: Update learning_multimodal_memory_agents Agent Docs
|
||||
|
||||
15. **Update all 8 agent doc files** in MindLyst repo, ensuring:
|
||||
- `AGENTS.md`: KMP shared module, platform UI state, design tokens, build commands, progress
|
||||
- `CLAUDE.md`: Compact summary
|
||||
- `.cursorrules`: Already exists — verify current
|
||||
- `.github/copilot-instructions.md`: Already exists — verify current
|
||||
- `.windsurfrules`: Already exists — verify current
|
||||
- `.clinerules`: Already exists — verify current
|
||||
- `.aider.conf.yml`: Already exists — verify current
|
||||
- `.editorconfig`: Already exists — verify current
|
||||
|
||||
### Phase 6: Verify & Commit
|
||||
|
||||
16. **Verify consistency across repos:**
|
||||
- Shared conventions (commit format, productId rule, etc.) should match across all 3 AGENTS.md files
|
||||
- @bytelyst/* package descriptions should be consistent between common platform and voice agent docs
|
||||
- Design token flow should be consistent between common platform and MindLyst docs
|
||||
|
||||
17. **Commit and push each repo** (stage all 8 files):
|
||||
- `cd $HOME/code/mygh/learning_voice_ai_agent && git add AGENTS.md CLAUDE.md .cursorrules .github/copilot-instructions.md .windsurfrules .clinerules .aider.conf.yml .editorconfig && git commit -m "docs: update agent docs via /update-agent-docs" && git push`
|
||||
- `cd $HOME/code/mygh/learning_ai_common_plat && git add AGENTS.md CLAUDE.md .cursorrules .github/copilot-instructions.md .windsurfrules .clinerules .aider.conf.yml .editorconfig && git commit -m "docs: update agent docs via /update-agent-docs" && git push`
|
||||
- `cd $HOME/code/mygh/learning_multimodal_memory_agents && git add AGENTS.md CLAUDE.md .cursorrules .github/copilot-instructions.md .windsurfrules .clinerules .aider.conf.yml .editorconfig && git commit -m "docs: update agent docs via /update-agent-docs" && git push`
|
||||
|
||||
18. **Print summary** of all changes made across all repos.
|
||||
|
||||
---
|
||||
```bash
|
||||
cd /Users/sd9235/code/mygh/learning_voice_ai_agent
|
||||
[ -n "$(git status --porcelain)" ] && git add -A && git commit -m "chore(docs): update agent configuration files"
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Run this workflow after: adding/removing packages, services, or modules; changing conventions; major refactors; adding new CI workflows; updating environment variables
|
||||
- The workflow is idempotent — safe to run multiple times
|
||||
- It reads current state fresh each time rather than relying on cached knowledge
|
||||
- If a file doesn't exist yet (e.g., CLAUDE.md in MindLyst), create it
|
||||
- Never hardcode stale counts — always count dynamically (tests, routes, workflows, etc.)
|
||||
- Preserve any repo-specific conventions that differ between repos (e.g., MindLyst uses Pages Router, dashboards use App Router)
|
||||
- The script scans each repo's structure and regenerates docs based on current state
|
||||
- Only commits if there are actual changes
|
||||
- Safe to run repeatedly (idempotent)
|
||||
- Requires `learning_ai_common_plat` to be the source of truth for templates
|
||||
|
||||
180
docs/guides/WORKFLOW_SYNC.md
Normal file
180
docs/guides/WORKFLOW_SYNC.md
Normal file
@ -0,0 +1,180 @@
|
||||
# Workflow Synchronization Guide
|
||||
|
||||
> How to keep Windsurf workflows consistent across all 7 repos in the workspace.
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Command | Purpose |
|
||||
| ----------------------------------------- | ---------------------------------- |
|
||||
| `zsh scripts/sync-workflows.sh` | Sync common workflows to all repos |
|
||||
| `zsh scripts/sync-workflows.sh --dry-run` | Preview changes without applying |
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The workspace has **42 workflows** across **8 repos**. To keep cross-repo workflows (like `repo_backup-main-branch`, `repo_sync-repos`) consistent, use the sync script.
|
||||
|
||||
### Workflow Categories
|
||||
|
||||
| Category | Prefix | Count | Synced? |
|
||||
| ------------------- | ---------- | ----- | ------------------------ |
|
||||
| **Cross-repo** | `repo_` | 6 | ✅ Yes |
|
||||
| **Product release** | `release_` | 3 | ❌ No (product-specific) |
|
||||
| **Testing** | `test_` | 4 | ❌ No (product-specific) |
|
||||
| **Utilities** | various | 2 | Case-by-case |
|
||||
|
||||
---
|
||||
|
||||
## The Sync Script
|
||||
|
||||
### Location
|
||||
|
||||
```
|
||||
learning_ai_common_plat/scripts/sync-workflows.sh
|
||||
```
|
||||
|
||||
### What It Syncs
|
||||
|
||||
These 6 workflows are pushed from `learning_ai_common_plat/.windsurf/workflows/` to all repos:
|
||||
|
||||
1. `repo_backup-main-branch.md`
|
||||
2. `repo_backup-and-push.md`
|
||||
3. `repo_sync-repos.md`
|
||||
4. `repo_commit-workspace.md`
|
||||
5. `repo_update-agent-docs.md`
|
||||
6. `refresh-chat-history.md`
|
||||
|
||||
### Target Repos
|
||||
|
||||
```
|
||||
learning_voice_ai_agent (LysnrAI)
|
||||
learning_multimodal_memory_agents (MindLyst)
|
||||
learning_ai_clock (ChronoMind)
|
||||
learning_ai_peakpulse (PeakPulse)
|
||||
learning_ai_fastgap (NomGap)
|
||||
learning_ai_jarvis_jr (JarvisJr)
|
||||
```
|
||||
|
||||
### How It Works
|
||||
|
||||
1. **Compares** source workflow (in common-plat) with destination
|
||||
2. **Skips** if files are identical
|
||||
3. **Copies** if destination is missing or different
|
||||
4. **Reports** how many were updated vs skipped
|
||||
|
||||
### Output Examples
|
||||
|
||||
**All up to date:**
|
||||
|
||||
```
|
||||
=== Sync complete ===
|
||||
Updated: 0
|
||||
Skipped (identical): 36
|
||||
|
||||
✓ All workflows are synchronized across all repos.
|
||||
No changes needed — everything is up to date.
|
||||
```
|
||||
|
||||
**After editing a workflow:**
|
||||
|
||||
```
|
||||
=== Sync complete ===
|
||||
Updated: 6
|
||||
Skipped (identical): 30
|
||||
|
||||
✓ Synced 6 workflow(s) to repos.
|
||||
Run again to verify all repos are identical.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## When to Sync
|
||||
|
||||
| Scenario | Action |
|
||||
| ------------------------------------------ | ------------------------------ |
|
||||
| Edited a `repo_*` workflow in common-plat | Run sync immediately |
|
||||
| New repo added to workspace | Run sync to populate workflows |
|
||||
| Workflow behaving differently across repos | Run sync to reconcile |
|
||||
| Unsure if workflows are current | Run with `--dry-run` to check |
|
||||
|
||||
---
|
||||
|
||||
## Workflow Naming Convention
|
||||
|
||||
Use these prefixes for clarity:
|
||||
|
||||
| Prefix | Purpose | Example |
|
||||
| ---------- | ------------------------- | -------------------- |
|
||||
| `repo_` | Cross-repo Git operations | `repo_sync-repos` |
|
||||
| `release_` | Product releases | `release_testflight` |
|
||||
| `test_` | Testing/verification | `test_coverage` |
|
||||
| `product_` | Product-specific ops | `product_build_ios` |
|
||||
|
||||
---
|
||||
|
||||
## Archive Integration
|
||||
|
||||
The `/refresh-chat-history` workflow (which runs daily at 11 PM) also archives all workflows from all repos to:
|
||||
|
||||
```
|
||||
__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/repo_workflows/
|
||||
```
|
||||
|
||||
This provides a historical backup and cross-repo visibility.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Source not found" warning
|
||||
|
||||
```
|
||||
⚠ Source not found: .../repo_update-agent-docs.md
|
||||
```
|
||||
|
||||
**Fix:** The workflow exists in the sync list but not in common-plat. Either:
|
||||
|
||||
- Create the missing workflow in common-plat, or
|
||||
- Remove it from `WORKFLOWS_TO_SYNC` in the script
|
||||
|
||||
### Workflow not syncing
|
||||
|
||||
Check that:
|
||||
|
||||
1. Workflow is in `WORKFLOWS_TO_SYNC` array in the script
|
||||
2. Source file exists in `learning_ai_common_plat/.windsurf/workflows/`
|
||||
3. Destination `.windsurf/workflows/` directory exists (script auto-creates if missing)
|
||||
|
||||
### Merge conflicts in workflows
|
||||
|
||||
If a workflow was edited independently in two repos:
|
||||
|
||||
1. Decide which version is correct
|
||||
2. Copy the correct version to common-plat
|
||||
3. Run sync to propagate
|
||||
|
||||
---
|
||||
|
||||
## Current Workflow Inventory
|
||||
|
||||
| Repo | Count | Notable Workflows |
|
||||
| ---------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| LysnrAI | 14 | release-testflight, release-desktop, test-ios-app, test-desktop-app, test-coverage, docker-compose, debug-service, generate-store-assets |
|
||||
| PeakPulse | 8 | mobile-code-quality, production-readiness, repo_push-repos |
|
||||
| ChronoMind | 6 | repo_push-repos |
|
||||
| MindLyst | 7 | mobile-code-quality, release-testflight |
|
||||
| NomGap | 6 | (baseline repo\_\* workflows) |
|
||||
| JarvisJr | 6 | (baseline repo\_\* workflows) |
|
||||
| Common-plat | 7 | sync-workflows.sh, refresh-chat-history, all repo\_\* workflows |
|
||||
| Agent-monitoring | 1 | |
|
||||
|
||||
---
|
||||
|
||||
## See Also
|
||||
|
||||
- `/refresh-chat-history` — Archive refresh workflow
|
||||
- `/repo_sync-repos` — Pull latest from all repos
|
||||
- `/repo_update-agent-docs` — Regenerate AGENTS.md, CLAUDE.md, etc.
|
||||
@ -99,3 +99,14 @@ echo ""
|
||||
echo "=== Sync complete ==="
|
||||
echo " Updated: $sync_count"
|
||||
echo " Skipped (identical): $skip_count"
|
||||
echo ""
|
||||
|
||||
if [ "$sync_count" -eq 0 ] && [ "$skip_count" -gt 0 ]; then
|
||||
echo "✓ All workflows are synchronized across all repos."
|
||||
echo " No changes needed — everything is up to date."
|
||||
elif [ "$sync_count" -gt 0 ]; then
|
||||
echo "✓ Synced $sync_count workflow(s) to repos."
|
||||
echo " Run again to verify all repos are identical."
|
||||
else
|
||||
echo "✓ Nothing to sync."
|
||||
fi
|
||||
|
||||
Loading…
Reference in New Issue
Block a user