I am looking for a tool to remove skin inverse bind matrices, so that the inverse bind matrices of the model are just the inverse of the initial orientation. In between the node collapse our loader does on skinned meshes, the unique nature of our animation system, and the complexity of the glTF format it seems unlikely I will ever get this working any other way.

This is the problem. The initial vertex positions are garbage data, and other garbage (the inverse bind matrices) are needed to fix them:

It sounds like it might be a quick fix just by traversing the file structure and manipulating some data in a pre-pass but the relationship between bones and meshes in glTF isn’t exactly straightforward and so far I have had no luck.

Hmm, I’m not sure I understand what you want to do. The vertices of a typical skinned mesh have positions that correspond to some pose of the associated skeleton (for a character this is often a T- or A-pose).

When the skeleton is in that exact pose applying the weighted bone transformations and their inverse bind matrices to a vertex should result in that vertex being exactly the position the mesh was authored in - in other words the weighted bone transformations and inverse bind matrices need to cancel each other out.

It sound like you want the inverse bind matrices to be all identical (if you require that can you also require them to be the identity?). That means the vertex positions need to changed so that just applying the weighted bone transforms puts them back into the authored position. I imagine one side effect of that would be that looking at your skinned mesh without actually applying any skinning (i.e. just using the vertex positions) you just get a pile of polygons clumped around the local origin (whereas the more conventional way you get the mesh in its authored pose).

Unwrap3D already does this. Load a glTF and resave it, and the inverse bind matrices match the initial orientation of the bones. You can remove the inversebindmatrices value from the glTF file and it will still load perfectly. I just need a free command-line tool I can distribute to do this.