Add a field to the resource editor
Use an admin widget and the existing resource form.
Create priv/templates/_admin_edit_content_extra.tpl in the active site or module:
{% extends "admin_edit_widget_std.tpl" %}
{% block widget_id %}garden-note-widget{% endblock %}
{% block widget_title %}{_ Internal note _}{% endblock %}
{% block widget_content %}
<label for="{{ #note }}">{_ Note _}</label>
<textarea id="{{ #note }}" name="garden_note" class="form-control"
{% if not id.is_editable %}disabled{% endif %}>{{ id.garden_note|escape }}</textarea>
{% endblock %}
The standard admin layout includes this extension point inside the resource form. Do not nest another form. If the site already has this template, include a separate widget from it instead of overwriting existing content.
Reload an editable practice page, enter a note, save and reopen it. The value should remain. Test a read-only user too. The ordinary resource update checks edit permission; custom server handlers must perform equivalent checks.
“Internal” is only a label here, not field-level secrecy. If this value is confidential, put it behind an appropriate model/storage access policy rather than assuming a custom resource property is private.