{% extends "base.html" %} {% block title %}{{ detail.display_name or detail.key }} — Developer Portal{% endblock %} {% block content %}
CUI // SP-CTI
← Developer Portal {% if not detail.found %}
No component {{ detail.key }} in args/component_registry.yaml.
{% else %}

{{ detail.display_name }}

{{ detail.key }} {% if detail.level %} {{ detail.level }} {% else %} unranked {% endif %} {% if detail.assessed %} Grade {{ detail.letter_grade }} {{ detail.score | round(0) | int }}% {% else %} {# No applicable rule ran. Saying "F / 0%" here would invent a finding. #} {{ detail.unassessed_label }} {% endif %} owner: {% if detail.facts.owner %}{{ detail.facts.owner }}{% else %}unowned{% endif %} {% if detail.facts.route %} Open {{ detail.facts.route }} → {% endif %}
{% if detail.scorecard_error %}
Scorecard could not be evaluated.
{{ detail.scorecard_error }}
{% endif %}
Registry facts
{% for name, value in detail.facts | dictsort %} {% endfor %}
{{ name }} {% if value is sameas true %}✅ true {% elif value is sameas false %}❌ false {% elif value == '' or value is none %}— {% else %}{{ value }}{% endif %}
{# One card per dimension. Every rule under it carries the query that produced its verdict and a link that re-runs that query live, so no score on this page has to be taken on trust. #} {% for dim in detail.dimensions %}
{{ dim.label }} {% if dim.assessed %} {{ dim.letter_grade }} {{ dim.score | round(0) | int }}% {{ dim.earned_weight }}/{{ dim.total_weight }} weight {% else %} {{ detail.unassessed_label }} {% endif %} {% if dim.failure_count %} {{ dim.failure_count }} failing {% endif %}
{% for outcome in dim.outcomes %} {% else %} {% endfor %}
{{ 'n/a' if outcome.status == 'not_applicable' else outcome.status }} {{ outcome.title or outcome.identifier }}
{{ outcome.identifier }}{% if outcome.level %} · gates {{ outcome.level }}{% endif %} · weight {{ outcome.weight }}
{% if outcome.message %}
{{ outcome.message }}
{% endif %} {% if outcome.evidence %}
evidence
query
{{ outcome.evidence.expression }}
{% if outcome.evidence.filter_expression %}
applies to
{{ outcome.evidence.filter_expression }}
{% endif %} {% if outcome.evidence.observed %}
observed for {{ detail.key }}
{% for field, value in outcome.evidence.observed | dictsort %}
{{ field }} = {{ value }}
{% endfor %} {% endif %} {% if outcome.evidence.note %}
source: {{ outcome.evidence.note }}
{% endif %} Re-run this check →
{% endif %}
No rules in this dimension.
{% else %}
Not graded by this scorecard. {% if not detail.graded %} {{ detail.key }} produced no result row — that is {{ detail.unassessed_label | lower }}, not a failing grade. {% endif %}
{% endfor %}
8-point completeness gate {% if detail.completeness.declared %} {% if detail.completeness.passed %} pass {% else %} fail {% endif %} {% else %} not a canvas — out of scope {% endif %}
{% if detail.completeness['items'] %} {% for item in detail.completeness['items'] %} {% endfor %}
{% if item.present %}✅{% elif item.required %}❌{% else %}➖{% endif %} {{ item.point }} {{ item.message }}
{% else %}
The 8-point gate applies to dashboard-page canvases only. {% if detail.completeness.error %}
{{ detail.completeness.error }}
{% endif %}
{% endif %}
Facts from {{ detail.adapter_module }}; rules from {{ detail.scorecard_source }}. JSON: /idp/api/component/{{ detail.key }}, /idp/api/evidence?component={{ detail.key }}&rule=<id>.
{% endif %}
{% include "includes/iqe_query_widget.html" %} {% endblock %}