---
description:
globs:
alwaysApply: false
---
На основе предоставленной тебе информации необходимо создать страницы или страницу с описанием процессов контракта, создав новую группу @defgroup public_<contract>_<process>_process добавив их в общую группу @ingroup public_<contract>_proccesses

Каждый процесс должен включать:
- Человеко-читаемое название по своему бизнес-смыслу
- Диаграмму последовательности действий mermaid
- Пошаговое описание происходящего в процессе с обоснованием зачем это нужно
- Каждый шаг - это одно действие в смарт-контракте, на которое необходимо ссылаться через @ref <наименование якоря> "заголовок ссылки".
- ВАЖНО: @ref ссылки делать ТОЛЬКО на процессы (например, @ref capital::regcontrib "подача заявки"), а НЕ на внутренние сущности или функции (НЕ Capital::Contributors::create_contributor). 
- На каждом шаге, если таковое есть в самом действии или в вызываемых им функциях, необходимо дополнительно отмечать с помощью тегов @post человеко-читаемые эффекты БЕЗ ссылок на внутренние функции:
  - Проводки по кошельку (например, "создается программный кошелек", "блокируются средства")
  - Проводки по фондам (например, "списываются средства с фонда", "переводятся средства")
  - Передаваемые на вход документы
  - Изменения статусов (например, "статус меняется с PENDING на ACTIVE")
- При необходимости делай ссылки на процессы через @ref <contract>::<action> "описание процесса"
- При выделении жирным используй теги <b></b>
- Пункты списков пиши текстом, а не списком. Руководствуйся принципом: "лучше объясни, чем коротко напиши". 

## ПРАВИЛА ОФОРМЛЕНИЯ ДИАГРАММ

### Диаграммы последовательности:
- Использовать ТОЛЬКО sequenceDiagram вместо graph или flowchart
- Участники (participant) называть понятными русскими именами:
  - "Участник" вместо "User" или "Участник"
  - "Capital Contract" вместо технических названий
  - "Soviet Contract", "Gateway Contract" для системных контрактов
- В сообщениях использовать ЧЕЛОВЕКО-ЧИТАЕМЫЕ описания вместо технических имен методов:
  - "Подача заявления о расходе" вместо "createexpnse()"
  - "Запрос предварительного одобрения" вместо "approveexpns()"
  - "Создание исходящего платежа" вместо "gateway::createoutpay"
- Использовать Note over для пояснений внутренней логики
- Использовать alt/else для альтернативных путей

### Замена технических терминов:
- Все технические термины в тексте заменять на смысловые описания с @ref ссылками:
  - used_expense_pool → "сумма использованных средств"
  - accumulated_expense_pool → "накопленные средства пула"
  - Gateway::createoutpay → @ref Gateway::createoutpay "создаёт исходящий платеж"
  - Soviet::create_agenda → @ref Soviet::create_agenda "направляет на рассмотрение советом"


Пример оформления диаграммы
\htmlonly
<div class="mermaid">
sequenceDiagram
    participant V as Участник
    participant C as Capital Contract
    participant S as Soviet Contract
    
    V->>C: 1. Подача заявления
    Note over C: Проверка условий
    C->>S: 2. Запрос одобрения
    alt Одобрение
        S->>C: 3. Авторизация
    else Отклонение
        S->>C: 3. Отклонение
    end
</div>
\endhtmlonly
*/

Пример оформления процесса
/**

 @defgroup public_capital_registration_process Процесс регистрации участников
 @ingroup public_capital_processes

 @pre предварительные условия
 
 Процесс приёма договора УХД от пайщика, фиксации его статуса как участника 
 и обеспечения технической возможности участвовать в проектах и программе капитализации.
 
 ``` cpp
 some formula
 ```
 
 @post эффекты
*/
