As far as I know there is no written document on spell creation and skill creation. Creating them OLC only allows you to use the affects of spells/skills already implemented. To create a new spell or skill you must code it in. I hope this helps out a bit :)
If you want to make your own spells and skills, the first thing I would recommend you do is to make your own spell/skill files. Mine for example are magic_ds.cpp, magic_ds.h, and skill_ds.cpp
The reason why you should make your own files when adding to the dawn src is so it makes your patching job a lot easier when future releases come out.
Use your .cpp files to place your spell/skill code in and use your personal magic_**.h file to place your spell declarations at.
After you have written your spell code, add your magic_**.h file as an #include to magic.h of the src code.
After you make your #include addition, edit dyntable.cpp with proper spell code and add in the global spell name code to gsn.h (EXTERN shint gsn_<spell/skill name>;)
If you are doing a skill, you will have to modify interp.cpp and interp.h for command interpretation.
For spells, files to modify are:
magic_**.cpp/.h
gsn.h
dyntable.cpp
magic.h (just one time to add your personal header spell file)