Pull to refresh
32K+
5
Андрей Юмашев@skazkin

Headmaster of Infrastructure

34,1
Rating
38
Subscribers
Send message

На всякий случай акцентирую внимание на том что идеология которую я описываю не предполагает ручного кода вообще. То есть, vim тут предусматривается только как “посмотреть, но не трогать” :)

По пунктам.

  1. Для того чтобы следовать SENAR - достаточно даже notepad. Ну а TAUSIK - фреймворк, который требует того или иного IDE или cli - курсор, opencode и т.п.

  2. Свой поиск по коду есть, и в предыдущем ответе я был на этом месте неточен. В TAUSIK стоит RAG на FTS5 поверх SQLite, с language-aware чанкингом по границам функций, классов и модулей и инкрементальной переиндексацией по git. Рядом живёт отдельный поиск по базе знаний проекта и по типизированной памяти. Векторных эмбеддингов сознательно нет: на наших объёмах полнотекстовый индекс по умным чанкам даёт более предсказуемый результат, нулевую внешнюю зависимость. Но разве что в новой версии будет shared brain на основе notion - единственный внешний сервис как зависимость.

  3. За регрессии отвечают ворота качества, инструмент сам по себе их не ловит. QG-2 не даёт закрыть задачу без выполненных критериев приёмки и хотя бы одного негативного сценария, автоматические проверки на этом шаге обязательны. При работе я делаю регулярный ревью + это заложено в стандарт и как следствие в фреймворк - он верещит если долго не было ревью. Про постепенный архитектурный дрейф в статье сказано честно: никакая память и никакой скилл его до конца не снимают, эта часть по-прежнему ручная.

  4. Вмешиваться можно и нужно. S в SENAR это Supervised: на каждом воротом решение принимает человек. До старта агент уточняет непонятные места, план согласовывается, результат проходит приёмку на QG-2. Если оттуда вынуть человека, получится ровно то самое vibe-coding, против которого серия и пишется. Это не золотая пуля где мы кладём, условно, что-то вроде “напиши мне хабр” и идём пить чай - инструментом нужно управлять (не писать код, а писать инструкции, согласовывать задания, осуществлять приёмку) - в этом и есть роль инженера.

  5. Про вашу строчку «Please treat Feature: DESCRIPTION…». Это та же интуиция, из которой у меня вырос SENAR, свернутая в одну инструкцию агенту. Работает, пока вы внутри одной фичи, внутри одной сессии и пока дисциплина ещё не просела. Дальше начинаются места, где одной строки мало. Багфиксы, рефакторинги и архитектурные изменения устроены по-другому, у них свои входы и свои критерии. Запись вида очередь по умолчанию никем не слушается в следующей задаче должна сама всплыть рядом с постановкой, а правило в промпте ничего не помнит. Архитектурный дрейф через пятьдесят задач оно не ловит, потому что смотрит только внутрь текущей. И последнее: на тридцать первой задаче за неделю любая личная дисциплина проседает, нужен внешний контур, который шаг пропустить не даёт. Правило в промпте это не ворота, его слишком легко обойти. Полтора года назад у меня тоже было несколько предложений в инструкциях к агенту, SENAR это то, во что они выросли, когда стало видно, где они проседают.

ну да, вот для этого собственно я и напилил SENAR+TAUSIK и продолжаю доработки по второму как минимум. С выходом Opus 4.7 думаю что не я один заметил ухудшение модели - и фреймворк очень сейчас хорошо помогает держать в узде его. На простом примере - сегодня опус на простой задаче споролся - метрику яндекса не смог корректно добавить, вставив правило на eval в nginx . Я сейчас прорабатываю для TAUSIK отдельный маленький shared brain - идея не нова собственно, в большом фреймворке у меня оно работает уже - но для широких масс интеграция с, например, тем же obisidian не помешает явно как уже многие делают.

Конечно можно

  • 100% открытого гитхаба + сам ТАУСИК написал сам себя фактически.

  • Всё что представлено в портфолио АО Кибертум (обезличенный список - но проекты вполне себе реальные). Часть из этого же кое-где с ссылками представлены у меня на сайте.

  • Мне бы очень хотелось показать так же с нуля воспроизведенный на Rust аналог sing-box/xray-core писавшийся полтора месяца но дух слаб и боится санкций. Но могу дать доступ по желанию.

всё так, у меня ещё есть большой фреймворк для мультиразработки и кросспроектов, сделанный для компании с работой по API и я о нем ещё отдельно расскажу ближе к делу, не хочется смешивать ряд статей о технике с рекламой:)

вот, золотые слова! Я уже почти закончил третью часть - там об этом будет отдельно прямо - роль человека меняется сильно - от просто поставщика техдолга до инженера по техдолгу, так сказать :)

Сейчас применение стандарта наложено в фреймворк ТАУСИК который я привожу как пример. У меня есть для внутренней работы еще более строгий фреймворк который учитывает весь энтерпрайз-сектор SENAR - тут применимость зависит от применяемого. Саый простой способ - это дать агенту и любимому набору скиллов инструкцию - изучи стандарт SENAR, примени его на нашу работу - даже простой Claude разложит себе выжимки в memory и перепишет claude.md соответствующим образом что уже даст явного буста.

В остальном своём это примерно как применение Agile - вы можете его применять так или иначе, можете вообще извратить его до frAgile - но суть останется сутью - у агента должен быть всегда инженер-оператор, думающий своей головой в первую очередь.

Думаю, что вы просто ещё не столкнулись с реальной проблемой на массовой разработке или фулстеке, или же длительном структурном подходе. Когда речь идёт о той же Сортуле что я упоминал - это уже 30 микросервисов, множество модулей и подмодулей, сотни тысяч строк кода на разных языках. Один системный промпт не справится с качественной разработкой, равно как и не справится с взятием на поддержку легаси решения так чтобы это не было на уровне "фрилансера из нулевых". Без структурного подхода и цветовой дифференциации штанов кратно падает качество итоговой разработки - которая являет собой не только код, а так же тесты, документацию, путь проекта.

Забавное наблюдение - я размещал недавно на реддите вручную написанное обьявление о разработанном (разумеется, с помощью ИИ) аддоне для игры - при всей чумовейшей структуре и тонкостях работы аддона - но все как один комментаторы накинулись на "нейрослоп" и "ии-тексты" в посте и моих комментариях. В наше время теперь достаточно быть просто вежливым и структурным чтобы тебя воспринимали как ИИ-агента :)

Я переписывал её вручную семь раз и вычитывал ближним кругом товарищей чтобы достаточно большой объем информации как-то сделать понятным для широкой аудитории - не только айти-специалистов :( Агент ощутимо помог для статьи написать общий скелет и в итоге только обгрызал текст ещё (оригинл был толще в два раза), стараясь сохранить суть - чтобы первое интро не было лонгридом на стотыщ минут. Тут не угадаешь же для всех - материал достаточно серьезным получился в целом - прибауточки, как обычно живо бывает и весело, не очень применимы - и информации структурной очень много получается.

Хочу отметить что одного системного промпта для фулстек недостаточно. TAUSIK работает по референсам - дополняя тот или иной скилл (промпт) спецификацией - ролью и стеком - что даёт ощутимый буст в тех или иных местах. При этом использование своей памяти (фреймворка) удобно для "дрессировки" агента под стиль разработки - запоминаются решения, тупики и т.п. и активно используются согласно жёстким инструкциям. И это всё не смешивается в кашу как любят это делать курсор и клод.

Зашел специально чтобы поставить минус первому комментатору - столкнулся с таким же хейтом недавно на реддите когда выкладывал пост про игровой инструмент. Нормально и чётко написанный текст про конкретно хорошую вещь, подход - не признак ИИ. Если доверить ИИ немного подготовить текст - в этом нет ничего плохого. Абсурд просто шкалит - теперь каждый комментарий мы будем проверять под лупой - не ИИ ли это написал? Ты читал вообще суть поста? Понимаешь о чем речь? Причём тут лепить шаблон "ИИ"?

Такого рода комментарии просто доказывают - что сейчас колоссальная доля специалистов - с кавычками или без - попросту не разбираются в том как сейчас идёт развитие agent-driven - и - по всем законам психологии - не понимаю - отказать.

Автору:

Ты идёшь правильным путём. Мы сейчас разрабатываем стандарт и методологию - если интересно - напиши - обсудим. Ты сейчас примерно в той же точке что я - полгода назад.

про технаря сейчас обидно было :)
Организация процессов — это неотъемлемая часть философии, так считаю.
Про технические подробности я не говорил, кстати, сознательно. На таком этапе всё, что я мог бы рассказать, было бы повторением статей хабра и стека.

В следующем году уже вернусь с чем-то более технически интересным — как мы переходили на Vitess, как внедряли git flow, как разворачивали S3 — будет из чего выбрать уже тему :)
Вообще не подходит. Трелло был удивительно хорош на начальном этапе — чтобы понять масштаб. В начале ноября мы наконец-то сели, разобрали все задачи по логическим группам, и перешли в Redmine, сделав работу более структурной.
Мне показалось, что основы тут в целом подходят, как термин — по сути — как верно подмечено — это именно трансформация, с базовыми основами всего того, что погружено в философию.

Получилось примерно так — много лет назад один хороший человек всё настроил. А потом, на протяжении следующих лет, каждый, кто прикасался к построенному, или что-то ломал, или не считал нужным актуализировать.

По итогам, мониторинг всё-таки был — частично самописный, частично — загаженный нагиос. Ну а инвентаризация и т.п. — это всё я уже собирал из гуглодоков, каждый кто во что горазд делал :)
обычная матрица обычного старого VGA-монитора выдаёт достаточно яркости, чтобы было хорошо видно днём.

Но в глубокой темноте всё ярче выделяется — при этом можно решить эту проблему автоматическим убавлением яркости, но для этого нужно использовать DVI/HDMI и т.п. — управлямые через софт мониторы.
Я решил эту проблему с помощью фоторезистора. Конкретные точки стекла являются активными — к ним не надо прикасаться, достаточно только затенить область. Минус только в том, что работает это только в светлое время и при освещенности. С другой стороны я бы не назвал это минусом — потому что когда в комнате темно — никто у зеркала ничего и не делает.

В любом случае пользы кроме даты, погоды и цитаты с Форизматика оно не приносит — календарь мне проще смотреть с телефона, а что ещё туда вывести — не могу придумать.

Зеркало я просто заказал под размер на фабрике — стоимость обычного зеркала + аксессуаров для удаления амальгамы сопоставима с зеркалом Гезелла на заказ.

Минимальная рассчитанная стоимость зеркала с аксессуарами — около 6 тысяч рублей. В это входит RPI3 (3500, можно 2 — будет дешевле немного), зеркало (около полутора тысяч, размер 50x50), б/у VGA-монитор, найденный в недрах офиса (бесплатно или на Авито за 500-1000 рублей). Это — самый дешевый вариант для колхозинга. Не считаю чёрную бумагу на задник, пилот и двойной скотч.

Если же к нему добавлять уже управление яркостью (через VGA не сделаешь — нужен минимум DVI), фоторезисторы (40 рублей штука) — всё это удорожает — в зависимости от желания.

Используемый в статье Leap Motion прикольный, но очень сырой. Так-то можно даже Tobii EyeX поставить — и глазами зеркалом управлять — вопрос опять же стоимости и желания.

Так что даже в серийном производстве — тем более на планшетах (реальная область всё ещё 10 дюймов) — это тупо дорого и неэффективно, скорее имиджевое решение.
Не склонен спорить или обманывать. Суть именно в том, что без отмонтирования после ребута /dev/md1 был пуст и грузился с Ctrl+D, а без pvemove (и да, после pvmove) мокс не понял что именно от него хотят после ребута и куда делись его файлы рут — точный текст ошибки не повторю, уже не хочется устраивать тестов на настроенной машине

Конфигурация:

— Supermicro X7DVL-3
— HDD в режиме Extended SATA, без fake raid, с предварительно очищенными GPT
description: ATA Disk
product: WDC WD1003FBYX-0
vendor: Western Digital
physical id: 2
bus info: scsi@4:0.0.0
logical name: /dev/sdb
version: 01.0
serial: WD-WMAW30171635
size: 931GiB (1TB)

То есть, ничего вроде как необычного — но из-за двух таких мелочей потратил много времени и надеюсь, что кому-то эти дополнения помогут. Может быть, дело в кеше, может — где-то ещё бага :)

kbdone.com/proxmox-ve-3-2-software-raid/ — нашел в истории инструкцию, которую использовал для перестраховки на второй день, чтобы понять где может закрасться ошибка — там есть анмаунт и ремув.
Провожу операцию сейчас — говорю на основе своих реалий
В любом случае, полученные опытным путём пункты 2 и 3 не несут вреда, а скорее логически завершают то или иное действие. Первый день я тупо по-обезъяньи всё копировал из статьи, на второй уже полез копать логики и пришёл к этим выводам — не так давно достроился второй рейд и всё работает!
Несколько критических замечаний.

1. Форматирование (b) не работает в квоте. Соответственно, строки нельзя копировать вслепую — мелочь, а неприятно (относится к missing)

2. После внесения правок в /etc/fstab необходимо отмонтироваться — umount /mnt/md1 — иначе, как ни странно, изменения не зачтутся и система на второй ребут выпадет в grub shell.

3. После vgreduce необходимо сделать pvremove /dev/sda3 — иначе система не поймет что произошло с дисками и не загрузится дальше initramfs-консоли

В остальном спасибо — если бы не эти досадные мелочи — процедура заняла бы три часа, а не два дня :)
1
23 ...

Information

Rating
267-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Директор по информационным технологиям, CTO
Ведущий
Управление людьми
Информационные технологии
Построение команды
Управление бизнес-процессами