{% extends "base.html" %} {% block title %}{{ concept.name or concept.slug or concept_id }} — Foundry — ICDEV{% endblock %} {% block content %} {# Context (from tools/foundry/blueprint.py :: foundry_detail): concept : dict — full foundry_concepts row (+ decoded cluster_signal_ids list) spec : dict|None — foundry_specs (spec_md, canvas_contract, task_count) tasks_emitted : list[dict] — foundry_tasks_emitted (kanban_task_id, epic, seq, + live kanban_status enriched by the blueprint) outcomes : list[dict] — foundry_outcomes (outcome, metric, detail, created_at) statuses : CONCEPT_STATUSES #}
← All concepts {% set st = (concept.status or 'unknown')|lower %}

{{ concept.name or concept.slug or concept_id }}

{{ concept.status or '—' }}
{% if concept.proposed_capability %}
{{ concept.proposed_capability }}
{% endif %} {% macro pct(x) %}{{ ((x*100) if (x is not none and x <= 1) else (x or 0))|round(0)|int }}{% endmacro %}
Composite
{{ pct(concept.composite_score) }}
Novelty
{{ pct(concept.novelty_score) }}
Market
{{ pct(concept.market_score) }}
Fit
{{ pct(concept.fit_score) }}
Effort
{{ pct(concept.effort_estimate) }}
Compliance risk
{{ pct(concept.compliance_risk) }}

Concept

{% if concept.problem_statement %}
Problem statement
{{ concept.problem_statement }}
{% endif %} {% if concept.target_users %}
Target users
{{ concept.target_users }}
{% endif %} {% if st == 'rejected' and concept.reject_reason %}
Reject reason
{{ concept.reject_reason }}
{% endif %}
Run
{{ concept.run_id or '—' }}

Clustered Signals{% if concept.cluster_signal_ids %} · {{ concept.cluster_signal_ids|length }}{% endif %}

{% if concept.cluster_signal_ids %}
Harvested signals clustered into this concept
{% for sid in concept.cluster_signal_ids %} signal #{{ sid }} {% endfor %}
{% else %}
No source signals recorded for this concept.
{% endif %}

Specification{% if spec and spec.task_count %} · {{ spec.task_count }} tasks{% endif %}

{% if spec and spec.spec_md %}
{{ spec.spec_md }}
{% else %}
No spec generated yet for this concept.
{% endif %}

Emitted Kanban Tasks{% if tasks_emitted %} · {{ tasks_emitted|length }}{% endif %}

{% if tasks_emitted %} {% for t in tasks_emitted %} {% set ks = (t.kanban_status or 'unknown')|lower %} {% endfor %}
SeqEpicTaskLive status
{{ t.seq if t.seq is not none else '—' }} {{ t.epic or '—' }} {{ t.kanban_task_id }} {% if t.kanban_status %} {{ t.kanban_status }} {% else %} {% endif %}
{% else %}
No tasks emitted{% if st != 'approved' %} (concept not yet approved){% endif %}.
{% endif %}

Outcomes

{% if outcomes %} {% else %}
No outcomes recorded yet{% if st == 'approved' %} — builds in flight{% endif %}.
{% endif %}
{% endblock %}