Hello Arkanis,
I have a complex issue for you to judge! I hope you are up for it. Before I start, I do not enforce this stuff in game at all. The way the game handles things is completely differently than what I think should work, according to DnD. Anybody who makes a spellcraft check against Robin casting spells identifies the spell as being cast because the game says so.
This came up in a discussion many times on IRC and I was wondering how you think the following works:
Robin casts spells that have (Silent Spell, Still Spell) as a descriptor.
This means that spells cast do not have a verbal or somatic component to them.
According to the online SRD, to spellcraft check a spell you need to see or hear the spell's verbal or somatic components:
http://www.d20srd.org/srd/skills/spellcraft.htm
15 + spell level Identify a spell being cast. (You must see or hear the spell’s verbal or somatic components.) No action required. No retry.
(Does this mean you cannot counterspell such a spell, because you cannot identify the spell as it is being cast?)
Maddeningly, according to the online SRD, to spellcraft check a spell already in place
20 + spell level Identify a spell that’s already in place and in effect. You must be able to see or detect the effects of the spell. No action required. No retry.
(In which case why would anybody cast the spell detect magic to force a spellcraft check over many turns, when you can instantly do it with using spellcraft?)
Finally, another use of spellcraft to identify spells cast at you:
25 + spell level After rolling a saving throw against a spell targeted on you, determine what that spell was. No action required. No retry.
So, now that I have laid out the logic, here is how I think Robin casting a spell works:
Robin casts a spell, anybody who is looking at Robin can see that he is concentrating similar to how any caster concentrates while casting a spell, but he does not speak or move so noticing the concentration is not particularly obvious and does not last any longer than it takes to cast a spell.
Nobody is allowed a spellcraft check to identify the spell, even if you notice that Robin is concentrating. You can use counterspell against Robin, but it must be a dispel magic of some flavor. You cannot cast slow to counter haste for example.
If the spell has a projectile (fireball, ice darts) it is obvious that Robin has cast a spell (The fireball is already coming towards you) but paradoxically you must make a spellcraft check of 20 + spell level to actually identify the fireball as a... fireball.
Otherwise in order to identify the spell you must notice the spell.
If it affects Robin, you can identify the spells effect (Mirror Image, Haste, Spiderskin, spellcraft 20 + spell level) by "investigating" Robin in some way. Checking the spell effects take no action but you must be looking at Robin to "see" the spell effect.
If you are looking at Robin, and he casts a spell that targets something other than what you are looking at (Solipsism targeting somebody else, Gate cast behind you) you do not get to identify the spell until you look at the friend or are otherwise alerted to something being wrong (an angel poking you on the shoulder would be a hint).
If the spell targets a person and has a save, that person is entitled to a check to identify the spell (25 + spell level). This is automatic.
Now for the corner cases:
If Robin casts a spell on you that does not allow a save (Planar Binding, Greater, Mordenkainen's Disjunction, Assay Resistance, Bigby's Forceful Hand):
You
do not get to identify that the spell has been cast (Amazingly scary, and paradoxical; you have a hand all up in your grill and you can't even "detect" it).
If Robin casts invisibility, and you do not have see invisibility up:
You DO get to see that Robin has disappeared, but since you cannot "see" Robin you cannot identify the effect. Because of this Robin casting invisibility and teleport are indistinguishable.
If Robin casts invisibility, and you do have see invisibility up:
You must make a spellcraft check (20 + spell level) to see that Robin is invisible, otherwise (???'s)
If Robin casts Mass Eagle's Splendor, your allies see:
You must make a spellcraft check (20 + spell level) to see the other people are affected by Mass Eagle's Splendor (and you must look at them). Robin's allies cannot see that Mass Eagle's Splendor has been cast on themselves.
If Robin casts Haste, but does not move and you are not paying attention to Robin:
You do not see that Robin has cast Haste. When Robin moves, that is enough attention for people to be allowed a spellcraft check (20 + spell level) to see that Robin has haste cast on him.
Where do you think I have erred? What other oddities can you come up with? I eagerly await your response.