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.4.2.tar.gz (61.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.4.2-py3-none-any.whl (63.2 kB view details)

Uploaded Python 3

File details

Details for the file eai_supmig-0.4.2.tar.gz.

File metadata

  • Download URL: eai_supmig-0.4.2.tar.gz
  • Upload date:
  • Size: 61.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.4.2.tar.gz
Algorithm Hash digest
SHA256 58ec93213f8c9ae75e57878e74bff7c2e75e280ed596b9c778c84b6f24ed9911
MD5 4daed12bfb52724e6ed4c1c0a8a747f2
BLAKE2b-256 f4d95af6910691346b86941d6dd4c0611d5483de550ca1a5100e0071a8ce06e2

See more details on using hashes here.

File details

Details for the file eai_supmig-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: eai_supmig-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 63.2 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.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7e72019e87d1840837ff9bdcd96078b293bda8de725049868718bd144ccd19e6
MD5 1029da0b42b5ff793f7c76ccd88dd381
BLAKE2b-256 c1269b07f5637b4d3d7067eb8f0342a3fae84ecf0353b346f387a785568ebbac

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