task-master-marcus-ver
Version:
A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.
53 lines (46 loc) • 4.02 kB
Plain Text
<context>
# Overview
The product is a single Python automation script that runs in a Streamlit app.
[Provide a high-level overview of your product here. Explain what problem it solves and the name of app integrations required for the automation script.]
# Core Features
[List and describe every function in your Python automation script. For each function, include:
- What it does
- Why it's important
- The Python SDK names of app integrations related to this feature, such as HubSpot, Salesforce, Monday.com, Jira, etc.
- The tool names required to work on the task, such as to get name of the correct SDK and documentation, to edit code, to add new files, etc.
- How it works at a high level]
# User Experience
[Describe the user journey and experience. Include:
- Key user flows
- User input to be collected via proper Streamlit input elements that best match the input format required for the Python automation script.
- Include clear and numbered steps for the user to follow accurately to execute the script.
- UI/UX considerations in Streamlit app only]
</context>
<PRD>
# Technical Architecture
[Outline the technical implementation details:
- System components must be a single Python file, named 'app.py'
- List of Python SDK names to be saved in 'requirements.txt' file. Correct Python SDK names can be identified by the pip install command from the github-repo-search/get-library-docs tool call. Do not need to setup development environment or install dependencies because they will be installed directly from the 'requirements.txt' file by USER.
- No .env file required. Have input fields for API key and other authentication data to be manually input by USER instead
- Logging using Python's logging import and custom_log import. Apply appropriate log levels across each task to capture user input, output and errors. This is important for logging and debugging. Use this app.py boilerplate:
```python
# Boilerplate for logging logic - do NOT edit\r\nimport logging\r\nfrom custom_log import setup_logging\r\nimport streamlit as st\r\nimport re\r\n\r\n# Initialized logging before any other imports - do NOT edit\r\nsetup_logging()\r\n\r\ndef main() -> None:\r\n try:\r\n # Boilerplate for logging logic - do NOT edit\r\n @st.cache_resource\r\n def get_logger() -> logging.Logger:\r\n return logging.getLogger(__name__)\r\n\r\n log = get_logger() # use log to emit log records in your code, such as log.info(), log.error() and others\r\n\r\n # Start of line to write code after this line\r\n # Keep the rest of the app inside this try/except\r\n \r\n pass # Placeholder to edit/replace with generated code\r\n\r\n # End of line to write code before this line\r\n except Exception:\r\n # Log and re-raise so Streamlit still shows the error in the UI - do NOT edit\r\n logging.getLogger(__name__).exception(\"Startup/initialization error during Streamlit script execution\")\r\n raise\r\n\r\n# Allows app to execute immediately so init-time exceptions are caught - do NOT edit\r\nmain()\r\n
```
- Data models
- APIs and integrations
- Infrastructure requirements]
# Development Roadmap
[Break down the development process into phases:
- MVP requirements
- Do not think about timelines whatsoever -- all that matters is scope and detailing exactly what needs to be build in each phase so it can later be cut up into tasks]
# Logical Dependency Chain
[Define the logical order of development:
- Which features need to be built first (foundation)
- Getting as quickly as possible to something usable/visible front end that works
- Properly pacing and scoping each feature so it is atomic but can also be built upon and improved as development approaches]
# Risks and Mitigations
[Identify potential risks and how they'll be addressed:
- Technical challenges
- Figuring out the MVP that we can build upon
- Resource constraints]
</PRD>