diff --git a/CLAUDE-INSTRUCTIONS.md b/CLAUDE-INSTRUCTIONS.md new file mode 100644 index 0000000..f8a785c --- /dev/null +++ b/CLAUDE-INSTRUCTIONS.md @@ -0,0 +1,66 @@ +# Instructions for Claude Sessions + +## STOP - Read Before Working + +This repository is the **hub** for 8 programming languages in the MAAF ecosystem. Before making any changes to satellite repos, you MUST understand the current state. + +## Critical Rules + +### 1. GitHub is Source of Truth +All work should be on GitHub. GitLab/Codeberg/Bitbucket are mirrors. + +### 2. Check Migration Status First +Before working on any language repo, check `MIGRATION-STATUS.md`: +- If status is "NOT SYNCED" → sync from GitLab first +- If status is "DIVERGED" → consult user before making changes +- If status is "SYNCED" → safe to work on GitHub version + +### 3. Never Create Parallel Implementations +**WRONG:** "I'll implement this feature from scratch on GitHub" +**RIGHT:** "Let me check if this exists on GitLab first, then build on that" + +### 4. Preserve Original Work +The GitLab repos contain months of human effort from Aug-Oct 2025. This includes: +- Design documents +- White papers +- Original implementations +- Research notes + +Do not overwrite this with new implementations. + +## The Language Ecosystem + +``` +nextgen-languages (this repo - hub) +├── My-Language Family (progressive complexity, ages 8-18) +│ ├── me (base) +│ ├── solo (age 8-10) +│ ├── duet (age 11-14) +│ └── ensemble (age 15-18, dialect of my-lang) +├── Foundational +│ ├── betlang (Racket, probabilistic programming) +│ └── julia-the-viper (Rust, Harvard Architecture) +└── Specialized + ├── phronesis (practical wisdom, Elixir) + ├── eclexia (creative synthesis, Rust) + ├── oblibeny (favorite things modeling) + ├── anvomidav (real-time systems) + └── wokelang (social awareness) +``` + +## Related Repos (not languages) +- `7-tentacles` - orchestration +- `me-dialect-playground` - experimentation +- `my-newsroom` - content pipeline +- `my-ssg` - static site generator + +## Before Starting Work + +1. Read `MIGRATION-STRATEGY.md` for the overall plan +2. Check `MIGRATION-STATUS.md` for current state +3. If repo is not synced, sync it first +4. Update status file after completing work +5. Commit to the correct branch + +## Questions? +If unclear about anything, ask the user rather than guessing. diff --git a/MIGRATION-STATUS.md b/MIGRATION-STATUS.md new file mode 100644 index 0000000..1ec5766 --- /dev/null +++ b/MIGRATION-STATUS.md @@ -0,0 +1,41 @@ +# Migration Status Tracker + +Last updated: 2025-12-16 + +## Phase 1: Language Repos + +| Repo | Status | Notes | +|------|--------|-------| +| eclexia | NOT SYNCED | Priority 1 - has 70-page white paper on GitLab | +| phronesis | DIVERGED | GitLab: original, GitHub: Claude Elixir impl | +| wokelang | DIVERGED | GitLab: original, GitHub: Claude Rust impl | +| oblibeny | DIVERGED | Needs manual merge | +| anvomidav | NAMING ISSUE | GitLab calls it "betlang" incorrectly | +| betlang | TO VERIFY | Check if synced | +| julia-the-viper | TO VERIFY | Check if synced | +| solo | TO VERIFY | Part of my-lang family | +| duet | TO VERIFY | Part of my-lang family | +| ensemble | TO VERIFY | Part of my-lang family | + +## Completed Syncs + +| Repo | Date | By | Notes | +|------|------|----|-------| +| (none yet) | | | | + +## Repos Needing Manual Review + +| Repo | Reason | Decision | +|------|--------|----------| +| phronesis | Both have implementations | TBD | +| wokelang | Both have implementations | TBD | +| oblibeny | Significant divergence | TBD | + +--- + +## Update Instructions + +When you complete a sync: +1. Move repo from "Phase 1" to "Completed Syncs" +2. Add date and notes +3. Commit this file with message: `docs: update migration status - synced {repo}` diff --git a/MIGRATION-STRATEGY.md b/MIGRATION-STRATEGY.md new file mode 100644 index 0000000..f7af5b4 --- /dev/null +++ b/MIGRATION-STRATEGY.md @@ -0,0 +1,83 @@ +# GitLab → GitHub Migration Strategy + +## Goal +**GitHub is the single source of truth.** All development happens on GitHub, then mirrors out to: +- GitLab (gitlab.com/maa-framework) +- Codeberg +- Bitbucket + +## Current Problem +- Original work (Aug-Oct 2025) lives on GitLab +- GitHub repos created Dec 2025, some with parallel Claude implementations +- Result: diverged repos, missing content, confusion + +## The Fix (4 Phases) + +### Phase 1: Language Repos (This Week) +Priority repos - the 8 languages in this ecosystem: + +| Repo | GitLab Status | GitHub Status | Action | +|------|---------------|---------------|--------| +| eclexia | 13 commits, 70-page white paper, Rust compiler | 1 commit (template) | **SYNC FROM GITLAB** | +| phronesis | 11+ commits, original design | Claude Elixir impl | Evaluate both, merge best | +| wokelang | 20+ commits, original design | Claude Rust impl | Evaluate both, merge best | +| oblibeny | 40+ commits | 30 commits, diverged | Manual merge | +| anvomidav | Mislabeled as "betlang" | Correct name | Sync + rename on GitLab | +| betlang | Correct | Correct | Verify sync | +| julia-the-viper | Original | Check status | Sync if needed | +| my-lang (solo/duet/ensemble) | Original | Check status | Sync if needed | + +### Phase 2: Full Audit +Run reconciliation script to categorize all 400+ repos: +```bash +export GITLAB_TOKEN="glpat-..." +export GITHUB_TOKEN="ghp_..." +python scripts/repo-reconcile.py > audit-results.json +``` + +Categories: +- **gitlab-only**: Create on GitHub, sync content +- **github-only**: Keep (new work) or archive (abandoned) +- **synced**: Set up mirror +- **diverged**: Manual review needed + +### Phase 3: Consolidate +For each diverged repo: +1. Compare commits on both sides +2. If GitLab has original work + GitHub has useful additions → merge +3. If GitHub work is just parallel implementation → replace with GitLab +4. If GitHub work is better → keep GitHub, archive GitLab + +### Phase 4: Mirror Setup +Once GitHub is authoritative: +``` +GitHub (source) + ├── → GitLab (push mirror) + ├── → Codeberg (push mirror) + └── → Bitbucket (push mirror) +``` + +GitHub Settings → Branches → Add mirror for each target. + +--- + +## Instructions for Claude Sessions + +**READ THIS BEFORE WORKING ON ANY REPO IN THIS ECOSYSTEM** + +1. **GitHub is source of truth** - always pull from GitHub first +2. **Check this document** for repo status before making changes +3. **Never create parallel implementations** - if GitLab has content, sync it first +4. **Update MIGRATION-STATUS.md** after completing any sync operation +5. **Preserve original work** - GitLab content represents months of human effort + +## Immediate Priority +**Sync eclexia first** - it has a 70-page white paper and Rust compiler that only exists on GitLab. + +```bash +# Preserve GitLab work to GitHub +git clone git@gitlab.com:maa-framework/4a-languages/eclexia.git +cd eclexia +git remote add github git@github.com:hyperpolymath/eclexia.git +git push github main --force +```