Files
FreeCADWasmDev/docs/current/business-acceptance-plan.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

450 lines
10 KiB
JSON

{
"generatedAt": "2026-09-11T15:20:22.374385+00:00",
"total": 1504,
"accepted": 64,
"reusablePending": 875,
"executablePending": 86,
"modules": [
{
"module": "Part",
"total": 98,
"accepted": 0,
"reusablePending": 98,
"executablePending": 23,
"needsCases": 75,
"implementationGap": 0
},
{
"module": "PartDesign",
"total": 53,
"accepted": 0,
"reusablePending": 53,
"executablePending": 22,
"needsCases": 31,
"implementationGap": 0
},
{
"module": "Sketcher",
"total": 141,
"accepted": 2,
"reusablePending": 139,
"executablePending": 0,
"needsCases": 139,
"implementationGap": 0
},
{
"module": "TechDraw",
"total": 145,
"accepted": 0,
"reusablePending": 105,
"executablePending": 5,
"needsCases": 100,
"implementationGap": 40
},
{
"module": "Assembly",
"total": 38,
"accepted": 2,
"reusablePending": 34,
"executablePending": 0,
"needsCases": 34,
"implementationGap": 2
},
{
"module": "BIM",
"total": 195,
"accepted": 0,
"reusablePending": 40,
"executablePending": 22,
"needsCases": 18,
"implementationGap": 155
},
{
"module": "Draft",
"total": 90,
"accepted": 0,
"reusablePending": 25,
"executablePending": 4,
"needsCases": 21,
"implementationGap": 65
},
{
"module": "Mesh",
"total": 53,
"accepted": 11,
"reusablePending": 42,
"executablePending": 0,
"needsCases": 42,
"implementationGap": 0
},
{
"module": "Fem",
"total": 107,
"accepted": 4,
"reusablePending": 91,
"executablePending": 0,
"needsCases": 91,
"implementationGap": 12
},
{
"module": "CAM",
"total": 70,
"accepted": 5,
"reusablePending": 50,
"executablePending": 0,
"needsCases": 50,
"implementationGap": 15
},
{
"module": "Import",
"total": 12,
"accepted": 6,
"reusablePending": 6,
"executablePending": 0,
"needsCases": 6,
"implementationGap": 0
},
{
"module": "Cloud",
"total": 7,
"accepted": 2,
"reusablePending": 5,
"executablePending": 0,
"needsCases": 5,
"implementationGap": 0
},
{
"module": "Help",
"total": 2,
"accepted": 0,
"reusablePending": 2,
"executablePending": 0,
"needsCases": 2,
"implementationGap": 0
},
{
"module": "Inspection",
"total": 8,
"accepted": 0,
"reusablePending": 8,
"executablePending": 0,
"needsCases": 8,
"implementationGap": 0
},
{
"module": "JtReader",
"total": 3,
"accepted": 2,
"reusablePending": 1,
"executablePending": 0,
"needsCases": 1,
"implementationGap": 0
},
{
"module": "Material",
"total": 12,
"accepted": 2,
"reusablePending": 4,
"executablePending": 0,
"needsCases": 4,
"implementationGap": 6
},
{
"module": "Measure",
"total": 9,
"accepted": 2,
"reusablePending": 7,
"executablePending": 0,
"needsCases": 7,
"implementationGap": 0
},
{
"module": "MeshPart",
"total": 12,
"accepted": 1,
"reusablePending": 10,
"executablePending": 0,
"needsCases": 10,
"implementationGap": 1
},
{
"module": "OpenSCAD",
"total": 28,
"accepted": 2,
"reusablePending": 11,
"executablePending": 0,
"needsCases": 11,
"implementationGap": 15
},
{
"module": "Plot",
"total": 2,
"accepted": 0,
"reusablePending": 2,
"executablePending": 0,
"needsCases": 2,
"implementationGap": 0
},
{
"module": "Points",
"total": 14,
"accepted": 7,
"reusablePending": 7,
"executablePending": 0,
"needsCases": 7,
"implementationGap": 0
},
{
"module": "ReverseEngineering",
"total": 19,
"accepted": 2,
"reusablePending": 17,
"executablePending": 0,
"needsCases": 17,
"implementationGap": 0
},
{
"module": "Robot",
"total": 21,
"accepted": 2,
"reusablePending": 19,
"executablePending": 0,
"needsCases": 19,
"implementationGap": 0
},
{
"module": "Sandbox",
"total": 37,
"accepted": 2,
"reusablePending": 35,
"executablePending": 0,
"needsCases": 35,
"implementationGap": 0
},
{
"module": "Show",
"total": 3,
"accepted": 0,
"reusablePending": 3,
"executablePending": 0,
"needsCases": 3,
"implementationGap": 0
},
{
"module": "Spreadsheet",
"total": 23,
"accepted": 4,
"reusablePending": 19,
"executablePending": 0,
"needsCases": 19,
"implementationGap": 0
},
{
"module": "Start",
"total": 8,
"accepted": 3,
"reusablePending": 5,
"executablePending": 0,
"needsCases": 5,
"implementationGap": 0
},
{
"module": "Surface",
"total": 14,
"accepted": 3,
"reusablePending": 11,
"executablePending": 0,
"needsCases": 11,
"implementationGap": 0
},
{
"module": "TemplatePyMod",
"total": 14,
"accepted": 0,
"reusablePending": 9,
"executablePending": 0,
"needsCases": 9,
"implementationGap": 5
},
{
"module": "Test",
"total": 26,
"accepted": 0,
"reusablePending": 1,
"executablePending": 0,
"needsCases": 1,
"implementationGap": 25
},
{
"module": "Tux",
"total": 1,
"accepted": 0,
"reusablePending": 1,
"executablePending": 0,
"needsCases": 1,
"implementationGap": 0
},
{
"module": "Web",
"total": 239,
"accepted": 0,
"reusablePending": 15,
"executablePending": 10,
"needsCases": 5,
"implementationGap": 224
}
],
"nextBatch": {
"schema": "freecad-web-module-business-batch/v1",
"status": "ready",
"strategy": "module-business-first-deferred-validation",
"taskId": "FW-P6-FPA-Y",
"batchId": "178f29a4d093938b98188c3c",
"minimumRecords": 1,
"singletonFallback": false,
"selected": {
"module": "Web",
"tier": "business-acceptance",
"family": "business-acceptance",
"recordCount": 10
},
"businessWorkflow": "existing-business-cases",
"acceptanceReady": true,
"businessLane": "acceptance",
"selectionScope": "full",
"fields": [
"id",
"command",
"status",
"source",
"sourceLine"
],
"records": [
[
"product:react-primary-shell",
"React primary application shell",
"acceptance_required",
"web/src/main.ts",
1
],
[
"product:document-workspace",
"multi-document tabs and active document",
"acceptance_required",
"web/src/project-shell.tsx",
20
],
[
"product:model-tree-properties",
"document tree selection and property editor",
"acceptance_required",
"web/src/main-chain-shell.tsx",
140
],
[
"product:multi-object-viewport",
"multi-document multi-object 3D viewport",
"acceptance_required",
"web/src/import-render-bridge.ts",
1
],
[
"product:workbench-navigation",
"workbench selector menus and toolbars",
"acceptance_required",
"web/src/workbench-shell.tsx",
1
],
[
"product:desktop-command-ui",
"generic desktop command parameters and state",
"acceptance_required",
"web/src/desktop-command-dispatcher.ts",
1
],
[
"product:task-panel",
"React task panel generated from command schema",
"acceptance_required",
"web/src/workbench-shell.tsx",
350
],
[
"product:file-workflows",
"open import export save and download workflows",
"acceptance_required",
"web/src/format-dispatcher.ts",
1
],
[
"product:recovery-status",
"jobs progress errors cancellation and recovery",
"acceptance_required",
"web/src/recovery-controller.ts",
1
],
[
"product:dynamic-module-session",
"dynamic WASM preload hot replacement and session persistence",
"acceptance_required",
"web/src/project-session.ts",
1
]
],
"acceptanceContract": "docs/business-acceptance/Web.json",
"queueGroupCount": 91,
"pendingBusinessCount": 875,
"queue": [
{
"module": "Web",
"family": "existing-business-cases",
"unresolved": 10,
"acceptanceReady": true
},
{
"module": "PartDesign",
"family": "existing-business-cases",
"unresolved": 22,
"acceptanceReady": true
},
{
"module": "Draft",
"family": "existing-business-cases",
"unresolved": 4,
"acceptanceReady": true
},
{
"module": "PartDesign",
"family": "desktop-command-command",
"unresolved": 14,
"acceptanceReady": false
},
{
"module": "PartDesign",
"family": "desktop-command-commandbody",
"unresolved": 5,
"acceptanceReady": false
},
{
"module": "PartDesign",
"family": "desktop-command-commandprimitive",
"unresolved": 2,
"acceptanceReady": false
},
{
"module": "PartDesign",
"family": "desktop-command-initgui",
"unresolved": 2,
"acceptanceReady": false
},
{
"module": "PartDesign",
"family": "desktop-command-wizardshaft",
"unresolved": 2,
"acceptanceReady": false
}
]
},
"policy": "executable-cases-first; alternate acceptance-development and implementation"
}