Brieflo is currently available by invitation only.

Scope and approval

Scope is not a document you produce once. It is an agreement with a version, an approval, and a moment when it no longer applies.

Every approval should hang off a version

"The customer approved" is too vague. Approved which version, at what time, by whom, and with what scope? Without version binding there is no evidence and a dispute at delivery.

Changing means a new version, not overwriting

When an approved feature changes, create a new version and ask for a new approval. The old approval is preserved. That is not administrative overhead but your defence if a customer later claims something different was agreed.

Link dependencies

Some parts depend on others. Change the logo and screens may be stale. Change the hosting choice and storage, queues and deployment must be reviewed again. Mark those dependencies visibly and do not silently regenerate.

Distinguish blockers from warnings

A hard blocker is something like a missing mandatory asset or an unresolved contradiction. A warning is something like an optional screen state that is not yet recorded. Do not treat them the same: an all-or-nothing block means no draft is ever finished.

Record the commercial boundary

An approved quote is not approval of design or technical direction, and vice versa. Keep those domains separate. Choose a smaller quote option and a smaller scope version belongs with it.

{# The consent choice is reported to the server, so the CSRF cookie must be present on every public page. Without it the report is refused and the decision stays local-only. #}