Since we already have ABI, API resilience and Source Compatibility sections in the proposal template I think it might make sense to expand on that and make sure that proposal is considering not only correct
syntax/use, but also accounts for (even if basic) scenarios when new feature/syntax is used incorrectly
or in an (temporary) unsupported way.
I think it would make sense for proposals to state explicitly, in a separate section, what is supported and what is not (listing possibilities for future improvements), what is the possible initial set of diagnostic messages and some basic error/warning scenarios as well as what are the ways current feature might interact with other features already implemented in the language.
New attributes/keywords could be a good example - it would be very helpful to list contexts where new attribute/keyword could be used and what error message should be used for the rest. What are the
special cases and areas of the future improvement e.g. currently could only be used on functions
but later support could be expanded to properties and subscripts. How does new attribute/keyword
interact with existing ones e.g.
I think having documentation like that in the proposal would make implementation as well as code review much easier, and would be generally helpful for posterity.
What do you think?