Decided to see if I could get this to work on a clean install.  Besides what was already cited above, here is what I added into the code and the compiling error I got:
Code:
In Interpreter.c...
  { "socials"  , "socials" , POS_DEAD    , do_commands , 0, SCMD_SOCIALS },
  { "split"    , "split"   , POS_SITTING , do_split    , 1, 0 },
+  { "spy"      , "spy"     , POS_STANDING, do_spy      , 1, 0 }, // Added for Spy skill
  { "stand"    , "st"      , POS_RESTING , do_stand    , 0, 0 },
  { "stat"     , "stat"    , POS_DEAD    , do_stat     , LVL_IMMORT, 0 },
  { "steal"    , "ste"     , POS_STANDING, do_steal    , 0, 0 },
In Spells.h...
#define SKILL_STEAL                 139 /* Reserved Skill[] DO NOT CHANGE */
#define SKILL_TRACK		            140 /* Reserved Skill[] DO NOT CHANGE */
+ #define SKILL_SPY                   141
In spell_parser.c...
  skillo(SKILL_TRACK, "track");
  skillo(SKILL_WHIRLWIND, "whirlwind");
+  skillo(SKILL_SPY, "spy");
In class.c...
  /* THIEVES */
  spell_level(SKILL_SNEAK, CLASS_THIEF, 1);
+  spell_level(SKILL_SPY, CLASS_THIEF, 1);
  spell_level(SKILL_PICK_LOCK, CLASS_THIEF, 2);
  spell_level(SKILL_BACKSTAB, CLASS_THIEF, 3);
  spell_level(SKILL_STEAL, CLASS_THIEF, 4);
And finally... the error that comes up:
interpreter.c:304:44: error: ‘do_spy’ undeclared here (not in a function)
 
Anyways, hope this helps find the problem. It's probably something easy that's being overlooked. I'm trying to remember the one step I'm forgetting...