{% extends "base.html" %} {% block title %}Assessment #{{ assessment_id }} — Software Integrity — ICDEV{% endblock %} {% block content %} {# Context (from tools/integrity/blueprint.py :: integrity_detail): assessment_id : int assessment : id, source_type, source_ref, mode, project_id, session_id, dir_digest, status, verdict, risk_score, classification, created_by, created_at, updated_at capabilities : [{id, file_path, function_name, capability_type, evidence, line_start, line_end, risk_weight}] findings : [{id, source_scanner, finding_type, severity, file_path, line, detail}] verdict : {id, verdict, risk_score, rationale, decided_by, created_at} | None authorizations: [{id, capability_id, requirement_id, claim_ref, authorized, reason, reviewed_by, created_at}] is_terminal : bool (status in approved / rejected) verdicts : VERDICTS #}
← All assessments {% set v = (assessment.verdict or 'none')|lower %} {% set st = (assessment.status or 'unknown')|lower %}

Assessment #{{ assessment.id }} {{ (assessment.verdict or 'pending')|upper }} {{ assessment.status or '—' }}

{{ assessment.source_type or '?' }} :: {{ assessment.source_ref or '—' }}
Mode
{{ (assessment.mode or '—').replace('_', ' ') }}
Risk Score
{% set rs = assessment.risk_score if assessment.risk_score is not none else 0 %}{{ ((rs*100) if rs <= 1 else rs)|round(0)|int }}
Classification
{{ assessment.classification or 'CUI//SP-CTI' }}
Project
{{ assessment.project_id or '—' }}
Session
{{ assessment.session_id or '—' }}
Created By
{{ assessment.created_by or '—' }}
Created
{{ (assessment.created_at[:19] if assessment.created_at is string else assessment.created_at.strftime('%Y-%m-%d %H:%M:%S')) if assessment.created_at else '—' }}
Dir Digest
{{ (assessment.dir_digest[:24] ~ '…') if assessment.dir_digest and assessment.dir_digest|length > 24 else (assessment.dir_digest or '—') }}
{{ (assessment.verdict or 'pending')|upper }} {% if verdict and verdict.risk_score is not none %} Weighted risk: {% set vrs = verdict.risk_score %}{{ ((vrs*100) if vrs <= 1 else vrs)|round(0)|int }}/100 {% endif %}
{% set rat = verdict.rationale if verdict else None %} {% if rat is mapping %} {% if rat.summary %}
{{ rat.summary }}
{% endif %} {% set reasons = rat.reasons or rat.factors or rat.drivers %} {% if reasons %}
    {% for r in reasons %}
  • {{ r if r is string else (r.message or r.detail or r) }}
  • {% endfor %}
{% endif %} {% if not rat.summary and not reasons %}
{{ rat }}
{% endif %} {% elif rat is iterable and rat is not string %}
    {% for r in rat %}
  • {{ r if r is string else (r.message or r.detail or r) }}
  • {% endfor %}
{% elif rat %}
{{ rat }}
{% else %}
No rationale recorded{% if not verdict %} — assessment still pending{% endif %}.
{% endif %}
{% if verdict %}
Decided by {{ verdict.decided_by or 'engine' }}{% if verdict.created_at %} · {{ verdict.created_at[:19] if verdict.created_at is string else verdict.created_at }}{% endif %}
{% endif %}

Human Review

{% if is_terminal %}
This assessment is {{ assessment.status }} — the review decision is final and recorded in the audit trail.
{% elif v == 'allow' and st == 'assessed' %}
Verdict is ALLOW — no human gate required. You may still reject to quarantine if warranted.
{% else %}

This item is held in quarantine pending a human decision. Promote to clear it for use, or reject to keep it blocked. The decision is append-only and audited.

Reviewer is recorded from your authenticated session.
{% endif %}

Capability Manifest {{ capabilities|length }}

Behavioral capabilities extracted statically from the source (AST + Semgrep taxonomy). Higher risk weight = more dangerous to exercise.

{% if capabilities %} {% for c in capabilities %} {% endfor %}
CapabilityFileFunctionLinesEvidenceRisk
{{ (c.capability_type or '—').replace('_', ' ') }} {{ c.file_path or '—' }} {{ c.function_name or '—' }} {% if c.line_start %}{{ c.line_start }}{% if c.line_end and c.line_end != c.line_start %}–{{ c.line_end }}{% endif %}{% else %}—{% endif %} {% set ev = c.evidence %} {% if ev is mapping %}
{{ ev.get('snippet') or ev.get('detail') or ev.get('match') or ev }}
{% elif ev is iterable and ev is not string %}
{{ ev|join('\n') }}
{% else %}
{{ ev or '—' }}
{% endif %}
{% set rw = c.risk_weight if c.risk_weight is not none else 0 %}{{ ((rw*100) if rw <= 1 else rw)|round(0)|int }}
{% else %}
No capabilities extracted.
{% endif %}
{% set sev_rank = {'critical': 0, 'high': 1, 'medium': 2, 'low': 3, 'info': 4} %}

Findings {{ findings|length }}

Grouped by scanner; ordered by severity within each group.

{% if findings %} {% set scanners = findings|map(attribute='source_scanner')|list %} {% set seen = [] %} {% for f in findings %}{% if f.source_scanner not in seen %}{% set _ = seen.append(f.source_scanner) %}{% endif %}{% endfor %} {% for scanner in seen %} {% set group = findings|selectattr('source_scanner', 'equalto', scanner)|list %} {% set group = group|sort(attribute='severity', reverse=False) %}
{{ scanner or 'unknown' }} {{ group|length }} finding{{ 's' if group|length != 1 else '' }}
{% for f in group %} {% set sv = (f.severity or 'info')|lower %} {% endfor %}
SeverityTypeFileLineDetail
{{ f.severity or 'info' }} {{ (f.finding_type or '—').replace('_', ' ') }} {{ f.file_path or '—' }} {{ f.line if f.line is not none else '—' }} {% set d = f.detail %} {% if d is mapping %}
{{ d.get('message') or d.get('detail') or d.get('description') or d }}
{% elif d is iterable and d is not string %}
{{ d|join('\n') }}
{% else %}
{{ d or '—' }}
{% endif %}
{% endfor %} {% else %}
No findings recorded.
{% endif %}
{% if authorizations %}

Intent Reconciliation {{ authorizations|length }}

How each exercised capability reconciles against authorized requirements (Mode A) or claimed purpose (Mode B).

{% for au in authorizations %} {% endfor %}
Capability IDRequirementClaimAuthorizedReasonReviewed By
{{ au.capability_id if au.capability_id is not none else '—' }} {{ au.requirement_id or '—' }} {{ au.claim_ref or '—' }} {% if au.authorized %}authorized{% else %}unauthorized{% endif %}
{{ au.reason or '—' }}
{{ au.reviewed_by or 'engine' }}
{% endif %} {% set iqe_canvas = "integrity" %} {% set iqe_api_route = "/integrity/api/iqe-query" %} {% set iqe_title = "IQE Query — This Assessment" %} {% set iqe_examples = [ {"label": "Findings for this assessment", "query": "foreach f in integrity.findings where f.assessment_id == " ~ assessment_id ~ " select f.source_scanner, f.severity, f.finding_type"}, {"label": "Capabilities for this assessment", "query": "foreach c in integrity.capabilities where c.assessment_id == " ~ assessment_id ~ " select c.capability_type, c.file_path, c.risk_weight"} ] %} {% include "includes/iqe_query_widget.html" %}
{% endblock %} {% block scripts %} {% endblock %}