{"id":51229241,"url":"https://github.com/ivegamsft/daisy-chain","last_synced_at":"2026-06-28T14:31:11.124Z","repository":{"id":356834592,"uuid":"1234256255","full_name":"ivegamsft/daisy-chain","owner":"ivegamsft","description":"dAIsy Chain -- AI-native migration factory framework. Five-station pipeline for legacy app migration. Hub-and-spoke topology with Basecoat governance.","archived":false,"fork":false,"pushed_at":"2026-05-10T00:19:32.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T02:34:11.686Z","etag":null,"topics":["azure","azure-migration","copilot","daisy-chain","dotnet","github-template","legacy-migration","migration-factory"],"latest_commit_sha":null,"homepage":"https://ivegamsft.github.io/daisy-chain/","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivegamsft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T00:14:50.000Z","updated_at":"2026-05-10T00:19:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ivegamsft/daisy-chain","commit_stats":null,"previous_names":["ivegamsft/daisy-chain"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/ivegamsft/daisy-chain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivegamsft%2Fdaisy-chain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivegamsft%2Fdaisy-chain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivegamsft%2Fdaisy-chain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivegamsft%2Fdaisy-chain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivegamsft","download_url":"https://codeload.github.com/ivegamsft/daisy-chain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivegamsft%2Fdaisy-chain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34892547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-migration","copilot","daisy-chain","dotnet","github-template","legacy-migration","migration-factory"],"created_at":"2026-06-28T14:31:10.246Z","updated_at":"2026-06-28T14:31:11.110Z","avatar_url":"https://github.com/ivegamsft.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dAIsy Chain — AI-Native Migration Factory\n\n\u003e **dAIsy Chain** is a reusable GitHub template for running an **AI-native migration factory** that modernizes legacy applications using GitHub Copilot agents. It implements a hub-and-spoke topology: this hub repo governs the factory; per-app **Workcell** repositories do the migration work.\n\nWant to adopt this for your org? → **[USING_THIS_TEMPLATE.md](USING_THIS_TEMPLATE.md)**\n\n---\n\n## What is dAIsy Chain?\n\ndAIsy Chain is a structured factory pattern for migrating legacy apps (ASP.NET, Classic ASP, SharePoint, MVC, etc.) to the cloud. Apps flow through five stations on a conveyor belt — from inventory through treatment selection, baseline deployment, modernization, and final cutover. GitHub Copilot agents automate the repetitive steps at each station.\n\n**Key concepts:**\n\n| Term | Meaning |\n|---|---|\n| **Station (S1–S5)** | Migration stage: Intake → Assessment → Rehost → Replatform/Rewrite → Verify \u0026 Retire |\n| **Treatment** | Per-app modernization decision: Rehost · Replatform · Rewrite · Retire · Reference |\n| **Workcell** | A per-app repository stamped from the factory template |\n| **Plant** | One region × environment deployment of the shared infrastructure |\n| **Cell** | Specialized shared-service hub (network, observability, data, identity, compliance) |\n| **Conveyor** | Push-down sync + andon listener that flows patterns to Workcells and status back |\n| **Andon** | Halt-the-line alert raised when a station is blocked |\n| **Takt time** | Target dwell time at each Station |\n| **BOM** | Bill of Materials — contract a Workcell publishes describing which Cells it consumes |\n\n**Treatment vocabulary:**\n\n| Treatment | Description | Target |\n|---|---|---|\n| **Rehost** | Lift-and-shift, zero code changes | Azure VM |\n| **Replatform** | Move to managed PaaS, minimal changes | Azure App Service (Windows) |\n| **Rewrite** | Rebuild cloud-native on current runtime | Azure Container Apps / App Service (Linux) |\n| **Retire** | Decommission — app is obsolete | N/A |\n| **Reference** | Already modern; document as target-state pattern | Archive |\n\nWorkcell repos are stamped per-app using `factory/stamping/stamp.ps1`. Each repo follows an identical layout governed by the Basecoat agent catalog pushed down from this hub.\n\nSee [examples/workflows/ibuyspy/](examples/workflows/ibuyspy/) for reference workflow implementations from the IBuySpy migration.\n\n---\n\n## Architecture\n\n```\n┌────────────────────────────────────────────────────────────────────┐\n│                   dAIsy Chain Hub  (this repo, Tier 0)             │\n│       tenant • policy • billing • OIDC trust • agent catalog       │\n└──────────────────────────────┬─────────────────────────────────────┘\n                               │\n                ┌──────────────┴──────────────┐\n                ▼                             ▼\n        ┌──────────────┐              ┌──────────────┐\n        │   PLANT      │              │   PLANT      │     Tier 1\n        │  \u003cregion\u003e-dev│              │\u003cregion\u003e-prod │     region × env\n        └──────┬───────┘              └──────┬───────┘\n               │                             │\n   ┌───────────┴───────────┐     ┌───────────┴───────────┐\n   │ Cells (Tier 2):       │     │ Cells (Tier 2):       │   shared infra\n   │  • cell-network       │     │  • cell-network       │\n   │  • cell-observability │     │  • cell-observability │\n   │  • cell-data          │     │  • cell-data          │\n   │  • cell-identity      │     │  • cell-identity      │\n   │  • cell-compliance    │     │  • cell-compliance    │\n   └───────────┬───────────┘     └───────────┴───────────┘\n               │ kit (resource IDs)\n               ▼\n       Workcells (Tier 3 — one repo per app, stamped from template)\n        ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐\n        │  app-1   │  │  app-2   │  │  app-3   │  │   ...    │\n        └──────────┘  └──────────┘  └──────────┘  └──────────┘\n```\n\nManufacturing terms — see the glossary in [ADR-011](docs/adrs/ADR-011-Cellular-Hub-architecture.md).\n\nFull architecture documentation: [`docs/architecture/migration-factory.md`](docs/architecture/migration-factory.md)\n\n---\n\n## Quick Start\n\nNew to dAIsy Chain? Follow **[USING_THIS_TEMPLATE.md](USING_THIS_TEMPLATE.md)** — a 6-step guide covering:\n\n1. Use the GitHub \"Use this template\" button to create your hub repo\n2. Configure Azure OIDC secrets\n3. Update `factory/plant.yml` with your org and app registry\n4. Stamp Workcell repos for each app\n5. Register apps in `docs/factory-state.json`\n6. Run S1 intake workflows and progress through S1→S5\n\n---\n\n## Factory Process (S1–S5)\n\n| Station | Name | What Happens |\n|---|---|---|\n| **S1** | Intake | App registered; intake YAML created; Workcell stamped |\n| **S2** | Assessment | `app-inventory` agent scans source; treatment decided (Rehost/Replatform/Rewrite/Retire/Reference) |\n| **S3** | Rehost | App deployed to Azure VM; smoke tests establish baseline; S3 exit criteria met |\n| **S4** | Replatform / Rewrite | Move to App Service (Replatform) or rebuild on .NET 8 (Rewrite); side-by-side traffic split |\n| **S5** | Verify \u0026 Retire | Drift monitoring; 100% cutover; legacy decommissioned |\n\nFull process details: [`docs/migration-factory.md`](docs/migration-factory.md)\n\n---\n\n## Key Documentation\n\n| Document | Description |\n|---|---|\n| [`docs/factory-process/`](docs/factory-process/) | Station exit criteria, andon protocol, tag taxonomy, takt time targets |\n| [`docs/architecture/`](docs/architecture/) | C4 diagrams, hub-spoke topology, migration phases, cellular model |\n| [`docs/guardrails/`](docs/guardrails/) | OIDC federation, secrets policy, CAF naming, container image tags |\n| [`docs/adrs/`](docs/adrs/) | Architecture Decision Records (ADR-001 through ADR-011+) |\n| [`docs/treatment-options.md`](docs/treatment-options.md) | Treatment tier analysis: Rehost, Replatform, Rewrite, Retire, Reference |\n| [`factory/plant.yml`](factory/plant.yml) | Cell inventory and deployment schedule |\n| [`examples/workflows/ibuyspy/`](examples/workflows/ibuyspy/) | Reference workflow implementations |\n\n---\n\n## Dashboard\n\nThe **shop floor dashboard** is published via GitHub Pages and shows live station status across all Workcells. Validate it by running the `factory-app-pages.yml` workflow.\n\n---\n\n## Repo Layout\n\n```\n.github/workflows/      Factory-tier workflows (dashboard, conveyor, andon)\ndocs/\n  adrs/                 Architecture Decision Records\n  architecture/         C4 diagrams, hub-spoke topology, migration phases\n  factory-process/      Station exit criteria, andon protocol, tag taxonomy\n  guardrails/           OIDC, secrets, CAF naming, container image tags\nfactory/\n  plant.yml             Plant config — org name, cell enable flags\n  registry.yml          Cell type registry\n  stamping/             stamp.ps1 — Workcell repo stamping automation\n  intake/               BOM JSON Schema (validates spoke .intake.yml#bom)\n  conveyor/             Sync, andon listener, status rollup scripts\n  templates/            Workcell repo template (stamped per app)\nexamples/\n  workflows/ibuyspy/    Reference workflow implementations (IBuySpy migration)\ninfra/\n  cells/                Per-Cell deployable Bicep\n  modules/              Shared Bicep modules (used by all Cells + Workcells)\nTREATMENT_MATRIX.md     Per-app treatment tier decision matrix\nsetup.ps1 / sync.ps1    Bootstrap and upgrade the Basecoat governance framework\n```\n\n---\n\n## What Lives Here vs. in a Workcell\n\n| Concern | dAIsy Chain Hub | Workcell |\n|---|---|---|\n| Tenant / subscription / policy | ✅ | — |\n| Plant + Cell Bicep | ✅ | — |\n| Agent / instruction / skill catalog | ✅ (pushed down) | consumed via sync |\n| BOM schema | ✅ (authoritative) | consumed via sync |\n| Workcell template | ✅ | — |\n| App source code | — | ✅ |\n| App-specific infra | — | ✅ |\n| App deploy workflows | — | ✅ |\n| `.intake.yml` (BOM) | — | ✅ |\n\nIf you find application source, per-app infra, or per-app deploy workflows in this hub repo, **that is a bug**. File an issue labeled `cleanup`.\n\n---\n\n## Setup\n\n```powershell\n# Pull the Basecoat governance framework\n.\\setup.ps1\n\n# Upgrade Basecoat\n$env:BASECOAT_REF = \"v3.11.0\"\n.\\sync.ps1\n```\n\n---\n\n## Governance (mandatory)\n\nGoverned by [Basecoat](https://github.com/ivegamsft/basecoat). Rules from `.basecoat/governance.instructions.md`:\n\n1. **Issue-first** — every change references an issue.\n2. **PRs only** — never push to `main`.\n3. **No secrets** — never commit credentials, tokens, PII, or internal URLs.\n4. **Branch naming** — `\u003ctype\u003e/\u003cissue\u003e-\u003cshort-description\u003e` (`feat`, `fix`, `docs`, `chore`, `security`).\n5. **Commit format** — `\u003ctype\u003e(\u003cscope\u003e): \u003csummary\u003e (#\u003cissue\u003e)`.\n6. **OIDC only** — no Azure client secrets in workflows.\n\nPR description must include: Summary, Validation, Issue Reference (`closes #N`), Risk + rollback.\n\n---\n\n## Naming\n\n- Files / folders: `kebab-case`\n- Types / classes: `PascalCase`\n- Variables / functions: `camelCase`\n- Azure resources: `\u003corg\u003e-\u003cworkload\u003e-\u003cenv\u003e-\u003cregion\u003e-\u003csuffix\u003e` (CAF)\n\n---\n\n## Reference ADRs\n\n- [ADR-009](docs/adrs/ADR-009-thin-hub-multi-mode-intake.md) — thin hub with multi-mode intake\n- [ADR-010](docs/adrs/ADR-010-SQL-Private-Endpoint.md) — SQL private endpoint per Workcell\n- [ADR-011](docs/adrs/ADR-011-Cellular-Hub-architecture.md) — cellular manufacturing hub topology\n- [TREATMENT_MATRIX.md](TREATMENT_MATRIX.md) — per-app treatment tier decision matrix\n- [`docs/guardrails/`](docs/guardrails/) — OIDC, secrets, naming, container tags, env-example, DB concurrency\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivegamsft%2Fdaisy-chain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivegamsft%2Fdaisy-chain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivegamsft%2Fdaisy-chain/lists"}