{% extends "base.html" %} {% block title %}insights · watchmen{% endblock %} {% block content %}
/insights
single-agent view.
| Project | Skills | Pending | Sessions (30d) | Adapters | Tool errors | Frustration | Unanalyzed |
|---|---|---|---|---|---|---|---|
| {{ r.key }} | {% if r.skills_n %}{{ r.skills_n }}{% else %}0{% endif %} | {% if r.pending_n %}{{ r.pending_n }}{% else %}0{% endif %} | {% for agent in ["claude_code", "codex", "pi"] %} {% if r.adapter.get(agent, 0) %} {{ {"claude_code":"cc","codex":"cd","pi":"pi"}[agent] }}: {{ r.adapter[agent] }} {% endif %} {% endfor %} | {% if r.tool_errors %}{{ r.tool_errors }}{% else %}0{% endif %} | {% if r.frust_count %}{{ r.frust_count }}{% else %}0{% endif %} | {% if r.pending_prompts %}{{ r.pending_prompts }}{% else %}0{% endif %} |
sessions.tool_error_count in corpus.db.no wait / bruh / :( / wtf / nope / …_candidates.json. Curated in some, only proposed in others.| {{ slug }} | {% for key, status in hits %} {% if status == "curated" %} ✓ {{ key }} {% else %} · {{ key }} {% endif %} {% endfor %} |
watchmen curate {{ key }}
{{ cmp_narrative_meta.model }}{% endif %}
· regenerate from the CLI with watchmen insights --regenerate
{% endif %}
{{ digest_meta.get("model", "?") }}
· {{ digest_meta.get("repos_synthesized", "?") }} repos synthesized
{% endif %}
· regenerate from the CLI with watchmen insights --regenerate
watchmen insights from the CLI to generate one. It'll cache under ~/.watchmen/insights/ and appear here on next page load.