{% extends "base.html" %} {% import "macros.html" as m %} {% block title %}Release - {{ pack.pack }}{% endblock %} {% block content %}

Release

Manifest text

{% if curation %}

Edited in the pack form of the workbench; the two fields returned on every coverage root call are shown with their length.

title{{ curation.title }}
scope {{ curation.scope_statement }}
{{ curation.scope_statement | length }} characters
refusal {{ curation.out_of_scope_response }}
{{ curation.out_of_scope_response | length }} characters
out of scope
limitations

Edit in the workbench

{% else %}

No curation file for this pack.

{% endif %}

Build

{% if not read_only %}
{% if job %}a job is running for this pack{% endif %}
{% endif %} {% if job %}

Loading the job log...

{% endif %} {% if release %}
Release{{ release.manifest.release_id }} built {{ release.manifest.created_at }}
Counts {{ release.topics | length }} topics, {{ release.concepts | length }} concepts, {{ release.facts | length }} facts, {{ release.evidence | length }} evidence, {{ release.documents | length }} documents
Validator {% if issues %}{{ issues | length }} issue(s) {% else %}no issue{% endif %}
Citations {% for outcome, count in (report.citation_outcomes or {}).items() %}{{ count }} {{ outcome }}{% if not loop.last %}, {% endif %}{% endfor %} - relocation review
Review {{ m.stacked(release.manifest.review_statuses, release.facts | length) }}
{% endif %}

Diff against the previous release

{% if not diff.available %}

No earlier release is archived under {{ pack.console_dir }}/releases/ yet. The console archives each release it builds, since Git holds only the current one.

{% else %}

from {{ diff.old_id }} to {{ diff.new_id }}. Computed from the two release files, so it shows what callers will see change.

Concepts added{{ diff.concepts_added | join(', ') or '-' }}
Concepts removed{{ diff.concepts_removed | join(', ') or '-' }}
Facts added{{ diff.facts_added | join(', ') or '-' }}
Facts removed{{ diff.facts_removed | join(', ') or '-' }}
Facts re-cited{{ diff.facts_recited | join(', ') or '-' }}
Documents added{{ diff.documents_added | join(', ') or '-' }}
Documents removed{{ diff.documents_removed | join(', ') or '-' }}
Review status before{{ diff.review_before }}
Review status after{{ diff.review_after }}
{% if diff.facts_reworded %}

Reworded facts

{% for item in diff.facts_reworded %}

{{ m.fact_link(pack.pack, item.fact_id) }}

before: {{ item.before }}

after: {{ item.after }}

{% endfor %} {% endif %} {% if diff.manifest %}

Manifest fields changed

{% for item in diff.manifest %} {% endfor %}
FieldBeforeAfter
{{ item.field }}{{ item.before }} {{ item.after }}
{% endif %} {% endif %}

Caller preview

{% if not preview.available %}

No release to preview.

{% else %}

Coverage root: {{ preview.root_bytes }} bytes against the {{ preview.target }} byte target of the tool contracts {% if preview.over_target %}over the target; shorten the scope statement, the out-of-scope list or the limitations{% else %}within the target{% endif %}

{% for topic in preview.topics %} {% endfor %}
Topic pageConceptsBytes
{{ topic.title }} {{ topic.topic_id }} {{ topic.concepts }}{{ topic.bytes }}
get_coverage root as the caller receives it
{{ preview.root }}
COVERAGE.md as the generator would write it
{{ preview.coverage_md }}
LIMITATIONS.md as the generator would write it
{{ preview.limitations_md }}
{% endif %}

Working tree

Read-only git calls. There is no commit button: the lead commits from Git. Commit messages are a single imperative subject line in the style of the recent commits, with no trailers (see AGENTS.md).

git status --short -- releases/{{ pack.pack }}

{{ git_status or '(clean)' }}

git diff --stat -- releases/{{ pack.pack }}

{{ git_diff or '(no change)' }}

Recent subjects

{{ git_log }}
{% endblock %}