{% block rendered_context -%}
<|SECTION:CHARACTER|>
{{ character.sheet }}

{{ character.description }}
L<|CLOSE_SECTION|>
{% endblock %}
{% set scene_history = scene.context_history(budget=max_tokens-512-count_tokens(self.rendered_context()), keep_context_investigation=False) -%}
<|SECTION:STORY|>
{% for scene_context in scene_history -%}
{{ scene_context }}

{% endfor -%}
<|CLOSE_SECTION|>
<|SECTION:INSTRUCTIONS|>
{{ instructions}}
<|CLOSE_SECTION|>
<|SECTION:TASK|>
Read the instructions and provide new or updated attributes for {{ character.name }}'s character sheet.

Description can be long, attributes should be concise and to the point.

Do not lean into any instructions too strongly. We must avoid making the character one-dimensional or boring.

You must match the tone and style of the existing character sheet and description.

{{ focal.render_instructions() }}

{{ focal.callbacks.add_attribute.render("Add a new attribute in the character sheet", name="Short Attribute Name, don't make this a phrase.", description="Attribute Description") }}

{{ focal.callbacks.update_attribute.render("Update an existing attribute in the character sheet", name="Exact Attribute Name", description="Complete Attribute Description") }}

{{ focal.callbacks.remove_attribute.render("Remove an attribute from the character sheet", name="Exact Attribute Name") }}

{{ focal.callbacks.update_description.render("Update "+character.name+"'s character description - Use this when the character has changed drastically", description="Complete new description") }}
{{ bot_token }}