agentsclimarketplace

Streamlit configuration page generator

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/streamlit-configuration-page-generator

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill streamlit-configuration-page-generator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

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

SKILL.md

3.8 KB, as published. Nobody here has run it

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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.