Hi everybody,

I went a few times through the tutorial on writing Java source Forge commands. Great effort! It was about time we have things like this (which is more a bad feedback for me, as I wanted to write something like this for quite a long time, but I haven't yet done it ;)).

So, here is some things that I think can be improved:

- Shouldn't the FAQ and the tutorial be separate documents?
- Where did the UML diagram of the commands type structure go?
- According to the title and to the introductory paragraphs of the tutorial section, a reader would feel that this is a generic paper about writing Forge commands in their own addon (something like in the Developing Forge section in the HoL). However, it is more about extending existing [core] addons with new commands. So maybe this could be stated more explicitly in the title?
- The Metada.name method gets a string which is by convention something like "<command group>: <command name>". Maybe it could be explained how would this translate on the command line and in the IDE, what are the common command groups and what is the convention for the command names
- I personally need a better explanation about the difference between @AddonDeployments and ShrinkWrap.addAsAddonDependenies
- It would be clearer if the UITestHarness and ShellTest classes and their purpose should be introduced right before the test methods that they are used in (checkCommandMetadata and checkCommandShell respectively) and not in the beginning of the section. Thus the reader does not lose the context around those test helper classes at the point they are used for the first time
- In the beginning of the Let's add some business code section you refresh the readers about our goal (i.e. to create a constraint class), but not about the Forge command that we wrote before the test section. It may be a good idea to remind the reader about that as well, so that she does not have to scroll up to find what she did so far
- It would be a good idea to have a few sentences about what is a facet before it is introduced for the first time in testCreateNewPayload method
- There are some typos

I suppose that you can turn reviewing on and I can do myself some of the most obvious fixes (like the typos for example), which you can review afterwards?

Cheers,
Ivan