{% extends "base.html" %} {% block title %}Internal Developer Portal{% endblock %} {% block content %}
Catalog and scorecards over ICDEV's own registered components. Facts come from
args/component_registry.yaml and the repo tree via the IQE collection
idp.components; grades come from args/scorecards/{{ scorecard_key }}.yaml.
Adding a rule or a level is a YAML edit — see
Canvas Health for the file-existence view of the same tree.
{{ tenancy.isolation_posture }}
{% if tenancy.decision_record %}
· decision record: {{ tenancy.decision_record }}
{% endif %}
grading.bands in
args/scorecards/{{ scorecard_key }}.yaml.
| Rule | Gates | Weight | Passing | Applicable | Coverage |
|---|---|---|---|---|---|
|
{{ rule.title or rule.identifier }}
{{ rule.identifier }}
{# The rule IS its evidence: this is the exact IQE the evaluator ran,
paste-able into the query widget below. #}
how it is measured{{ rule.expression }}
{% if rule.filter_expression %}
applies to:
{{ rule.filter_expression }}
{% endif %}
{% if rule.evidence_note %}{{ rule.evidence_note }} {% endif %}
|
{% if rule.gates_ladder %}
{{ rule.level }}
{% else %}
scores only
{% endif %}
{{ rule.dimension }}
|
{{ rule.weight }} | {{ rule.passing }} | {{ rule.applicable }} |
{% set _pct = (rule.passing / rule.applicable * 100) if rule.applicable else 0 %}
|
| No rules loaded. | |||||
{{ totals.canvases }} canvases are in scope for the 8-point dashboard-page gate; {{ totals.completeness_passing }} pass it. Components outside that scope are not graded on it.
{% for group in groups %}| Component | Owner | Level | Grade | Score | {% for dim in dimensions %}{{ dim.label }} | {% endfor %} {% for col_key, col_header, col_bool in columns %} {% if col_key != 'owner' %}{{ col_header }} | {% endif %} {% endfor %}Failing rules | ||
|---|---|---|---|---|---|---|---|---|---|
|
{{ row.display_name }}
{{ row.key }}
|
{% if row.owner %}
{{ row.owner }}
{% if row.owner_contact %} {{ row.owner_contact }} {% endif %}
{% if row.on_call %}on-call: {{ row.on_call }} {% endif %}
{% else %}
unowned
{% endif %}
|
{% if row.level %} {{ row.level }} {% elif row.assessed %} unranked {% else %} {{ unassessed_label }} {% endif %} | {# Grade and score are blank-with-a-word, never 0/F, when unassessed: an F is a measured verdict and this component has none. #}{% if row.letter_grade %} {{ row.letter_grade }} {% else %} — {% endif %} | {% if row.score is not none %}{{ row.score | round(0) | int }}% {% else %}n/a{% endif %} | {% for cell in row.dimensions %}{% if cell.assessed %} {{ cell.score | round(0) | int }}% {% else %} n/a {% endif %} | {% endfor %} {% for col_key, col_header, col_bool in columns %} {% if col_key == 'owner' %} {# rendered as its own column above #} {% elif col_bool %}{% if row.facts.get(col_key) %}✅{% else %}❌{% endif %} | {% elif col_key == 'route' %}{% if row.route %}{{ row.route }}{% else %}—{% endif %} | {% else %}{{ row.facts.get(col_key) or '—' }} | {% endif %} {% endfor %}{% if row.failures %}{{ row.failures | join(', ') }}{% else %}—{% endif %} |
args/component_registry.yaml could not be read.
{{ adapter_module }} via the rules in
{{ scorecard_source }}; a dimension marked n/a was not measured, not passed.
JSON: /idp/api/catalog, /idp/api/scorecard, /idp/api/component/<key>,
/idp/api/evidence?component=<key>&rule=<id>.