4.6 KiB
Unattended Business Acceptance
2026-09-16 renewed authorization: continuous development is now managed through
freecad-web-acceptance.service; see CONTINUOUS_ACCEPTANCE.md. Its first
priority is the separate IFC semantic-export contract. The original 1507
requirements remain, and this explicit addition makes 1508 in total. The
one-shot runner below is retained for focused execution, not background authoring.
User authorization: 2026-09-16. Automatically reconcile the 1507 business requirements with current executable cases and the 21-item manual. Repairs, focused tests and evidence updates are authorized. Keep the full denominator.
Latest implementation: BIM IFC and relationship repair.
The two native IFC format contracts now pass; BIM_Ungroup and BIM_Unclone
also have passing native/facade, transaction and persistence cases. Reuse these
implementations and local dependencies when continuing remaining commands.
The existing PartDesign Hole and Points import/export cases are now registered
and executed as well. The previous 165/1507 result is historical; current source
changes invalidate affected proof. Read the generated reconciliation for current
counts across 1508 requirements. There are still 1342 requirements without
executable coverage. See ACCEPTANCE_EFFICIENCY_PROGRESS.md for the latest
verified IFC behavior and reductions in repeated validation work.
Sources Of Truth
business-acceptance-reconciliation.json: every requirement, status, reason, executable-case availability, retained evidence and manual references.business-acceptance.json: fingerprinted execution ledger.web-business-completion-audit.json: implementation and acceptance are separate, with actual per-module accepted/total/pending counts.unattended-business-acceptance.json: latest execution checkpoint.business-acceptance-runs/: immutable previous sweeps and current run journal.
reconciliationComplete means every requirement and manual item is accounted
for. It never implies businessAcceptanceComplete. Missing cases and retained
historical failures remain outstanding business work. BIM native IFC format
support is now tested; complete semantic authoring is a separate boundary.
Resume
python3 tools/run_unattended_business_acceptance.py
The runner uses the existing module contracts, executes up to 32 cases sharing
a build owner per batch sequentially, reuses unchanged passing proof, retains
failures and continues independent modules. Unchanged failed requirements are
preserved even when batches change; changed source, cases or runner inputs
make them eligible again. Evidence files are shared within each invocation.
--retry-failed is an explicit diagnostic override, not a completion shortcut.
Use --modules Part Web for a focused sweep. Missing contracts are reported;
the runner cannot invent business assertions or certify uncovered commands.
Refresh reporting without executing business cases:
python3 tools/generate_web_business_completion_audit.py
python3 tools/prepare_business_acceptance_batch.py --report-only
The old implementation-only watchdog was stopped to avoid competing ledger writes and its repeated restart loop. The renewed user authorization enables one serial development scheduler under the user service. The one-shot case runner itself does not author cases or publish changes.
Evidence Rules
The 21 manual items have explicit supporting references in
tools/manual-business-mapping.json. Ten desktop commands additionally have
executable mappings through tools/web-acceptance-cases.mjs; the existing
manual browser runner supplies actual assertions, screenshots and state.
Entry checks never certify every command in a workbench.
The acceptance audit checks source/artifact fingerprints, case dependencies, the evidence document hash, successful input/result assertions and attached manual evidence hashes. Changed dependencies invalidate proof even when the runtime manifest is unchanged. Historical evidence is retained.
Business completion requires current passing evidence for every requirement. For uncovered items, add cases to the owning module's contract and implement any failing behavior in the existing native/React route. Do not replace business assertions with route existence, source inspection or constant pass.
BIM's bim.formatWorkflow now uses the real IfcOpenShellNative document
binding and upstream IFC4 BRep serializer. Its passing format cases do not
certify the complete upstream Python API or all semantic BIM authoring/export
operations. Those remain separate work. Keep the original failing evidence.