{
  "vercy": "1.0-draft",
  "publication": {
    "status": "research-draft",
    "adjudicationStatus": "unreviewed",
    "publishableCanonical": false,
    "generatedAt": "2026-09-07T14:14:06Z",
    "providers": [
      "Codex",
      "Grok"
    ],
    "missingProviders": [],
    "pass": 2,
    "cost": {
      "grok": {
        "usd": 0.00306068,
        "turns": 1,
        "seconds": 14.9,
        "error": null
      },
      "codex": {
        "seconds": 83.8,
        "error": "Reading additional input from stdin...\nOpenAI Codex v0.153.3\n--------\nworkdir: R:\\02_PROJECTS\\02_Meta_Models_Platforms\\Ver.cy\\current\\thing-registry-backlog\nmodel: gpt-6-astra\nprovider: openai\napproval: never\nsandbox: read-only\nreasoning effort: none\nreasoning summaries: none\nsession id: 01a07c36-d50d-7182-afd9-87493c0dd302\n--------\nuser\nYou are drafting a Vercy meta-model for one registered thing. Answer as JSON only, no prose around it.\n\nThing: Classic Visual Basic\nRegistry id: vr.tr.classic-visual-basic\nPlane / domain: INF / INF.MED\nRegistry definition: (none recorded)\nNames folded into thi"
      }
    },
    "enrichment": {
      "pass": 3,
      "engine": "claude",
      "producedAt": "2026-10-06T12:00:00Z",
      "ingestedAt": "2026-10-06T08:18:00+00:00",
      "fields": [
        "agent_conduct",
        "ethics",
        "failure_modes_and_hazards",
        "owners",
        "visual_identification"
      ]
    }
  },
  "metaModel": {
    "id": "THING-Q2378",
    "registryId": "vr.tr.classic-visual-basic",
    "name": "Classic Visual Basic",
    "version": "0.1.0-research.1",
    "entryKind": "thing",
    "family": "Thing Registry",
    "domain": [
      "INF.MED"
    ],
    "status": "research-draft"
  },
  "canonicalUrl": "https://ver.cy/models/thing/q2378/",
  "model": {
    "registry_id": "vr.tr.classic-visual-basic",
    "name": "Classic Visual Basic",
    "purpose": "Enable an AI agent to recognise a Classic Visual Basic artefact, assess its build and execution constraints, and decide which inspection, maintenance, integration or migration actions are justified.",
    "definition": "Classic Visual Basic is Microsoft's event-driven, COM-based BASIC programming language and RAD environment (versions 1.0-6.0, 1991-1998) that compiled to native Windows executables and ActiveX components rather than to the .NET Common Language Runtime.",
    "scope_statement": "This model owns the identifying language, project, designer, runtime and component-contract properties of Classic Visual Basic artefacts, provisionally meaning the pre-.NET Visual Basic product family, while recording version and platform boundaries explicitly.",
    "in_scope": [
      "Classic Visual Basic dialect, product version and project-type identification",
      "Source modules, forms, designer resources and project composition",
      "Event-driven behaviour, state handling and language-specific error semantics",
      "COM and ActiveX contracts, references and component compatibility",
      "Build reproducibility, runtime dependencies and maintenance constraints"
    ],
    "out_of_scope": [
      "Visual Basic .NET language and CLR application models",
      "VBA host applications, macro containers and host-specific object models",
      "VBScript execution hosts and script deployment",
      "Business-domain rules implemented by an individual application",
      "General Windows administration and operating-system lifecycle management",
      "Database schemas and external services consumed by the application"
    ],
    "distinguishing_features": [
      "Identify the producing toolchain and target runtime: a Classic Visual Basic classification requires evidence of a pre-.NET Visual Basic lineage rather than relying on BASIC-like syntax.",
      "For a suspected VB5 or VB6 project, inspect .vbp metadata and associated .bas, .cls, .frm and designer resources; extensions alone do not establish the dialect.",
      "Distinguish a standalone Visual Basic project from VBA code embedded in a host document or application, even where syntax and referenced COM objects overlap.",
      "Distinguish Visual Basic project and designer artefacts from VBScript text executed by a scripting host.",
      "For later Windows editions, inspect project-type, compilation and COM metadata to distinguish Standard EXE and ActiveX outputs; do not assume these categories apply to every earlier release."
    ],
    "characteristics": [
      {
        "name": "Dialect and product lineage",
        "kind": "category",
        "unit_or_values": "Recorded Visual Basic version, edition and platform; unresolved when evidence is insufficient",
        "why_it_matters": "Determines which syntax, project formats, controls and build assumptions apply."
      },
      {
        "name": "Project output type",
        "kind": "category",
        "unit_or_values": "Version-specific project type, such as Standard EXE, ActiveX EXE, ActiveX DLL or ActiveX Control; unknown",
        "why_it_matters": "Separates standalone execution from component activation and control hosting."
      },
      {
        "name": "Available artefact coverage",
        "kind": "state",
        "unit_or_values": "Source and designer resources complete; partially available; binary only; unverified",
        "why_it_matters": "Limits what the agent can inspect, reproduce or safely change."
      },
      {
        "name": "Compilation mode",
        "kind": "category",
        "unit_or_values": "P-code; native code; other version-specific mode; unknown",
        "why_it_matters": "Affects build equivalence and the interpretation of binary inspection."
      },
      {
        "name": "Unresolved build references",
        "kind": "measurement",
        "unit_or_values": "Count of missing or mismatched references and controls in a named build environment",
        "why_it_matters": "Provides a concrete measure of dependency work remaining before a build can be assessed."
      },
      {
        "name": "Component compatibility commitment",
        "kind": "relation",
        "unit_or_values": "Project linked to its compatibility baseline binary and known consuming applications, where applicable",
        "why_it_matters": "Makes interface-preservation obligations visible before a component is rebuilt."
      },
      {
        "name": "Observed execution status",
        "kind": "state",
        "unit_or_values": "Not tested; activation failed; starts only; specified workflows passed; specified workflows failed",
        "why_it_matters": "Distinguishes successful startup from evidence that required behaviour still works."
      },
      {
        "name": "Data-access mechanism",
        "kind": "category",
        "unit_or_values": "Observed DAO, RDO, ADO, direct API, other or none; multiple values allowed",
        "why_it_matters": "Identifies provider and deployment dependencies that source availability alone does not resolve."
      }
    ],
    "affordances": [
      "Classify an artefact as Classic Visual Basic and qualify the classification by version evidence.",
      "Reconstruct a project's source, designer and dependency inventory.",
      "Trace form events, default instances and error paths for a specified maintenance task.",
      "Assess whether an identified environment can build, activate and exercise the artefact.",
      "Evaluate a proposed change against COM consumers, persisted resources and observed behaviour.",
      "Plan a bounded repair, interoperability wrapper or migration experiment with explicit acceptance checks."
    ],
    "agent_conduct": {
      "may": [
        "Read, explain and maintain legacy programs written in the language.",
        "Help plan migration of legacy applications to supported platforms."
      ],
      "must_not": [
        "Deploy legacy components with known security flaws on exposed systems.",
        "Write or spread macro or script code that runs without the user's knowledge.",
        "Remove licence or author notices from legacy code.",
        "Change production systems it does not administer."
      ],
      "requires_human": [
        "Retiring or migrating a legacy system that a business depends on."
      ]
    },
    "ethics": {
      "considerations": [
        "Many organizations still depend on old systems; careless changes can stop vital services.",
        "Unsupported components leave users' data exposed."
      ],
      "affected_parties": [
        "Users of legacy applications",
        "Maintainers",
        "Organizations depending on old systems"
      ]
    },
    "owners": {
      "steward": "Nobody owns programs in general; each application belongs to its owner, and the vendor holds the language's rights.",
      "master_systems": []
    },
    "visual_identification": [
      "Source files with extensions such as .frm, .bas and .vbp.",
      "Code with Sub and End Sub blocks and event handlers such as Command1_Click."
    ],
    "failure_modes_and_hazards": [
      "Unsupported runtime components can have unpatched security flaws.",
      "Old applications may fail on newer operating systems."
    ],
    "what_it_is_for": [
      "This legacy programming language is encountered in desktop applications, business utilities and reusable software components maintained from earlier development environments.",
      "Work with its artifacts commonly involves understanding event handlers, form definitions, external dependencies and constraints on rebuilding or migrating existing software."
    ],
    "facets_not_applicable": {
      "interfaces": "The language is defined by its original implementation and documentation rather than an independent formal language standard."
    }
  },
  "sources": [
    {
      "id": "wikidata",
      "title": "Wikidata item Q2378: Classic Visual Basic",
      "url": "https://www.wikidata.org/wiki/Q2378",
      "url_status": "live",
      "what_it_supports": "identity and sense of the item",
      "checked_by": "wikidata-api"
    },
    {
      "id": "wikipedia-en",
      "title": "Wikipedia: Visual Basic (classic)",
      "url": "https://en.wikipedia.org/wiki/Visual_Basic_%28classic%29",
      "url_status": "live",
      "what_it_supports": "general description of the item",
      "checked_by": "wikidata-api sitelink"
    }
  ],
  "structure": {
    "bundles": [
      {
        "id": "dialect-and-project-identity",
        "name": "Dialect and project identity",
        "description": "Establish which Classic Visual Basic lineage and project form the artefact belongs to.",
        "rationale": "Similar syntax occurs in neighbouring Visual Basic technologies, while Classic Visual Basic releases do not share every capability.",
        "layers": [
          {
            "id": "lineage-evidence",
            "name": "Lineage evidence",
            "description": "Record evidence that supports the language and product classification.",
            "findings": [
              {
                "id": "product-and-dialect",
                "name": "Product and dialect",
                "description": "Capture the producing product, version and platform with the evidence and confidence behind each identification.",
                "questions": [
                  {
                    "text": "Which project metadata, binary metadata or original tooling identifies the Visual Basic release and platform?",
                    "kind": "provenance",
                    "id": "product-and-dialect-q01"
                  },
                  {
                    "text": "What evidence distinguishes this artefact from VBA, VBScript and Visual Basic .NET?",
                    "kind": "boundary",
                    "id": "product-and-dialect-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "project-composition",
            "name": "Project composition",
            "description": "Identify the project boundary and the files that contribute to its output.",
            "findings": [
              {
                "id": "project-membership-and-output",
                "name": "Project membership and output",
                "description": "Record the declared output type, startup object, project membership and any project-group relationships.",
                "questions": [
                  {
                    "text": "What output type and startup object does the project declare, and are they valid for the identified release?",
                    "kind": "definition",
                    "id": "project-membership-and-output-q01"
                  },
                  {
                    "text": "Which modules, forms, classes and resources are referenced but absent or available only in another project?",
                    "kind": "measurement",
                    "id": "project-membership-and-output-q02"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "forms-and-event-execution",
        "name": "Forms and event execution",
        "description": "Represent the designer artefacts and event-driven execution paths that determine application behaviour.",
        "rationale": "A source-only reading can miss persisted control properties, startup behaviour and event-triggered state changes.",
        "layers": [
          {
            "id": "designer-and-controls",
            "name": "Designer and controls",
            "description": "Connect form and control definitions to their persisted resources and implementations.",
            "findings": [
              {
                "id": "designer-resource-integrity",
                "name": "Designer resource integrity",
                "description": "Capture form definitions, associated binary resources, control arrays and required custom controls where present.",
                "questions": [
                  {
                    "text": "Which forms or user controls depend on associated binary resources, and are those resources present?",
                    "kind": "measurement",
                    "id": "designer-resource-integrity-q01"
                  },
                  {
                    "text": "Which controls, control-array indices or persisted properties must be preserved for the designer and event bindings to remain usable?",
                    "kind": "boundary",
                    "id": "designer-resource-integrity-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "event-flow-and-lifetime",
            "name": "Event flow and lifetime",
            "description": "Record how startup, user actions and component callbacks create and mutate application state.",
            "findings": [
              {
                "id": "event-and-instance-semantics",
                "name": "Event and instance semantics",
                "description": "Identify consequential event ordering, form default-instance use, object lifetime and re-entrancy assumptions.",
                "questions": [
                  {
                    "text": "How does the startup object reach the required workflow through form, control or component events?",
                    "kind": "definition",
                    "id": "event-and-instance-semantics-q01"
                  },
                  {
                    "text": "Where could default form instances, DoEvents, timers or callbacks expose partially updated state?",
                    "kind": "boundary",
                    "id": "event-and-instance-semantics-q02"
                  },
                  {
                    "text": "Which event sequences must be exercised to validate a proposed change?",
                    "kind": "action",
                    "id": "event-and-instance-semantics-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "language-and-data-semantics",
        "name": "Language and data semantics",
        "description": "Record Classic Visual Basic behaviours that can change meaning during maintenance or translation.",
        "rationale": "Implicit conversions, legacy error handling and external data representations can preserve or break behaviour independently of apparent syntax similarity.",
        "layers": [
          {
            "id": "values-and-binding",
            "name": "Values and binding",
            "description": "Expose consequential assumptions about types, conversions and member resolution.",
            "findings": [
              {
                "id": "implicit-value-behaviour",
                "name": "Implicit value behaviour",
                "description": "Capture relevant use of Variant, Empty, Null, Nothing, default members, argument passing and array bounds.",
                "questions": [
                  {
                    "text": "Which paths depend on Variant coercion or distinctions among Empty, Null and Nothing?",
                    "kind": "definition",
                    "id": "implicit-value-behaviour-q01"
                  },
                  {
                    "text": "Where do default members, ByRef arguments or array-bound assumptions affect externally observable results?",
                    "kind": "boundary",
                    "id": "implicit-value-behaviour-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "errors-and-data-boundaries",
            "name": "Errors and data boundaries",
            "description": "Connect error recovery and external data exchange to behaviour that must be checked.",
            "findings": [
              {
                "id": "recovery-and-representation",
                "name": "Recovery and representation",
                "description": "Record On Error handling and assumptions at file, database and native API boundaries.",
                "questions": [
                  {
                    "text": "Which On Error and Resume paths suppress, recover from or propagate failures, and how is Err inspected?",
                    "kind": "definition",
                    "id": "recovery-and-representation-q01"
                  },
                  {
                    "text": "Which file layouts, database providers or Declare signatures depend on specific string encodings, numeric widths or record layouts?",
                    "kind": "boundary",
                    "id": "recovery-and-representation-q02"
                  },
                  {
                    "text": "What failure and round-trip examples would detect a semantic regression?",
                    "kind": "action",
                    "id": "recovery-and-representation-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "com-and-activex-contracts",
        "name": "COM and ActiveX contracts",
        "description": "Represent imported and exported component contracts for projects that use COM or ActiveX.",
        "rationale": "A component can build successfully while failing to activate or breaking existing clients; this bundle must be marked inapplicable when the identified artefact does not use these mechanisms.",
        "layers": [
          {
            "id": "references-and-activation",
            "name": "References and activation",
            "description": "Identify component resolution and activation requirements.",
            "findings": [
              {
                "id": "component-resolution",
                "name": "Component resolution",
                "description": "Record referenced type libraries, ActiveX controls and dynamically activated classes, including their resolution evidence.",
                "questions": [
                  {
                    "text": "Which dependencies are declared as references or controls, and which are activated through CreateObject or GetObject?",
                    "kind": "definition",
                    "id": "component-resolution-q01"
                  },
                  {
                    "text": "Which component identities, versions, registrations or design-time licences are required in the tested environment?",
                    "kind": "measurement",
                    "id": "component-resolution-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "published-interface-stability",
            "name": "Published interface stability",
            "description": "Identify the promises made to existing component consumers.",
            "findings": [
              {
                "id": "compatibility-baseline",
                "name": "Compatibility baseline",
                "description": "Record exposed classes, members and events alongside project compatibility settings and any baseline binary.",
                "questions": [
                  {
                    "text": "What compatibility setting and baseline binary govern the component build, where supported by this release?",
                    "kind": "provenance",
                    "id": "compatibility-baseline-q01"
                  },
                  {
                    "text": "Which existing clients rely on the exposed interfaces, activation model or events?",
                    "kind": "boundary",
                    "id": "compatibility-baseline-q02"
                  },
                  {
                    "text": "What interface comparison and client execution checks are required before replacing the deployed component?",
                    "kind": "action",
                    "id": "compatibility-baseline-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "build-runtime-and-change-readiness",
        "name": "Build, runtime and change readiness",
        "description": "Establish what can be reproduced and which maintenance actions have sufficient evidence.",
        "rationale": "Classic Visual Basic maintenance depends on recovering a specific toolchain and dependency environment, then validating behaviour beyond compilation.",
        "layers": [
          {
            "id": "build-and-deployment-environment",
            "name": "Build and deployment environment",
            "description": "Separate build prerequisites from runtime installation and activation requirements.",
            "findings": [
              {
                "id": "reproducible-environment",
                "name": "Reproducible environment",
                "description": "Record the compiler, service level, compilation settings, controls, runtime files and installation steps needed for a named environment.",
                "questions": [
                  {
                    "text": "Which toolchain version, compilation mode, conditional compilation constants and dependency versions produced the reference build?",
                    "kind": "provenance",
                    "id": "reproducible-environment-q01"
                  },
                  {
                    "text": "Which prerequisites are required only for development, and which must exist on the execution machine?",
                    "kind": "boundary",
                    "id": "reproducible-environment-q02"
                  },
                  {
                    "text": "Can the available inputs produce an executable or component that passes the defined activation and workflow checks?",
                    "kind": "measurement",
                    "id": "reproducible-environment-q03"
                  }
                ]
              }
            ]
          },
          {
            "id": "maintenance-decision",
            "name": "Maintenance decision",
            "description": "Tie repair, wrapping and migration choices to specific behaviour and dependency evidence.",
            "findings": [
              {
                "id": "bounded-change-readiness",
                "name": "Bounded change readiness",
                "description": "Capture the proposed intervention, its affected semantics and contracts, and the checks needed to accept or reverse it.",
                "questions": [
                  {
                    "text": "Which forms, error paths, data representations and COM contracts would this intervention affect?",
                    "kind": "boundary",
                    "id": "bounded-change-readiness-q01"
                  },
                  {
                    "text": "What observed workflows and consumer checks define acceptance for repair, wrapping or migration?",
                    "kind": "action",
                    "id": "bounded-change-readiness-q02"
                  },
                  {
                    "text": "Which reference binaries, installers and data fixtures must be retained to compare results and restore the prior deployment?",
                    "kind": "action",
                    "id": "bounded-change-readiness-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "evidence-and-external-alignment",
        "name": "Evidence and external alignment",
        "description": "What the world already says about this thing, gathered so the model can be checked against it.",
        "rationale": "A model that cannot be lined up against existing standards, identifiers and practice cannot be adopted by anyone who already uses them.",
        "layers": [
          {
            "id": "reported-evidence",
            "name": "Reported evidence",
            "description": "Findings from the breadth pass, kept separate from the structural claims.",
            "findings": [
              {
                "id": "evidence-kinds",
                "name": "Kinds and varieties",
                "description": "Reported by the breadth pass; each item needs checking against its source before it becomes normative.",
                "evidence": [
                  "Visual Basic 1.0-3.0 (16-bit Windows)",
                  "Visual Basic 4.0 (16-bit and 32-bit)",
                  "Visual Basic 5.0",
                  "Visual Basic 6.0 / VB6",
                  "Visual Basic for Applications (VBA)",
                  "VBScript",
                  "Visual Basic .NET (not classic; successor)",
                  "Embedded/CE variants"
                ],
                "questions": [
                  {
                    "id": "evidence-kinds-q01",
                    "text": "Which of these kinds and varieties hold for the sense of Classic Visual Basic this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "openQuestions": [
    "Does the registry intend Classic Visual Basic to include every pre-.NET release and platform, including Visual Basic for DOS, or specifically the later Windows product family?",
    "Which authoritative, version-specific documentation should support the model's project types, compilation modes and language semantics?",
    "Which current operating-system, runtime, IDE and third-party control combinations have documented support, and which merely have observed successful execution?",
    "How should the model express confidence for binary-only artefacts when the producing release, source completeness or compatibility baseline cannot be recovered?",
    "Which existing Vercy models already own COM contracts, Windows deployment and language migration, and what relations should avoid duplicating those responsibilities?"
  ],
  "statistics": {
    "bundles": 6,
    "layers": 11,
    "findings": 11,
    "questions": 26
  }
}
