Browse Source

ag

congestion
Evgeny 4 months ago
parent
commit
d1c9ef8377
  1. 30
      AGENTS.md

30
AGENTS.md

@ -313,28 +313,7 @@ SOCKET=14, CONTROL=15, DUMP=16, TRAFFIC=17, DEBUG=18, GENERAL=19, NAT=20
- В клиентском конфиге есть собственные ключи и pubkey каждого сервера в секции `[client]`
## Bugs Debugging Protocol
### Действия при поиске бага:
1. Создать комит или бэкап всего что меняешь
2. Когда причина бага найдена и устранена - верни всё остальное что менял в исходное состояние
3. Проверь что тесты проходят и всё работает. `make clean` перед сборкой обязательно.
4. Если баг не устранён - продолжай поиск или если время заканчивается - верни всё в исходное состояние
5. Если баг сложный и непонятно где искать - не гадай, а продумай как добавить диагностику которая покажет где именно баг.
### Эффективная диагностика:
0. Сосредоточься на поиске конкретной ошибки и доведи его до конца. Лучший путь - добавить диагностические сообщения/хуки/дополнительные проверки которые упростят поск бага и покажут где именно имкать проблему.
важно: нельзя вносить исправления только неа основе рассуждений - без точной диагностики бага в рантайме. сперва собираем отладочную информацию которая выявит проблемы путём добавления отладочного вывода, запуска, корректровки отладочного вывода по результатам.
и только когда будет достаточно данных для очевидного доказательства проблемы - исправляем и проверяем. исправление без очевидного доказательства запрещено!
1. Прочитай полностью код функций с ошибкой и код всех функции которые участвуют в ошибочном алгоритме
2. Мысленно выполни предполагаемый сценарий ошибки (нельзя додумывать - нужна точность):
- Убедись что точно понимаешь как алгоритм приходит к ошибке
- Все функции которые участвуют в сценарии ошибки проанализированы
- Последовательно отсекай логически законченные блоки которые проверены и точно правильно работают
- Если функция работает логически корректно - поправь описание. Если неверно - добавь в todo.txt
3. Если исправление меняет поведение функции:
- Просмотри где используется эта функция
- Убедись что изменение поведения не повлияет на остальные места
Всегда когда начинаешь диагностику ознакомься со скиллом (используй skills)
### Прочие правила:
- sed для редактирования исходников - запрещено
@ -345,6 +324,13 @@ SOCKET=14, CONTROL=15, DUMP=16, TRAFFIC=17, DEBUG=18, GENERAL=19, NAT=20
- Перед сборкой всегда make clean
- Все лишнее что менял при отладке - строго вернуть назад в состояние до вмешательства
## Написание кода
- Строго обязательно наличие ERROR сообщений во всех ошибочных ветвях алгоритма
- Обязательно наличие диагностических сообщений в ветках инициализации-очистки, с информацией которая позволяет оценить наиболее полно внетренние состояния на момент печати сообщения. Например выявить неправильные состояния, неинициализированные поля итд
- Обязательно наличие подробной диагностики в функциях кода которые не сильно спамят (не часто вызываются).
- Для каждого отладочного вывода подумай какая из доступной информация будет полезна чтобы можно было наиболее завершенно оценить состояние алгоритма и состояний влияющих на алгоритм.
## Key Documentation Files
- `/doc/etcp_protocol.txt` - ETCP протокол (формат кодограмм, ACK, handshake, keepalive)
- `/doc/etcp_arch.md` - ETCP архитектура

Loading…
Cancel
Save