Reference for secondary cohomology operations
First the basic idea of secondary cohomology operations is to define homomorphisms from a certain subset of $H^n(X,G)$ to a certain quotient $H^l(X,H)$ that are natural in X; it will be called a secondary operation because one gets this operation from another cohomology operation $H^n(-,G) \to H^m( -,\pi)$.
To get the secondary operation, one needs some relation between the $K(G,n)$ and the $K(H,l)$. One can do this by taking a map(cohomology class) $\phi: \text{ a certain fibration over }K(n,G) \to K(H,l)$. The primary operation $\theta: K(G,n) \to K(\pi,m)$ influences the choice of the secondary operation by making the map $\phi$ be from the pullback of the path space fibration over $K(\pi,m)$ under $\theta$.
Biting the bullet: The 'certain subset' will be all the cohomology classes $u: X \to K(G,n)$ such the induced map $\theta(u)=0$. The operation is defined by sending any such $u$ to a lift of $u$ to the pullback fibration $\theta^*(P(K(\pi,m)))$ composed with the cohomology class $\phi: \theta^*(P(K(\pi,m))) \to K(H,l)$. The lift won't be unique so there is only a well defined map to a quotient of $H^l(X,H)$.
Look at mosher and tangora(since I know that you know this book well) pp 159-160 to learn about secondary cohomology operations. Some good applications of concepts learned earlier in mosher and tangora(discovered after the publication of mosher and tangora) include the fact that they can be defined in terms of k-postnikov invariants. For this you should see Thomas' paper. (Of course you can learn about k-invariants from Hatcher first).