Files
wehub-resource-sync 6c9c7fe7f3
CI / integration tests (3.13) (push) Failing after 1s
Commit lint / pull request title (push) Has been skipped
Docs / links (push) Failing after 1s
CI / unit tests (3.13) (push) Failing after 1s
CI / lint (push) Failing after 1s
CI / integration tests (push) Failing after 1s
CI / package build (push) Failing after 1s
Commit lint / commit messages (push) Failing after 1s
CI / unit tests (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:24:24 +08:00

5.1 KiB

GitHub Sync Guard

This page records the rules for refreshing the public GitHub repository (EverMind-AI/EverOS) from the internal GitLab source.

Core Principle

GitLab dev is the source of truth. GitHub main is the public release mirror. The two repos have no shared commit history — GitHub receives packaged exports, not git pushes.


1. Must Delete on GitHub

These files exist on GitHub but are obsolete — delete them during sync:

File Reason
docs/locomo_benchmark.md Replaced by benchmarks/README.md
tests/run_locomo_10x3.sh Replaced by benchmarks/run.py
tests/run_locomo_batch.sh Replaced by benchmarks/run.py
tests/run_locomo_full.sh Replaced by benchmarks/run.py
tests/test_locomo.py Replaced by benchmarks/run.py
src/everos/memory/strategies/_partition_locks.py Wrong path; correct location is src/everos/memory/_partition_locks.py

2. Must Preserve on GitHub (Do NOT Overwrite)

These files have GitHub-specific content (branch model, PR workflow, community-facing text). Keep the GitHub versions:

Workflow & CI

  • CLAUDE.md — says main branch, not dev/master
  • CONTRIBUTING.md — says "curated PR contributions", not "no external PRs"
  • .github/PULL_REQUEST_TEMPLATE.md — GitHub PR template
  • .github/BRANCH_PROTECTION.md — GitHub branch protection rules
  • .github/workflows/ci.yml — targets main, uses actions/checkout@v6
  • .github/workflows/docs.yml — GitHub-only doc checks
  • .github/workflows/commits.yml — GitHub-only commit lint
  • .github/ISSUE_TEMPLATE/**.yml format (GitLab uses .md)
  • .github/dependabot.yml — GitHub-only dependency scanning

Claude Code rules & skills

  • .claude/rules/*.md — GitHub versions are simplified for contributors
  • .claude/skills/commit/SKILL.md — Conventional Commits (vs Gitmoji)
  • .claude/skills/new-branch/SKILL.md — branches from main (vs dev)
  • .claude/skills/pr/SKILL.md — GitHub PR (vs GitLab MR)
  • .claude/settings.json — GitHub permission set (includes gh pr)

GitHub-only scripts & tests

  • scripts/check_commit_messages.py
  • scripts/check_deprecated_names.py
  • scripts/check_docs.py
  • scripts/check_github_contributor_docs.py
  • scripts/check_pr_title.py
  • scripts/check_repo_assets.py
  • tests/unit/test_scripts/test_check_*.py

Root docs (GitHub version has different content)

  • README.md — GitHub version has banner, badges, use-case gallery
  • Makefile — GitHub version has extra targets (docs-check, package, etc.)

3. Overwrite from GitLab

Everything not in sections 1 or 2 should be overwritten from GitLab, including but not limited to:

  • All src/everos/** source code
  • All tests/unit/** and tests/integration/** and tests/e2e/**
  • pyproject.toml, uv.lock
  • QUICKSTART.md, SECURITY.md
  • CHANGELOG.md, CITATION.md, ACKNOWLEDGMENTS.md
  • docs/*.md (except those listed in Must Delete)
  • docs/openapi.json
  • benchmarks/**
  • .gitignore
  • .gitlab-ci.yml (harmless on GitHub, good to keep in sync)

4. Do NOT Sync to GitHub

These files are GitLab-internal and should not appear on GitHub:

File Reason
.gitlab/merge_request_templates/ GitLab-only
.vscode/ IDE preference
.claude/skills/release/SKILL.md Internal release workflow
local/ Temporary design docs
evaluation/ Empty module

5. Do NOT Sync to GitLab

These files are GitHub-only and should stay only on GitHub:

Category Files
use-cases/ 90 files (claude-code-plugin, game-of-throne-demo, openher)
GitHub CI scripts scripts/check_*.py + tests
GitHub CI workflows commits.yml, docs.yml
Config .gitlint, .env.example (root level)
Docs docs/use-cases.md

Safe Sync Pattern

# 1. Clone both repos
git clone <gitlab> gitlab-export
git clone <github> github-checkout

# 2. Sync with excludes
rsync -a --delete \
  --exclude '.git' \
  --exclude 'CLAUDE.md' \
  --exclude 'CONTRIBUTING.md' \
  --exclude 'README.md' \
  --exclude 'Makefile' \
  --exclude '.github/' \
  --exclude '.claude/rules/' \
  --exclude '.claude/skills/' \
  --exclude '.claude/settings.json' \
  --exclude 'scripts/check_*.py' \
  --exclude 'tests/unit/test_scripts/' \
  --exclude 'use-cases/' \
  --exclude 'local/' \
  --exclude 'evaluation/' \
  --exclude '.vscode/' \
  --exclude '.gitlab/' \
  --exclude '.gitlab-ci.yml' \
  gitlab-export/ github-checkout/

# 3. Delete obsolete files
cd github-checkout
rm -f docs/locomo_benchmark.md
rm -f tests/run_locomo_10x3.sh tests/run_locomo_batch.sh tests/run_locomo_full.sh
rm -f tests/test_locomo.py
rm -f src/everos/memory/strategies/_partition_locks.py

# 4. Verify
make lint
make test

Review Checklist

Before opening the sync PR on GitHub:

  • CLAUDE.md says branches are created from main
  • .claude/skills/pr/SKILL.md creates PRs with --base main
  • CONTRIBUTING.md says "GitHub pull request", not internal terminology
  • Obsolete files from section 1 are deleted
  • make lint and make test pass
  • No .gitlab-ci.yml, .vscode/, local/, evaluation/ leaked in