Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions CLAUDE-INSTRUCTIONS.md
Original file line number Diff line number Diff line change
@@ -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.
41 changes: 41 additions & 0 deletions MIGRATION-STATUS.md
Original file line number Diff line number Diff line change
@@ -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}`
83 changes: 83 additions & 0 deletions MIGRATION-STRATEGY.md
Original file line number Diff line number Diff line change
@@ -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
```