{# T12 - Software assurance record, CSA-structured (D1 section 1's T12 row; A-P3). Every value comes from fixtures_report.json through proofpack.render.t12's context; no arithmetic here. The intended-use slot is the manufacturer's (placeholder until they write it); the sign-off cells are blank: ProofPack signs nothing. #} {% extends "base.html" %} {% block pages %}

{{ template_name }}

Attachment set prepared for the manufacturer's own submission or record. Not a submission. No regulator has endorsed this tool.

{{ cover_stamps() }}

{{ csa_sentence }} {{ csa_unverified }}

{{ supports_sentence }}

1. Intended use

{{ margin_note(anchor.scope) }}

The manufacturer states here what ProofPack is used for in their process and which of their records its output enters. ProofPack does not draft this text.

{{ placeholder(slot) }}

2. Failure modes the engine inspects

Each code below is defined in proofpack/errors.py. The second column is the condition the code inspects; the third is the engine action, or that no engine path raises the code in this version. The last column is for the manufacturer's own risk rating.

{% for f in failure_modes %} {% endfor %}
Engine codes, from the engine's own code table
CodeCondition inspectedEngine actionManufacturer's risk rating
{{ f.code }}{{ f.inspects }}{{ f.does }}
{{ page_footer() }}

3. Assurance evidence: the fixture register (fixtures_report.json)

{{ margin_note(anchor.evidence) }}

Every row of the report is printed, whatever its status. A row reads "matched" only when every compared value lies within the row's tolerance; "not matched", "no oracle recorded", "not built in this version" and "compared by the test suite only" are printed as they stand.

{% for label, value in environment %} {% endfor %}
Where the report was generated
{{ label }}{{ value }}
{% for label, rule in tolerance_rules %} {% endfor %}
Tolerance classes (D1 sections 3.2 and 9)
{{ label }}{{ rule }}
Report rows by status
Rows{{ summary.rows }}
matched{{ summary.matched }}
not matched{{ summary.not_matched }}
no oracle recorded{{ summary.no_oracle_recorded }}
no independent oracle{{ summary.no_independent_oracle }}
not built in this version{{ summary.not_built }}
compared by the test suite only{{ summary.suite_only }}
Exit code of proofpack fixtures{{ report.exit_code }}
{% for r in evidence %} {% endfor %}
One row per comparison or register entry; the largest deviation is the largest absolute difference between engine and oracle values in the row, and "—" where a value was not compared (the note names it) or the row has no comparison
RowWhat is comparedOracleToleranceValuesLargest deviationStatusNote
{{ r.id }}{{ r.what }}{{ r.oracle.file }}{% if r.oracle.entry %} ({{ r.oracle.entry }}){% endif %}{% if r.oracle.marking %} {{ r.oracle.marking }}{% endif %}{{ r.tolerance }}{{ r.n }}{{ r.deviation }}{{ r.status_text }}{% if r.reason_unverified %}{{ r.reason }}{% else %}{{ r.reason }}{% endif %}{% if r.suite_tests %} ({{ r.suite_tests }}){% endif %}
{{ page_footer() }}

4. Installation and operational checks (performed and signed by the manufacturer)

ProofPack prints the results below; the person, the date and the signature are the manufacturer's. ProofPack signs nothing.

4.1 proofpack doctor --offline, as run by proofpack fixtures

{% for d in doctor %} {% endfor %}
Environment checks recorded in the report ({{ doctor_flagged }} flagged by doctor); the last column is what doctor recorded, which the manufacturer reads
CheckFlagged by doctorEssentialRecorded
{{ d.name }}{{ d.flagged }}{{ d.essential }}{{ d.info }}

The licence check is not printed in this table: T12 is written only under a licence that is usable (not refused, not expired past grace); its mark, if any, is on the cover.

Checklist: each step, what it inspects, and blank fields for the manufacturer's record
StepActionWhat the step inspectsRecord referencePerformed byDateSignature
1proofpack doctor --offlinePython, numpy, pyyaml and jsonschema present; the packaged schemas and guidance map load; write access; the licence file; the platform against the reference platform
2proofpack fixtures --offlineThe fixture register rows above: {{ summary.matched }} matched and {{ summary.not_matched }} not matched of {{ summary.rows }} rows; exit code {{ report.exit_code }}
3proofpack map --input <your table>, then a person compares the mapping table with the manufacturer's data dictionaryThat each column's role (label, score, prediction, case, site, attributes) is the one the data dictionary gives; the mapping.json SHA-256 printed in T8 is the file that person confirmed
4The RA lead reads T8 section 3 (declarations echo) beside the criteria.yaml the manufacturer's team authoredPositive class, score orientation, thresholds, intended-use prevalence, subgroups, and each criterion's author, date and justification, as echoed

5. Determinism and tolerances

{{ margin_note(anchor.determinism) }}

{{ tolerance_policy }}

{{ f17_sentence }}

{{ platform_sentence }}

{{ supports_sentence }}

6. Guidance references

{% for ref in guidance_refs %} {% endfor %}
Every anchor used on this page, labelled from the guidance map; a draft is a draft in the label and in the structured data
Internal idDocument, version or date, statusDraft
{{ ref.id }}{{ ref.label }}{% if ref.draft %}yes{% else %}no{% endif %}
{{ page_footer() }}
{% endblock %}