thank you Joker, overwriting spec geometry attribute will not filter per lighting component, sorry I didn't make it clear.

ops:
There are few lights illuminate the same object. I like to switch off specular but still receive diffuse contribution from one of those lights, and other lights illuminate as normal. I used to setup extra light only for this object with specular lighting off, but it's messy when scene gets complex. Wonder if there is something on object or geometry level that combine “light mask” on object node and “light contributions” on light node does per light contribution component filtering.
For shader, I just found ‘lightmask’ does per shading component support.
http://www.sidefx.com/docs/houdini13.0/vex/contexts/shading_contexts#lightmask [
sidefx.com]
I setup a sphere scene with 2 lights(light1, light2) and following code on inlineVop connect to surfaceOutputVOP of a material shader builder.
vector nn=normalize(N);
$f = diffuse(nn, .5, “lightmask”, “light1”) * 2;
Both light illuminate as without “lightmask”, I couldn't get it work.