Добавить спецификации Solana программ и вынести формат PDA

This commit is contained in:
AidarKC
2026-06-04 22:17:17 +04:00
parent a9510a6d36
commit 6b0379bfdc
10 changed files with 1537 additions and 21 deletions
+18 -4
View File
@@ -2,11 +2,18 @@
## Documentation Rule
В проекте есть спецификация пользовательской PDA-записи:
В проекте есть два обязательных класса документов:
- актуальные документы в `doc/`.
1. Документы по программам в `doc/programs/`:
- `shine_users.md`
- `shine_login_guard.md`
- `shine_payments.md`
2. Документы по форматам в `doc/formats/`:
- `shine-user-pda-format-v.1.0.md`
Если меняется формат записи, сериализация, правила подписи, `prev_hash`, экономика лимитов или связанные ограничения create/update, соответствующую документацию в `doc/` нужно обновлять в том же изменении.
Эти документы должны быть достаточными для повторной реализации программ и форматов с нуля.
Если меняется формат записи, сериализация, правила подписи, `prev_hash`, экономика лимитов, правила очередей, правила CPI, seed PDA или связанные ограничения create/update, соответствующую документацию в `doc/` нужно обновлять в том же изменении.
## Language Rule
@@ -21,9 +28,16 @@
Если меняется бизнес-логика смарт-контрактов, сериализация PDA, правила переводов или экономика:
1. Обновить соответствующий документ в `doc/` в том же изменении.
1. Обновить соответствующий документ в `doc/programs/` и/или `doc/formats/` в том же изменении.
2. Если документ сразу обновить нельзя, обязательно явно согласовать это с пользователем в чате и зафиксировать план обновления.
Отдельное обязательное правило:
1. Документы по программам и документ формата PDA должны всегда совпадать с кодом программ.
2. Перед любым изменением кода нужно явно проверять, затрагивает ли оно поведение, PDA, поля, проверки, экономику или формат.
3. Если затрагивает, документ обновляется обязательно.
4. Нельзя сознательно оставлять код и документы в рассинхроне без отдельной явной договоренности с пользователем.
## Rule: Git Push
Для push в удаленный репозиторий использовать токен из переменной окружения: