Skip to content

Bluefly Context Plane Architecture

Core Doctrine: GitLab is transactional source & release truth. Beads/Gas City define work intent and execution. Orbit discovers structural & live SDLC relationships (derived, advisory). QMD discovers curated architectural doctrine and standards (derived, advisory). Context ≠ authority — a system that lets you see a fact is not necessarily the system that owns it. See §3.

1. Purpose

This directory answers, for any Bluefly agent starting work: what context exists, where it comes from, who owns it, how fresh it is, how to query it, what's authoritative vs. derived, what an agent may mutate, what must never become a second authority, and how these systems work together before/during/after execution.

This is not a product catalog. A system belongs here only if it materially participates in: authority, work context, source context, runtime context, documentation/knowledge retrieval, agent discovery, evidence/proof, identity, credentials, environment/workspace context, product/domain context, external-reference context, or event/context delivery.

2. Authority hierarchy

                         THOMAS
                            │
                          CMUX
                  (Operator Cockpit Only)
                            │
                            ▼
                           BLU
                            │
          ┌─────────────────┼──────────────────┐
          │                 │                  │
          ▼                 ▼                  ▼
        BEADS             ORBIT               QMD
     (Work Intent)     (Live Graph)        (Doctrine)
          │                 │                  │
          ▼                 ▼                  ▼
      Dolt Store     GitLab Analytics    GitLab: blucity-docs
          │                 │                  │
          └─────────────────┼──────────────────┘
                            │
                            ▼
                    BLUEFLY AGENT ROLE
                            │
                            ▼
                  GITLAB SERVICE ACCOUNT
                  (blucity_<specialist>)
                            │
                            ▼
                    GITLAB WORKSPACE
                     (Oracle K3s)
                            │
              ┌─────────────┼──────────────┐
              │             │              │
              ▼             ▼              ▼
        Orbit Remote    Orbit Local       QMD
       (Estate/SDLC)   (Branch AST)   (Standards)
              │             │              │
              └─────────────┼──────────────┘
                            │
                            ▼
                           Git
                            │
                            ▼
                   MR → CI → Release Train

3. Authoritative vs. derived — first-class rule

Readable ≠ authoritative. Every context source below is tagged by what it actually is:

  • Orbit sees GitLab but is not GitLab authority.
  • QMD indexes BluCity-Docs but the QMD cache is not documentation authority — BluCity-Docs source is.
  • Raindrop (if ever integrated) may reference external knowledge but would never be source authority — see raindrop.md.
  • Drupal runtime contains installed Composer packages, but the installed copy is not package source authority — the producer's Git repo is.
  • CMUX displays agents but is not work authority.
  • OpenClaw exposes a gateway but is not a second work graph.
  • DDEV contains a consumer build but is not producer source authority.
  • NAS contains backups/workspace data but is not source authority.

Principle: Orbit discovers, GitLab proves. QMD discovers doctrine, BluCity-Docs source proves current text. Drupal runtime proves current site state; the producer Git repo proves package source.

4. Context provider matrix

System Role Authority Freshness Agent access Mutation rule Detail doc
GitLab Transactional source/release truth AUTHORITATIVE TRANSACTIONAL/LIVE glab api/CLI Governed branch→MR→CI→merge gitlab-context.md
Beads/Dolt/Gas City Work intent & execution AUTHORITATIVE (work intent) TRANSACTIONAL/LIVE bd/gc CLI Governed Gas City/Beads scope only work-context.md
Orbit (Remote + Local) Derived engineering/SDLC graph DERIVED/ADVISORY POINT-IN-TIME (indexing cycles) glab orbit remote\|local Read-only; never edit graph to "fix" GitLab truth orbit.md
QMD Derived doctrine/doc search DERIVED/NON-AUTHORITATIVE INDEXED/DERIVED, known stale-prone (see Failure Signature Catalog) qmd search/qmd query Never patch the cache; fix BluCity-Docs source via MR qmd.md
CMUX Human operator cockpit REFERENCE (UI only) LIVE (display) N/A — human surface No agent write path cmux-integration.md
GitLab Workspaces / DDEV Execution environment EXECUTION RUNTIME OBSERVATION ddev/workspace shell Never source authority workspace-integration.md
Drupal (site/runtime) Product/domain context RUNTIME OBSERVATION (not source) RUNTIME OBSERVATION drush/composer show/Canvas CLI Never edit installed copy drupal-context.md
1Password Secrets authority AUTHORITATIVE (secrets only) LIVE op run (reference only, never echoed) Never put secret values in any context doc See ADR-0020, authority-model.md
GitLab service accounts Identity AUTHORITATIVE (identity) LIVE Assigned per agent role Never impersonate another role's identity See Identity Contract, authority-model.md
Raindrop Unproven — no integration exists NOT_ESTABLISHED n/a n/a Do not invent a role raindrop.md
DUADP Agent discovery protocol — referenced in platform rules, no canonical doc found in this repo GAP n/a n/a Flagged for a future audit pass, not documented here —

5. Required preflight sequence

Before meaningful work, resolve the applicable fields of the Context Preflight Contract — it is context-sensitive: Drupal work pulls in drupal-context.md; CI work pulls in gitlab-context.md + gitlab_components; a runtime incident pulls in Oracle/runtime evidence; documentation work pulls in QMD + source docs. Don't resolve fields irrelevant to the task at hand.

6. Context source selection model

Question Source
What work exists? Beads
What's the current source/MR/pipeline/release state? GitLab live API
What depends on this? Orbit Remote
What does this branch actually reference? Orbit Local
What is Bluefly doctrine? QMD → BluCity-Docs source
How does this upstream Drupal module work? drupal.org + upstream docs/source — see drupal-context.md
What's currently enabled/configured on this Drupal site? Drupal runtime/config + Composer state — a runtime observation, not source
What reusable execution method exists? Gas City Formula/Skill/Pack catalogs
What credential value should I use? Never a context doc — 1Password reference mechanism only
What external research has a human curated? Raindrop, only if role is proven — currently not (raindrop.md)

7. Relationship to execution

Context acquisition happens before source mutation (preflight), is re-verified during execution when state may have changed (e.g., re-check GitLab MR state after a long-running task), and the resulting evidence is recorded after execution in the work item (Bead) and/or an execution receipt — see Receipts Standard. Context-plane docs never substitute for that receipt.

Documentation Modules

API Schema Discovery

A third, narrower context source sits alongside Orbit and QMD for "what APIs/specs are available?" questions:

  • api-schema-registry — discovery/validation/publication for Bluefly's own ~65 service contracts (aggregated corpus, service catalog, endpoints index, control-plane index; also served over HTTP by that repo's dist/serve.js).
  • Engineering-Standard/reference/api-schemas/ — curated, pinned reference copies of stable external vendor schemas Bluefly consumes (GitLab REST API, Raindrop Query API), with provenance/hash metadata per schema.
  • producer/upstream source — ultimate authority for any given contract; both of the above point at it rather than forking it.

Neither of these is a runtime orchestrator; see that catalog's README for the full split of concerns, including its relationship to Drupal api_normalization and Tool API/MCP.