150 lines
34 KiB
JSON
150 lines
34 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"baseline": {
|
|
"freecadVersion": "1.1.1",
|
|
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
|
"browserBaseline": "Chrome/150"
|
|
},
|
|
"claim": {
|
|
"exact": false,
|
|
"scope": "All 34 locked FreeCAD modules, formats, entrypoints, GUI states and native document semantics",
|
|
"reason": "Compatible browser subsets exist, but no module has completed the full native oracle, round-trip and zero-unknown-difference gate."
|
|
},
|
|
"hardBoundaries": [
|
|
"Private FreeCAD MappedNameRef/StringHasher tokens require native evidence and cannot be inferred from final geometry.",
|
|
"Intermediate Generated/Modified/Deleted relations require native builder-stage evidence.",
|
|
"Isomorphic subshapes without one unique native source remain ambiguous with persisted candidates."
|
|
],
|
|
"programs": [
|
|
{
|
|
"id": "EX01",
|
|
"title": "Exhaustive FreeCAD oracle and optional dependency baseline",
|
|
"tasks": [
|
|
{ "id": "EX-ORA-01", "title": "Capture exhaustive runtime objects, properties, commands and GUI states", "priority": "P0", "status": "in_progress", "dependencies": [], "deliverables": ["Runtime oracle for every registered TypeId and command", "Success, failure, disabled and cancel fixtures", "Source-to-runtime trace"], "acceptance": ["All inventory candidates are promoted or explicitly excluded", "No command or property has an unknown runtime state"], "evidence": ["check:freecad-inventory", "check:freecad-type-properties", "check:freecad-gui-commands", "check:freecad-oracle-coverage"], "exactBlockedBy": ["Static candidates and GUI-only states are not exhaustively runtime-probed"] },
|
|
{ "id": "EX-ORA-02", "title": "Expand geometry, history and FCStd golden corpus to every feature family", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Parameterized success and failure corpus", "Native Shape, history, ElementMap2 and StringHasher evidence", "FreeCAD save-reopen-resave evidence"], "acceptance": ["Every editable feature family has boundary and mutation fixtures", "Unknown semantic differences are zero"], "evidence": ["check:freecad-golden-fixtures", "check:freecad-composite-history-elementmap", "check:freecad-golden-coverage", "check:freecad-parameter-mutations", "check:freecad-partdesign-failures", "check:freecad-partdesign-revolution-groove", "check:freecad-partdesign-transform", "check:freecad-part-builders"], "exactBlockedBy": ["Parameter mutation matrix is fail-closed until every family has explicit edit/recompute/recovery and round-trip evidence"] },
|
|
{ "id": "EX-ORA-03", "title": "Lock all optional libraries, platform capabilities and license boundaries", "priority": "P1", "status": "pending", "dependencies": ["EX-ORA-01"], "deliverables": ["Optional dependency manifest", "Browser, sidecar or proxy decision per dependency", "Reproducible hashes and licenses"], "acceptance": ["Every optional FreeCAD capability has one executable strategy", "No undeclared host-only dependency affects a claim"], "evidence": ["check:baseline", "check:sbom"], "exactBlockedBy": ["Several desktop-only optional libraries remain proxy or sidecar capabilities"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX02",
|
|
"title": "Kernel, topology history and persistent naming exactness",
|
|
"tasks": [
|
|
{ "id": "EX-KER-01", "title": "Match OCCT construction, validation, tolerances and failure diagnostics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-02"], "deliverables": ["Per-operation native differential", "Tolerance and placement contract", "Failure-code map"], "acceptance": ["Shape validity, topology, mass properties and diagnostics match locked FreeCAD fixtures", "Worker ownership returns to zero after every case"], "evidence": ["check:browser-occt", "check:chrome-geometry-features"], "exactBlockedBy": ["Not all FreeCAD builder flags and failure branches are represented"] },
|
|
{ "id": "EX-TSN-00", "title": "Fail closed when native naming or builder evidence is absent", "priority": "P0", "status": "completed", "dependencies": [], "deliverables": ["Runtime naming evidence contract", "final-shape-only and ambiguous persistence", "ElementMap2 writer evidence guard"], "acceptance": ["Final geometry cannot mint a private FreeCAD token", "Unproven stage relations and isomorphic sources cannot become stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": [] },
|
|
{ "id": "EX-TSN-01", "title": "Capture native stage Shape and Generated/Modified/Deleted for every builder", "priority": "P0", "status": "completed", "dependencies": ["EX-KER-01", "EX-TSN-00"], "deliverables": ["All builder-stage captures", "Multi-input and one-to-many lineage", "Local feature recompute history"], "acceptance": ["Every feature result relation has a producing native stage", "No final-result index is applied to an intermediate Shape"], "evidence": ["check:freecad-composite-history-elementmap", "check:freecad-tsn-stage-evidence"], "exactBlockedBy": [] },
|
|
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01"], "deliverables": ["Native naming callback ABI", "Per-stage StringHasher evidence", "Lossless ElementMap2 token generation"], "acceptance": ["All new tokens originate in native evidence", "FreeCAD round-trip names remain byte and semantic stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-sketcher-partdesign-abi", "check:freecad-naming-sdk", "check:occt-history-artifact"], "exactBlockedBy": ["The shipped Worker does not link the FreeCAD private naming implementation for every builder"] },
|
|
{ "id": "EX-TSN-03", "title": "Resolve isomorphic topology only from unique native provenance", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01", "EX-TSN-02"], "deliverables": ["Symmetric Boolean corpus", "Candidate provenance graph", "Ambiguity repair lifecycle"], "acceptance": ["Unique native sources resolve deterministically", "Non-unique sources remain ambiguous across save, undo and recompute"], "evidence": ["test:topology-replay", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Symmetric cases without unique native provenance remain intentionally ambiguous"] },
|
|
{ "id": "EX-TSN-04", "title": "Close topology naming across all feature edits and FCStd round-trips", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-02", "EX-TSN-03"], "deliverables": ["Cross-feature mutation matrix", "ElementMap2 history migration", "Long-chain LinkSub stability report"], "acceptance": ["Wrong bindings, unexplained relations and name drift are zero for the exhaustive corpus"], "evidence": ["check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Exhaustive cross-feature naming corpus is incomplete"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX03",
|
|
"title": "Application document, property and recompute semantics",
|
|
"tasks": [
|
|
{ "id": "EX-DOC-01", "title": "Implement every native property type, flag, editor and serialization rule", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Complete Property schema", "Status and editor metadata", "Binary and XML codecs"], "acceptance": ["Every runtime property fixture round-trips without type coercion or unknown loss"], "evidence": ["check:freecad-type-properties", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["The runtime property inventory has unpromoted static candidates"] },
|
|
{ "id": "EX-DOC-02", "title": "Match transactions, DAG recompute, partial failure and document observers", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01", "EX-TSN-04"], "deliverables": ["Transaction and observer event oracle", "Partial recompute scheduler", "Failure recovery contract"], "acceptance": ["Undo, redo, abort, stale and cyclic dependency behavior matches FreeCAD"], "evidence": ["check:document-closure", "test:facade"], "exactBlockedBy": ["Observer ordering and every partial-recompute branch are not yet oracle-backed"] },
|
|
{ "id": "EX-DOC-03", "title": "Complete expressions, links, extensions, groups and App object lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01"], "deliverables": ["Expression dependency grammar", "Link and extension lifecycle", "Group and clone semantics"], "acceptance": ["Copy, clone, delete, relink and expression edits survive native round-trip"], "evidence": ["check:fcstd-closure", "check:chrome-production-document"], "exactBlockedBy": ["FeaturePython-backed extensions remain non-executable"] },
|
|
{ "id": "EX-DOC-04", "title": "Complete multi-document, external link, merge and recovery workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-DOC-02", "EX-DOC-03"], "deliverables": ["Cross-document Link corpus", "Merge and conflict semantics", "Crash and autosave recovery"], "acceptance": ["Open, close, relink, merge and recovery match the native document graph"], "evidence": ["check:chrome-persistence", "check:project-migration"], "exactBlockedBy": ["Current application is project-first and does not implement every desktop multi-document workflow"] },
|
|
{ "id": "EX-DOC-05", "title": "Match parameters, preferences, units, materials and view properties", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-01"], "deliverables": ["Namespaced parameter schema", "Unit and material catalogs", "View property migration"], "acceptance": ["Preference changes affect the same commands and document defaults as FreeCAD"], "evidence": ["check:chrome-app-e2e", "test:locale"], "exactBlockedBy": ["Only the declared browser preference subset is implemented"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX04",
|
|
"title": "Sketcher, Part and PartDesign feature exactness",
|
|
"tasks": [
|
|
{ "id": "EX-SK-01", "title": "Cover every Sketcher geometry, constraint overload and solver classification", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-DOC-02"], "deliverables": ["Complete geometry and constraint matrix", "Planegcs result parity", "Reference, redundant and conflict oracle"], "acceptance": ["Geometry, DOF, diagnostics and solver results match every fixture"], "evidence": ["check:freecad-sketcher-constraints", "check:freecad-sketcher-partdesign-abi", "check:chrome-sketcher-diagnostics"], "exactBlockedBy": ["Arbitrary overload combinations and all failure messages are not exhaustive"] },
|
|
{ "id": "EX-SK-02", "title": "Match Sketcher editing tools, autoconstraints, virtual space and UI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-SK-01", "EX-UI-03"], "deliverables": ["Pointer and keyboard editor oracle", "All editing tools", "Task and focus lifecycle"], "acceptance": ["Every tool supports success, failure, cancel, undo and redo with matching selection"], "evidence": ["check:freecad-sketcher-editor", "check:chrome-sketcher-bspline"], "exactBlockedBy": ["The full GUI tool and focus matrix is incomplete"] },
|
|
{ "id": "EX-PART-01", "title": "Complete all Part primitives, builders, booleans, healing and inspection", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-04"], "deliverables": ["All Part commands and parameters", "Healing and tolerance tools", "Native history for local operations"], "acceptance": ["Success and failure outputs match native Shape, history and diagnostics"], "evidence": ["check:chrome-part-primitives", "check:freecad-golden-fixtures"], "exactBlockedBy": ["Current golden corpus does not enumerate every Part command and option"] },
|
|
{ "id": "EX-PD-01", "title": "Complete all PartDesign features, parameters and additive/subtractive combinations", "priority": "P0", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-TSN-04"], "deliverables": ["Complete PartDesign feature matrix", "Body Tip and feature-list semantics", "Per-feature native history and naming"], "acceptance": ["Every feature edit, failure recovery and save-reopen matches FreeCAD"], "evidence": ["check:partdesign-closure", "check:freecad-sketcher-partdesign-abi", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["The parameter contract covers the supported Facade subset, not every registered PartDesign TypeId or cross-product"] },
|
|
{ "id": "EX-PD-02", "title": "Complete attachment, datum, ShapeBinder, SubShapeBinder and body workflows", "priority": "P0", "status": "pending", "dependencies": ["EX-PD-01", "EX-DOC-04"], "deliverables": ["All map modes and support rules", "Datum and binder lifecycle", "Multi-body and cross-document corpus"], "acceptance": ["Support migration, visibility, Tip and references remain exact through mutation"], "evidence": ["check:chrome-partdesign-lifecycle", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Complete datum/binder and multi-body oracle is absent"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX05",
|
|
"title": "FCStd and all import/export entrypoints",
|
|
"tasks": [
|
|
{ "id": "EX-FC-01", "title": "Round-trip every native FCStd object, property, extension and resource", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["Complete native archive model", "Unknown object preservation", "FreeCAD-Web-FreeCAD mutation corpus"], "acceptance": ["No supported object, property, GUI state or resource drifts after mutation and resave"], "evidence": ["check:fcstd-closure", "check:chrome-fcstd-roundtrip"], "exactBlockedBy": ["FCStd currently supports a verified subset plus read-only proxies"] },
|
|
{ "id": "EX-FMT-01", "title": "Close BREP, STEP and IGES import/export semantics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01"], "deliverables": ["Assembly/color/name import", "Unit and tolerance handling", "Deterministic exports"], "acceptance": ["Native and Web topology, metadata and diagnostics match for each format"] , "evidence": ["check:chrome-secondary-formats", "check:browser-occt"], "exactBlockedBy": ["Advanced STEP/IGES metadata and assembly cases are incomplete"] },
|
|
{ "id": "EX-FMT-02", "title": "Close STL, OBJ, PLY, DXF, SVG and PDF round-trips", "priority": "P1", "status": "in_progress", "dependencies": ["EX-MESH-01", "EX-DRAFT-01", "EX-TD-01"], "deliverables": ["Mesh and 2D format codecs", "Style/layer metadata", "Import-export failure corpus"], "acceptance": ["All supported entities and metadata round-trip or fail with a registered difference"] , "evidence": ["check:chrome-secondary-formats", "check:document-closure"], "exactBlockedBy": ["Several formats remain read-only or omit advanced entity metadata"] },
|
|
{ "id": "EX-FMT-03", "title": "Close IFC, CSV and G-code native object semantics", "priority": "P1", "status": "in_progress", "dependencies": ["EX-BIM-01", "EX-SS-01", "EX-CAM-01"], "deliverables": ["IFC schema and property sets", "Spreadsheet CSV dialect parity", "Path/G-code object round-trip"], "acceptance": ["Import, edit, export and native reopen preserve the declared object graph"] , "evidence": ["check:chrome-bim", "check:document-closure", "check:cam-parity"], "exactBlockedBy": ["IFC and G-code entrypoint inventory still records unsupported desktop semantics"] },
|
|
{ "id": "EX-FMT-04", "title": "Implement or explicitly isolate JT, IDF and OpenSCAD resources", "priority": "P2", "status": "pending", "dependencies": ["EX-ORA-03", "EX-PROXY-01"], "deliverables": ["Browser decoder or isolated service per format", "Security and license boundary", "Lossless proxy fallback"], "acceptance": ["Each format is executable with native differential evidence or remains outside the exact claim"] , "evidence": ["check:platform-closure", "check:security-baseline"], "exactBlockedBy": ["JT, IDF and OpenSCAD are proxy modules"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX06",
|
|
"title": "FreeCAD GUI and interaction semantics",
|
|
"tasks": [
|
|
{ "id": "EX-UI-01", "title": "Complete automated FreeCAD GUI oracle for all application states", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Menu, toolbar, dialog and focus manifest", "Selection-state fixtures", "Desktop screenshots and accessibility trees"], "acceptance": ["Empty, document, selection, task, failure and recovery states have no unknown command state"] , "evidence": ["check:freecad-gui-commands", "check:chrome-app-e2e"], "exactBlockedBy": ["Current GUI oracle does not cover every dynamic state"] },
|
|
{ "id": "EX-UI-02", "title": "Match application shell, workbench switching, tree, docks and MDI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-01", "EX-DOC-04"], "deliverables": ["Dynamic workbench contributions", "Tree and dock lifecycle", "Multi-document tab behavior"], "acceptance": ["Visible, enabled, ordering and focus states match the GUI oracle"] , "evidence": ["check:chrome-app-e2e"], "exactBlockedBy": ["Dynamic command states and full MDI behavior are incomplete"] },
|
|
{ "id": "EX-UI-03", "title": "Match Task panels, property editors, dialogs and validation lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-DOC-01"], "deliverables": ["Generic native editor mapping", "Apply/OK/Cancel transactions", "Keyboard and focus traps"], "acceptance": ["All dialogs and tasks match validation, preview, commit, cancel and recovery behavior"] , "evidence": ["check:chrome-app-e2e", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["Only representative tasks and dialogs have complete browser replay"] },
|
|
{ "id": "EX-UI-04", "title": "Match 3D selection, context, shortcuts, status, report and long tasks", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-TSN-04"], "deliverables": ["Object/subshape selection oracle", "Shortcut conflict map", "Progress, cancel and diagnostics lifecycle"], "acceptance": ["Pointer, keyboard, preselection and report states match for every command context"] , "evidence": ["check:chrome-topology", "check:chrome-app-e2e"], "exactBlockedBy": ["All workbench context combinations and browser-reserved shortcuts are not closed"] },
|
|
{ "id": "EX-UI-05", "title": "Replay complete workflows for every workbench and close visual/accessibility diffs", "priority": "P1", "status": "pending", "dependencies": ["EX-UI-03", "EX-UI-04", "EX-PLATFORM-01"], "deliverables": ["Per-workbench recordings", "Desktop and mobile visual baselines", "Accessibility and localization matrix"], "acceptance": ["No unregistered UI difference, overlap, unnamed control or blocked core workflow"] , "evidence": ["check:chrome-app-e2e", "check:chrome-qa08"], "exactBlockedBy": ["Per-workbench exact workflow replay is incomplete"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX07",
|
|
"title": "Draft, TechDraw, Spreadsheet and Plot workbenches",
|
|
"tasks": [
|
|
{ "id": "EX-DRAFT-01", "title": "Complete Draft objects, modifiers, snaps, working planes and BIM interoperability", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-03", "EX-UI-04"], "deliverables": ["All Draft command semantics", "Snap and working-plane oracle", "Native object round-trip"], "acceptance": ["Geometry, properties, selection and diagnostics match FreeCAD"] , "evidence": ["check:chrome-draft", "check:document-closure"], "exactBlockedBy": ["Current Draft implementation is a compatible command subset"] },
|
|
{ "id": "EX-TD-01", "title": "Complete TechDraw pages, views, dimensions, annotations and export", "priority": "P1", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-UI-03"], "deliverables": ["All view and annotation objects", "Projection and cosmetic geometry", "SVG/PDF differential"], "acceptance": ["Page rendering, references and exports match native fixtures"] , "evidence": ["check:chrome-techdraw", "check:document-closure"], "exactBlockedBy": ["Advanced TechDraw view/annotation types are not exhaustive"] },
|
|
{ "id": "EX-SS-01", "title": "Complete Spreadsheet formulas, aliases, styles, bindings and CSV behavior", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-03"], "deliverables": ["Formula grammar parity", "Style and merge semantics", "Cross-object binding lifecycle"], "acceptance": ["Calculation, errors, formatting and round-trip match native sheets"] , "evidence": ["check:chrome-spreadsheet", "check:document-closure"], "exactBlockedBy": ["Formula and formatting coverage is representative rather than exhaustive"] },
|
|
{ "id": "EX-PLOT-01", "title": "Complete Plot data sources, axes, styles and export", "priority": "P2", "status": "in_progress", "dependencies": ["EX-SS-01", "EX-UI-03"], "deliverables": ["Plot object lifecycle", "Style and axis parity", "Image/vector export"], "acceptance": ["Data refresh, view state and exports match the native module"] , "evidence": ["check:chrome-plot", "check:document-closure"], "exactBlockedBy": ["Interactive Plot behaviors and all styles are incomplete"] },
|
|
{ "id": "EX-DOCWB-01", "title": "Close document-workbench cross references and shared UI workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-DRAFT-01", "EX-TD-01", "EX-SS-01", "EX-PLOT-01", "EX-UI-05"], "deliverables": ["Cross-workbench mutation corpus", "Shared selection and expression links", "FCStd round-trip"], "acceptance": ["No cross-workbench reference, view or export drift"] , "evidence": ["check:document-closure"], "exactBlockedBy": ["Cross-workbench exhaustive corpus is missing"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX08",
|
|
"title": "Assembly, BIM, Surface, Mesh and Material workbenches",
|
|
"tasks": [
|
|
{ "id": "EX-ASM-01", "title": "Complete Assembly objects, joints, solver, animation and interchange", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["All joint and connector types", "Native solver classification", "Assembly FCStd lifecycle"], "acceptance": ["Placements, DOF, diagnostics and edits match native assemblies"] , "evidence": ["check:chrome-assembly", "check:engineering-closure"], "exactBlockedBy": ["Current solver covers a compatible joint subset"] },
|
|
{ "id": "EX-BIM-01", "title": "Complete BIM/Arch objects, relationships, IFC and quantity semantics", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DRAFT-01", "EX-DOC-03"], "deliverables": ["All BIM object schemas", "IFC import/export", "Material and quantity sets"], "acceptance": ["Native object graph, properties and IFC round-trip match"] , "evidence": ["check:chrome-bim", "check:engineering-closure"], "exactBlockedBy": ["IFC and advanced BIM object semantics remain incomplete"] },
|
|
{ "id": "EX-SURF-01", "title": "Complete Surface construction, trim, sew, offset and repair", "priority": "P1", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-04"], "deliverables": ["All Surface commands", "Continuity and tolerance controls", "Native topology history"], "acceptance": ["Surface geometry, validity and diagnostics match FreeCAD"] , "evidence": ["check:chrome-surface", "check:engineering-closure"], "exactBlockedBy": ["Advanced curve networks and repair modes are incomplete"] },
|
|
{ "id": "EX-MESH-01", "title": "Complete Mesh and MeshPart editing, analysis, repair and conversion", "priority": "P1", "status": "in_progress", "dependencies": ["EX-KER-01"], "deliverables": ["All mesh algorithms", "Repair and evaluation reports", "Shape-mesh conversion parity"], "acceptance": ["Topology, normals, quality metrics and failures match native fixtures"] , "evidence": ["check:chrome-mesh", "check:engineering-closure"], "exactBlockedBy": ["Mesh repair and analysis algorithms are not exhaustive"] },
|
|
{ "id": "EX-MAT-01", "title": "Complete Material cards, inheritance, appearance and physical properties", "priority": "P2", "status": "pending", "dependencies": ["EX-DOC-05", "EX-BIM-01"], "deliverables": ["Material schema and catalogs", "Inheritance and overrides", "FCStd and IFC mapping"], "acceptance": ["Material values and appearances survive all native round-trips"] , "evidence": ["check:engineering-closure", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Material module is represented only by compatible shared properties"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX09",
|
|
"title": "Analysis, manufacturing, data, scripting and proxy modules",
|
|
"tasks": [
|
|
{ "id": "EX-FEM-01", "title": "Complete FEM objects, meshers, solvers, materials and result post-processing", "priority": "P1", "status": "in_progress", "dependencies": ["EX-MESH-01", "EX-MAT-01"], "deliverables": ["Solver adapter matrix", "All FEM object schemas", "Result field and visualization parity"], "acceptance": ["Native benchmark decks and result fields match within declared tolerances"] , "evidence": ["check:chrome-fem", "check:platform-closure"], "exactBlockedBy": ["Current FEM solve is a local-reference compatible subset"] },
|
|
{ "id": "EX-CAM-01", "title": "Complete CAM Path algorithms, objects, tasks, simulation and machine validation", "priority": "P0", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-UI-03", "EX-FC-01"], "deliverables": ["All Path operations and dress-ups", "Native operation-object FCStd", "CAMotics/OCL differential and machine profiles"], "acceptance": ["Path geometry, tasks, posts and simulation match native fixtures", "Production authorization remains separate and fail-closed"] , "evidence": ["check:cam-parity", "check:cam-pipeline"], "exactBlockedBy": ["Full Path algorithms, FeaturePython objects and browser CAMotics remain incomplete"] },
|
|
{ "id": "EX-ROBOT-01", "title": "Complete Robot models, kinematics, trajectories and controller export", "priority": "P2", "status": "in_progress", "dependencies": ["EX-ASM-01"], "deliverables": ["Robot model import", "Kinematics and collision oracle", "Controller program parity"], "acceptance": ["Reachability, placements, paths and exports match native Robot"] , "evidence": ["check:chrome-robot", "check:platform-closure"], "exactBlockedBy": ["Current Robot implementation is a planar compatible subset"] },
|
|
{ "id": "EX-DATA-01", "title": "Complete Points and ReverseEngineering algorithms and formats", "priority": "P2", "status": "in_progress", "dependencies": ["EX-MESH-01"], "deliverables": ["Binary/E57 point clouds", "Poisson and region growing", "Curve and surface reconstruction"], "acceptance": ["Native datasets produce matching classifications and fitted geometry"] , "evidence": ["check:chrome-data", "check:platform-closure"], "exactBlockedBy": ["E57, Poisson, region growing and full B-spline reconstruction are missing"] },
|
|
{ "id": "EX-INSPECT-01", "title": "Complete measurement, inspection and deviation workflows", "priority": "P2", "status": "in_progress", "dependencies": ["EX-TSN-04", "EX-DATA-01"], "deliverables": ["All measurement objects", "Section and deviation analysis", "Report and export parity"], "acceptance": ["References, values, tolerances and reports match native Inspection/Measure"] , "evidence": ["check:chrome-inspection", "check:platform-closure"], "exactBlockedBy": ["Advanced inspection and Measure commands are incomplete"] },
|
|
{ "id": "EX-SCRIPT-01", "title": "Provide capability-secure Python API and macro compatibility", "priority": "P1", "status": "pending", "dependencies": ["EX-DOC-03", "EX-ORA-03"], "deliverables": ["Versioned App/Gui Python API", "Macro lifecycle", "Permission and deterministic execution sandbox"], "acceptance": ["Supported scripts match native effects without ambient file/network authority", "Unsupported native modules fail explicitly"] , "evidence": ["check:chrome-script", "check:security-baseline"], "exactBlockedBy": ["Current sandbox replays Facade commands and does not execute the FreeCAD Python API"] },
|
|
{ "id": "EX-ADDON-01", "title": "Complete signed addon packaging, dependency isolation and rollback", "priority": "P2", "status": "in_progress", "dependencies": ["EX-SCRIPT-01", "EX-ORA-03"], "deliverables": ["Addon compatibility manifest", "Signed packages and permissions", "Install, upgrade and rollback lifecycle"], "acceptance": ["Compatible addons install deterministically and cannot escape declared capabilities"] , "evidence": ["check:chrome-addon", "check:platform-closure"], "exactBlockedBy": ["Arbitrary desktop FreeCAD addons cannot run unchanged in the browser"] },
|
|
{ "id": "EX-PROXY-01", "title": "Implement or formally exclude Cloud, Help, IDF, JT and OpenSCAD native behavior", "priority": "P2", "status": "pending", "dependencies": ["EX-ORA-03", "EX-SCRIPT-01"], "deliverables": ["Per-module browser architecture", "Data and security contracts", "Native differential fixtures"], "acceptance": ["Each module becomes exact/compatible with evidence or is excluded from the final claim"] , "evidence": ["check:platform-closure"], "exactBlockedBy": ["Five modules remain explicit proxies"] },
|
|
{ "id": "EX-PLATFORM-01", "title": "Close all analysis/platform workbench cross-workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-FEM-01", "EX-CAM-01", "EX-ROBOT-01", "EX-DATA-01", "EX-INSPECT-01", "EX-ADDON-01", "EX-PROXY-01"], "deliverables": ["Per-workbench workflow corpus", "Cross-module resources and references", "Zero unexplained capability matrix"], "acceptance": ["All 34 modules have a completed exact task or an explicit claim exclusion"] , "evidence": ["check:platform-closure", "check:release-closure"], "exactBlockedBy": ["Analysis and proxy module exact tasks remain open"] }
|
|
]
|
|
},
|
|
{
|
|
"id": "EX10",
|
|
"title": "Cross-platform quality and exact release gate",
|
|
"tasks": [
|
|
{ "id": "EX-QA-01", "title": "Run deterministic browser, OS, GPU and device-class matrix", "priority": "P1", "status": "pending", "dependencies": ["EX-UI-05", "EX-PLATFORM-01"], "deliverables": ["Chrome, Firefox and Safari evidence", "GPU fallback matrix", "Desktop, tablet and mobile workflows"], "acceptance": ["All supported platforms have zero unknown semantic or lifecycle difference"] , "evidence": ["check:quality-closure", "check:chrome-performance"], "exactBlockedBy": ["Current executable baseline is Chrome 150 only"] },
|
|
{ "id": "EX-QA-02", "title": "Complete accessibility, localization, performance and security certification", "priority": "P1", "status": "in_progress", "dependencies": ["EX-UI-05"], "deliverables": ["Screen-reader and keyboard matrix", "All shipped locales", "Security and performance reports"], "acceptance": ["No unnamed control, inaccessible core workflow, critical vulnerability or budget regression"] , "evidence": ["check:chrome-qa08", "check:chrome-security", "check:chrome-performance"], "exactBlockedBy": ["Full accessibility certification and all locales are not covered"] },
|
|
{ "id": "EX-QA-03", "title": "Complete fuzz, stress, migration, crash and long-session reliability gates", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-FC-01"], "deliverables": ["Format and protocol fuzzing", "Million-operation topology and solver replay", "Version migration and rollback matrix"], "acceptance": ["No wrong binding, corruption, leak, stale commit or unrecoverable migration"] , "evidence": ["test:fcstd-fuzz", "test:geometry-input-fuzz", "test:topology-replay", "check:project-migration"], "exactBlockedBy": ["Long-session and cross-version corpus is not exhaustive"] },
|
|
{ "id": "EX-REL-01", "title": "Promote system to FreeCAD exact only after every exact gate closes", "priority": "P0", "status": "pending", "dependencies": ["EX-QA-01", "EX-QA-02", "EX-QA-03", "EX-DOCWB-01", "EX-PD-02", "EX-FMT-04"], "deliverables": ["All-task completion report", "Zero-difference capability matrix", "Signed exact release artifacts"], "acceptance": ["All tasks are completed", "Exact modules equal 34", "Wrong bindings, unexplained relations, name drift, unknown semantic differences and release blockers all equal zero"] , "evidence": ["check:release-closure", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Upstream exact tasks remain open"] }
|
|
]
|
|
}
|
|
],
|
|
"moduleCoverage": {
|
|
"AddonManager": ["EX-ADDON-01"], "Assembly": ["EX-ASM-01"], "BIM": ["EX-BIM-01"], "CAM": ["EX-CAM-01"], "Cloud": ["EX-PROXY-01"], "Draft": ["EX-DRAFT-01"], "Fem": ["EX-FEM-01"], "Help": ["EX-PROXY-01"], "Idf": ["EX-PROXY-01", "EX-FMT-04"], "Import": ["EX-FMT-01", "EX-FMT-02", "EX-FMT-03"], "Inspection": ["EX-INSPECT-01"], "JtReader": ["EX-PROXY-01", "EX-FMT-04"], "Material": ["EX-MAT-01"], "Measure": ["EX-INSPECT-01"], "Mesh": ["EX-MESH-01"], "MeshPart": ["EX-MESH-01"], "OpenSCAD": ["EX-PROXY-01", "EX-FMT-04"], "Part": ["EX-PART-01"], "PartDesign": ["EX-PD-01", "EX-PD-02"], "Plot": ["EX-PLOT-01"], "Points": ["EX-DATA-01"], "ReverseEngineering": ["EX-DATA-01"], "Robot": ["EX-ROBOT-01"], "Sandbox": ["EX-SCRIPT-01"], "Show": ["EX-UI-04"], "Sketcher": ["EX-SK-01", "EX-SK-02"], "Spreadsheet": ["EX-SS-01"], "Start": ["EX-UI-02"], "Surface": ["EX-SURF-01"], "TechDraw": ["EX-TD-01"], "TemplatePyMod": ["EX-SCRIPT-01"], "Test": ["EX-QA-03"], "Tux": ["EX-QA-03"], "Web": ["EX-QA-01", "EX-UI-05"]
|
|
},
|
|
"entrypointCoverage": {
|
|
"formats": {
|
|
"FCStd": ["EX-FC-01"], "BREP": ["EX-FMT-01"], "STEP": ["EX-FMT-01"], "IGES": ["EX-FMT-01"], "STL": ["EX-FMT-02"], "OBJ": ["EX-FMT-02"], "PLY": ["EX-FMT-02"], "DXF": ["EX-FMT-02"], "SVG": ["EX-FMT-02"], "PDF": ["EX-FMT-02"], "IFC": ["EX-FMT-03"], "CSV": ["EX-FMT-03"], "GCODE": ["EX-FMT-03"], "JT": ["EX-FMT-04"], "IDF": ["EX-FMT-04"]
|
|
},
|
|
"entrypoints": {
|
|
"python-api": ["EX-SCRIPT-01"], "macro-fcmacro": ["EX-SCRIPT-01"], "addon-package": ["EX-ADDON-01"], "preferences": ["EX-DOC-05"], "clipboard": ["EX-UI-03"], "print-job": ["EX-TD-01", "EX-UI-03"]
|
|
}
|
|
},
|
|
"promotionGate": {
|
|
"finalTask": "EX-REL-01",
|
|
"requiredExactModules": 34,
|
|
"requiredZeroMetrics": ["wrongBindings", "unexplainedRelations", "roundtripNameDrift", "unknownSemanticDifferences", "namingEvidenceMissing", "namingEvidenceBoundaryViolations", "unexplainedModules", "releaseBlockers"],
|
|
"requiredEvidenceClasses": ["native-oracle", "browser-runtime", "save-reopen-roundtrip", "failure-cancel-recovery", "resource-release", "security", "accessibility", "signed-release"]
|
|
}
|
|
}
|