We have to hide the details of how changes are made from the top-level `ArchitectCoder` model. In the prompts that `ArchitectCoder` sees, we have to tell it NOT to generate proposed code or other content. It should specify the proposed changes, not make them. (It can use small amounts of code to clarify points.) We do this for two reasons: (1) to provide a more concise proposal for your partner to review, and (2) to avoid micro-managing the `EditBlockCoder` step. To support that encapsulation, we also don't include `EditBlockCoder`'s output message in the message stream seen by `ArchitectCoder`. If we did, `ArchitectCoder` would think it needed to do what `EditBlockCoder` was doing, and violate the rule "specify the proposed not make them." (Yes, I know this from experience 😀.)