"Restoranda kimin nə qədər ödəməli olduğunu hesablayan kalkulyator hazırla". İlk baxışda aydın görünür, amma təfərrüatlara keçəndə suallar yaranır. Hesabı bərabər bölürük, yoxsa hər kəs öz yeməyinin pulunu ödəyir? Çaypulu hesaba daxildir? Məbləğ hamı arasında bərabər bölünməyəndə nə göstərək?

Tapşırığın təsvirini Claude Code ilə birlikdə hazırlayaq: siz işi izah edib qərarları seçirsiniz, agent onları fayla yazır, siz isə qeydi yoxlayırsınız. Qısa istəklə başlayıb tədricən üzərində işləmək mümkün olan TASK_SPEC əldə edəcəyik.

"Normal hazırla" tapşırıq deyil

Təsəvvür edin: hesabı tez bölmək istəyirdiniz, agent isə qeydiyyat və restoranların tarixçəsini əlavə etdi. Çekləri saxlamaq üçün ona server lazım oldu. Siz brauzerdə bir fayl açacağınızı düşünürdünüz, indi isə işə salma qaydasını öyrənib artıqları silməlisiniz. Hər əlavə ayrılıqda faydalı görünür, amma nəticə artıq niyyətinizdən xeyli uzaqdır.

Kodla işləyərkən deyilməyən məqamlar fayllarda real dəyişikliklərə çevrilə bilər. Belə bir zəncir yaranır:

  • Qeyri-müəyyən istək
  • Agent çatışmayan şərtləri özü tamamlayır
  • Artıq dəyişikliklər yaranır
  • Siz araşdırıb yenidən düzəldirsiniz

Sxemdə buraxılmış bir qərarın necə əlavə işə çevrildiyi göstərilir. Agent əlavə sual verə bilər, amma qeyri-müəyyənliyi dəyişikliklərdən əvvəl görmək daha yaxşıdır. İlk ifadə elə başlanğıcdan istiqamət və sərhədləri müəyyən edə bilər:

Hələ aydın deyil:
Restoranda kimin nə qədər ödəməli olduğunu hesablayan kalkulyator hazırla.

Daha konkret:
Bir səhifə lazımdır: hesabın yekun məbləğini və adam sayını daxil edirik,
hər kəsin payını görürük. Bərabər bölürük.
İstifadəçi hesabları, çeklərin tarixçəsi və yeməklərə görə bölgü olmayacaq.

İkinci istək hələ bütün suallara cavab vermir. Amma birincidən çıxarıla biləcək bir neçə fərqli məhsulu artıq kənarlaşdırır. Sonra agent qalan boşluqları tapmağa və qərarlarınızı qeydə almağa kömək edəcək.

Tapşırıq bir faylda

TASK_SPEC bir tapşırığın şərtlərini qeydə alır: hansı nəticə lazımdır, iş harada bitir və onu necə yoxlayacaqsınız. Adətən layihənin yanında TASK_SPEC.md adlı Markdown faylında saxlanılır. Bu adın arxasında xüsusi format və ya əmr yoxdur. Şərtləri mesajla da ötürmək olar, amma faylı yenidən oxumaq və yeniləmək daha rahatdır.

TASK_SPEC-i özünüz yazmağınız vacib deyil. Onu agentlə birlikdə hazırlayıb qərarlarınızı necə qeyd etdiyini yoxlamaq daha rahatdır. Tapşırığı adi sözlərlə təsvir edə, sualları cavablandıra və ifadələri düzəltməsini istəyə bilərsiniz. Faylı agent aparır, siz isə məzmununu yoxlayırsınız.

  1. nə əldə etmək istədiyinizi təsvir edir və aydın olmayan məqamları müzakirə edirsiniz;
  2. agent variantlar təklif edir, siz uyğun olanı seçirsiniz;
  3. agent qərarı TASK_SPEC-ə yazıb əlavə etdiyi və ya dəyişdirdiyi hissəni göstərir;
  4. fayldakı həmin hissəni oxuyursunuz: məna qorunub, artıq şərt yoxdur və əvvəlki qeydlərlə ziddiyyət yaranmayıb. Nəsə qaydasında deyilsə, düzəltməsini istəyib yenidən yoxlayırsınız.

Ayrı bir qərardan sonra yalnız onun təsir etdiyi sətirləri və əlaqəli şərtləri yoxlamaq kifayətdir. İcraya başlamazdan əvvəl bütün faylı yenidən oxuyun: ayrı-ayrılıqda düzgün görünən qeydlər birlikdə uzlaşmayan tələblər yarada bilər. "Spesifikasiyanı yenilədim" mesajı sənədə məhz nəyin düşdüyünü göstərmir.

TASK_SPEC CLAUDE.md faylından məqsədinə görə fərqlənir. "Layihədəki bütün yazılar azərbaycan dilində olsun" ümumi layihə qaydasıdır. "Bu tapşırıqda çaypulunun hesablanmasını əlavə edirik" isə konkret işin şərtidir. Birincisi CLAUDE.md-də, ikincisi TASK_SPEC-də yer alır.

Sənədin ölçüsü tapşırıqdan asılıdır. Hazır səhifədəki yazı səhvini düzəltmək lazımdırsa, belə bir təsvir kifayətdir:

Hesabı bölmə səhifəsində düymənin yazısını düzəlt:
"Hesapla" → "Hesabla". Başqa heç nəyi dəyişmə.
Yeni yazının göründüyünü və düymənin əvvəlki kimi hesabladığını yoxla.

Bu, qısa TASK_SPEC-dir, bəzən ona tiny spec deyirlər. Burada müzakirə ediləsi çox şey yoxdur. Yeni kalkulyatorun isə davranışının bir neçə mümkün variantı var, ona görə iki sətir kifayət etməyəcək. Nəticəyə təsir edən qərarları yazmaq faydalıdır; başlıqların sayı öz-özlüyündə heç nəyə zəmanət vermir.

Nəticədən başlayaq

Təsəvvür edək ki, hələ layihə yoxdur. Bir dost qrupu səhifəni brauzerdə açmaq, hesab məbləğini daxil etmək və hər kəsin nə qədər ödəyəcəyini öyrənmək istəyir. Agentə ilkin variantı hazırlamağı tapşıraq:

Hesabı bölmə səhifəsi üçün TASK_SPEC.md yarat.
Hələ layihə yoxdur. Hesabın məbləğini və adam sayını daxil edirik,
"Hesabla" düyməsini basandan sonra hər kəsin payını görürük.
Nəticə quraşdırma tələb etmədən brauzerdə açılan index.html olmalıdır.
Razılaşdırılmış şərtləri yaz, naməlum məqamları sual kimi qeyd et.
Yazdığın mətni göstər. Hələ səhifənin kodunu yazma.

Faylın ilk hissəsi üçün nümunə:

## KONTEKST
Restoranda bir dost qrupu ümumi hesabı tez bölmək istəyir.
Hələ layihə yoxdur, iş qovluğu boşdur.

## ARZUOLUNAN DAVRANIŞ
İstifadəçi hesabın məbləğini və adam sayını daxil edir.
"Hesabla" düyməsini basandan sonra hər iştirakçının payını görür.
İşin nəticəsi: quraşdırma tələb etmədən
brauzerdə açıla bilən index.html səhifəsi.

TASK_SPEC.md faylını redaktorda açıb qeydi istəklə tutuşdurun: hər iki sahə, əməl və hər iştirakçı üçün nəticə var. Agent adların daxil edilməsini və ya məcburi qeydiyyatı əlavə edibsə, bunlar razılaşdırılmamış şərtlərdir. Fayldan silməsini istəyib düzəlişi yoxlayın.

İndi səhifədən kimin istifadə edəcəyi və nə əldə edəcəyi aydındır. Həm də artefakt adlandırdıq, yəni agentin işinin konkret nəticəsini: səhifə faylını. Başqa tapşırıqda bu, xəta təhlili və ya kodsuz dəyişikliklər planı ola bilər. Bunu açıq demək daha yaxşıdır.

Diqqət edin, hələ JavaScript funksiyalarını seçməmişik və iştirakçıların necə saxlanacağını deməmişik. Bunlar icra ilə bağlı qərarlardır. Təsvirə insanın görəcəyi məqamları daxil etmək daha vacibdir: giriş məlumatı, əməl və nəticə.

Tapşırığın sərhədləri

İndi ilk versiyanın harada bitdiyini qeyd edək. Agentdən razılaşdırılmış sərhədləri yazıb yenilənmiş bölməni göstərməsini istəyək:

## SCOPE
Bir səhifə: məbləği və adam sayını daxil etmək,
yekun məbləği bərabər bölmək, hər kəsin payını göstərmək.

## NON-GOALS
İstifadəçi hesabları və çek tarixçəsi yoxdur: məlumatları saxlamaq lazım deyil.
Yeməklərə görə bölgü yoxdur: ilk versiyada bərabər bölürük.
İcra məhdudiyyəti: stillər və skript daxilində olan
bir HTML faylı, serversiz və xarici kitabxanalarsız.
Səhifə iki dəfə klikləməklə açılmalıdır.

Bu hissədə yalnız istisnaların olub-olmadığını yoxlamırıq: bərabər bölgü tapşırığın əhatəsində qalmalı, yeməklərə görə bölgü isə kənarda olmalıdır. Agent bunları qarışdırıbsa, səhifə üzərində işə başlamazdan əvvəl sənədi düzəldin.

Scope işin həcmini təsvir edir. Burada olduğu kimi, onu ekran və ssenari ilə müəyyənləşdirmək olar. Dəqiq yollar məlumdursa faydalıdır, amma fayl siyahısından başlamaq vacib deyil. Mövcud layihəni dəyişirsinizsə və lazımi səhifənin harada olduğunu bilmirsinizsə, Claude Code-dan əvvəlcə heç nəyi dəyişmədən onu tapmasını və niyə məhz bu faylı seçdiyini izah etməsini istəyin. Sonra yolu tapşırıq təsvirinə əlavə edin. Bilinməyən məqam ola bilər, uydurmaq olmaz.

Non-goals şüurlu şəkildə kənarda saxladıqlarınızdır. "Çek tarixçəsi olmayacaq" sərhədi "artıq heç nə etmə" ifadəsindən daha aydın göstərir. Qısa səbəb sizə də kömək edəcək: bir həftə sonra məlumatların saxlanmasını nəzərdən keçirib bundan imtina etdiyiniz görünəcək.

İcra məhdudiyyətləri başqa suala cavab verir: hansı üsullar bizə uyğundur? İstifadəçi hesabları lazımsız funksiyadır, server isə burada istisna etdiyimiz həll üsuludur. Qısa sənəddə bu şərtləri bir bölmədə saxlamaq, məhdudiyyət olduqlarını açıq qeyd etmək olar.

Sərhədlər nəticəyə çatmağa imkan verməlidir. Sonradan müxtəlif cihazlarda tarixçəsi olan ümumi istifadəçi hesabları lazım olsa, "bir lokal HTML faylı" tələbini yenidən nəzərdən keçirmək gərəkəcək. Yeni imkan tələb edib eyni vaxtda onu mümkünsüz edən qadağanı saxlamaq olmaz.

Unudulan qəpik

Hələlik hər şey kifayət qədər aydın görünür. Kod yazmazdan əvvəl təsviri yoxlayaq: dost qrupunda üç nəfər var, hesab 1000-dir. Hər kəsə hansı məbləği göstərək?

333,33 + 333,33 + 333,33 = 999,99

Bir qəpik çatmır. Onu birinci iştirakçıya, sonuncuya əlavə etmək və ya seçim imkanı vermək olar. "Bərabər bölürük" ifadəsi bunu həll etmir. Bu artıq JavaScript biliyinizlə bağlı deyil, sizin qərar verməli olduğunuz məsələdir.

Səhifəmiz üçün belə qayda seçək: paylar arasında fərq bir qəpikdən çox olmur; qalıq siyahıdakı ilk iştirakçılara bir qəpik-bir qəpik verilir. Beləliklə, 1000-i üç nəfərə böləndə 333,34; 333,33; 333,33 alınacaq. 1000,01 üçün isə bölüşdürüləcək iki qəpik qalacaq: 333,34; 333,34; 333,33. Bütün pul bölüşdürülür və payların cəmi hesabla üst-üstə düşür.

İndi agentdən seçdiyimiz qərarı sənədə əlavə etməsini istəyək:

Yuvarlaqlaşdırma qaydasını TASK_SPEC.md faylının
arzuolunan davranış bölməsinə yaz.
Dəyişdirilmiş sətirləri göstər. Hələ kodu dəyişmə.

Faylda belə bir qeydin yarandığını yoxlayırıq:

Payların cəmi yekun məbləğə tam bərabərdir.
Paylar arasındakı fərq 0,01-dən çox deyil.
Qalıq qəpiklər ilk iştirakçılara bir-bir verilir;
səhifədə bu qayda izah olunur.

Xüsusilə "ilk iştirakçılara bir-bir" sözlərini diqqətlə oxuyun. Agent "qalıq bütövlükdə birinciyə verilir" yazıbsa, qərarı dəyişib: iki qəpik qalanda birinci qalanlardan 0,02 çox ödəyəcək. Bu sətri düzəltməsini istəyib fayla yenidən baxın. Məna yoxlanılır, sözbəsöz eyni ifadə tələb olunmur.

Tapşırıq təsvirinə rəqəmləri daxil etmək buna görə faydalıdır. Agent öz variantını seçib kod yazmazdan əvvəl çatışmayan qərarı tapdıq. Hələlik cəmi bir neçə sətri dəyişdik.

Qoy sualları Claude versin

Bütün boşluqları özünüz görməyə bilərsiniz. Qaralamanı agentə verib məhz tapşırığın təsvirinə kömək etməsini istəyin:

@TASK_SPEC.md faylını oxu. Çatışmayan şərtləri tapmağa kömək et.
Hər dəfə bir sual ver, hər biri üçün cavab variantı təklif et.
Mən cavab verməyənə qədər öz variantını razılaşdırılmış sayma.
Hər razılaşdırılmış qərardan sonra TASK_SPEC.md faylını yenilə
və yoxlaya bilməyim üçün dəyişdirilmiş hissəni göstər.
Hələ kod yazma.

Aşağıda belə söhbətə nümunə var. Sizin sessiyada suallar fərqli ola bilər; burada cavabların sənədi necə dəyişdirdiyini izləmək vacibdir.

Claude: "Çaypulu hesab məbləğinə daxildir, yoxsa ayrıca əlavə olunur? Təklifim: ilkin dəyəri 0 olan ayrıca faiz sahəsi əlavə edək".
Siz: "Ayrıca. Faizi hesab məbləğindən hesablayırıq, çaypulunu üstünə əlavə edirik və hamısını birlikdə bölürük. Səhifədə çaypulunun məbləğini və yekun məbləği göstər".

Claude: "Çaypulunda qəpiyin kəsr hissəsi alınsa, necə yuvarlaqlaşdıraq? Təklifim: ən yaxın qəpiyə, qəpiyin tam yarısını yuxarı yuvarlaqlaşdıraq".
Siz: "Bəli. Əvvəl çaypulunu yuvarlaqlaşdırırıq, sonra hesaba əlavə edirik. Bundan sonra yekunu bizim qaydaya görə bölürük".

Claude: "Hansı dəyərləri qəbul edirik? Təklifim: nöqtə və ya vergüllə yazılmış müsbət məbləğ, ən azı bir nəfər olmaqla tam adam sayı və mənfi olmayan tam faiz. Səhv olanda sahənin yanında izah göstərək".
Siz: "Uyğundur. Məbləğdə ayırıcıdan sonra ən çox iki rəqəm olsun, minliklər arasında boşluq olmasın. Sahə boşdursa və ya dəyər yanlışdırsa, daha əvvəl hesablamış olsaq belə nəticəni gizlədək".

Təkcə çaypulunu dəqiqləşdirmədik. İndi qəbul edilən giriş, yuvarlaqlaşdırma ardıcıllığı və xəta zamanı davranış da müəyyənləşib. Cavabları yazandan sonra faylın yenilənmiş hissəsini tutuşdurun:

Çaypulu: ilkin dəyəri 0 olan, 0-dan başlayan tam faiz üçün ayrıca sahə.
Çaypulunu hesab məbləğindən hesablayır və ən yaxın qəpiyə yuvarlaqlaşdırırıq;
qəpiyin tam yarısı yuxarı yuvarlaqlaşdırılır.
Yuvarlaqlaşdırılmış çaypulunu hesaba əlavə edir, sonra yekunu bölürük.
Çaypulu, yekun məbləğ və hər kəsin payı göstərilir.
Dəyər boş və ya qəbulolunmazdırsa, nəticə gizlədilir,
uyğun sahənin yanında izah görünür.

Ardıcıllığı yoxlayın: əvvəl çaypulu yuvarlaqlaşdırılır, sonra hesaba əlavə olunur, daha sonra yekun bölünür. Eyni sözlər başqa ardıcıllıqda fərqli tələb yaradardı. Agentdən scope-u da yeniləməsini istəyin: ilk versiyaya çaypulu sahəsi və yekun məbləğin hesablanması əlavə olundu. Onun söhbətdə bunu təsdiqləməklə kifayətlənmədiyinə, hər iki bölməni həqiqətən dəyişdirdiyinə baxın.

Cavab hələ yoxdursa

Agentdən bunu olduğu kimi qeyd etməsini istəyin: "Çaypulunun hesablanma qaydası hələ həll olunmayıb". Variantları müzakirə edə və ya bu funksiyanı ilk versiyadan açıq şəkildə çıxara bilərsiniz. Agentin təklifi seçim etməyə kömək edir, amma öz-özlüyündə sizin tələbinizə çevrilmir.

Nəticə və yoxlama üsulu

"Payların cəmi yekun məbləğə bərabərdir" nəticə tələbidir. "1000, üç nəfər və 0% çaypulu daxil etmək; düyməni basmaq; 333,34, 333,33 və 333,33 görmək" isə yoxlamadır. O, əməli və gözlənilən müşahidəni müəyyən edir.

Agentdən icraya başlamazdan əvvəl belə yoxlamalardan bir neçəsini fayla əlavə etməsini istəyək. Gözlənilən rəqəmləri özümüz tutuşduraq. Yoxsa alınmış nəticə ilə razılaşıb gözləntiləri hiss etmədən hazır səhifəyə uyğunlaşdıra bilərik.

Nə daxil edib nə edirikNə görməliyik
1000; 3 nəfər; 0%. "Hesabla" düyməsini basırıqyekun 1000,00; paylar 333,34 / 333,33 / 333,33
Hesabı 1000,01 edirik və yenidən hesablayırıqyekun 1000,01; paylar 333,34 / 333,34 / 333,33
1000; 3 nəfər; 10%çaypulu 100,00; yekun 1100,00; paylar 366,67 / 366,67 / 366,66
10,05; 3 nəfər; 10%çaypulu 1,01; yekun 11,06; paylar 3,69 / 3,69 / 3,68
1000; 1 nəfər; 0%bir pay 1000,00
Uğurlu hesablamadan sonra məbləği silib hesablayırıq; sonra məbləği qaytarıb 0 nəfər daxil edirikhər iki halda pay görünmür, səhv doldurulmuş sahənin yanında izah var

10,05 olan sətir əməliyyat ardıcıllığını yoxlayır: 10% 1,005 edir, yuvarlaqlaşdırandan sonra 1,01 alınır. Başqa yerdə yuvarlaqlaşdırsaq, yekun fərqli ola bilər. Formatı yoxlamaq üçün bu ssenarini nöqtə ilə də təkrarlayın: 10.05 eyni nəticəni verməlidir. Həmçinin mənfi məbləği, kəsr adam sayını, mənfi və ya kəsr faizi, boş çaypulu sahəsini yoxlayın: hesablamanın nəticəsi göstərilməməlidir.

Hər vacib şərtin öz müşahidəsi var. "Səhifə açıldı" məbləğlərin düzgün olduğunu sübut etmir; eynilə, keçidin düzgün ünvanı lazımi səhifənin yükləndiyini sübut etmir. Tapşırığı verməyinizə səbəb olan davranışı yoxlayın.

TASK_SPEC-i toplayırıq

Agent müzakirə zamanı qərarları fayla yazdı. İndi onu başdan-ayağa oxuyaq: cavablar nəzərə alınıbmı, yoxlamalar tələblərə uyğundurmu, köhnə şərtlər qalıbmı? Nümunəmizin yekun sənədi belə görünür. Onun altı dayağı var: kontekst, arzuolunan davranış, scope, non-goals, yoxlama planı və təhlükəsiz başlanğıc. Başlıqlar lazım olan hissəni tez tapmağa kömək edir, məzmun isə tapşırığı təhlil etdikcə formalaşıb.

# TASK_SPEC.md

## KONTEKST
Bir dost qrupu restoran hesabını bölmək istəyir.
Hələ yeni layihə yoxdur; iş qovluğu boşdur, yalnız TASK_SPEC.md var.

## ARZUOLUNAN DAVRANIŞ
İşin nəticəsi: iki dəfə klikləməklə açılan index.html
və yoxlamanın qısa təsviri.
Səhifədə üç sahə və "Hesabla" düyməsi var:
- hesab məbləği 0-dan böyük, kəsr hissəsi ən çox iki rəqəm;
  ayırıcı nöqtə və ya vergül, minlik ayırıcısı yoxdur;
- adam sayı 1-dən başlayan tam ədəd;
- çaypulu faizi 0-dan başlayan tam ədəd, ilkin dəyər 0.
Çaypulu hesab məbləğindən hesablanıb ən yaxın qəpiyə yuvarlaqlaşdırılır;
qəpiyin tam yarısı yuxarı yuvarlaqlaşdırılır.
Yuvarlaqlaşdırılmış çaypulu hesaba əlavə olunur, sonra yekun bölünür.
Çaypulu, yekun məbləğ və nömrələnmiş iştirakçı payları görünür.
Payların cəmi yekuna bərabərdir, aralarındakı fərq 0,01-dən çox deyil.
Qalıq ilk iştirakçılara bir qəpik-bir qəpik verilir;
səhifədə bu qayda izah olunur.
Dəyər boş və ya qəbulolunmazdırsa, nəticə gizlədilir,
səhv doldurulmuş sahənin yanında izah görünür.

## SCOPE
Bir səhifə: üç sahə, hesablama, izahlar və məbləğlərin göstərilməsi.
Yekunu qeyd olunan qalıq bölgüsü ilə bərabər bölürük.

## NON-GOALS
İstifadəçi hesabları və çek tarixçəsi lazım deyil: məlumatları saxlamırıq.
Yeməklərə görə bölgü etmirik: bu, kalkulyatorun başqa versiyasıdır.
Məhdudiyyət: stillər və skript index.html daxilində,
lokal faylı açmaq üçün serversiz və xarici kitabxanalarsız.

## YOXLAMA PLANI
index.html faylını iki dəfə klikləməklə açın. "Hesabla" düyməsini basın:
- 1000 / 3 nəfər / 0% → 333,34; 333,33; 333,33;
- 1000,01 / 3 / 0% → 333,34; 333,34; 333,33;
- 1000 / 3 / 10% → çaypulu 100,00, yekun 1100,00,
  paylar 366,67; 366,67; 366,66;
- 10,05 / 3 / 10% → çaypulu 1,01, yekun 11,06,
  paylar 3,69; 3,69; 3,68; 10.05 daxil edəndə nəticə eynidir;
- 1000 / 1 / 0% → bir pay 1000,00.
Hər dəfə payları toplayıb yekun məbləğlə tutuşdurun.
Adam sayında sıfır və kəsr, mənfi məbləğ,
mənfi və kəsr faiz, məbləğdə ikidən çox kəsr rəqəmi,
hər sahəni növbə ilə boş qoymağı yoxlayın:
sahənin yanında izah, nəticə gizlidir, hətta əvvəl hesablanıbsa belə.
Payların nömrələnməsini və qəpik bölgüsünün izahını yoxlayın.

## TƏHLÜKƏSİZ BAŞLANĞIC
Tapşırıq təsvirini oxuyun və iş qovluğunun məzmununa baxın.
Orada artıq layihə faylları varsa, dayanıb tapşırığı dəqiqləşdirin;
mövcud faylların üzərinə yazmayın və onları silməyin.
Əvvəlcə kodsuz suallar və plan, sonra təsdiqi gözləyin.
İcra üçün scope-dan kənar dəyişikliklər lazımdırsa,
bu dəyişikliklərdən əvvəl tapşırığı dəqiqləşdirin.

Sənəd həqiqətən lazım olan qərarlarla böyüdü. Orada JavaScript yazmaq üçün addım-addım resept yoxdur, amma çaypulunun necə hesablanacağı və qəpiklərin necə yoxlanacağı aydındır. Sizin tapşırığınızda daha az təfərrüat da kifayət edə bilər.

Öz tapşırıq təsvirinizi hazırlayanda bu qısa yaddaş vərəqindən istifadə edə bilərsiniz:

DayaqÖzünüzdən nə soruşmalı
KONTEKSTİndi nə baş verir və tapşırıq nə üçün lazımdır?
ARZUOLUNAN DAVRANIŞNə işləyəcək və nəticədə nə əldə edəcəyik?
SCOPEHansı ssenarini və layihənin hansı hissəsini dəyişirik?
NON-GOALSNəyi kənarlaşdırdıq və hansı məhdudiyyətləri saxlamalıyıq?
YOXLAMA PLANINə edəcəyik və nə görməliyik?
TƏHLÜKƏSİZ BAŞLANĞICDəyişikliklərdən əvvəl nəyi aydınlaşdırıb razılaşdıracağıq?

Şərtlər dəyişəndə

İndi sizin üçün kiçik yoxlama. İstifadəçi tapşırıq təsvirinə baxıb deyir: "Faiz rahat deyil. Çaypulunu məbləğlə daxil etmək istəyirəm, məsələn, 100". TASK_SPEC-in hansı hissələrini yeniləmək lazım gələcək? Təhlili oxumazdan əvvəl onları sadalamağa çalışın.

Arzuolunan davranışda faiz sahəsi çaypulu məbləği ilə əvəz olunur: mənfi olmayan, nöqtə və ya vergüllə yazılan, kəsr hissəsi ən çox iki rəqəm olan dəyər. İlkin dəyər 0 olaraq qalır. Faiz düsturunu və hesablanmış çaypulunun yuvarlaqlaşdırılmasını silirik: daxil edilmiş məbləği birbaşa hesaba əlavə edirik. Scope-da hesablama, yoxlama planında isə giriş məlumatları və səhv giriş halları dəyişir. Yekunun bölünməsi və non-goals əvvəlki kimi qalır.

"Hesab 1000, çaypulu 100, üç iştirakçı" yoxlaması tanış 366,67; 366,67; 366,66 nəticəsini verəcək. Amma təkcə bu rəqəmlərlə yeni versiyanı 10% çaypulu olan köhnə versiyadan ayırmaq mümkün deyil. Başqa hesab da əlavə edin: 500 üstəgəl sabit 100, iki iştirakçı. Hər kəsə 300 düşməlidir; əvvəlki 10% qaydası 275 verərdi. Qaydanın dəyişdiyini məhz bu yoxlama üzə çıxarır.

Agentdən arzuolunan davranışı, scope-u və yoxlamaları yeniləyib dəyişdirilmiş bütün hissələri göstərməsini istəyin. Faylı açın və əvvəlki faiz düsturunun silindiyinə, yeni yoxlamaların isə məbləğ girişinə uyğun olduğuna əmin olun. Köhnə düsturu və "indi məbləğ kimi" qeydi eyni vaxtda saxlamayın: təsvir yalnız bir cavab verməlidir. Yuxarıdakı əsas nümunədə ilkin faiz variantını saxladıq; burada ona ayrıca bir dəyişiklik nəzərdən keçirdik.

Claude Code ilə birlikdə iş prinsipi

Ayrı dəyişiklikləri yoxlayandan sonra icranı başlatmazdan əvvəl bütün TASK_SPEC-i yenidən oxuyun. Məqsədin, sərhədlərin və yoxlamaların eyni tapşırığı təsvir etdiyinə əmin olun. Sonra faylı agentə açıq şəkildə göstərin:

@TASK_SPEC.md faylını oxu. Əvvəl ziddiyyətlərin
və ya dəqiqləşdirilməli şərtlərin olub-olmadığını yoxla.
Qısa planı və yaradacağın, yaxud dəyişdirəcəyin faylların siyahısını göstər.
Plan təsdiqlənənədək kodu dəyişmə.

İcradan əvvəl yoxlaya biləcəyiniz bir şey var. Planda çekləri saxlamaq üçün server görünsə, yenidən işlənməsini istəyin: tarixçə tapşırıqdan çıxarılıb, səhifə isə lokal açılmalıdır. Plan uyğundursa, icraya icazə verin. Sonra alınan faylı açıb qeyd olunmuş ssenariləri, o cümlədən uğurlu hesablamadan sonrakı səhv girişi yoxlayın.

Non-goals mətn şərtləri olaraq qalır, dəyişiklikləri texniki cəhətdən bloklamır. Buna görə həm planı, həm də nəticəni yoxlamaq vacibdir. Agentin "hazırdır" mesajı nə etdiyini anlamağa kömək edir, amma sizin nəzarət rəqəmlərinizi əvəz etmir.

İş bitəndən sonra TASK_SPEC-i layihədə saxlayırsınızsa, tapşırığı tamamlanmış kimi qeyd edin. İş davam etdiyi müddətdə isə fayldakı qərarları aktual saxlayın. Agentə ifadələri hazırlamağı və qeydə almağı tapşırın, qərarları isə sənədin özündə yoxlayın: müzakirədən sonra dəyişən hissəni, icradan əvvəl bütün faylı.