Skip to main content

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:

  1. Adds this repo as a Git submodule at tools/ai-rules/
  2. Maintains a root AGENTS.md that references shared policy and documents local exceptions
  3. Materializes Cursor rules from tools/ai-rules/cursor/rules/ into .cursor/rules/ (copy or symlink)
  4. 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

  1. Clone and run ./scripts/setup-dev.sh (installs pre-commit + commit-msg gitlint)
  2. Check out develop for day-to-day work — see docs/development-workflow.md
  3. Read AGENTS.md and docs/governance.md
  4. Use docs/commit-messages.md for commit format
  5. Propose shared workflow changes here first; update docs in the same change set
  6. Fast-forward master from develop when CI is green (or after review if CI is not yet configured)
  7. Use .cursor/rules/ when editing with Cursor in this repository

As a consumer

  1. Add the submodule:

    git submodule add <gitlab-url>/ai-workflows/superbuild-workflow.git tools/ai-rules
    
  2. Copy or adapt templates/repo-AGENTS.template.md to your root AGENTS.md

  3. Run or adapt templates/setup-dev.template.sh to materialize Cursor rules and initialize submodules

  4. Point agents and developers at tools/ai-rules/AGENTS.md and relevant docs/

How to update shared workflow

  1. Change policy here first — never treat a consuming repo's local copy as the source of truth
  2. Keep changes coherent — one logical change per commit; update rationale/governance docs when semantics change
  3. Release via submodule — consumers update with git submodule update --remote tools/ai-rules (or pin to a specific commit)
  4. Document local exceptions — in the consumer's root AGENTS.md and 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

eai_supmig-0.2.1.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eai_supmig-0.2.1-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

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

Hashes for eai_supmig-0.2.1.tar.gz
Algorithm Hash digest
SHA256 baf3f0caced148219447da6764f9586a34465270a2a52252846051ff40ea06ca
MD5 1dfef74e3975f7ab0545efa5ec384d00
BLAKE2b-256 2bbf292b344125860e4abd734c0984d8300c853dc198c51ef469282070637a15

See more details on using hashes here.

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

Hashes for eai_supmig-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f9fe12328494e5efe56d69f6c781f1e8239d41eab8e5ca881c9b152d354e358
MD5 dec906e36ba2c7ebd8cb28c3d06dbce8
BLAKE2b-256 793586487526af79466edfc4ca9a0ec41f792c36dbfb6cf76c316ac39b68176c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page