Reopen published code only for content changes.

This commit is contained in:
2026-07-21 23:25:11 +02:00
parent 8a6274ef6a
commit 1410b97aeb
5 changed files with 273 additions and 26 deletions

View File

@@ -230,6 +230,10 @@ rule UpdateScript {
ensures: script.file_path = format("scripts/{slug}.lua", slug: script.slug)
ensures: ScriptFileWritten(script)
ensures: PreviousScriptFileDeleted(script)
if script.status = published and not script_changes_affect_published_output(changes):
ensures: script.status = published
ensures: ScriptFileWritten(script)
-- Keep published frontmatter synchronized for metadata-only and no-op content updates.
ensures: script.updated_at = now
ensures: script.version = script.version + 1
}
@@ -237,7 +241,8 @@ rule UpdateScript {
rule ReopenPublishedScript {
when: UpdateScriptRequested(script, changes)
requires: script.status = published
requires: script_changes_affect_published_output(changes)
requires: changes.content != null
requires: changes.content != effective_script_content(script)
ensures: script.status = draft
}

View File

@@ -135,6 +135,10 @@ rule UpdateTemplate {
ensures: template.file_path = format("templates/{slug}.liquid", slug: template.slug)
ensures: TemplateFileWritten(template)
ensures: PreviousTemplateFileDeleted(template)
if template.status = published and not template_changes_affect_rendered_output(changes):
ensures: template.status = published
ensures: TemplateFileWritten(template)
-- Keep published frontmatter synchronized for metadata-only and no-op content updates.
ensures: template.updated_at = now
ensures: template.version = template.version + 1
}
@@ -142,7 +146,8 @@ rule UpdateTemplate {
rule ReopenPublishedTemplate {
when: UpdateTemplateRequested(template, changes)
requires: template.status = published
requires: template_changes_affect_rendered_output(changes)
requires: changes.content != null
requires: changes.content != effective_template_content(template)
ensures: template.status = draft
}