Практычныя нататкі: вялізны CLAUDE.md, пасля якога агент стаў пагрозліва добрым
Практычны разбор тэмы «вялікі файл CLAUDE.md і як ён паляпшае агента для кода»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.
Крыніцы: I Built a Monster CLAUDE.md, And My Coding Agent Got Scary Good
Наступныя прытамкі восстанавляюць практычны шлях для рэалізацыі праекту, адпраўленага да тэмы «Я створыў монстра CLAUDE.md, і мой кодавальны агент стаў надзвычайна скарожным». Акцэнт ставіцца на контракты, перакананняя і месцы для падставлення коду, а не на мотывацыйныя элементы. Калі працуеце на этапы агледжэння, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што вядзецца ў разы частковай нявыполнення. Такі спіс перакананняя дапамагае заліцьваты пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не элементамі пазнейшай дапрацоўкі.
Файл — гэта проста кантэкст, а кантэкст — гэта весь гэйм
Файл лепшаў працюе, калі яго розглядаць як мерыемую паверхню. Запісаце адна «золатая» версія, адзін прыклад неудачы і прыметкі па поверненню да пярвоначальнага стану пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты обработкі дадзеных павінны быць простымі і з адначыя тыпамі дадзеных. Вкладаныя структуры дадзеных маскуюць інфармацыю пра тое, які вузел запісаў кожны поле, і спакоююць працу пасля перэрываў.
Чатыры правілы, якія запобегаюць згадкам
Чатыры правілы, якія дапамагаюць стадзіі працаваць наяўнейшым чынам, калі яе спрыяваць як меруючую паверхню. Зафіксавайце адна ідэальная версія, адзін прыклад неудачы і запіс пра вярнэнне да поперадньяго стану пры розшырэнні масштаба. Спрыявайце гэтай стадзіі як кантракт межа вхіднымі данымі і падтвердзенымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаць крытэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задачы. Зберагаюце стан графа ў простам і тыпаваным фармаце. Вярнутыя структуры дакладна не паказваюць, які вузел запісаў кожны поле, і спакоююць працу пасля перарываў.
Частка, якая насправды выканае работу: крэасунг
Тая частка, якая фактычна працюе на стэйджы, найкрашча, калі яе расследзваць як вімерную паверхню. Запісайце адны ідэальны прыклад працы, адны прыклад неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Запісвайце часы выканання і косты токеноў або запытак праза функцыйнае рэзультат. Відразліва візуабільнасць костаў запобегае неспакойным рахункам, калі працэс пераходзіць з дэмовай асяроддзя ў спяльныя сераўеры. Адкройце інструменты з вузкімі схемамі і чыткімі пазначкамі пра побачныя эфекты. Хостам неабходна знаты, якія вызовы мутуюць стан, перш чым яны автаматычна схваляюць іх. Тая частка, якая фактычна працюе на стэйджы, найкрашча, калі яе расследзваць як вімерную паверхню. Запісайце адны ідэальны прыклад працы, адны прыклад неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Дакументавайце як успешны, так і вярнучыся шляхі працы. Перапрыбуткі, людзкія контрольныя пункты і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней.
Дзе берэцца файл: gstack
У раздзеле «Звядзе дзе берацца файл» неабходна прадзеяванне параметраў, вызначэнне адпаведальнага за шаг і крытэрыя завершэння пры перадзеяванні коду. Аператары должны магчымае перайсці шаг з вядомага пункта контролю, не прымуджаючыся з’ясавіць схованы стан. Лепш выбіраць маленькія, тэставаныя елементы заместо вялікіх скрыптав. Калі шаг не выйшаў, прычына нехасабносты павінна вказываць на адзін конкрэтны элемент, а не на заплутаную схему працы. Неабходна людская апраўда для тых крокаў, якія выкарыстоўваюць грошы або зменяюць даны ў працэсе. Компіляцыйныя наладкі не ўзроўнаважваюцься з полным адпрацоўкам бізнес-процэсаў.
Доказ: як гэта памагла мне перамогчы QuaRot
Для падчыробкі гэтага этапу неабяжна прадзефінаваць вхідныя даны, адпраўніка крока і крытэрыя завершэння пры перамены коду. Аперацыйныя працавнікі должны магчымае перайсці гэты крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрыяйце гэтаму этапу як кантракту між вхіднымі данымі і паўнастацэннымі выходнымі рэзультатамі. Даўце назвы артыфактам, прадзефінаваць перагляды успеху і адмовіцеся ад тыхнай частковай завершэння без паведамлення. Заставьце людзкія апраўды на тых элементах, якія вітрачаюць грошы або зменяюць даны для працы. Кампіляцыйныя наладкі не ўзроўнаваны з паўнасцю бізнес-процэсу.
Чыстыя абазрэнні
У стадыі чыстых абсалютных спостарожэнняях, перш чым зменіць код, неабходна ўзначыць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Запісвайце час выканання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне костаў запобегае неспадзяваным расчыткам, калі працэс пераходзіць з дэмовай асяроддзя ў спадзеленыя сераверы. Заставіце людскую апраўдку на тых кроках, дзе відбываюцца грошовыя расчыткі або зменяюцыся даны для працы. Працэс складання коду не ўзначае повнайшага адпрацоўвання продукту з точкі зору бізнеса. У стадыі чыстых абсалютных спостарожэнняях, перш чым зменіць код, неабходна ўзначыць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Дакументавайце як «шчаслівы» шлях, так і шлях вяснавання сітуацыі. Перапрыбуткі, людскія контрольныя пункты і обработка некорэктных запытаў ёсць часткай продукту, а не елементамі, якія дадаюцца пазней.
Што насправды трэба взяць з гэтаго
Калі працуеце над этапам «Што насправды трэба взяць», спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што вядзецься пад частковым невясненнем. Такі спіс контроля дапамагае заліцвачыць змяны ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, невясненне павінна адносіцца да адной відповядальнасці, а не да заплутанага ланца задач. Зробіце контрольную пунктую пасля дорогіх крокаў. Програма не должна занова ставіць плату за той самы вызов LLM, калі аператар праказвае познейшы вузел.
Справакі
Калі працюеце на стадыі «Апавярэнні», спачатку запісайце контракт: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад часты няудачны рэзультат. Такі спіс пераконтроўкі дапамагае заліцвачваць будучыя змены ў кодзе. Спрыймайце гэтую стадыю як контракт межа данымі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаць крытэрыя успеху і не падтрымайце тыхню частую працу без паведамлення.
Чэк-ліст для эксплуатацыі
На стадыі чэк-ліста для эксплуатацыі, перш чым зменяць код, задаць даныя, адпаведальную особу за крок і крытэрыя завершэння. Аперацыёныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі пераконтроўкі, не падозруючы прыхованага стану.
Зберагаеце настройкі зовні коду прыемліка. Файлы сераўнавання, сховішчы секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аўдыт без неабяжнага чытання всіх элементаў сістэмы.
Неабяжна ўсунуць людскія празгляды для тых элементаў, якія вітрачаюць грошы або зменяюць даныя ў працэсе вырабоцтва. Падключэння пад час компілявання не ўзначае повнасці функцыоналу для бізнесу.
Напісце кароткі посібнік: як зменяць кантрольныя ключы, як спрачыслаць чэргу заданняў, як вярнуць стан да пярэдніх настройкаў.
Документавацыя успішных і варыянтных сцэнарыёў павінна быць аднойчы. Праказкі, людскія празгляды і апрацоўка некорэктных паведамленняў ёсць часткай продукту, а не елементамі, якія дадаюцца пазней.
Неабяжна ўсунуць людскія празгляды для тых элементаў, якія вітрачаюць грошы або зменяюць даныя ў працэсе вырабоцтва. Падключэння пад час компілявання не ўзначае повнасці функцыоналу для бізнесу.
Перш чым запускаць стак, заморозьце версіі, зафіксавце «золаты» транскрыпты для крытычнага шляху і паказайце способы абяроны. У спільных сэрвісах неабходны ліміты частоты запытоў, перакананне ў правільнасці арэндаванага рэсурсу і чысткі власнік для змены секрэтных даных. Валіце простую надзейнасць працоўнікам, чым крэатывныя, але разовыя дамастанты.
Прымітка для 31f7fc24df7f: не кладзіце ключы прадаўцоў у рэпазітарый, задаце ліміт токена на кожную сесію і зберагачыце транскрыпты празаўсёды з фікстурамі для ацэнкі, каб пазнейшыя замены мадэляў заставаліся пораўнанымі.
Калі працуеце над пунктом 0 абяроны, спачатку запісайце умовы: неабходныя даныя, сігнал успеху і што выканаецца пад час частковага абяроны. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі. Спрацоўвайце з гэтым пунктам як з угодай межаў вхідных дадзеных і перакананых выходных рэзультатаў. Назвайце артыфакты, задаце крытэрыя успеху і адмовіцеся ад тыхнявай частковай узавершэнні.
Дзеянне паўжасткі 0/919: звярніце увагу на час выканання, класыя ошыбак і колькасць токенаў, выкорыстаных для гэтай змяны, а пасля, на аднойчынных крэтарах, а не на асобістых спазыраўнях, выявіце, чы хацеце застаўіць гэту змяну.
Этап 1 паўжасткі працуе найэфектывней, калі яго розглядаць як меравальную плошчу. Запісаце адну ідэальную транскрыпцыю, адзін прыклад неудачы і змяну стану сістэмы перад расшырэнням масштаба. Канфігурацыю трэба заставіць параду аплікацыйнага коду; файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аўдыт, не чытаючы весь граф.
Дзеянне паўжасткі 1/919: звярніце увагу на час выканання, класыя ошыбак і колькасць токенаў, выкорыстаных для гэтай змяны, а пасля, на аднойчынных крэтарах, а не на асобістых спазыраўнях, выявіце, чы хацеце застаўіць гэту змяну.
Для 2-й стадзіі практыкы забезпечэння надзеі неабяжна практычна апрэцыя: перад зменым коду трэба чытко ваказаць параметры, адпраўніка кожнага крока і крэтыяры завершэння. Аперацыйныя працавнікі должны магчымае перадзваначыць крок з вядомага пункта контролю, не прымушаныя здагадвацца пра схованы стан сістэмы. Лепш выбіраць маленькія, тэставаныя елементы коду замест большых скрыптов. Калі крок не выйшаў, прычына неудачы должна вказываць на конкрэтную адпраўніку, а не на заплутаны ланцужок задач.
Дакладнасць практыкы забезпечэння надзеі 2/919: памеры часу выканання, класаў адказоў і колькасці выкарыстоўваных рэсурсаў для гэтай практыкі, а потым рашэнне пра тое, чы робіць змены на адной пазнаковай базе, а не на аснове індывідуальных спазыроў.
Калі працуеце над 3-й стадзіяю прыемкі з паўнейшага захавання, спачатку запісайце умовы кантракту: неабходныя даны, сігнал успеху і тое, што выходзіць па частым неудачам. Такі спіс контроля дапамагае заставаць пазнейшыя змены коду чыстымі. Запісвайце час выканання і вартасьць токена або запыту праза функцыйнальныя рэзултаты. Відразувая візуабельнасьць вартасцей запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя асяроддзя.
Дзеянне прыемкі з паўнейшага захавання 3/919: замерьце час выканання, класію паканаў і вітраты токена для гэтай прыемкі, а пасля выберце, чы хацеце застаўіць змену на адной фіксаванай сэтке пытанняў, а не на адной лічбе прыкладаў.
3-я стадзія прыемкі з паўнейшага захавання работае лепей, калі яе спрыямаць як мерыму аб’ект. Запісвайце адну ідэальную транскрыпцыю, адзін прыклад пакана і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштаб. Дакументавайце як успішны, так і вярнэння да пачатковага стану шляхі. Перапрыбуткі, людзкія контролі і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжасткі 4/919: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўляць змяну.
Для 5-го этапа паўжасткі неабходна перад змянай коду адзначыць вхідныя даны, адпаведальнага за выкананне крока і крытэрыяы завершэння. Аперацыйныя працавнікі павінны магчымае перадзвігнуць крок з вядомага пункта контролю, не прымусваныя здагадвацца пра схованы стан. Штодзе гэты этап трэба спрыяваць як кантракт між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назвіце всі неабходныя элементы, адзначыце крытэрыі успеху і не падтрымвайце тыхню частковую рэалізацыю без паведамлення.
Дзеянне паўжасткі 5/919: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўляць змяну.