I have summarized existing proposals, and I have replied to some of them:

On 30. 07. 20 1:02, Gabe Alford wrote:
...

- Rename description, rationale to html_description, html_rationale.
Reason: We could start to introduce Markdown input, and doing it this
way would allow us to do it gradually. We probably want to have html as
a canonical form, but we could offer more possibilities for content authors.

I don't think changing keys like this makes sense or adds value, and in fact, will make things more confusing.
Just supporting markdown in the text would better and easier for people to understand.

Jan also isn't in favor of changing keys. I think that we can shift to markdown without changing keys only if we convert existing HTML markup to md at the same time. And I think that this can be feasible.

There are the following problems with preserving key names and introducing new input type:

  1. Autodetection of HTML vs MD isn't trivial: Markdown can contain HTML tags - consider e.g. XCCDF value substitutions in an otherwise markdown rule description.
  2. Blank lines have some significance in markdown, but not at all in HTML, so if we start processing existing tag-less text as markdown, the text layout may change significantly.

Technically, processing text as markdown is extremely easy to implement, it would just require to add a new project dependency.

- Restructure project's folder structure - right now, the list of
products is really long, which makes the project page too long. Having
products in a separate directory would also allow us to get a list of
supported products programmatically from the filesystem.

I really don't want to do this again. Not in favor, and there is nothing preventing getting the list programmatically right now.

FTR, Jan is not in favor of this either. But when we ask ourselves a question why could it be that a project is perceived as complex, isn't this one of the first oddities one comes across? That linux_os is a container of rules, but rhel7 is a product? That ssg is not a product, but a Python package? Neither cmake is a product, but support for the build system, along with build-scripts? That applications/openshift is a container of rules much like linux_os, just being located elsewhere? And did you know that we now have an ocp-resources folder in the root directory?

I think that a folder structure would make things more approachable, and that moving just products wouldn't cause a big pain - the only thing that is likely to be used by others is one or two profile files in the product they are interested in.

- Put macros where they belong. We have plenty of boilerplate in the
project, and macros can keep the code readable and free of duplicates.
Moreover, if people use a macro to e.g. instantiate an XCCDF variable,
we can change the underlying implementation without breaking the public API.

Answering a bit to myself, Jan also supports this, and it is not really breaking.

Similarly, items proposed by Jan s.a speeding the build up and replacing shared remediation functions with macros aren't breaking either and can be done gradually.

Vojta's item, reorg of templates, could break the internal API, but as we got zero complaints about our last template reorg, that proves that nobody else cares about how templates are implemented, so that one is not a breaking change either.

Now Gabe's items:

- Merging platform and prodtype together
That's IMO a great candidate - it can break things, but this duality is indeed very confusing. It was also proposed by Jan
- getting rid of jinja in rules and using the industry standard of tailoring to increase readability

I don't understand this one.

First of all, what is meant by "industry standard of tailoring"?

And what is the problem of having jinja in rules? As we have templated rules, it is obvious that there will be a lot of repetition in description, rationale and OCIL, and jinja is a good way how to avoid copy-pasting.

- Divorce the content from the build system like Chef Inspec, Ansible, and other security tooling that is coming from the government.
Decoupling the content from the build system is also proposed by Jan, and I am on board.
I have problems understanding the precise meaning of the second part of the sentence "... like Chef Inspec, ... and other tooling". What is meant by that? That we should be able to build not only datastreams, but e.g. Ansible playbooks?
- Feedback from many consultants and SAs is that things need to be made easier and simpler. That it's too hard to do anything.
We could have various ideas how to improve this, but the really serious way how to address this would be to conduct a UX study, and then allocate a considerable amount of time to address findings. Consultants and SAs should go through the SecurityLabs self-paced training before trying to do anything serious in the project, that will save them quite a lot of time.
- Moving all product configurations necessary to add a new product from code to product.yml

I am totally on board as well. I wouldn't see it as a breaking change though.