# validate_goal_application_rendered_total

> **Function** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/goal_state_limits/validate_goal_application_rendered_total)

Validate the escaped size an accepted pair will occupy in the notice.

Split from `validate_goal_application_total` because the two budgets answer
different questions. The raw combined check shares its budget with the
criteria model: the schema's per-field `max_length` values and the system
prompt's combined limit are all raw counts the model can count against
while drafting. This rendered check is acceptance-side only — the model has
no way to predict HTML expansion, so a rendered overshoot is reported to
the user, not retried.

The budget is the aggregate notice limit rather than the raw application
limit. Escaping has no meaningful worst case below fivefold expansion, and
any budget tighter than `GOAL_NOTICE_TEXT_CHAR_LIMIT` would reject pairs
whose notices fit. The wider budget is safe because acceptance clears the
status note on `create`, and the note budget stays in reserve otherwise.

## Signature

```python
validate_goal_application_rendered_total(
    objective: str,
    criteria: str,
) -> None
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `objective` | `str` | Yes | Goal objective that will be activated. |
| `criteria` | `str` | Yes | Acceptance criteria that will be activated with the goal. |

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/2069079e09546060f5b52b2cd4f0e3c813e820f3/libs/code/deepagents_code/goal_state_limits.py#L218)