Moodle v5.3.0-CE-ubuntu24.04-r7 build trail

How ReadyStack built readystack/moodle:v5.3.0-CE-ubuntu24.04-r7 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.

This trail

As JSON
  • Imagereadystack/moodle:v5.3.0-CE-ubuntu24.04-r7
  • Index digestsha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62
  • linux/amd64 digestsha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3
  • ArchiveReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz
  • Archive SHA-256 now273f54f98d0ee88853e7d01642c36b398266ff63e6af5edca22ca599ef240cd7
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-12T22:11:22Z by KitForge release/build_trail.py
  • Sections9 sections, 8 fully recorded; 1 item not recorded

Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:

cosign verify-blob --key https://readystack.dev/keys/cosign.pub \
  --bundle ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.trail.json.sigstore ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.trail.json

IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level

Identity

Fully recorded
  • ProductMoodle (moodle) [MANIFEST.json]
  • Release tagv5.3.0-CE-ubuntu24.04-r7 [MANIFEST.json]
  • Imagereadystack/moodle:v5.3.0-CE-ubuntu24.04-r7 [MANIFEST.json]
  • Image index digestsha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz (bytes 385868358) [MANIFEST.json]
  • Archive sha256 at publish273f54f98d0ee88853e7d01642c36b398266ff63e6af5edca22ca599ef240cd7 [MANIFEST.json, tarball_sha256]
  • Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
  • Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
  • Upstream repositoryhttps://github.com/moodle/moodle [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream refv5.3.0 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commit42622298fe06f9626d988d60b2bf589bd8f850e8 [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hash096a48537238e07dd94531ff70477bcaca97e3f58f53ae8baf8ad50c8a5c708f (files 67589) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:07abefe553e8a7603a4adaccd0b925af894b68c442e51b050c4dd2200c231304 [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1794448246 (utc 2026-11-12T01:50:46Z) [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref ubuntu:24.04@sha256:2198e4c65076e9cb0b3d695219df667c0e3b0072da64ca3c2648aca17dcecaf5 · platform digest sha256:77eb101c607d6e3d4f5ad0c8a02c2136c689b98aba1f359e6502ba517e5c57ec
    [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json, engine]
  • Engine commit(s)
    • commit 1d3c43d9db86693d3b22280581f5473f4d3bdb92 · dirty yes · first drive 4461
    • commit 89246b3fdf7ea046df3d0e48f836a371a0c3bdf9 · dirty yes · first drive 4470
    • commit e801370d9f59d1c7c9c152835f7fc8cb6cdfe374 · dirty yes · first drive 4476
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain1036 (created 2026-11-12T18:54:36Z · trigger customer_request · upstream version v5.3.0) [chains, chains #1036]
  • Requestbuild request #704 (rebuild) (requested at 2026-11-12T01:50:48Z · requested by kitforge-agent · version v5.3.0) [build_requests, build_requests #704]
  • Reasonrevision v5.3.0-CE-ubuntu24.04-r7: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #704 request_reason]
  • Supersedesreadystack/moodle:v5.3.0-CE-ubuntu24.04-r6 (chain 975) [chains, chains #975]

The path through the harness

Fully recorded

1 chain · 3 drives · 18 stages · 2 rewinds

Chain 1036 release · ready_to_ship

Created 2026-11-12T18:54:36Z, upstream v5.3.0, build request 704 [chains, chains #1036]

DriveStartedMinutesBuild hostHow it stopped
44612026-11-12T18:55:28Z55.1build host 5 withhold-publish ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4461]
44702026-11-12T21:00:26Z15.3build host 5 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4470]
44762026-11-12T21:55:54Z—build host 5 publish-held not recorded [drive_runs, drive_runs #4476]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-12T18:55:38Z2026-11-12T18:55:39Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json 221b23aed2a9…
acquire 2026-11-12T18:55:58Z2026-11-12T18:56:03Z1
12
  • exists:source_tree
  • exists:source_tree_hash
  • exists:source_file_manifest
  • exists:custody_inputs
  • exists:license_file
  • source_tree:dir_nonempty
  • source_tree_hash:json_parses
  • source_file_manifest:json_parses
  • custody_inputs:json_parses
  • license_file:file_nonempty
  • produces_paths_exist
  • custody_inputs:json_true:ce_audit.ce_only
source_tree 8fad032e5855…
license_file 8ceb4b9ee5ad…
custody_inputs a40e71e7c531…
source_tree_hash 4f285eb6700d…
source_file_manifest 85454735b647…
plan 2026-11-12T18:56:39Z2026-11-12T18:56:40Z1
10
  • exists:recon_report
  • exists:input_pin_plan
  • exists:toolchain_lock
  • recon_report:md_min_sections:3
  • recon_report:no_forbidden_placeholders
  • input_pin_plan:md_min_sections:2
  • input_pin_plan:no_forbidden_placeholders
  • toolchain_lock:file_nonempty
  • toolchain_lock:no_forbidden_placeholders
  • produces_paths_exist
recon_report c4deb2a7d361…
input_pin_plan 07f7a3b3b2e6…
toolchain_lock a21417283fa3…
assemble_kit 2026-11-12T19:08:56Z2026-11-12T19:08:57Z1
27
  • exists:dockerfile
  • exists:base_image_digests
  • exists:system_pinning
  • exists:build_recipe
  • exists:first_build_digest
  • exists:first_boot_health
  • exists:dockerfile_offline
  • exists:verify_offline_sh
  • exists:build_offline_sh
  • exists:generate_sbom_sh
  • dockerfile:file_nonempty
  • dockerfile:no_forbidden_placeholders
  • base_image_digests:file_nonempty
  • system_pinning:file_nonempty
  • build_recipe:json_parses
  • first_build_digest:file_nonempty
  • first_boot_health:file_nonempty
  • dockerfile_offline:file_nonempty
  • dockerfile_offline:no_forbidden_placeholders
  • verify_offline_sh:file_nonempty
  • verify_offline_sh:no_forbidden_placeholders
  • build_offline_sh:file_nonempty
  • build_offline_sh:no_forbidden_placeholders
  • generate_sbom_sh:file_nonempty
  • generate_sbom_sh:no_forbidden_placeholders
  • produces_paths_exist
  • first_boot_health:file_contains:healthy=True
dockerfile 42c1f9c70b98…
build_recipe 5a1318ceaea2…
system_pinning 44667b599064…
build_offline_sh 6ab4f08a6ec7…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health 5738f1d0d5d1…
verify_offline_sh 3e8184ea230c…
base_image_digests 633f640a38b5…
dockerfile_offline 42c1f9c70b98…
first_build_digest 4b377eaf9558…
remediate 2026-11-12T19:09:25Z2026-11-12T19:09:26Z1
8
  • exists:vendored_apt
  • exists:remediation_log
  • exists:security_report
  • vendored_apt:dir_exists
  • remediation_log:json_parses
  • security_report:md_min_sections:2
  • security_report:no_forbidden_placeholders
  • produces_paths_exist
vendored_apt e3b0c44298fc…
remediation_log c1862b1e3fb2…
security_report 959bcf924d1a…
build_kit 2026-11-12T19:19:13Z2026-11-12T19:19:14Z1
9
  • exists:freeze_manifest
  • exists:locked_digest
  • exists:cosign_stamp
  • exists:offline_rebuild_transcript
  • freeze_manifest:json_parses
  • locked_digest:file_nonempty
  • cosign_stamp:file_nonempty
  • offline_rebuild_transcript:json_parses
  • produces_paths_exist
cosign_stamp e08edb5cdab8…
locked_digest d8be4d23186d…
freeze_manifest 5fd9d1c38dd2…
offline_rebuild_transcript d4990ac15947…
verdict 2026-11-12T19:21:44Z2026-11-12T19:21:45Z1
8
  • exists:scout_verdict
  • scout_verdict:json_parses
  • produces_paths_exist
  • scout_verdict:release_check_passed
  • scout_verdict:nonroot_green
  • scout_verdict:zero_fixable_crit_high
  • scout_verdict:osv_clean
  • scout_verdict:no_baked_secrets
scout_verdict d63e26815cbf…
publish_image 2026-11-12T19:23:00Z2026-11-12T19:23:01Z1
7
  • exists:promotion_record
  • exists:hub_readme
  • promotion_record:json_parses
  • hub_readme:md_min_sections:2
  • hub_readme:no_forbidden_placeholders
  • produces_paths_exist
  • promotion_record:json_true:signed
hub_readme 5e6994084055…
promotion_record 01a10de0b9bb…
boot_instance 2026-11-12T19:27:20Z2026-11-12T19:27:24Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle 7b0e1d1068bd…
sbom 2026-11-12T19:27:53Z2026-11-12T19:27:53Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md a2698afeca2f…
sbom_json 35eb9b811175…
schema_discovery 2026-11-12T19:27:56Z2026-11-12T19:27:57Z1
7
  • exists:dependency_tree
  • exists:table_classification
  • exists:schema_hash
  • dependency_tree:json_parses
  • table_classification:json_parses
  • schema_hash:file_nonempty
  • produces_paths_exist
schema_hash d240e6b200e9…
dependency_tree cadfeba7041d…
table_classification 6cd367dd6535…
admin_handbook 2026-11-12T19:28:06Z2026-11-12T19:28:07Z1
7
  • exists:admin_handbook
  • exists:api_map
  • admin_handbook:md_min_sections:10
  • admin_handbook:no_forbidden_placeholders
  • api_map:json_parses
  • produces_paths_exist
  • admin_handbook:command_transcripts_clean
api_map 7fe8664a8f6c…
admin_handbook 74fbd84352bd…
db_handbook 2026-11-12T19:28:19Z2026-11-12T19:28:20Z1
8
  • exists:db_handbook
  • exists:seed_isolation
  • db_handbook:md_min_sections:5
  • db_handbook:no_forbidden_placeholders
  • seed_isolation:md_min_sections:1
  • seed_isolation:no_forbidden_placeholders
  • produces_paths_exist
  • db_handbook:command_transcripts_clean
db_handbook 411170248280…
seed_isolation e6116c678b9c…
seed_data 2026-11-12T19:28:25Z2026-11-12T19:28:26Z1
6
  • exists:seed_data_sql
  • exists:seed_cases_json
  • seed_data_sql:sql_parses
  • seed_data_sql:no_forbidden_placeholders
  • seed_cases_json:json_parses
  • produces_paths_exist
seed_data_sql d62e7a0800a0…
seed_cases_json fb655e413c10…
seed_validate 2026-11-12T19:28:29Z2026-11-12T19:28:29Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract b957d68db3a1…
usecase_validate 2026-11-12T19:28:47Z2026-11-12T19:28:48Z1
10
  • exists:usecase_contract
  • exists:passed_tests
  • exists:failed_tests
  • exists:test_results
  • usecase_contract:json_parses
  • passed_tests:md_min_sections:1
  • failed_tests:md_min_sections:1
  • test_results:json_parses
  • produces_paths_exist
  • test_results:usecase_thresholds:80,70
failed_tests b2247b16f5f7…
passed_tests 687b3020ddc9…
test_results f640625909c8…
usecase_contract e7a84d35c6d7…
finalize_docs 2026-11-12T19:28:54Z2026-11-12T19:28:55Z1
9
  • exists:api_integration_guide
  • exists:release_notes
  • exists:defects_json
  • api_integration_guide:md_min_sections:3
  • api_integration_guide:no_forbidden_placeholders
  • release_notes:md_min_sections:3
  • release_notes:no_forbidden_placeholders
  • defects_json:json_parses
  • produces_paths_exist
defects_json eb6df6b14fb8…
release_notes d0a26d6e7966…
api_integration_guide c5d2614c39b8…
package_archive invalidated 2026-11-12T21:55:26Z 2026-11-12T19:50:34Z2026-11-12T21:15:43Z2
37 (final gate PASS)
  • exists:checksums
  • exists:verify_md
  • exists:rebuild_md
  • exists:provenance_md
  • exists:manifest_txt
  • exists:assetchain_log_md
  • exists:assetchain_log_json
  • exists:actions_jsonl
  • exists:sale_tar
  • checksums:file_nonempty
  • verify_md:md_min_sections:2
  • verify_md:no_forbidden_placeholders
  • rebuild_md:md_min_sections:2
  • rebuild_md:no_forbidden_placeholders
  • provenance_md:md_min_sections:2
  • provenance_md:no_forbidden_placeholders
  • manifest_txt:file_nonempty
  • assetchain_log_md:md_min_sections:1
  • assetchain_log_json:json_parses
  • actions_jsonl:file_nonempty
  • sale_tar:file_nonempty
  • produces_paths_exist
  • G8 cosign
  • G8 scan_grade
  • G8 tag_base_os
  • G8 thread_exit
  • G8 vex_shipped
  • G8 cpu_baseline
  • G8 unpack_files
  • G8 scout_grade_a
  • G8 script_copies
  • G8 upgrade_check
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 trademark_shipped
  • G8 assetchain_coverage
sale_tar 529d32429619…
checksums 6f1b2638c9ec…
verify_md fcb7f76d5f67…
rebuild_md 9ab8b10b3748…
manifest_txt cb204790aa0c…
actions_jsonl cb6932f6ea53…
provenance_md 149fcfb9b00b…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 3f68ae869f51…

[stage_runs]

Rewinds

  • 2026-11-12T20:12:15Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #34461]
  • 2026-11-12T21:55:26Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #34650]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-12T21:15:43Z.

5 calls over 3 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 09125 L-A183, L-A15
remediate2001 09357 L-A183, L-A15
usecase_validate1001 01575 L-A59

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

2 rounds, 2 counted, $0.76 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-12T19:52:10Z 200 findings to repackage [held_rounds, held_rounds #1832] $0.42 3 rounds, $40.00 6ecfba2d09ee…
22026-11-12T21:16:37Z 000 clean to publish [held_rounds, held_rounds #1835] $0.34 3 rounds, $40.00 529d32429619…

Defects

Fully recorded
  • Ledger entries2 [defects, defects where product_slug=moodle and this tag or chain]
  • Disclosed in the archive2 [docs/defects/defects.json, entries]

2 ledger entries: by severity critical 2; by status fixed-before-release 2.

DefectSeverityStatusFound byFixed in
RSD-moodle-bc446d7806
Admin handbook: Leftover superseded tag r6 in a customer instruction [defects, defects #272996]
criticalfixed-before-releaseheld review (review model)—
RSD-moodle-52fa81398c
Admin handbook: Names the superseded r6 image as this release's image [defects, defects #272997]
criticalfixed-before-releaseheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 · published digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 206) [docs/provenance/REPRO_VERIFICATION.json, verified]
  • Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, unpack_files, upgrade_check, vex_shipped) [g8_result.json, result]
  • Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T21:56:55Z · failing Docker Scout counts 134 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
  • Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T21:56:04Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
  • Image signature transparency-log entries [deliverables/provenance/PROMOTION_RECORD.json, sign_stdout_tail]
  • rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3840207450 · transparency-log entry · integrated 2026-11-12T22:09:34Z) [ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 · state attached · log index 3840212499 · transparency-log entry
    • kind sbom · digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 · state attached · log index 3840214017 · transparency-log entry
    • kind vsa · digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 · state attached · log index 3840215574 · transparency-log entry
    • kind provenance · digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 · state attached · log index 3840217193 · transparency-log entry
    • kind sbom · digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 · state attached · log index 3840218881 · transparency-log entry
    • kind vsa · digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 · state attached · log index 3840221008 · transparency-log entry
    (at 2026-11-12T22:09:34Z) [attestations.json, results]
  • Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/moodle/recipe) [docs/provenance/PINS.json]

Offline clean-room rebuilds

  • 2026-11-12T19:52:15Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 [clean-room rebuild ledger, runs[803]]
  • Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)

Publication

Fully recorded 1 pending at generation
  • Image pushed (internal tag), publish_image passed2026-11-12T19:23:01Z [stage_runs, stage_runs chain 1036 stage publish_image]
  • Archive manifests written2026-11-12T22:04:29Z [PUBLISH_MANIFEST.json, published_at]
  • Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)

Packages and CPU level

Fully recorded
  • x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 1017 · probed 2026-11-12T19:15:31Z · source build_kit) [release_images, isa_level_hard]

History

2 events
  • 2026-11-12T22:11:22Z generated: by KitForge release/build_trail.py · generator commit 9bf62fc46cb5a4c666ae0d83ee6d1056e96b052a
  • 2026-11-12T22:14:18Z publication: promoted at 2026-11-12T22:12:01Z · promoted digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 521 · checklist status complete · checklist at 2026-11-12T22:14:18Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json

Records

25 records
RecordWhere it isRows
docs/defects/defects.jsoninside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
docs/provenance/PINS.jsoninside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.tar.gz)—
MANIFEST.jsonbeside the archive (prodasset /data/production/moodle/v5.3.0-CE-ubuntu24.04-r7/), as staged for publishing—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/moodle/v5.3.0-CE-ubuntu24.04-r7/), as staged for publishing—
ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.jsonbeside the archive (prodasset /data/production/moodle/v5.3.0-CE-ubuntu24.04-r7/), as staged for publishing—
ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r7.rebuild.json.sigstorebeside the archive (prodasset /data/production/moodle/v5.3.0-CE-ubuntu24.04-r7/), as staged for publishing—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/moodle/v5.3.0-CE-ubuntu24.04-r7/), as staged for publishing—
clean-room rebuild ledgerthe clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published)—
build_requestssadb, ReadyStack's engine database (not published)704
chainssadb, ReadyStack's engine database (not published)1036
defectssadb, ReadyStack's engine database (not published)moodle v5.3.0-CE-ubuntu24.04-r7
drive_runssadb, ReadyStack's engine database (not published)chain 1036
held_roundssadb, ReadyStack's engine database (not published)chain 1036
lesson_recallssadb, ReadyStack's engine database (not published)chain 1036
micro_step_runssadb, ReadyStack's engine database (not published)chain 1036
release_imagessadb, ReadyStack's engine database (not published)moodle v5.3.0-CE-ubuntu24.04-r7
stage_eventssadb, ReadyStack's engine database (not published)chain 1036
stage_runssadb, ReadyStack's engine database (not published)chain 1036
attestations.jsonthe chain's workspace on the controller (not published)—
deliverables/provenance/PROMOTION_RECORD.jsonthe chain's workspace on the controller (not published)—
g8_result.jsonthe chain's workspace on the controller (not published)—