{% extends "base.html" %} {% block title %}{{ idea.id }}: {{ idea.title }} - ThinkStorm{% endblock %} {% block content %} {% if idea.lifecycle_state == 'TRASHED' %}
🗑️
This idea is in the Trash Bin

It is withheld from incubation catalogs until restored or permanently emptied.

{% endif %}
{{ idea.id }} {{ idea.lifecycle_state }} Proc: {{ idea.processing_state }} {% if idea.lifecycle_state != 'TRASHED' %}
Level {{ idea.enrichment_level }}
{% for i in range(1, 6) %}
{% endfor %}
{% endif %}

{{ idea.title or "Processing Submission..." }}

{{ idea.summary }}

{% if idea.lifecycle_state == 'TRASHED' %} {% elif idea.lifecycle_state == 'AVAILABLE' %} {% if user and user.role.value != 'ANONYMOUS' %} {% else %} Sign in to Claim {% endif %} {% elif idea.lifecycle_state == 'CLAIMED' %}
Claimed by
{{ idea.claimed_by }}
{% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %} {% endif %} {% elif idea.lifecycle_state == 'ACTIVE' %}
Active Work by
{{ idea.claimed_by }}
{% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %} {% endif %} {% else %} {% endif %}
{% if idea.categories and idea.categories|length > 0 %}
Categories: {% for c in idea.categories %} {{ c }} {% endfor %}
{% endif %} {% if idea.tags and idea.tags|length > 0 %}
Tags: {% for t in idea.tags %} #{{ t }} {% endfor %}
{% endif %}
Submitted: {{ idea.submitted_at[:19] }}Z

📝 Immutable Original Submission

{{ idea.original_text }}

🛡️ URL Safety & VirusTotal

{% if idea.urls and idea.urls|length > 0 %}
{% for u in idea.urls %}
{{ u.url }}
{{ u.safety_state }} Policy: {{ u.automation_policy }}
{% endfor %}
{% else %}

No external URLs extracted in submission.

{% endif %}
{% set prior_art_run = idea.provenance | selectattr("stage", "equalto", "PRIOR_ART") | list %} {% if prior_art_run and prior_art_run|length > 0 and prior_art_run[0].output_data.content %}
{{ prior_art_run[0].output_data.content }}
{% else %}

Prior art discovery is processing or pending.

{% endif %}
{% set research_run = idea.provenance | selectattr("stage", "equalto", "RESEARCH") | list %} {% if research_run and research_run|length > 0 and research_run[0].output_data.content %}
{{ research_run[0].output_data.content }}
{% else %}

Deep research synthesis is processing or pending.

{% endif %}
{% set feas_run = idea.provenance | selectattr("stage", "equalto", "FEASIBILITY") | list %} {% if feas_run and feas_run|length > 0 and feas_run[0].output_data.content %}
{{ feas_run[0].output_data.content }}
{% else %}

Feasibility and risk critique is processing or pending.

{% endif %}

Independent Work Tracks

Assign multiple work types (Article, Blog Entry, Coding Project) to produce distinct outputs.

{% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %}
{% endif %}
{% if idea.work_tracks and idea.work_tracks|length > 0 %}
{% for tr in idea.work_tracks %}
{{ tr.id }} {{ tr.name }} {{ tr.work_type_id }} {{ tr.state }} {% if tr.model_override %} 🤖 {{ tr.model_override }} {% endif %}
{% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %} {% if tr.work_type_id == 'CODING_PROJECT' and tr.state == 'COMPLETED' %} {% endif %} {% endif %}
{% if tr.external_resources and tr.external_resources|length > 0 %}
{% for ext in tr.external_resources %} 🎉 Graduated Project Repository: {{ ext.url }} ↗ {% endfor %}
{% endif %} {% if tr.outputs and tr.outputs|length > 0 %}

Generated Artifacts & Versions ({{ tr.outputs|length }}):

{% for out in tr.outputs %}
📄 {{ out.name }} {% if out.is_current %} v{{ out.version }} (Latest) {% else %} v{{ out.version }} {% endif %} {% if out.model_used %} 🤖 {{ out.model_used }} {% endif %} 🕒 {{ out.created_at[:19].replace('T', ' ') }} UTC
{% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %} {% endif %}
{{ out.content }}
{% endfor %}
{% else %}
No artifacts generated yet for this track. {% if user and (user.username == idea.claimed_by or user.role.value == 'ADMIN') %} {% endif %}
{% endif %}
{% endfor %}
{% else %}

No work tracks created yet. Claim this idea to create independent development tracks.

{% endif %}

Execution Provenance & Token Accounting

Total Tokens Consumed: {{ idea.usage_summary.total_tokens }}
{% if idea.provenance and idea.provenance|length > 0 %}
{% for r in idea.provenance %} {% endfor %}
Run ID Processor / Stage Prompt Model Tokens (In/Out/Total) Duration Status
{{ r.id }} {{ r.processor_name }}
{{ r.stage }}
{{ r.prompt_id }} v{{ r.prompt_version }} {{ r.resolved_model }} {{ r.input_tokens }} / {{ r.output_tokens }} / {{ r.total_tokens }} {{ r.duration_ms }}ms {{ r.status }}
{% else %}

No processor execution runs recorded yet.

{% endif %}

Canonical Dossier & Gitea Project

Every idea is maintained as a full Git repository under the thinkstorm organization on Gitea.

{% if idea.gitea_repo_url %} 🔗 Open Project on Gitea ↗ {% endif %}
🐙 Gitea Project Repository org: thinkstorm
Repo: {{ idea.gitea_repo_name or "thinkstorm/ts-" ~ idea.id|lower|replace('ts-', '') }}
Clone: git clone https://git.labyricorn.com/{{ idea.gitea_repo_name or "thinkstorm/ts-" ~ idea.id|lower|replace('ts-', '') }}.git
{% if idea.gitea_repo_url %} Open in Gitea ↗ {% else %} Open in Gitea ↗ {% endif %}

Canonical Dossier Files in Store:

📄 idea.md Summary & Original Text
📊 metadata.json Structured Metadata & State
🔍 research/prior-art.md Competitor Analysis
📚 research/analysis.md Deep Research Synthesis
⚙️ research/feasibility.md Risk & Feasibility Critique
{% for tr in idea.work_tracks %} {% for out in tr.outputs %}
🚀 {{ out.artifact_path }} (v{{ out.version }}) {{ tr.name }}
{% endfor %} {% endfor %}
{% endblock %}