# 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 pointer + derived agent files (single-source-of-truth pattern)
