migration: add capability ledger foundation

This commit is contained in:
codex
2026-08-05 08:57:24 +03:00
parent c3ac183fff
commit 060f1c9ac1
5 changed files with 762 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# Capability ledger
This directory is the versioned, machine-readable register that prevents active
2019 capabilities from silently disappearing during the Autodesk 2026 migration.
It is product-neutral by schema: Plant 3D, Revit and Navisworks records use the
same required fields, while product adapters remain outside the ledger.
Current coverage is deliberately narrow: active, non-archive `P_Rec_Annot`
Plant 3D command registrations. The generated ledger does not claim to be a
complete inventory of the 2019 ecosystem. Launcher, profiles, palettes,
resources, Revit and Navisworks must be added as independently audited slices.
## Working journal — 2026-08-05
1. This work makes a real 2019 capability visible, owned and decidable rather
than treating the first migrated command as the programme boundary.
2. It closes the risk that active P_Rec_Annot commands disappear unnoticed.
3. The schema is reusable for Revit and Navisworks because it describes a
capability and its evidence, not a Plant API.
4. No Launcher or product domain logic is introduced.
5. The scope statement and source pointer make missing coverage explicit.
6. Equivalence is proven only by the record's verification method and runtime
evidence; `NOT REPORTED` remains explicit.
7. Users gain an accountable migration path for every currently-audited active
P_Rec_Annot command, including the already verified reference vertical.
## Regeneration and validation
```powershell
pwsh migration/tools/Build-CapabilityLedger.ps1
pwsh migration/tools/Test-CapabilityLedger.ps1
```
The builder consumes audited source records only, excludes `_archive`, writes
stable IDs, and retains unknowns instead of manufacturing a target decision.
@@ -0,0 +1,607 @@
{
"schemaVersion": 1,
"scope": "Plant 3D P_Rec_Annot active command slice generated from audited non-archive command registrations. This is a ledger foundation, not a claim of complete ecosystem inventory.",
"source": "migration/audits/p-rec-annot-v1.0.4/evidence/commands.csv",
"capabilities": [
{
"id": "PLANT3D-2019-CMD-BJ",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "PHPAnnotations\\PHPBlockJig.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: BJ",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-CAC",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "PHPAnnotations\\PHPAnnotations.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: CAC",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-CAC1",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "P3DNewMa\\NewMaControl.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: CAC1",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-CREATEANNOTATIONCOMMAND",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "PHPAnnotations\\PHPAnnotations.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: CreateAnnotationCommand",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-MTO-MA",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "P3DNewMa\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: mto-ma",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-MTO-MA1",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "P3DNewMa\\NewMaControl.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: mto-ma1",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-AAV",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AutoAnnotateView\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-AAV",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "PRecAnnot.Plant3D2026",
"owner": "Plant annotation domain owner",
"migrationStatus": "RUNTIME_VERIFIED",
"verificationMethod": "Controlled Plant 3D 2026 Preview/Apply/repeated Apply/UNDO runtime acceptance",
"runtimeEvidence": "Accepted runtime session 7402fee6290b44438642f9204e8bdb6c; automation journal 0cf74ff1c90d4c69a10417904638c7b6",
"knownDifferences": "2026 implementation uses local immutable package staging and managed entry assembly; legacy loading mechanics are not retained.",
"decision": "MIGRATED_RUNTIME_VERIFIED"
},
{
"id": "PLANT3D-2019-CMD-PXP-AC",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "SwapAttributesMenuItem\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-AC",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-AE",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AutoElevation\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-AE",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-ALC",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AutoLinenumberConnections\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-ALC",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-COV",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "CheckOrthoView\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-COV",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-DJ",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "OrthoAutoAnnotate\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-DJ",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-ELN",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AnnotateLineNumbers\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-ELN",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-ESN",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AnnotateLineNumbers\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-ESN",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-GIT",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "ExtentsIntersect\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-GIT",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-IE",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "InsertElevation\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-IE",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-IOD",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "UpdateOrthoDrawings\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-IOD",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-LN",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AnnotateLineNumbers\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-LN",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-MA",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "PHPAnnotations\\PHPAnnotations.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-MA",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-OA",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "OrthoAutoAnnotate\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-OA",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "PRecAnnot.Plant3D2026",
"owner": "Plant annotation domain owner",
"migrationStatus": "RUNTIME_VERIFIED",
"verificationMethod": "Controlled Plant 3D 2026 Preview/Apply/repeated Apply/UNDO runtime acceptance",
"runtimeEvidence": "Accepted runtime session 7402fee6290b44438642f9204e8bdb6c; automation journal 0cf74ff1c90d4c69a10417904638c7b6",
"knownDifferences": "2026 implementation uses local immutable package staging and managed entry assembly; legacy loading mechanics are not retained.",
"decision": "MIGRATED_RUNTIME_VERIFIED"
},
{
"id": "PLANT3D-2019-CMD-PXP-OSI",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "OrthoAutoAnnotate\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-OSI",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-RA",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "OrthoAutoAnnotate\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-RA",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-RMP",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AnnotateLineNumbers\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-RMP",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-ULN",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "AnnotateLineNumbers\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-ULN",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
},
{
"id": "PLANT3D-2019-CMD-PXP-UOB",
"sourceProduct": "Autodesk Plant 3D 2019",
"sourceComponent": "UpdateOrthoViewBlocks\\Commands.cs",
"userPurpose": "Registered AutoCAD command; command body and workflow require source-specific acceptance.",
"launchMethod": "AutoCAD command: PXP-UOB",
"dependencies": [
"Plant 3D drawing",
"P_Rec_Annot legacy module"
],
"resources": [
"Project configuration",
"Drawing and annotation resources"
],
"projectConstraints": "Plant project: verify body; reads drawing: yes; writes drawing: unknown",
"legacyStatus": "ACTIVE_LEGACY",
"targetComponent": "UNASSIGNED",
"owner": "UNASSIGNED",
"migrationStatus": "MIGRATION_PLANNED",
"verificationMethod": "Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance",
"runtimeEvidence": "NOT REPORTED",
"knownDifferences": "NOT ASSESSED",
"decision": "MIGRATION_REQUIRED"
}
]
}
+35
View File
@@ -0,0 +1,35 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Autodesk 2019 to 2026 capability ledger",
"type": "object",
"required": ["schemaVersion", "scope", "capabilities"],
"properties": {
"schemaVersion": { "const": 1 },
"scope": { "type": "string", "minLength": 1 },
"capabilities": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "sourceProduct", "sourceComponent", "userPurpose", "launchMethod", "dependencies", "resources", "projectConstraints", "legacyStatus", "targetComponent", "owner", "migrationStatus", "verificationMethod", "runtimeEvidence", "knownDifferences", "decision"],
"properties": {
"id": { "type": "string", "pattern": "^[A-Z0-9-]+$" },
"sourceProduct": { "type": "string" },
"sourceComponent": { "type": "string" },
"userPurpose": { "type": "string" },
"launchMethod": { "type": "string" },
"dependencies": { "type": "array", "items": { "type": "string" } },
"resources": { "type": "array", "items": { "type": "string" } },
"projectConstraints": { "type": "string" },
"legacyStatus": { "type": "string" },
"targetComponent": { "type": "string" },
"owner": { "type": "string" },
"migrationStatus": { "type": "string" },
"verificationMethod": { "type": "string" },
"runtimeEvidence": { "type": "string" },
"knownDifferences": { "type": "string" },
"decision": { "type": "string" }
}
}
}
}
}
@@ -0,0 +1,62 @@
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[string]$RepositoryRoot,
[Parameter(Mandatory = $false)]
[string]$OutputPath
)
$ErrorActionPreference = 'Stop'
if (-not $RepositoryRoot) { $RepositoryRoot = Split-Path -Parent $PSScriptRoot }
$RepositoryRoot = [IO.Path]::GetFullPath($RepositoryRoot)
$commandsPath = Join-Path $RepositoryRoot 'audits\p-rec-annot-v1.0.4\evidence\commands.csv'
if (-not (Test-Path -LiteralPath $commandsPath -PathType Leaf)) { throw "CAPABILITY_LEDGER_COMMAND_SOURCE_MISSING: $commandsPath" }
if (-not $OutputPath) { $OutputPath = Join-Path $RepositoryRoot 'capability-ledger\plant3d-p-rec-annot-commands.json' }
$OutputPath = [IO.Path]::GetFullPath($OutputPath)
$accepted = @{
'PXP-AAV' = @{ Component = 'PRecAnnot.Plant3D2026'; Evidence = 'Accepted runtime session 7402fee6290b44438642f9204e8bdb6c; automation journal 0cf74ff1c90d4c69a10417904638c7b6'; Decision = 'MIGRATED_RUNTIME_VERIFIED' }
'PXP-OA' = @{ Component = 'PRecAnnot.Plant3D2026'; Evidence = 'Accepted runtime session 7402fee6290b44438642f9204e8bdb6c; automation journal 0cf74ff1c90d4c69a10417904638c7b6'; Decision = 'MIGRATED_RUNTIME_VERIFIED' }
}
$commands = Import-Csv -LiteralPath $commandsPath | Where-Object { $_.File -notmatch '(^|\\)_archive(\\|$)' } |
Group-Object Command | ForEach-Object { $_.Group | Select-Object -First 1 } | Sort-Object Command
$capabilities = foreach ($command in $commands) {
$acceptedRecord = $accepted[$command.Command]
$status = if ($acceptedRecord) { 'RUNTIME_VERIFIED' } else { 'MIGRATION_PLANNED' }
[ordered]@{
id = ('PLANT3D-2019-CMD-' + ($command.Command.ToUpperInvariant() -replace '[^A-Z0-9]+', '-').Trim('-'))
sourceProduct = 'Autodesk Plant 3D 2019'
sourceComponent = $command.File
userPurpose = 'Registered AutoCAD command; command body and workflow require source-specific acceptance.'
launchMethod = ('AutoCAD command: ' + $command.Command)
dependencies = @('Plant 3D drawing', 'P_Rec_Annot legacy module')
resources = @('Project configuration', 'Drawing and annotation resources')
projectConstraints = ('Plant project: ' + $command.PlantProject + '; reads drawing: ' + $command.ReadsDrawing + '; writes drawing: ' + $command.WritesDrawing)
legacyStatus = 'ACTIVE_LEGACY'
targetComponent = if ($acceptedRecord) { $acceptedRecord.Component } else { 'UNASSIGNED' }
owner = if ($acceptedRecord) { 'Plant annotation domain owner' } else { 'UNASSIGNED' }
migrationStatus = $status
verificationMethod = if ($acceptedRecord) { 'Controlled Plant 3D 2026 Preview/Apply/repeated Apply/UNDO runtime acceptance' } else { 'Legacy source audit, contract, deterministic Preview, controlled Apply, idempotency, UNDO and visual acceptance' }
runtimeEvidence = if ($acceptedRecord) { $acceptedRecord.Evidence } else { 'NOT REPORTED' }
knownDifferences = if ($acceptedRecord) { '2026 implementation uses local immutable package staging and managed entry assembly; legacy loading mechanics are not retained.' } else { 'NOT ASSESSED' }
decision = if ($acceptedRecord) { $acceptedRecord.Decision } else { 'MIGRATION_REQUIRED' }
}
}
$ledger = [ordered]@{
schemaVersion = 1
scope = 'Plant 3D P_Rec_Annot active command slice generated from audited non-archive command registrations. This is a ledger foundation, not a claim of complete ecosystem inventory.'
source = 'migration/audits/p-rec-annot-v1.0.4/evidence/commands.csv'
capabilities = @($capabilities)
}
$parent = Split-Path -Parent $OutputPath
New-Item -ItemType Directory -Path $parent -Force | Out-Null
$temporary = Join-Path $parent ((Split-Path -Leaf $OutputPath) + '.tmp')
$json = $ledger | ConvertTo-Json -Depth 8
[IO.File]::WriteAllText($temporary, $json + [Environment]::NewLine, [Text.UTF8Encoding]::new($false))
Move-Item -LiteralPath $temporary -Destination $OutputPath -Force
Write-Output "CAPABILITY_LEDGER_WRITTEN=$OutputPath"
Write-Output "CAPABILITY_COUNT=$($capabilities.Count)"
+23
View File
@@ -0,0 +1,23 @@
[CmdletBinding()]
param(
[Parameter(Mandatory = $false)]
[string]$RepositoryRoot
)
$ErrorActionPreference = 'Stop'
if (-not $RepositoryRoot) { $RepositoryRoot = Split-Path -Parent $PSScriptRoot }
$RepositoryRoot = [IO.Path]::GetFullPath($RepositoryRoot)
$ledgerPath = Join-Path $RepositoryRoot 'capability-ledger\plant3d-p-rec-annot-commands.json'
$sourcePath = Join-Path $RepositoryRoot 'audits\p-rec-annot-v1.0.4\evidence\commands.csv'
& (Join-Path $PSScriptRoot 'Build-CapabilityLedger.ps1') -RepositoryRoot $RepositoryRoot -OutputPath $ledgerPath | Out-Null
$ledger = Get-Content -LiteralPath $ledgerPath -Raw -Encoding utf8 | ConvertFrom-Json
$required = 'id','sourceProduct','sourceComponent','userPurpose','launchMethod','dependencies','resources','projectConstraints','legacyStatus','targetComponent','owner','migrationStatus','verificationMethod','runtimeEvidence','knownDifferences','decision'
$expected = (Import-Csv -LiteralPath $sourcePath | Where-Object { $_.File -notmatch '(^|\\)_archive(\\|$)' } | Select-Object -ExpandProperty Command -Unique).Count
if ($ledger.schemaVersion -ne 1) { throw 'CAPABILITY_LEDGER_SCHEMA_VERSION_INVALID' }
if ($ledger.capabilities.Count -ne $expected) { throw "CAPABILITY_LEDGER_COUNT_MISMATCH: expected $expected, got $($ledger.capabilities.Count)" }
if (($ledger.capabilities.id | Select-Object -Unique).Count -ne $ledger.capabilities.Count) { throw 'CAPABILITY_LEDGER_DUPLICATE_ID' }
foreach ($capability in $ledger.capabilities) { foreach ($field in $required) { if (-not $capability.PSObject.Properties.Name.Contains($field)) { throw "CAPABILITY_LEDGER_REQUIRED_FIELD_MISSING: $($capability.id):$field" } } }
$accepted = @($ledger.capabilities | Where-Object { $_.decision -eq 'MIGRATED_RUNTIME_VERIFIED' })
if ($accepted.Count -ne 2 -or ($accepted.id -notcontains 'PLANT3D-2019-CMD-PXP-AAV') -or ($accepted.id -notcontains 'PLANT3D-2019-CMD-PXP-OA')) { throw 'CAPABILITY_LEDGER_REFERENCE_VERTICAL_MISSING' }
Write-Output "CAPABILITY_LEDGER_VALIDATED=$ledgerPath"
Write-Output "CAPABILITY_COUNT=$($ledger.capabilities.Count)"