一键导入
streamlit-app
Create or modify Streamlit apps in the Wizard. Use when building new wizard apps, adding Streamlit pages, or working with apps/wizard/ code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create or modify Streamlit apps in the Wizard. Use when building new wizard apps, adding Streamlit pages, or working with apps/wizard/ code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Create a brand-new OWID dataset in ETL from a data file the user provides — a local CSV/Excel, a downloaded file, or a web link to data (snapshot → meadow → garden → grapher → PR → staging server). Use when someone has data they want in ETL so they can build charts. Designed for non-technical "Cloud co-work" users: infer aggressively, build a working dataset first, then ask the person to review and correct.
Create vanilla meadow, garden, and grapher ETL step files from the wizard's cookiecutter templates, given a snapshot path.
Create a new snapshot (DVC file, plus a Python script only when one is needed) from a url_main and optional url_download. Fetches the page, extracts metadata with AI, confirms with user, writes files, and runs the snapshot. Use when the user wants to add a new data source or create a snapshot from a URL.
Use when creating or enriching metadata for OWID ETL datasets - generates comprehensive YAML metadata from dataset inspection, data exploration, and web research following OWID metadata standards. Trigger when writing or editing *.meta.yml files, when a garden step has empty or minimal metadata, or when user asks to improve/add/enrich metadata.
Spawn a background agent that babysits an open PR — triggers a Codex review, watches CI, judges and fixes valid findings, replies to and resolves review threads, and loops to a cap. Never merges. Trigger when the user asks to "babysit the PR", "ask for codex review(s) and watch CI", or after pushing a substantial chunk to a PR branch.
Review an OWID ETL data update PR end-to-end — runs the pipeline, compares snapshot fields against the previous version, verifies links, audits indicator metadata coverage, and cross-checks workflow items from /update-dataset. Trigger when the user asks to "review this PR", "review the data PR", or invokes this on an open dataset-update branch.
| name | streamlit-app |
| description | Create or modify Streamlit apps in the Wizard. Use when building new wizard apps, adding Streamlit pages, or working with apps/wizard/ code. |
| metadata | {"internal":true} |
Apps live in apps/wizard/app_pages/. Run with make wizard or .venv/bin/etlwiz <alias>.
apps/wizard/app_pages/your_app/app.py:import streamlit as st
st.set_page_config(page_title="Wizard: Your App", page_icon="🪄", layout="wide")
def main():
st.title("Your App")
main()
apps/wizard/config/config.yml under a section's apps list:- title: "Your App"
alias: your-app
entrypoint: app_pages/your_app/app.py
description: "What it does"
maintainer: "@slack-handle"
icon: ":material/icon:"
# Caching (supports ttl, show_time, works outside Streamlit too)
from apps.wizard.utils.components import st_cache_data
@st_cache_data(custom_text="Loading...", ttl="1h")
# URL-synced widgets (shareable state)
from apps.wizard.utils.components import url_persist
url_persist(st.selectbox)(label="Option", options=["a", "b"], key="my_key")
# ⚠️ Booleans stored as "True"/"False" strings in URL
# Charts
from apps.wizard.utils.components import grapher_chart, grapher_chart_from_url
grapher_chart(catalog_path="grapher/ns/ver/ds#var")
grapher_chart(variable_id=123, selected_entities=["France"], tab="map")
# Data loading
from apps.wizard.utils.cached import load_variables_in_dataset, load_variable_data
# Environment & DB
from etl.config import OWID_ENV # .base_site, .indicators_url, .data_api_url
from etl.db import get_engine
from sqlalchemy.orm import Session
apps.wizard.utils.components)st_horizontal() — flexbox row context managerPagination(items, items_per_page, pagination_key) — paginated listsgrapher_chart() / grapher_chart_from_url() — OWID chartsst_wizard_page_link(alias) — link to another Wizard pagest_tag(name, color, icon) / tag_in_md() — colored badgesst_toast_success() / st_toast_error() — toast notificationspreview_file(path) — code preview in expanderst.set_page_config() must be the first Streamlit command@st_cache_data for expensive operationsurl_persist() for shareable widget state:material/icon_name: (Google Material Symbols)timeout=30 and .raise_for_status()