aops-extras/skills/streamlit/SKILL.md
Streamlit implementation of the analyst presentation layer. Use when building or updating a Streamlit dashboard that displays pre-computed research data. This is the Streamlit-specific HOW for the tech-agnostic principles in the aops-tools analyst skill — display only, never transform.
npx skillsauth add nicsuzor/academicops streamlitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is the Streamlit-specific implementation of the presentation layer
described in the tech-agnostic analyst skill (aops-tools). The analyst skill owns the
principle (the presentation layer DISPLAYS pre-computed data — it never transforms,
joins, aggregates, or applies business logic; that all lives in the transformation
layer). This skill owns the Streamlit how-to.
Streamlit is one swappable choice of presentation layer. The display-only rule holds regardless of which dashboard tool you use; only the patterns below are Streamlit-specific.
streamlit/ directory or .py files using st.).Streamlit may read (SELECT * FROM mart), filter on existing columns, format for
display, and render charts. It must NEVER GROUP BY/aggregate, JOIN, apply CASE
business logic, or compute derived metrics inline. If tempted to transform: STOP and
add a model in the transformation layer (see the dbt skill) instead.
data-ai
Canonical session close — commit, push, PR, release_task, reflection blocks, handover. Use /dump for emergency bail (no commit/PR/reflection).
data-ai
Emergency session bail — fast resume task + short handover, no commit/PR/reflection. For when you (or the user) need a clean context now. Use /end-session for canonical close.
data-ai
Daily note lifecycle — compose and maintain a factual daily note. Reports the state of the day; does not prioritise or recommend. SSoT for daily note structure.
testing
Launder supervisor/worker task-log output into a Nic-facing narrative — what happened, where things are headed, and what (if anything) is genuinely his to decide. Never relays raw process detail (worker IDs, thread pointers, log paths) or verbatim task-log stream-of-consciousness.