It is quite different for the evolution of business software (e.g. ERP modules) whose task specifications are very ad hoc and those specifications form part of the large corpus of code and documentation that is specific to particular legal system (it may be small country in Eastern Europe with 2M people), to particular software suite (this suite has its specific naming conventions, specific guidelines for the building of forms and specific user interaction patterns), to particular domain (e.g. HR self-service portal and payroll calculation - very specific rules, lots of validation, etc.). So, while it can be possible to specify business software evolution tasks in short sentences, the semantic expansion of those few sentences relies heavily on esoteric documents, industry standards, legal norms of small regions and so on. Most likely the full/expanded specification of the task for the business software evolution (which can be required by novice developer which is new to particular suite and particular domain) involves very large chunks of documentation and its execution (by code synthesis) can include edits in numerous modules.
E.g. adding new field requires synthesis to be performed in: 1) data models - entity classes; 2) business models - validation and derivation rules; 3) presentation views - right placement in the form among other fields; 4) api services - generation of new version of apis and relevant check of security/access rules.
- data models - entity classes;
- business models - validation and derivation rules;
- presentation views - right placement in the form among other fields;
- api services - generation of new version of apis and relevant check of security/access rules.
Copilot can ask us to do joint synthesis by modification of the initial task and by division this initial task/prompt into small separate tasks for the Copilot, but - apparently - the developer should feed the entire context and the previous edits to move from one such subtask to the other. So, Copilot should have some state as well and should be able to do its synthesis as part of the large, join synthesis supertask.