name: streamlit type: skill description: 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. category: instruction triggers: - "streamlit" - "streamlit app" - "streamlit dashboard" - "dashboard" modifies_files: true needs_task: false mode: execution domain: - academic - development allowed-tools: Read,Grep,Glob,Edit,Write,Bash,Skill version: 0.1.0 permalink: skills-aops-extras-streamlit
Streamlit — Presentation Layer (academicOps)
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.
Contents
- [[streamlit-workflow]] — single-step collaborative workflow for building Streamlit dashboards (load → STOP → chart → STOP → interactivity → STOP).
- [[streamlit-patterns]] — design patterns and best practices for research dashboards.
- [[streamlit]] — standard app structure and additional Streamlit patterns.
When to use
- The project has a Streamlit app (
streamlit/directory or.pyfiles usingst.). - You need to display pre-computed metrics, render charts, or add interactive filtering on EXISTING columns.
Hard boundary
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.