SSD Nodes Learn 🎉 VPS kutoka $5.50/mwezi
Mwongozo Matt ConnorNa Matt Connor · Imeboreshwa 2026-08-13

Kwa nini mawakala wa code hupuuza maelekezo yako?

Je, wakala wako wa AI anapuuza maagizo yako ya stop? Jifunze sababu nne za kiufundi zinazosababisha hitilafu hii na jinsi ya kutatua tatizo hilo kabla ya kuandika upya sheria.

Kwa nini mawakala wa uandishi wa code hupuuza maelekezo yako

Mawakala wa uandishi wa code hupuuza maelekezo yako kwa sababu nne, na hakuna hata moja inayotokana na wewe kuwa na adabu kupita kiasi. Sheria hiyo haikuwepo kwenye context window. Sheria hiyo ilikuwa ya jumla mno kiasi kwamba haiwezi kutumika kuthibitisha hatua fulani. Kitu kingine kwenye muktadha kilipingana nayo, kwa kawaida ni code ambayo wakala alikuwa ameisoma punde. Au sheria hiyo bado imepakiwa lakini iko mbali sana nyuma ya hatua ya sasa, na wakala anafanya kazi kulingana na kile kilicho karibu naye.

Kila sababu ina suluhisho lake, kwa hivyo kazi ya kwanza ni kuzitofautisha. Herufi kubwa na neno IMPORTANT si utambuzi wa tatizo. Mbinu zifuatazo zinatumia Claude Code kama mfano wa kazi, kwa sababu tabia yake ya kupakia na kubana data imeandikwa kwa kina kufikia Agosti 2026. Zana nyingine hutofautiana katika maelezo madogo lakini hufanya kazi kwa njia ile ile kimsingi.

Maneno mawili kwanza. Context window ni kizuizi cha maandishi ambacho modeli hukiona katika hatua fulani: system prompt, faili zako za maelekezo, mazungumzo, na kila faili ambayo wakala ameisoma. Harness ni programu inayozunguka modeli, kitu kinachosoma faili kutoka kwenye disk na kukusanya kizuizi hicho. Karibu kila malalamiko katika chapisho hili ni malalamiko kuhusu harness, si kuhusu modeli.

Faili la maelekezo ni ujumbe, siyo mpangilio

Faili la maelekezo siyo configuration. Hakuna sehemu yoyote katika runtime inayosoma CLAUDE.md na kuitekeleza kwa lazima. Harness husoma faili hilo kutoka kwenye diski na kubandika maandishi hayo kwenye mazungumzo. Katika Claude Code, maudhui hayo huwasilishwa kama ujumbe wa mtumiaji uliowekwa baada ya system prompt, jambo linalomaanisha kuwa modeli huona sheria zako kwa namna ile ile inayoona kitu kingine chochote ulichoandika.

Hali hiyo ina matokeo yasiyopendeza. Sheria zako hushindana na kila kipande kingine cha maandishi kwenye dirisha hilo, zikiwa katika hadhi sawa. Sheria ni madai. Faili ambalo wakala (agent) amelifungua hivi punde ni ushahidi. Pale ambapo hayo mawili yanapokinzana, ushahidi mara nyingi hushinda, na hakuna kinachotoa error, kwa sababu kwa mtazamo wa modeli, hakuna kilichoharibika.

Nyaraka rasmi zinasema hivi waziwazi: faili za maelekezo huchukuliwa kama muktadha (context), siyo configuration inayotekelezwa kwa lazima. Ili kuzuia kitendo chochote bila kujali kile ambacho modeli imeamua, unahitaji hook, siyo sentensi. Shikilia mstari huo. Nyingi ya suluhisho mwishoni mwa chapisho hili ni mstari huo uliotumika kwenye kisa maalum.

Which instruction files load, and when

Claude Code walks up the directory tree from the directory you started it in. Every CLAUDE.md and CLAUDE.local.md from the filesystem root down to your working directory loads in full at launch. They are concatenated in that order, so the file closest to where you launched is read last, and within one directory the .local file is appended after the main one.

Files in subdirectories below your working directory behave differently. They do not load at launch. They load when the agent reads a file in that directory. The same is true of path scoped rules in .claude/rules/ that carry a paths: frontmatter field: they enter the context when a matching file is read, not on every turn.

That one difference explains a large share of reported failures. You put a rule in packages/api/CLAUDE.md, you ask a question about the API, and the agent answers without ever opening a file under packages/api/. The rule was not ignored. It was never present. If your repository splits guidance across per package instruction files in a monorepo, this is the first thing to check, every time.

One more loading trap, and it is the most common version of "the agent ignored my instructions": Claude Code reads CLAUDE.md, not AGENTS.md. A repository that standardised on AGENTS.md and has no CLAUDE.md gives Claude Code nothing to load at all. The supported bridge is a CLAUDE.md whose first line is @AGENTS.md, which imports the file at launch, with any Claude specific notes underneath. A symlink works too when you have nothing extra to add. Deciding what belongs in that file in the first place is a separate question, covered in splitting agent instructions from human documentation.

Thibitisha faili imepakiwa kabla ya kuandika upya

Usibadilishe maandishi yoyote hadi uwe na uthibitisho kuwa wakala anaweza kuona faili hiyo. Kuna ukaguzi mbili, na ule rahisi hufanyika kwanza.

Tekeleza /context ndani ya session. Amri hii huchapisha dirisha la sasa likiwa limegawanywa kulingana na kategoria, na orodha ya Memory files hutaja kila faili ya maelekezo ambayo imepakiwa kikamilifu. Faili isiyokuwepo kwenye orodha hiyo haipo kwenye mazungumzo, kwa hivyo chochote unachoandika ndani yake hakitakuwa na athari. /memory huorodhesha maeneo ya faili na kuzifungua kwa ajili ya kuhaririwa, ikiwemo zile ambazo bado hazijaundwa.

Kwa jibu la uhakika zaidi, fuatilia upakiaji wa faili. Tukio la hook la InstructionsLoaded hufanya kazi kila wakati CLAUDE.md au faili ya sheria inapoingia kwenye muktadha, na kichujio chake hukuambia sababu ya upakiaji huo: session_start, nested_traversal, path_glob_match, include, au compact. Weka hili kwenye .claude/settings.json:

{
  "hooks": {
    "InstructionsLoaded": [
      {
        "matcher": "nested_traversal",
        "hooks": [
          {
            "type": "command",
            "command": "cat >> /tmp/instructions-loaded.log"
          }
        ]
      }
    ]
  }
}

Hook hupokea data yake kama JSON kupitia standard input, kwa hivyo cat huongeza rekodi nzima. Ifuatilie kwa kutumia tail -f /tmp/instructions-loaded.log wakati unafanya kazi. Hali ya kutoka (exit status) ya tukio hili hupuuzwa, kwa hivyo hook inaweza tu kuchunguza, haiwezi kuzuia. Ikiwa faili yako iliyowekwa ndani haionekani kwenye logi hiyo wakati wa session ambapo uliitarajia, acha kuandika upya. Tatizo ni mahali faili ilipowekwa.

Athari za kipindi kirefu cha mazungumzo kwenye sheria zako

Kuna athari mbili tofauti zinazojitokeza, na zinahitaji majibu tofauti.

Umbali. Sheria iliyowekwa katika zamu ya 1 bado iko ndani ya dirisha la muktadha katika zamu ya 90, lakini sasa inashindana na zamu 90 za maandishi ambayo ni ya hivi karibuni na mahususi zaidi kwa kile unachokifanya sasa. Huwezi kurekebisha hili kupitia usanidi, lakini unaweza kulipima. Tekeleza kazi ileile katika kipindi kipya cha mazungumzo. Ikiwa sheria inafanya kazi hapo lakini inafeli baada ya muda mrefu wa mazungumzo, basi umbali ndio sababu.

Ufupishaji (Compaction). Dirisha linapojaa, mfumo hufupisha mazungumzo yaliyopita na kuendelea kutoka kwenye muhtasari huo. Kinachobaki ni kile ambacho mfumo wa ufupishaji ulihukumu kuwa muhimu, ambacho si sawa na kile unachokiona wewe kuwa muhimu. Claude Code huandika matokeo kwa kila utaratibu, na tofauti zake ni kubwa. Mzizi wa mradi CLAUDE.md na sheria zisizo na upeo (unscoped rules) huingizwa tena kutoka kwenye diski baada ya ufupishaji. Kumbukumbu ya kiotomatiki (Auto memory) huingizwa tena kutoka kwenye diski. Sheria zenye paths: katika sehemu ya mwanzo (frontmatter) hupotea hadi faili husika lisomwe tena. Faili za CLAUDE.md zilizowekwa ndani ya folda ndogo hupotea hadi faili lililo ndani ya folda hiyo ndogo lisomwe tena.

Panga maelekezo yako kulingana na jedwali hilo na utaona mpangilio wa udhaifu. Sheria uliyoiandika kwenye gumzo pekee ndiyo kitu dhaifu zaidi katika kipindi hicho: inabaki tu ikiwa muhtasari uliamua kuihifadhi. Sheria iliyo katika packages/api/CLAUDE.md inafuata, kwa sababu ilisomwa mara moja, ikafutwa kwenye muhtasari, na inarudi tu kwenye usomaji unaofuata katika folda hiyo. Sheria iliyo kwenye faili ya mzizi wa mradi ndiyo inayodumu zaidi, kwa sababu inasomwa tena kutoka kwenye diski kila wakati.

Kwa hivyo, ikiwa maelekezo lazima yadumu kwa kipindi chote cha mazungumzo, yanapaswa kuwekwa kwenye faili ya mzizi wa mradi bila paths: katika sehemu ya mwanzo. Kila kitu kingine ni uamuzi wa kimkakati unaopaswa kuufanya kwa makusudi. Kusimamia kinachobaki kwenye dirisha la muktadha inashughulikia /compact kwa kutumia hoja ya mwelekeo (focus argument) na /clear kati ya kazi zisizohusiana, ambazo zote hubadilisha mara ngapi mfumo wa ufupishaji huamua sheria zako zilikuwa nini.

Kwa nini msimbo uliopo unashinda kanuni

Hii ndiyo hitilafu ambayo watu huielezea mara nyingi zaidi na kuifanyia uchunguzi kidogo zaidi. Faili yako inasema ufikiaji wa hifadhidata hupitia safu ya repository. Wakala (agent) huandika handler inayopiga ORM (object relational mapper) moja kwa moja. Hukupuuzwa kwa sababu ya mtindo. Ulishindwa kwa kura kutokana na ushahidi.

Kanuni inaelezea upendeleo. Msimbo unaonyesha mmoja. Wakala anapofungua faili tatu katika moduli inayokaribia kuhaririwa na zote tatu zinapiga ORM moja kwa moja, muktadha unashikilia sentensi moja ya kinadharia upande mmoja na mifano mitatu halisi, ya hivi karibuni, na inayolingana na kazi upande mwingine. Kunakili mtindo wa ndani kwa kawaida ni tabia sahihi. Ni makosa hapa kwa sababu tu unajua kitu ambacho muktadha haukijui: faili hizo ni za kizamani (legacy).

Kwa hiyo, andika hilo kwenye kanuni. Kanuni zinazotaja ushahidi wao wa kukanusha hustahimili kukutana na repository halisi. Kanuni zinazoeleza upendeleo mtupu hazistahimili.

Ufikiaji mpya wa hifadhidata lazima upitie app/repositories/. Faili zilizo chini ya app/legacy/ bado zinapiga ORM moja kwa moja. Huo ni msimbo wa zamani, siyo mtindo. Usiunakili.

Sentensi ya pili inafanya kazi hiyo. Inamwambia wakala kile anachokaribia kukikuta na jinsi ya kukisoma, kabla hajajikuta nacho. Marekebisho hayohayo yanatumika kwa kanuni yoyote ambayo repository yako inapingana nayo waziwazi: mtindo wa commit ambao historia yako haufuati, mpangilio wa majaribio ambao nusu ya suite yako inaupuuza, au mkataba wa import unaotumika kwenye msimbo mpya pekee. Popote ambapo msimbo haukubaliani na faili, taja kutokubaliana huko ndani ya faili.

Kanuni isiyoeleweka haiwezi kukaguliwa, kwa hivyo haiwezi kufuatwa

"Andika code safi." "Usifanye usanifu kupita kiasi." "Iweke rahisi." "Kuwa mwangalifu na uhamiaji wa data." Hakuna kati ya hizi inayoweza kupimwa dhidi ya kitendo maalum, na wakala au na wewe mwenyewe. Wakala anayepewa kanuni ambayo hawezi kuikagua dhidi ya matokeo yake anabahatisha, na wewe unakadiria ubahatishaji huo kwa hisia.

Hapa kuna jaribio la kutumia kwa kila mstari kwenye faili yako. Andika amri ya shell ambayo itatoka na exit code isiyo sifuri wakati kanuni imevunjwa. Ikiwa huwezi kuandika amri hiyo, kanuni hiyo haiwezi kukaguliwa. Linganisha jozi hizi:

  • Haiwezi kukaguliwa: "Weka functions ndogo." Inayoweza kukaguliwa: "Function ndefu zaidi ya mistari 60 inahitaji maoni juu yake yakielezea sababu."
  • Haiwezi kukaguliwa: "Jaribu mabadiliko yako." Inayoweza kukaguliwa: "Endesha npm test na ubandike idadi ya makosa kabla ya kusema kazi imekamilika."
  • Haiwezi kukaguliwa: "Weka faili zikiwa zimepangwa." Inayoweza kukaguliwa: "HTTP handlers hukaa katika src/api/handlers/. Hakuna kingine kinachopaswa kuingia kwenye saraka hiyo."
  • Haiwezi kukaguliwa: "Pangilia code vizuri." Inayoweza kukaguliwa: "Tumia nafasi 2 za indentation katika faili za .ts."

Ukubwa ni tatizo lilelile lililovaa kofia tofauti. Mwongozo wa Claude Code unalenga chini ya mistari 200 kwa kila faili ya maelekezo na unasema moja kwa moja kuwa faili ndefu hupunguza utiifu. Faili ya mistari 700 si maelekezo thabiti zaidi. Ni mistari 700 ya madai yenye nafasi zaidi ya kujipinga yenyewe, na inatozwa dhidi ya window yako katika kila zamu, jambo ambalo linaonekana moja kwa moja katika matumizi yako ya token. Kupanga faili ili kila kanuni ikae chini ya kichwa cha habari ambacho msomaji anaweza kukichanganua kimefunikwa katika kuandika faili ya maelekezo ambayo wakala anaweza kuifanyia kazi.

Jinsi ya kuitambua ndani ya dakika kumi

Tekeleza hatua hizi kwa mpangilio. Kurukia hatua ya mwisho ndiyo sababu watu huishia na faili ndefu ya sheria zilizopigwa kelele ambazo bado hazifanyi kazi.

  1. Thibitisha kuwa imepakiwa. Tekeleza /context na usome orodha ya faili za Memory. Ikiwa faili haipo, rekebisha eneo lake na usimame. Hakuna hatua nyingine katika orodha hii inayohusika kwa sasa.
  2. Zalisha upya katika kikao kipya. Anzisha kikao kipya na upe kazi ndogo zaidi ambayo inapaswa kuchochea sheria hiyo. Kufanya kazi hapa lakini kushindwa katika kikao kirefu kunaashiria umbali au mgandamizo (compaction). Kushindwa hapa pia inamaanisha sheria yenyewe ndiyo tatizo.
  3. Ondoa ushindani. Omba mabadiliko yaleyale katika saraka ambayo msimbo wake uliopo tayari unafuata sheria hiyo. Ikiwa utiifu utarejea, msimbo unaozunguka ulikuwa ukipinga sentensi yako.
  4. Tafuta mgongano. Faili mbili zinazotoa mwongozo tofauti kwa tabia moja ni hitilafu iliyoandikwa: modeli inaweza kuchagua moja kiholela, na haitakuambia kuwa imefanya hivyo.
  5. Ifanye iweze kukaguliwa na ujaribu tena. Andika upya sheria kwa njia mahususi na sharti fulani. Rukia kubwa katika utiifu inamaanisha uundaji wa maneno ndiyo ulikuwa chanzo chako.

Hatua ya 4 ni amri moja. Tafuta (grep) kila chanzo cha maelekezo kwa ajili ya mada hiyo, siyo tu faili uliyokuwa ukihariri:

grep -rni "migration" --include="CLAUDE.md" --include="CLAUDE.local.md" .
grep -rni "migration" .claude/rules/ ~/.claude/CLAUDE.md ~/.claude/rules/ 2>/dev/null

Matokeo katika faili mbili zinazosema mambo tofauti ndiyo hitilafu yako. Futa moja. Usijaribu kuzipanga kwa kutumia maneno makali zaidi, kwa sababu hakuna injini ya kupanga (ranking engine) ya kukata rufaa.

Mbinu za kurekebisha, kulingana na ufanisi wake

Kila hatua hapa chini ina ufanisi mkubwa zaidi kuliko ile iliyotangulia, lakini inahitaji gharama kubwa zaidi ya usanidi. Anza juu wakati sheria ni rahisi kurekebisha. Shuka chini pale sheria inapokuwa muhimu kiasi kwamba makosa ya mara kwa mara hayakubaliki.

  1. Fanya sheria iwe dhahiri. Taja njia (path), amri (command), au sharti. Ongeza ushahidi wa kukanusha ambao wakala (agent) ataupata kwenye hazina (repository), kama ilivyoonyeshwa awali. Hii haina gharama na inatatua sehemu kubwa ya matatizo ya kushangaza.
  2. Iweke karibu na kile inachokidhibiti. CLAUDE.md iliyowekwa ndani ya nyingine, sheria inayohusu njia maalum katika .claude/rules/, au maoni (comment) juu ya faili yenyewe. Sheria hiyo itasomwa wakati uleule wa kusoma msimbo (code) unaohusika. Kubali mabadilishano: chochote kinachopakiwa kwa njia hiyo hupotea wakati wa compaction inayofuata na kurejea wakati wa usomaji unaofuata unaolingana.
  3. Hamishia utekelezaji kwenye hook. Maandishi huomba. Hook huamua. Hook huendeshwa kama msimbo katika matukio maalum ya lifecycle na hutumika bila kujali kile mfano (model) unahitimisha.
  4. Ipe sheria hiyo zana ya kiotomatiki (deterministic tool) na ufute maandishi. Uumbizaji (formatting), mpangilio wa import, urefu wa mstari, import zilizopigwa marufuku, umbo la ujumbe wa commit. ruff format, prettier --write, eslint, au hook ya pre-commit. Kifaa cha kuumbiza (formatter) huwa sahihi kila wakati na hakitumii token. Sentensi huwa sahihi mara nyingi lakini hutumia token kila inapogeuzwa.

Hatua ya 3 kwa ukamilifu. Tuseme faili za migration hazipaswi kuhaririwa na wakala. Iweke hii katika .claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/guard-migrations.sh"
          }
        ]
      }
    ]
  }
}

Na hii katika .claude/hooks/guard-migrations.sh:

#!/usr/bin/env bash
set -euo pipefail

path=$(jq -r '.tool_input.file_path // empty')

case "$path" in
  */migrations/*)
    echo "Files under migrations/ are written by hand. Stop and ask first." >&2
    exit 2
    ;;
esac

exit 0

Endesha chmod +x .claude/hooks/guard-migrations.sh, kisha anza kikao kipya na umwombe wakala kuhariri faili chini ya migrations/. Uhariri huo utakataliwa na ujumbe wako utarudi kama sababu. Exit status 2 kwenye PreToolUse huzuia wito wa zana (tool call) kabla haujaanza, na maandishi yako ya stderr hupewa mfano kama ujumbe wa kuzuia. ${CLAUDE_PROJECT_DIR} inarejelea mzizi wa mradi (project root), kwa hivyo hook hufanya kazi bila kujali saraka (directory) ambayo wakala yupo. Wakala hahitaji kukubaliana na sheria, kukumbuka sheria, au kuwa na sheria katika muktadha. Uhariri hautafanyika.

Kwa kizuizi cha jumla kisicho na mantiki yoyote, permissions.deny katika mipangilio yako hufanya kazi hiyo hiyo bila hati ya kudumisha, na njia za ruhusa huamua nini kinaendeshwa bila kukuuliza kwanza. Ikiwa maelekezo yanapaswa kuwa katika kiwango cha system prompt badala ya ujumbe wa mtumiaji, --append-system-prompt huiweka hapo, ingawa lazima ipitishwe kila wakati inapoitwa, jambo linalofaa hati (scripts) zaidi kuliko kazi ya maingiliano.

Mambo ambayo huwezi kuyaondoa kwa maelekezo

Eleza wazi ni sehemu ipi ya kazi hii ni yako. Mpangilio, uundaji wa sentensi, migogoro kati ya faili, na ukubwa wa faili ni matatizo ya mwandishi yanayohitaji marekebisho ya mwandishi. Sehemu nyingine ni tabia ya mfumo, na maneno bora hayataiondoa.

Kukubali siyo kutii. Wakala atakubali sheria, atairudia kwako kwa usahihi, na kuivunja baada ya hatua mbili za zana. Kukubali hakugharimu chochote na hakutabiri chochote. Usikichukulie kama marekebisho, na usikihesabu kama jaribio.

Baadhi ya tabia ni sugu. Kuongeza maoni, kuongeza ushughulikiaji wa makosa wa kujilinda, kuandika muhtasari wa kuhitimisha, kuendesha amri inayofuata iliyo dhahiri. Hizi hurudi chini ya sheria inayozipiga marufuku, kwa kiwango kilichopungua badala ya kutoweka kabisa. Unaweza kupima kiwango chako mwenyewe: endesha kazi ileile mara kumi katika vipindi vipya na uhesabu ukiukaji. Pale ambapo namba hiyo inahitaji kuwa sifuri, sheria hiyo lazima iondolewe kwenye prompt.

Kipindi chako mwenyewe kinakuwa mfano. Ikiwa wakala alivunja sheria katika hatua ya 12 na ukamwacha apite, ukiukaji huo sasa unakaa kwenye muktadha kama onyesho, na ni wa hivi karibuni zaidi kuliko sheria yenyewe. Sahihisha ukiukaji pindi tu unapoona. Ukiukaji ambao haukurekebishwa hufundisha kipindi chote kilichobaki.

Faili ya maelekezo siyo mpaka wa usalama. Inaunda tabia na haitekelezi kwa nguvu. Kitu chochote ambacho kukosea kwake ni ghali, vitambulisho au amri za uharibifu, ni mali ya ruhusa au hook. Kuweka siri mbali na uwezo wa wakala inatumia kanuni hiyo hiyo kwa data: usimwombe wakala asisome faili, panga faili hiyo isiweze kusomeka.

Toleo fupi. Thibitisha kuwa faili imepakiwa, fanya sheria iweze kukaguliwa, ihamishe karibu na kitu inachokisimamia, na wakati kiwango cha kukosea bado ni muhimu, iondoe kwenye maandishi ya kawaida. Sheria ambayo wakala hawezi kuipuuza ni sheria ambayo haikuwahi kuombwa kwa wakala.

FAQ

Kwa nini Claude Code inapuuza CLAUDE.md yangu?

Hakikisha kuwa faili imepakiwa kabla ya kudhani imepuuzwa. Tekeleza /context na uangalie orodha ya Memory files; faili ambayo haijaorodheshwa hapo haipo kwenye mazungumzo. Faili za maelekezo hutumwa kama ujumbe wa mtumiaji baada ya system prompt na huchukuliwa kama muktadha badala ya usanidi wa lazima, kwa hivyo hakuna hakikisho la utiifu mkali. Kesi nyingi za kweli husababishwa na moja ya mambo manne: faili iko kwenye subdirectory ambayo wakala haijasoma, faili mbili zinakinzana na modeli ikachagua moja kiholela, kanuni ni ya jumla mno ili kulinganisha na kitendo, au msimbo unaozunguka unaonyesha kinyume cha kile kanuni inachosema.

Je, kuhariri faili ya maelekezo katikati ya kipindi cha kazi hubadilisha chochote?

Hapana kwa nakala iliyo tayari kwenye mazungumzo. Faili zilizo juu ya working directory yako hupakiwa kikamilifu wakati wa kuanzisha, kwa hivyo maandishi ambayo modeli inayo ni yale ya wakati wa kuanzisha. Ili kutumia marekebisho, anza kipindi kipya, au mwambie wakala asome faili hiyo kwa kutumia zana zake za kawaida za faili, jambo ambalo huweka toleo la sasa kwenye mazungumzo kama ujumbe mpya. Baada ya compaction, faili ya root ya mradi husomwa tena kutoka kwenye diski, kwa hivyo toleo jipya hufika wakati huo pia.

Ni faili ipi inayoshinda wakati CLAUDE.md ya root na ile ya ndani zinapokinzana?

Hakuna inayoshinda kwa uhakika. Faili zilizogunduliwa huunganishwa kwenye muktadha badala ya kubatilishana, zikipangwa kutoka kwenye root ya mfumo wa faili hadi kwenye working directory yako, kwa hivyo faili iliyo karibu zaidi husomwa mwisho. Hakuna injini ya kipaumbele inayotatua migongano, na nyaraka za Claude Code zinasema kuwa kanuni zinazokinzana zinaweza kutatuliwa kiholela. Andika faili za ndani kama nyongeza zinazotaja njia (path) zinazozisimamia, na ufute mgongano badala ya kujaribu kuushinda.

Je, maelekezo yangu hubaki baada ya /compact?

Inategemea jinsi yalivyopakiwa. Faili ya root ya mradi CLAUDE.md, kanuni zisizo na upeo (unscoped rules), na kumbukumbu ya kiotomatiki huingizwa tena kutoka kwenye diski baada ya compaction. Kanuni zenye paths: frontmatter na faili za CLAUDE.md zilizomo kwenye subdirectories hupotea hadi faili inayolingana isomwe tena. Chochote ulichoandika kwenye chat hubaki tu ikiwa summariser imekihifadhi. Ikiwa kanuni lazima idumu katika kipindi chote cha kazi, iweke kwenye faili ya root ya mradi bila paths: frontmatter.

Ni lini kanuni inapaswa kuwa hook badala ya maelezo ya kawaida?

Wakati uthibitishaji ni wa kideterministi na gharama ya kukosa ni kubwa kuliko gharama ya kuandika script ndogo. Vizuizi vya njia ya faili (file path), amri zinazohitajika kabla ya commit, na wito wa zana zilizopigwa marufuku zote zinafaa. Hook ya PreToolUse inayotoka (exit) na status 2 huzuia wito wa zana moja kwa moja na kurudisha maandishi yako ya stderr kwa modeli kama sababu, kwa hivyo inabaki bila kujali kama kanuni bado iko mahali popote kwenye muktadha. Chochote ambacho formatter au linter inaweza kuamua kinapaswa kumilikiwa na zana hiyo na kufutwa kabisa kutoka kwenye faili ya maelekezo.