Open jamesmunns opened 8 years ago
What I had in mind was this:
I did not think about nested requirements. Will do now.
One thing that I discovered yesterday is that vanilla markdown doesn't really have a great/standard way to have "invisible" content. It can be achieved through a number of hacks, but something like in-line comments just dont natively exist.
To get around this, I think it makes sense to make an external metadata file that sits next to the markdown (or other type) file. If you check out master
, and do the following:
cd source
python3 xtag_engine.py
cd ../examples/unmarked/
cat marketing-requirements.md.xtag
you can kind of see what I'm going for. I started taking it further in the other branch, but fell asleep before I finished. going to try and clean it up this evening.
I really like the idea of "Write the requirements document in pure-markdown, and let the tool handle generation of tags and updates", as opposed to having to know markdown AND xtag syntax. Some kind of xtag knowledge will be needed for filling in references after the fact, but if we can keep it minimal, we allow for less technical people to write valid requirement documents.
Either way, nested requirements are something to consider. In other tools, I have seen the 'is_requirement' field be user-settable, which is nice, but it means that the tool has to validate the choices (e.g. if you have a requirement, none of its parents or children are requirements).
Workflow
Personally I don't care if there's shas all over the place.
For example:
The heading
#Compatibility Requirements
is not a requirement, it is a heading. It will have subitems, and should still trigger re-reviews of children when updated, however it shouldn't be required to be traced to from a "lower" document (such as the Software Requirements document).Even more complicated, in the following example, which of these lines is a requirement, and which are just clarification details?