Contract-first migration assistant for legacy Google-repo superbuild workspaces
Project description
superbuild-workflow
Authoritative shared workflow repository for superbuild-style software workspaces.
GitLab path: ai-workflows/superbuild-workflow
Local mount in consuming repos: tools/ai-rules/
This repository is not a product superbuild. It defines how superbuild workspaces are structured, built, governed, and assisted by AI tools. Consuming repositories coordinate multiple Git repositories under a CMake/Conan superbuild and mount this repo as a submodule for shared policy.
What this is
- Portable workflow documentation (Markdown,
AGENTS.md) - Shared AI guidance for humans and coding agents
- Rationale and governance for how shared policy evolves
- Cursor adapter rules (thin wrappers over canonical docs)
- Templates for bootstrapping consuming repositories
- Migration assistant CLI (
eai-supmig) — contract-first prep for legacy Google-repo superbuilds
Migration assistant (eai-supmig)
Install and run from a legacy superbuild workspace (recommended order — see docs/migration-assistant.md for the read-only alternative):
pip install eai-supmig
# or from this clone:
pip install -e ".[dev]"
eai-supmig bootstrap --with-ai-rules --with-cursor --yes
eai-supmig assess
eai-supmig plan
eai-supmig prompt
eai-supmig doctor
Module invocation: python -m eai_supmig assess
See docs/migration-assistant.md and docs/package-publishing.md.
What this is not
- A consuming product superbuild or application codebase
- A replacement for a consuming repo's CMake superbuild
- The sole source of truth for Cursor-specific rules (adapters only)
- A place to fork shared policy silently from a consumer
Architectural principle
| Layer | Role |
|---|---|
This repo (tools/ai-rules/ in consumers) |
Canonical shared workflow policy |
| Consuming superbuild repo | Product workspace, build orchestration, local exceptions |
Local tool adapters (e.g. .cursor/rules/) |
Materialized or symlinked rules; overlays only |
Plain Markdown and AGENTS.md are the long-term authoritative content. Cursor .mdc files in cursor/rules/ are adapters, not the primary source of truth.
Documentation portal
Published documentation is mirrored to ai-workflows/docs-portal via GitLab downstream pipelines. Edit docs here first; see docs/portal-integration.md and docs/workflow-manifest.yaml.
Repository layout
superbuild-workflow/
├── README.md # This file
├── AGENTS.md # Agent-oriented entry point (authoritative)
├── pyproject.toml # Python package (eai-supmig)
├── src/eai_supmig/ # Migration assistant implementation
├── tests/ # Unit tests
├── docs/ # Portable workflow documentation
│ ├── architecture.md
│ ├── rationale.md
│ ├── workflow.md
│ ├── governance.md
│ ├── cursor-integration.md
│ ├── alternative-tool-integration.md
│ ├── repository-layout.md
│ ├── cmake-conan-policy.md
│ └── superbuild-philosophy.md
├── cursor/rules/ # Shared Cursor adapter rule sources
├── .cursor/rules/ # Governance rules for this repo itself
└── templates/ # Templates for consuming repos
Consuming repositories
A typical superbuild workspace:
- Adds this repo as a Git submodule at
tools/ai-rules/ - Maintains a root
AGENTS.mdthat references shared policy and documents local exceptions - Materializes Cursor rules from
tools/ai-rules/cursor/rules/into.cursor/rules/(copy or symlink) - Keeps repo-specific overlays in local
.cursor/rules/without changing shared policy here
See docs/repository-layout.md and templates/ for details.
Getting started
As a maintainer of this repo
- Clone and run
./scripts/setup-dev.sh(installs pre-commit + commit-msg gitlint) - Check out
developfor day-to-day work — see docs/development-workflow.md - Read AGENTS.md and docs/governance.md
- Use docs/commit-messages.md for commit format
- Propose shared workflow changes here first; update docs in the same change set
- Fast-forward
masterfromdevelopwhen CI is green (or after review if CI is not yet configured) - Use
.cursor/rules/when editing with Cursor in this repository
As a consumer
-
Add the submodule:
git submodule add <gitlab-url>/ai-workflows/superbuild-workflow.git tools/ai-rules
-
Copy or adapt templates/repo-AGENTS.template.md to your root
AGENTS.md -
Run or adapt templates/setup-dev.template.sh to materialize Cursor rules and initialize submodules
-
Point agents and developers at
tools/ai-rules/AGENTS.mdand relevantdocs/
How to update shared workflow
- Change policy here first — never treat a consuming repo's local copy as the source of truth
- Keep changes coherent — one logical change per commit; update rationale/governance docs when semantics change
- Release via submodule — consumers update with
git submodule update --remote tools/ai-rules(or pin to a specific commit) - Document local exceptions — in the consumer's root
AGENTS.mdand local overlay rules, not by forking shared files
See docs/workflow.md for the full change and rollout process.
Documentation index
| Document | Purpose |
|---|---|
| architecture.md | Layered model, remote vs local paths |
| rationale.md | Why centralized shared workflow exists |
| workflow.md | How changes flow from discovery to rollout |
| governance.md | What belongs here vs in consumers |
| cursor-integration.md | Cursor adapter usage |
| alternative-tool-integration.md | Non-Cursor AI tools |
| repository-layout.md | Expected consuming repo layout |
| cmake-conan-policy.md | Build and dependency policy |
| superbuild-philosophy.md | Multi-repo coordination model |
| legacy-superbuild-migration.md | Phased migration from legacy CMake / .vcxproj |
| legacy-superbuild-assessment.md | Pre-migration inventory |
| visual-studio-to-cmake-mapping.md | VS project → CMake target mapping |
| conan-cmake-rollout.md | Incremental Conan and presets |
| superbuild-integration-plan.md | tools/ai-rules/ submodule rollout |
| development-workflow.md | Branches, pre-commit, ff-merge to master |
| commit-messages.md | Conventional Commits (gitlint) |
| commit-checklist.md | Pre-commit checklist |
| migration-assistant.md | eai-supmig CLI for legacy superbuild prep |
| package-publishing.md | PyPI / GitLab package CI |
License
This repository is licensed under the MIT License. Shared workflow content may be used in consuming superbuild workspaces via the tools/ai-rules/ submodule.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eai_supmig-0.2.1.tar.gz.
File metadata
- Download URL: eai_supmig-0.2.1.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baf3f0caced148219447da6764f9586a34465270a2a52252846051ff40ea06ca
|
|
| MD5 |
1dfef74e3975f7ab0545efa5ec384d00
|
|
| BLAKE2b-256 |
2bbf292b344125860e4abd734c0984d8300c853dc198c51ef469282070637a15
|
File details
Details for the file eai_supmig-0.2.1-py3-none-any.whl.
File metadata
- Download URL: eai_supmig-0.2.1-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f9fe12328494e5efe56d69f6c781f1e8239d41eab8e5ca881c9b152d354e358
|
|
| MD5 |
dec906e36ba2c7ebd8cb28c3d06dbce8
|
|
| BLAKE2b-256 |
793586487526af79466edfc4ca9a0ec41f792c36dbfb6cf76c316ac39b68176c
|