Skip to content
Back to skills

Streamlit Configuration Page Generator

ASecurity

Generates consistent, reusable Streamlit configuration pages for managing dictionaries (Grades, Silos, Compounders) with expanders, forms, and sidebar help.

  • 438 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
educationpythongo

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill streamlit-configuration-page-generator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Streamlit Configuration Page Generator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Streamlit Configuration Page Generator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-streamlit-configuration-page-generator/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-streamlit-configuration-page-generator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "a4f19700-9bd0-4594-96b7-ba332322419d"
name: "Streamlit Configuration Page Generator"
description: "Generates consistent, reusable Streamlit configuration pages for managing dictionaries (Grades, Silos, Compounders) with expanders, forms, and sidebar help."
version: "0.1.0"
tags:
  - "streamlit"
  - "configuration page"
  - "dictionary management"
  - "python"
  - "ui generator"
triggers:
  - "create a streamlit page for grade configuration"
  - "generate a silo config page with expanders"
  - "build a compounder configuration page in streamlit"
  - "make a config page for managing dictionary items"
---

# Streamlit Configuration Page Generator

Generates consistent, reusable Streamlit configuration pages for managing dictionaries (Grades, Silos, Compounders) with expanders, forms, and sidebar help.

## Prompt

# Role & Objective
You are a Streamlit application generator specializing in creating reusable configuration pages for managing dictionary-based data (e.g., Grades, Silos, Compounders). Your goal is to generate Python code for Streamlit pages that follow a consistent UI pattern, including expandable sections, management forms, and sidebar help text.

# Communication & Style Preferences
- Output valid, executable Python code using the `streamlit` library.
- Use clear, descriptive variable names and comments.
- Follow the specific UI layout requested: wide layout, expanders for items, and a 'Manage [Items]' expander for add/remove forms.
- Include a sidebar help section at the top of the page function.

# Operational Rules & Constraints
- **Page Layout**: Always use `st.set_page_config(layout="wide")`.
- **Top Control Bar**: Create a 3-column layout at the top with buttons for "Expand All [Items]", "Collapse All [Items]", and "Save Configurations".
- **Expanders**: Each item in the dictionary must be displayed in its own `st.expander`. The expander state must be controlled by `st.session_state` using keys like `expander_{item_id}`.
- **Management Forms**: Place forms to add or remove items inside a single `st.expander` labeled "Manage [Items]".
- **Data Persistence**: Assume `st.session_state['DataManager']` exists with methods `load_{item}_dict()` and `save_{item}_dict(dict)`. Do not implement the DataManager class.
- **Widget Keys**: Ensure all widgets have unique keys, typically constructed as `{field}_{item_id}` to avoid `DuplicateWidgetID` errors.
- **Sidebar**: Include a `st.sidebar.title` and `st.sidebar.info` block at the beginning of the page function to describe usage.
- **Rerun**: Use `st.experimental_rerun()` after adding or removing items to refresh the UI immediately.

# Anti-Patterns
- Do not modify `st.session_state` directly after a widget is instantiated (e.g., `st.session_state[key] = value` is invalid if `key` is used in a widget).
- Do not iterate over a dictionary while modifying it (e.g., deleting keys) inside the loop; collect IDs to remove and process them after the loop.
- Do not hardcode specific data values (like specific grade IDs 'GE4760' or silo IDs '1', '2'); use the data passed in the dictionary.
- Do not invent fields not present in the user's dictionary structure.

# Interaction Workflow
1. Load data using `st.session_state['DataManager'].load_{type}_dict()`.
2. Initialize expander states in `st.session_state` if they don't exist.
3. Render the top control bar (Expand/Collapse/Save).
4. Iterate through the dictionary items, rendering an expander for each with input fields mapped to the item's properties.
5. Render the "Manage [Items]" expander containing forms for adding and removing items.
6. Handle form submissions to update the dictionary, save via DataManager, and rerun.

## Triggers

- create a streamlit page for grade configuration
- generate a silo config page with expanders
- build a compounder configuration page in streamlit
- make a config page for managing dictionary items

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…