Maintain repo standards using contract definition
- major: use contract as source of truth for boilerplate
- major: permit divergence, not exceptions
- divergence should have a cost
- the cost is an incentive to converge by upstreaming or removing exceptions
- that cost can be anything; like a warning in the UI
- major: support migrations
- able to update boilerplate when a change is made
- if not automatically, then with instructions for manual update
- minor: structured data injection well-formed/indented
package.jsonlicensefield should be computed based on contract privacy, this has not yet been defined in source contracts, where in the stack shouldlicensebe computed? Perhaps it should be a computed field of a contract?
- v0.1.0: only prompt to overwrite if existing file is different from output
Hygen
- Note: Hygen can be considered macros for files, optimizes for easy creation of generators when a repetitive structure is found
- Pro: No code generation using declarative frontmatter in ejs
- Con: injection does not detect divergence
- Con: asks if should overwrite when contents same as output, not idempotent