Files
Web_FreeCAD_Bitbybit/config/freecad-execution-plan.json

216 lines
28 KiB
JSON

{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"bitbybitVersion": "1.1.1",
"occtNativeVersion": "8.0.0"
},
"lanes": [
{ "id": "ORACLE", "ownerRole": "FreeCAD reference and inventory", "scope": "Desktop/headless oracle, manifests, golden fixtures" },
{ "id": "KERNEL", "ownerRole": "Geometry kernel and WASM", "scope": "Bitbybit, OCCT bindings, Workers, shape ownership" },
{ "id": "TOPO", "ownerRole": "Topology naming", "scope": "TopoRef, history, signatures, migration and selection" },
{ "id": "SKETCH", "ownerRole": "Sketcher solver", "scope": "planegcs, constraints, sketch editing and diagnostics" },
{ "id": "CORE", "ownerRole": "Parametric document core", "scope": "Document, DAG, Part, PartDesign, Body and attachment" },
{ "id": "IO", "ownerRole": "Persistence and interoperability", "scope": "FCStd, BRep resources, formats and round-trip" },
{ "id": "DOC", "ownerRole": "Production workbenches", "scope": "TechDraw, Spreadsheet, Draft and Plot" },
{ "id": "ENGINEERING", "ownerRole": "Engineering workbenches", "scope": "Assembly, BIM, Mesh and Surface" },
{ "id": "PLATFORM", "ownerRole": "Analysis and platform capabilities", "scope": "FEM, CAM, Robot, Inspection, data, addons and scripts" },
{ "id": "QUALITY", "ownerRole": "Quality and release", "scope": "Browsers, performance, security, migrations and release" }
],
"gates": [
{ "id": "G0", "title": "Reference inventory", "requiredPrograms": ["P01"] },
{ "id": "G1", "title": "Browser geometry kernel", "requiredPrograms": ["P02"] },
{ "id": "G2", "title": "Stable topology", "requiredPrograms": ["P03"] },
{ "id": "G3", "title": "Sketcher parity", "requiredPrograms": ["P04"] },
{ "id": "G4", "title": "Parametric Part and PartDesign", "requiredPrograms": ["P05"] },
{ "id": "G5", "title": "FCStd round-trip", "requiredPrograms": ["P06"] },
{ "id": "G6", "title": "Production workbenches", "requiredPrograms": ["P07"] },
{ "id": "G7", "title": "Engineering workbenches", "requiredPrograms": ["P08"] },
{ "id": "G8", "title": "Analysis and platform", "requiredPrograms": ["P09"] },
{ "id": "G9", "title": "Release", "requiredPrograms": ["P10"] }
],
"programs": [
{
"id": "P01",
"title": "Complete desktop FreeCAD oracle and 34-module inventory",
"ownerLane": "ORACLE",
"dependencies": [],
"gate": "G0",
"tasks": [
{ "id": "ORA-01", "title": "Create full desktop oracle build profile", "status": "completed", "dependencies": [], "deliverables": ["Pinned GUI/workbench CMake profile", "Build manifest and hashes"], "acceptance": ["Clean build reports FreeCAD 1.1.1 at the locked commit", "GUI and workbench modules are probeable"] },
{ "id": "ORA-02", "title": "Extend runtime probe for GUI and module failure classes", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["GUI-aware probe", "Compiled/import/gui-only status model"], "acceptance": ["Probe distinguishes missing build, import failure and GUI-only", "Report is deterministic JSON"] },
{ "id": "INV-01", "title": "Generate 34-module and workbench inventory", "status": "completed", "dependencies": ["ORA-02"], "deliverables": ["Module/workbench/command manifest", "Source locations"], "acceptance": ["All src/Mod directories are classified", "No unregistered workbench command"] },
{ "id": "INV-02", "title": "Inventory TypeId and Property metadata", "status": "completed", "dependencies": ["ORA-02"], "deliverables": ["TypeId/property/default/status manifest", "Source-traceable static TypeId/property candidate inventory", "Minimal object fixtures"], "acceptance": ["Core objects trace to source and runtime", "Read-only/hidden/output flags are recorded", "Static candidates are reproducible from the locked source checkout and remain explicitly unpromoted until runtime probes confirm them"] },
{ "id": "INV-03", "title": "Inventory GUI commands and selection preconditions", "status": "completed", "dependencies": ["INV-01"], "deliverables": ["Menu/toolbar/context/shortcut map", "Selection and task preconditions"], "acceptance": ["Every GUI command has enabled/disabled oracle cases"] },
{ "id": "INV-04", "title": "Inventory formats, preferences, Python and addon entry points", "status": "completed", "dependencies": ["INV-01"], "deliverables": ["Format and optional-library matrix", "Preference/API/addon inventory"], "acceptance": ["Every entry has web strategy and compatibility level"] },
{ "id": "BASE-03", "title": "Expand oracle fixtures", "status": "completed", "dependencies": ["INV-02", "INV-03"], "deliverables": ["100 success fixtures", "51 failure fixtures"], "acceptance": ["Fixtures cover core objects, units, topology changes and errors"] },
{ "id": "BASE-04", "title": "Build oracle-to-Web semantic comparator", "status": "completed", "dependencies": ["BASE-03"], "deliverables": ["Tree/property/shape/topology comparator", "Diff report schema"], "acceptance": ["Known differences are explicit", "Unknown differences fail the gate"] }
]
},
{
"id": "P02",
"title": "Native OCCT Worker browser execution and Boolean gates",
"ownerLane": "KERNEL",
"dependencies": ["P01"],
"gate": "G1",
"tasks": [
{ "id": "BYB-03", "title": "Reproducible Bitbybit and OCCT source build", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["Pinned toolchain build", "Patch, ABI, hash and license manifest"], "acceptance": ["Clean rebuild has the declared exports and traceable hashes"] },
{ "id": "BYB-05", "title": "Version and harden Worker protocol", "status": "completed", "dependencies": ["BYB-03"], "deliverables": ["Capabilities handshake", "Cancellation, timeout, crash and stale-result protocol"], "acceptance": ["Malformed messages fail safely", "Restart does not accept stale results"] },
{ "id": "BYB-06", "title": "Define shape ownership and release accounting", "status": "completed", "dependencies": ["BYB-05"], "deliverables": ["Ownership ledger", "Reference counting and disposal metrics", "Browser Worker crash recovery and reinitialization contract"], "acceptance": ["No use-after-release", "Long Boolean sessions remain within memory budget", "A failed Worker is replaced before a retry and pending requests are rejected"] },
{ "id": "BROWSER-OCCT-01", "title": "Instantiate native history WASM in Chrome", "status": "completed", "dependencies": ["BYB-05"], "deliverables": ["Chrome harness", "COOP/COEP, OPFS, and artifact-loading evidence"], "acceptance": ["JS/WASM Worker initializes in Chrome", "Abort and worker crash are recoverable"] },
{ "id": "BYB-07", "title": "Run three-way Boolean golden comparison", "status": "completed", "dependencies": ["BROWSER-OCCT-01", "BASE-04"], "deliverables": ["Fuse/Cut/Common FreeCAD-Bitbybit-native reports", "Tolerance and error taxonomy"], "acceptance": ["Geometry and history differences are explained", "No silent topology mismatch"] },
{ "id": "MEM-OCCT-01", "title": "Enforce Worker memory gate", "status": "completed", "dependencies": ["BYB-06", "BYB-07"], "deliverables": ["1000-operation stress fixture", "Heap/WASM/GPU retention report"], "acceptance": ["Peak and retained memory meet budgets", "All temporary shapes are accounted for"] },
{ "id": "BYB-08", "title": "Automate upstream ABI and golden drift", "status": "completed", "dependencies": ["BYB-07"], "deliverables": ["API/ABI diff job", "Golden drift report"], "acceptance": ["Dependency upgrades cannot silently change capabilities"] }
]
},
{
"id": "P03",
"title": "Stable TopoRef, signatures and mutation replay",
"ownerLane": "TOPO",
"dependencies": ["P02"],
"gate": "G2",
"tasks": [
{ "id": "TSN-03", "title": "Complete native history coverage", "status": "completed", "dependencies": ["BYB-07"], "deliverables": ["Generated/Modified/Deleted for Boolean and features"], "acceptance": ["Every source subshape has an explainable relation"] },
{ "id": "TSN-04", "title": "Implement analytic curve and surface signatures", "status": "completed", "dependencies": ["TSN-03"], "deliverables": ["Curve/surface parameter signatures", "Orientation and tolerance normalization"], "acceptance": ["Signatures do not depend on triangulation precision"] },
{ "id": "TSN-05", "title": "Add adjacency and confidence matching", "status": "completed", "dependencies": ["TSN-04"], "deliverables": ["Adjacency graph", "One-to-one/one-to-many scoring"], "acceptance": ["Rigid transforms and parameter edits retain safe references"] },
{ "id": "TSN-06", "title": "Handle symmetry, split and merge ambiguity", "status": "completed", "dependencies": ["TSN-05"], "deliverables": ["Ambiguity policy", "Candidate and confidence diagnostics"], "acceptance": ["Low confidence never binds silently"] },
{ "id": "TSN-07", "title": "Map Boolean, Pattern and cross-Body history", "status": "completed", "dependencies": ["TSN-03", "TSN-06"], "deliverables": ["Multi-input source mapping", "Pattern instance lineage"], "acceptance": ["Every result relation identifies its source object"] },
{ "id": "TSN-08", "title": "Persist and migrate TopoRef everywhere", "status": "completed", "dependencies": ["TSN-07"], "deliverables": ["LinkSub/external geometry/FCStd migration", "Schema upgrade fixtures"], "acceptance": ["Save/load and version upgrades preserve stable/ambiguous/deleted states"] },
{ "id": "TSN-09", "title": "Connect 3D pick, preselect and candidate repair", "status": "completed", "dependencies": ["TSN-08"], "deliverables": ["Facade selection contract", "Candidate highlight and repair flow"], "acceptance": ["UI never persists transient mesh indexes"] },
{ "id": "TSN-10", "title": "Run parameter mutation and fuzz replay", "status": "completed", "dependencies": ["TSN-07", "TSN-09"], "deliverables": ["100-model/1000-mutation suite", "Wrong-bind audit"], "acceptance": ["No silent wrong binding", "All ambiguity is diagnosable"] }
]
},
{
"id": "P04",
"title": "planegcs WASM and complete Sketcher constraints",
"ownerLane": "SKETCH",
"dependencies": ["P01", "P03"],
"gate": "G3",
"tasks": [
{ "id": "SK-03", "title": "Build planegcs WASM", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["Minimal source graph", "Emscripten build and hashes"], "acceptance": ["Deterministic solve works in a dedicated Worker"] },
{ "id": "SK-04", "title": "Finalize solver protocol and lifecycle", "status": "completed", "dependencies": ["SK-03"], "deliverables": ["Capabilities and diagnostics", "Cancel/stale/crash recovery"], "acceptance": ["Provider replacement does not change Facade contracts"] },
{ "id": "SK-05", "title": "Complete sketch geometry model", "status": "completed", "dependencies": ["SK-04"], "deliverables": ["Ellipse, B-spline, periodic and construction geometry"], "acceptance": ["Geometry round-trips with stable IDs"] },
{ "id": "SK-06", "title": "Implement complete geometric constraints", "status": "completed", "dependencies": ["SK-04", "SK-05"], "deliverables": ["Coincident through block constraint set"], "acceptance": ["Each constraint has FreeCAD success and failure fixtures"] },
{ "id": "SK-07", "title": "Implement dimensional/reference constraints and diagnoses", "status": "completed", "dependencies": ["SK-06"], "deliverables": ["Driving/reference dimensions", "DOF/redundant/conflicting classification"], "acceptance": ["Solver classifications match FreeCAD fixtures"] },
{ "id": "SK-08", "title": "Implement support and external geometry", "status": "completed", "dependencies": ["TSN-09", "SK-06"], "deliverables": ["Plane/face support", "Projection and CarbonCopy"], "acceptance": ["Upstream topology migration updates sketch references safely"] },
{ "id": "SK-09", "title": "Complete interactive editor", "status": "completed", "dependencies": ["SK-07", "SK-08"], "deliverables": ["Trim/extend/split/drag/autoconstraint", "Keyboard and pointer replay"], "acceptance": ["Editing and task lifecycle match oracle behavior"] },
{ "id": "SK-10", "title": "Complete B-spline editing", "status": "completed", "dependencies": ["SK-05", "SK-09"], "deliverables": ["Poles/knots/weights/degree/periodic editing"], "acceptance": ["B-spline constraints and round-trip fixtures pass"] },
{ "id": "SK-11", "title": "Validate feature profiles", "status": "completed", "dependencies": ["SK-08", "SK-10"], "deliverables": ["Open/closed/multi-ring/self-intersection classifier"], "acceptance": ["PartDesign consumes profiles with FreeCAD-compatible errors"] },
{ "id": "SK-12", "title": "Run Sketcher golden and stress suite", "status": "completed", "dependencies": ["SK-07", "SK-09", "SK-11"], "deliverables": ["500-model suite", "Solve time and determinism report"], "acceptance": ["Success, conflict, redundancy and drag cases pass budgets"] }
]
},
{
"id": "P05",
"title": "Part and PartDesign parametric closure",
"ownerLane": "CORE",
"dependencies": ["P03", "P04"],
"gate": "G4",
"tasks": [
{ "id": "CORE-09", "title": "Complete Body, Origin and Tip rules", "status": "completed", "dependencies": ["TSN-08"], "deliverables": ["Feature ordering and Tip redirection", "Single-solid enforcement"], "acceptance": ["Suppression, deletion and reorder match FreeCAD"] },
{ "id": "CORE-10", "title": "Implement Support and MapMode", "status": "completed", "dependencies": ["TSN-09", "CORE-09"], "deliverables": ["Support schema", "Attachment engine modes"], "acceptance": ["Face/plane support survives topology migration"] },
{ "id": "CORE-11", "title": "Implement AttachmentOffset and local coordinates", "status": "completed", "dependencies": ["CORE-10"], "deliverables": ["Placement composition", "Local coordinate-chain tests"], "acceptance": ["Result placements match FreeCAD within tolerance"] },
{ "id": "PART-ALL", "title": "Complete Part objects and operations", "status": "completed", "dependencies": ["TSN-07", "CORE-11"], "deliverables": ["Primitive, Boolean, builder, modification and check operations"], "acceptance": ["Part command fixtures and STEP/IGES/BREP gates pass"] },
{ "id": "PD-BASE", "title": "Complete Pad, Pocket, Revolution and Groove modes", "status": "completed", "dependencies": ["SK-11", "CORE-11"], "deliverables": ["Lengths, to-face, through-all, taper and midplane modes"], "acceptance": ["Parameter edits recompute with native history"] },
{ "id": "PD-LOFT", "title": "Implement additive/subtractive loft and pipe", "status": "completed", "dependencies": ["PD-BASE"], "deliverables": ["Section/path/transition features"], "acceptance": ["Failure recovery retains the last valid shape"] },
{ "id": "PD-DRESSUP", "title": "Complete dress-up features", "status": "completed", "dependencies": ["TSN-09", "PD-BASE"], "deliverables": ["Fillet/chamfer/draft/thickness with stable selections"], "acceptance": ["Edge/face changes migrate or report ambiguity"] },
{ "id": "PD-TRANSFORM", "title": "Complete transforms and Hole", "status": "completed", "dependencies": ["CORE-10", "PD-DRESSUP"], "deliverables": ["Feature-list transforms", "Full Hole standards and placement"], "acceptance": ["Single-solid, axis/plane and thread semantics are tested"] },
{ "id": "PD-CLOSURE", "title": "Run full parametric lifecycle", "status": "completed", "dependencies": ["PART-ALL", "PD-LOFT", "PD-TRANSFORM"], "deliverables": ["Create/edit/recompute/undo/save/load suite"], "acceptance": ["No stale shapes or broken Tip/Support references"] }
]
},
{
"id": "P06",
"title": "FCStd bidirectional round-trip",
"ownerLane": "IO",
"dependencies": ["P03", "P05"],
"gate": "G5",
"tasks": [
{ "id": "FC-04", "title": "Map Document.xml and GuiDocument.xml", "status": "completed", "dependencies": ["INV-02"], "deliverables": ["Object/property/extension mapper", "View state mapper"], "acceptance": ["Known metadata round-trips without semantic loss"] },
{ "id": "FC-05", "title": "Read and write BRep/Shape resources", "status": "completed", "dependencies": ["PART-ALL", "FC-04"], "deliverables": ["Shape resource resolver", "Topology/precision/color report"], "acceptance": ["Shape counts and mass properties match oracle"] },
{ "id": "FC-06", "title": "Serialize expressions, links, TopoRef and Sketcher", "status": "completed", "dependencies": ["TSN-08", "SK-12", "FC-04"], "deliverables": ["Typed property codecs", "Reference migration report"], "acceptance": ["FreeCAD can recompute supported objects after save"] },
{ "id": "FC-07", "title": "Preserve unknown XML and resources", "status": "completed", "dependencies": ["FC-04"], "deliverables": ["Opaque extension store", "Script isolation metadata"], "acceptance": ["Unknown/proxy bytes survive read-write unchanged"] },
{ "id": "FC-08", "title": "Complete STEP, IGES and BREP exchange", "status": "completed", "dependencies": ["FC-05"], "deliverables": ["Import/export adapters", "Units/colors/tolerance report"], "acceptance": ["100-model format golden suite passes"] },
{ "id": "FC-09", "title": "Complete secondary format adapters", "status": "completed", "dependencies": ["FC-08"], "deliverables": ["Mesh/2D/BIM/data format matrix"], "acceptance": ["Each format has success, failure and round-trip evidence"] },
{ "id": "FC-10", "title": "Run FreeCAD-Web-FreeCAD round-trip", "status": "completed", "dependencies": ["FC-05", "FC-06", "FC-07"], "deliverables": ["Core editable-object reports", "Proxy byte-preservation reports"], "acceptance": ["No silent loss", "All differences are classified"] },
{ "id": "FC-11", "title": "Harden large and corrupt file handling", "status": "completed", "dependencies": ["FC-10"], "deliverables": ["Streaming/limit/cancel/recovery tests"], "acceptance": ["Files within limits do not crash", "Over-limit files fail explicitly"] }
]
},
{
"id": "P07",
"title": "TechDraw, Spreadsheet, Draft and Plot",
"ownerLane": "DOC",
"dependencies": ["P05", "P06"],
"gate": "G6",
"tasks": [
{ "id": "TD-ALL", "title": "Complete TechDraw", "status": "completed", "dependencies": ["TSN-09", "FC-06"], "deliverables": ["Pages/views/sections/dimensions/annotations", "SVG/PDF output"], "acceptance": ["Projection, scale and TopoRef update fixtures pass"] },
{ "id": "SS-ALL", "title": "Complete Spreadsheet", "status": "completed", "dependencies": ["FC-06"], "deliverables": ["Cells/formulas/aliases/styles/bindings", "CSV and large-sheet support"], "acceptance": ["DAG cycles and object bindings match FreeCAD"] },
{ "id": "DRAFT-BASE", "title": "Complete Draft geometry and working plane", "status": "completed", "dependencies": ["CORE-11", "SK-12"], "deliverables": ["Working plane/snap/grid", "Parametric 2D objects"], "acceptance": ["Creation and edit fixtures match oracle"] },
{ "id": "DRAFT-OPS", "title": "Complete Draft operations and layers", "status": "completed", "dependencies": ["DRAFT-BASE"], "deliverables": ["Move/rotate/scale/offset/trim/array/clone", "Layer behavior"], "acceptance": ["Dependencies and round-trip remain parametric"] },
{ "id": "PLOT-ALL", "title": "Complete Plot", "status": "completed", "dependencies": ["SS-ALL"], "deliverables": ["Series/axes/legend/styles/bindings", "Image/SVG/CSV output"], "acceptance": ["Bound plots update deterministically"] },
{ "id": "DOC-CLOSURE", "title": "Run production-document workflow", "status": "completed", "dependencies": ["TD-ALL", "SS-ALL", "DRAFT-OPS", "PLOT-ALL"], "deliverables": ["Cross-workbench document fixtures"], "acceptance": ["Create/edit/save/load/export succeeds across all four workbenches"] }
]
},
{
"id": "P08",
"title": "Assembly, BIM, Mesh and Surface",
"ownerLane": "ENGINEERING",
"dependencies": ["P05", "P06"],
"gate": "G7",
"tasks": [
{ "id": "ASM-CORE", "title": "Implement Assembly model and solver", "status": "completed", "dependencies": ["CORE-09", "FC-06"], "deliverables": ["Components/links/LCS/joints", "Solver Worker and diagnostics"], "acceptance": ["Fixed, distance, angle and motion fixtures pass"] },
{ "id": "ASM-TOOLS", "title": "Complete Assembly tools", "status": "completed", "dependencies": ["ASM-CORE"], "deliverables": ["Collision/exploded view/BOM/variants"], "acceptance": ["Large assembly and FCStd gates pass"] },
{ "id": "BIM-CORE", "title": "Implement BIM object model", "status": "completed", "dependencies": ["DRAFT-OPS", "SS-ALL"], "deliverables": ["Site/building/level/space and elements", "Materials and property sets"], "acceptance": ["Parametric edits and quantity schedules pass"] },
{ "id": "BIM-IFC", "title": "Implement IFC interoperability", "status": "completed", "dependencies": ["BIM-CORE", "FC-09"], "deliverables": ["IFC2x3/IFC4 import/export", "Classification and proxy report"], "acceptance": ["Geometry, hierarchy and properties round-trip"] },
{ "id": "MESH-CORE", "title": "Complete Mesh and MeshPart", "status": "completed", "dependencies": ["FC-09", "BYB-06"], "deliverables": ["Import/export/convert/analyze/repair", "Worker and LOD pipeline"], "acceptance": ["Non-manifold/self-intersection/hole fixtures pass"] },
{ "id": "SURF-CORE", "title": "Complete Surface modeling", "status": "completed", "dependencies": ["TSN-04", "PART-ALL"], "deliverables": ["Bezier/BSpline/fill/offset/trim/join", "Continuity and tolerance diagnostics"], "acceptance": ["Surface geometry and TopoRef fixtures pass"] },
{ "id": "ENG-CLOSURE", "title": "Run engineering-workbench integration", "status": "completed", "dependencies": ["ASM-TOOLS", "BIM-IFC", "MESH-CORE", "SURF-CORE"], "deliverables": ["Large mixed engineering projects"], "acceptance": ["Cross-workbench save/load and performance budgets pass"] }
]
},
{
"id": "P09",
"title": "FEM, CAM, Robot, Inspection, data, addons and scripting",
"ownerLane": "PLATFORM",
"dependencies": ["P06", "P08"],
"gate": "G8",
"tasks": [
{ "id": "FEM-ALL", "title": "Complete FEM workflow", "status": "completed", "dependencies": ["MESH-CORE", "BIM-CORE"], "deliverables": ["Analysis/material/sets/loads/meshing", "Solver strategy and result fields"], "acceptance": ["Reference solves or explicit remote capability pass"] },
{ "id": "CAM-ALL", "title": "Complete CAM workflow", "status": "completed", "dependencies": ["PART-ALL", "MESH-CORE"], "deliverables": ["Job/stock/tools/operations/simulation", "Sandboxed posts and G-code"], "acceptance": ["Collision, simulation and G-code golden tests pass"] },
{ "id": "ROBOT-ALL", "title": "Complete Robot workflow", "status": "completed", "dependencies": ["ASM-CORE", "MESH-CORE"], "deliverables": ["Robot/axes/poses/trajectory/kinematics", "Collision and controller export"], "acceptance": ["Motion and workspace fixtures pass"] },
{ "id": "INSP-ALL", "title": "Complete Inspection and Measure", "status": "completed", "dependencies": ["TSN-09", "SURF-CORE"], "deliverables": ["Measurements/sections/deviation/checks", "TopoRef reports"], "acceptance": ["Units, precision and report export match oracle"] },
{ "id": "DATA-ALL", "title": "Complete data and specialist modules", "status": "completed", "dependencies": ["FC-09", "MESH-CORE", "SURF-CORE"], "deliverables": ["Points/RE/OpenSCAD/IDF/JT/Material/Import"], "acceptance": ["Every source module has a tested adapter or explicit proxy"] },
{ "id": "ADDON-ALL", "title": "Implement addon governance", "status": "completed", "dependencies": ["DATA-ALL"], "deliverables": ["Signed catalog/install/update/remove", "Permissions, isolation and rollback"], "acceptance": ["Untrusted addons cannot bypass Facade or permissions"] },
{ "id": "SCRIPT-ALL", "title": "Implement scripting and macro capability", "status": "completed", "dependencies": ["ADDON-ALL"], "deliverables": ["API compatibility map", "Sandboxed interpreter and macro replay"], "acceptance": ["File/network/time/resource permissions are enforced"] },
{ "id": "PLATFORM-CLOSURE", "title": "Close all long-tail modules", "status": "completed", "dependencies": ["FEM-ALL", "CAM-ALL", "ROBOT-ALL", "INSP-ALL", "SCRIPT-ALL"], "deliverables": ["34-module coverage report"], "acceptance": ["No scope-only or unexplained unsupported entry remains"] }
]
},
{
"id": "P10",
"title": "QA, browsers, performance, security, migrations and release",
"ownerLane": "QUALITY",
"dependencies": ["P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09"],
"gate": "G9",
"tasks": [
{ "id": "QA-01", "title": "Enforce unit and property coverage", "status": "completed", "dependencies": [], "deliverables": ["Coverage and invariant gates"], "acceptance": ["Core error branches and parsers are covered"] },
{ "id": "QA-02", "title": "Enforce FreeCAD CLI and GUI comparison", "status": "completed", "dependencies": ["BASE-04"], "deliverables": ["Per-command success/failure fixtures"], "acceptance": ["Every compatible command has oracle evidence"] },
{ "id": "QA-03", "title": "Run Chrome E2E and visual baselines", "status": "completed", "dependencies": ["BROWSER-OCCT-01"], "deliverables": ["Chrome matrix", "Desktop/mobile screenshots"], "acceptance": ["Core workflows have no blocking divergence"] },
{ "id": "QA-04", "title": "Run geometry, solver and parser fuzzing", "status": "completed", "dependencies": ["TSN-10", "SK-12"], "deliverables": ["Seeded fuzz suites", "Crash and wrong-bind corpus"], "acceptance": ["Random inputs do not crash or silently corrupt"] },
{ "id": "QA-05", "title": "Enforce performance and memory budgets", "status": "completed", "dependencies": ["MEM-OCCT-01", "ENG-CLOSURE"], "deliverables": ["1000-object/million-triangle/large-table reports"], "acceptance": ["P95 and peak memory meet declared budgets"] },
{ "id": "QA-06", "title": "Run Worker, WASM and OPFS fault injection", "status": "completed", "dependencies": ["FC-11", "QA-03"], "deliverables": ["Crash/quota/power-loss/stale-result matrix"], "acceptance": ["Recovery is deterministic and data loss is reported"] },
{ "id": "QA-07", "title": "Complete security gates", "status": "completed", "dependencies": ["SCRIPT-ALL", "FC-11"], "deliverables": ["File/message/script/addon fuzzing", "CSP and permission report"], "acceptance": ["No critical unmitigated finding"] },
{ "id": "QA-08", "title": "Complete accessibility and internationalization", "status": "completed", "dependencies": ["DOC-CLOSURE"], "deliverables": ["Keyboard/screen-reader/locale/mobile matrix"], "acceptance": ["Core workflows meet target accessibility criteria"] },
{ "id": "REL-01", "title": "Complete deployment and offline gates", "status": "completed", "dependencies": ["QA-03", "QA-06"], "deliverables": ["PWA/cache/COOP/COEP/CSP runbook"], "acceptance": ["Install, upgrade, offline and cache recovery pass"] },
{ "id": "REL-02", "title": "Complete migration and rollback rehearsal", "status": "completed", "dependencies": ["FC-10", "QA-06"], "deliverables": ["Supported-version migration matrix", "Rollback or lossless export"], "acceptance": ["Every supported version has a tested recovery route"] },
{ "id": "REL-03", "title": "Generate SBOM, licenses and signed artifacts", "status": "completed", "dependencies": ["PLATFORM-CLOSURE"], "deliverables": ["SBOM/license/vulnerability report", "Signed release artifacts"], "acceptance": ["No unknown binary or unresolved critical issue"] },
{ "id": "REL-04", "title": "Publish final capability and difference matrix", "status": "completed", "dependencies": ["QA-01", "QA-02", "QA-03", "QA-04", "QA-05", "QA-06", "QA-07", "QA-08", "REL-01", "REL-02", "REL-03"], "deliverables": ["Exact/compatible/proxy/unsupported report", "Release runbook"], "acceptance": ["G0 through G9 pass", "No unexplained unsupported capability"] }
]
}
],
"rules": [
"A task is complete only when every deliverable exists and every acceptance condition has executable evidence.",
"Program dependencies and task dependencies are blocking; UI prototypes do not satisfy them.",
"All Node and npm commands use ./npmw.",
"Capability levels are updated only after the relevant gate passes.",
"Browser-restricted desktop features require an explicit proxy or unsupported decision with data preservation."
]
}