Files
FreeCADWasmDev/docs/current/BUSINESS_ACCEPTANCE_HANDOFF.md

88 lines
4.6 KiB
Markdown

# 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](BIM-IFC-BUSINESS-20260916.md).
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
```sh
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:
```sh
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.