How and what to edit depends on the perk and its effect type. Here is a way to seek them out in the code.
First, find the actual perk attribute name. Do this by opening file RESOURCE\INI\texts\russian\AbilityDescribe.txt
Scrolling through the file, we find where Clever Shot equates to the GunProfessional:
GunProfessional {Clever Shot}
We can ascertain this in Program\INTERFACE\perks\perks_init.c
ChrPerksList.list.GunProfessional.descr = "perkGunProfessional";
The .GunProfessional part is an “attribute” and is the name we will look for in the rest of the source code.
Use a tool to search the “content” of the text files in the Program folder (a source code tool like CodeBlocks will help, or a sophisticated, yet free online, text editor like Notepad++ will search the content of an entire directory and its subdirs). Searching for GunProfessional, we find the effect for this one is calculated in Program\loc_ai\LAi_fightparams:
if(IsCharacterPerkOn(attack, "GunProfessional"))
{
p = p + 0.25; //This refers to the 25% increase
}else{
if(IsCharacterPerkOn(attack, "Gunman"))
{
p = p + 0.1; //This refers to the 10% increase for Gunman/The Shootist
}
}