graphical-apps-development-cursorrules-prompt-file — правило
Правило Cursor, которое задаёт агенту контекст проекта Pyllments: графовые LLM-приложения на Python с Panel и Langchain.
.cursor/rules/graphical-apps-development-cursorrules-prompt-file.mdcЧто делает graphical-apps-development-cursorrules-prompt-file
Правило описывает Pyllments — библиотеку на Python для графических и API-приложений поверх LLM. Приложение собирается из Elements, связанных в граф, который может быть циклическим. Каждый Element отвечает за свою функцию: один делает вызовы к провайдерам LLM, другой держит интерфейс чата.
Внутри — модель компонентов. Component состоит из Model и Views: Model хранит данные и логику, Views рисуют интерфейс. Связь идёт через порты по паттерну наблюдателя, где выходной порт — субъект, а входной — наблюдатель. Чтобы соединить порты, они должны отправлять и принимать один тип Payload. Файлы элемента лежат в отдельной папке: __init__.py, файлы элемента и модели, плюс css с buttons.css, column.css, input.css.
Стек назван прямо: Panel для слоя визуализации и запуска GUI, Param для параметризованных классов с валидацией типов и реактивностью, Langchain для рабочих процессов с LLM. Docstrings правило требует в стиле NumPy/SciPy. Если вы не пишете на Panel и Param, контекст будет мимо: правило заточено под этот стек, а не под React или Qt.
Какие задачи решает
- объяснить агенту архитектуру графа из Elements и портов
- разложить компонент на Model и Views без путаницы
- связать выходной порт с входным по одному типу Payload
- собрать файловую структуру элемента с папкой css
- удержать docstrings в стиле NumPy/SciPy
Примеры запросов агенту
- Добавь новый Element для выбора модели и подключи его выходной порт к интерфейсу чата
- Раздели этот компонент на Model и Views, логику вынеси в модель
- Оформи docstrings в стиле NumPy/SciPy для новых классов
Как установить graphical-apps-development-cursorrules-prompt-file
Вручную: положить файлы
.cursor/rules/graphical-apps-development-cursorrules-prompt-file.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/graphical-apps-development-cursorrules-prompt-file.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/graphical-apps-development-cursorrules-prompt-file.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/graphical-apps-development-cursorrules-prompt-file.mdВручную: положить файлы
.clinerules/graphical-apps-development-cursorrules-prompt-file.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о graphical-apps-development-cursorrules-prompt-file
Как установить graphical-apps-development-cursorrules-prompt-file в Cursor?
Создайте файл .cursor/rules/graphical-apps-development-cursorrules-prompt-file.mdc в корне проекта и вставьте в него содержимое правила.
Что делает graphical-apps-development-cursorrules-prompt-file?
Задаёт агенту Cursor контекст проекта Pyllments: компоненты из Model и Views, Elements, порты и Payload, а также приоритет модульности и расширяемости.
Какие библиотеки нужны для работы по этому правилу?
Panel для визуализации и запуска GUI, Param для параметризованных классов и реактивности, Langchain для рабочих процессов с LLM.
Исходный текст
graphical-apps-development-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for graphical apps development with integration."
globs: **/*
alwaysApply: false
---
# Project Synopsis
Pyllments is a Python library for building graphical and API-based LLM applications through chaining together Elements in a potentially cyclic graph. Elements and Payloads are a type of Components. A Component is composed of a Model and Views. The Model handles the underlying data and logic, while the Views are the UI components that are used to display display the interactive UI used to interact with the Model.
An Element is a type of Component that is responsible for a specific function. For instance, an Element can handle the LLM selection and generation by making calls to LLM providers. Another Element may handle the chat interface, whose Model would store the chat message history, and the Views would be the text boxes and buttons used to interact with the chat interface. Elements are meant to connect to other Elements through Ports. All that is necessary to link Elements together is to link the output port of one Element to the input port of Another. Each output port may have unlimited input ports it connects to, and each input port may have unlimited output ports it connects to. The ports follow an observer pattern where the output port is the subject and the input port is the observer. The subject notifies the observers when a certain event that we set within the Element is triggered.
In order to connect an input and and output port, they need to be setup in a manner that sends and receives the same type of Payload. A Payload is also a Component with a Model as well as views responsible for the display logic. Elements may receive payloads and use methods of the Payload to generate the views for the UI. The sending Element is responsible for packing data into the Payload.
I am currently working on making this a fully-fledged framework.
# Project Organization
Here is an example of the file structure of an individual element:
chat_interface:
- __init__.py
- chat_interface_element.py
- chat_interface_model.py
- css:
- buttons.css
- column.css
- input.css
# Primary Libraries Used
- Panel is used to create the visualization layer and run the GUI. Views tend to consist of Panel objects which can be styled with Python and CSS.
- Param is used to create parameterized classes which help create parameters that handle type validation, default values, constraints, and most importantly, reactivity(setting event handlers to catch changes).
- Langchain is responsible for the specific functions pertaining to incorporating LLM workflows.
# Development Priorities
Pyllments code is prioritized on being developer-friendly, where extensibility and modularity are first-class citizens. Elements should be customizeable with clean and intuitive interfaces. It should also be easy to create new elements depending on the needs of the developer.
# Documentation
Docstrings should use a NumPy/SciPy style.
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules