{% extends "base.html" %} {% block title %}{{ case.case_id }} — Worker Mesh — psyc{% endblock %} {% block content %} {% set accents = ['#1ec8ff', '#2dd4bf', '#38bdf8', '#a78bfa', '#60a5fa', '#4ade80', '#fbbf24'] %} {% macro bot_svg(b) %} {% endmacro %}
← {{ case.case_id }}

Worker Mesh

{{ case.summary }}

Watch the case move through psyc's worker mesh — seven bots, each performing one pipeline stage and reporting its real result. The Classifier bot's severity verdict comes from the live fine-tuned model; hit ▶ replay to run it again.

how to use this view

How to use. Let the case token travel the mesh — each bot wakes, performs its stage, and reports. Press ▶ replay to run it again.

What you're seeing. Seven worker bots, one per pipeline stage. Awake bots ran for this case; asleep bots are stages that didn't apply. The Classifier bot's verdict is generated live by the fine-tuned model.

Why it matters. It makes the chain of reasoning legible — you can watch what the platform did and why, not just trust a final answer.

    {% for b in beats %}
  1. {{ bot_svg(b) }} {{ b.bot }}

    {{ b.purpose }}

    {% if b.occurred %}

    ▸ {{ b.action }}…

    {{ b.caption }}

    {% else %}

    {{ b.caption }}

    {% endif %} {% if b.facts %}
      {% for f in b.facts %}
    • {{ f }}
    • {% endfor %}
    {% endif %} {% if b.model_answer %} {% set rule_sev = case.classification.severity.value if case.classification.severity else '' %} {% set agrees = b.model_answer == rule_sev %}

    ⬡ {{ model_label }} · live model severity: {{ b.model_answer | upper }} {% if agrees %}✓ agrees with the rule {% else %}✗ differs — rule said {{ rule_sev | upper }}{% endif %}

    {% endif %}
  2. {% endfor %}
{% endblock %}