Original text:
A participant that is included in the shared state of a group, and has access to the group's secrets. <del> A short-lived Diffie-Hellman key pair used to introduce a new member to a group.  Initialization keys are published for individual participants (UserInitKey). </del>  <del> A short-lived Diffie-Hellman key pair that represents a group member's contribution to the group secret, so called because the </del>  participants leaf keys are the leaves in the group's ratchet tree. A long-lived signing key pair used to authenticate the sender of a The "tree" field contains the public keys corresponding to the nodes of the ratchet tree for this group.  The length of this <del> vector MUST be "2*size + 1", where "size" is the length of the </del>  roster, since this is the number of nodes in a tree with "size" leaves, according to the structure described in ratchet-trees. the resolution. The HPKECiphertext values are computed according to the Encrypt <del> function defined in HPKE. </del>  Decryption is performed in the corresponding way, using the private key of the resolution node and the ephemeral public key transmitted The Hash function used by HKDF is the ciphersuite hash algorithm. Hash.length is its output length in bytes.  In the below diagram: <del> HKDF-Extract takes its Salt argument from the top and its IKM </del>  argument from the left Derive-Secret takes its Secret argument from the incoming arrow The init_keys array MUST have the same length as the cipher_suites array, and each entry in the init_keys array MUST be a public key for <del> the DH group defined by the corresponding entry in the cipher_suites array. </del>  The whole structure is signed using the client's identity key.  A UserInitKey object with an invalid signature field MUST be considered

Reviewer comments:
I'm approving these changes given the current state of the document, but I filed because the KDF stuff is broken. Please make HPKE a normative reference (since it's required to implement). Since it's an Internet-Draft, you don't need to add it to the references section, you can just reference it directly as and the Markdown processor will add the reference. (Change the to for an informative reference.)

Revised text:
A participant that is included in the shared state of a group, and has access to the group's secrets.  <ins> A short-lived HPKE key pair used to introduce a new member to a group.  Initialization keys are published for individual participants (UserInitKey). </ins>  <ins> A short-lived HPKE key pair that represents a group member's contribution to the group secret, so called because the </ins> participants leaf keys are the leaves in the group's ratchet tree. A long-lived signing key pair used to authenticate the sender of a The "tree" field contains the public keys corresponding to the nodes of the ratchet tree for this group.  The length of this  <ins> vector MUST be "2*size - 1", where "size" is the length of the </ins> roster, since this is the number of nodes in a tree with "size" leaves, according to the structure described in ratchet-trees. the resolution. The HPKECiphertext values are computed according to the Encrypt  <ins> function defined in I-D.barnes-cfrg-hpke. </ins> Decryption is performed in the corresponding way, using the private key of the resolution node and the ephemeral public key transmitted The Hash function used by HKDF is the ciphersuite hash algorithm. Hash.length is its output length in bytes.  In the below diagram:  <ins> HKDF-Extract takes its salt argument from the top and its IKM </ins> argument from the left Derive-Secret takes its Secret argument from the incoming arrow The init_keys array MUST have the same length as the cipher_suites array, and each entry in the init_keys array MUST be a public key for  <ins> the asymmetric encryption scheme defined in the cipher_suites array and used in the HPKE construction for TreeKEM. </ins> The whole structure is signed using the client's identity key.  A UserInitKey object with an invalid signature field MUST be considered