I’ll give the direction here which I give to companies daily, but at a higher level - you’ll have to work out the specifics on your own.
Descriptions and basics go in the file itself to help with portability. Fill out the properties for the file as @Nick_Boyts mentioned.
Help docs go on a web portal as you can tie to existing learning portals easier that way and embed stuff like walkthrough videos without bloating the file.
Nodes and packages used in any one dyn file can be mined from the JSON structure of the file itself. This can be done manually as Nick pointed out, but really you should just extract the data computationally by what we JSON parser you like. I would recommend limiting parsing to flagging package dependencies only though. I have had a lot of customers ask about identifying ‘what nodes do we use’ but none have shown business value in having that info yet. Package identification has instant value though.
While you are at it I also recommend adding a logger to each graph to track use (you’re already opening the JSON after all), and even setting the properties. The post here has some useful tools for that: Updating python node in multiple scripts - #15 by jacob.small. It also has tools for bulk updating and swapping nodes which you can use as a POC for your own efforts in this space.