Skip to content

foundation, intake, loop, stage-contract, decisions, index: the HLWAS run from SOC L2 files to the Kafka topic - #91

Merged
rusholme merged 1 commit into
mainfrom
foundation/hlwas
Oct 22, 2026
Merged

rusholme merged 1 commit into
mainfrom
foundation/hlwas

Conversation

@rusholme

Copy link
Copy Markdown
Collaborator

What and why

Task 7 of the unattended run hlwas-night-2026-10-21 (specification): rapid_docs records what tasks 1 to 6 landed, as system behaviour with its numbers. Every earlier task's ledger line is TASK DONE, so everything is documented as landed; nothing is reported as not landed.

Pull requests documented: Caltech-IPAC/rapid#301 and #302 (fixes: instance type, non-live refusal exits 0, cache removed at exit, reference seed), #303 (Kafka publish and consumer check), #304 and #305 (intake, HLWAS live run, PSFs), #306 (one pointing, validate_run.py), #307 (rapidpipe loop), #308 (the ramp: 324 epochs on SCA 8, then 18 SCAs of one pointing).

Files

  • system/foundation.md: intro names intake, the loop, the publication and validate_run.py; the job row's instance type beside the image digest, and "A job on Batch" says how it is read and that no family is pinned (cites decision-instance-type); the verbs table gains publish and loop; the refusal exit rule (a non-live refusal exits 0); the thin chain gains an intake row and section (pointer to the new page); new "Publication to Kafka" section (the verb, the per-set stamp, replay allowed, no registry, [kafka] from the settings file, the consumer check, the Batch-side producer not decided); the settings paragraph names [intake] source_root as the run's overlay; "On SMDC" gains the seventh part (fixes, the endpoint, the live run beside GBTDS, the HLWAS Gaia copy, one pointing, the loop, the ramp, the field shared by two SCAs); "Validation" names the script, its two restated checks and its outcomes; "Measurements" gains "The wide-area ramp" table and bullets; "Not measured" loses the second field and the 18-chip fan-out; "Not decided here": the non-live refusal bullet leaves (settled by #301), the CPU-family bullet narrowed (recorded now, Intel/AMD data point), and enter: reference per SCA and late epochs in a chain, a disjoint reference, the catalogs key without dataset, the Batch-side Kafka producer, other filters' PSFs, source injection as the next scientific step.
  • system/intake.md (new): the stage's scope, input by key, the conversion steps ported from dev's ingestL2Files.py, declared outputs, the packed expid, the shared exposures key, settings table, what one file and the ramp measured, its "Not decided here".
  • system/loop.md: rewritten for the foundation: in plain terms, the selection as arguments, one pass's order (intake, reference, difference, associate, packet, Kafka), pending/failed/drained and exit codes, the per-field chains and the shared-field case, a measurements table and bullets, "Not decided here" (old still-open items carried: cadence/venue, delivery layout, lanes).
  • system/stage-contract.md: the instance type in the execution record; exit codes 0 and 1 restated for the non-live refusal; intake among the replacing stages.
  • system/decisions.md: decision-instance-type (2026-10-21 20:41 PDT) and decision-hlwas-direction (20:50 PDT), in the page's form.
  • system/alerts.md: its Kafka section opens with a pointer to the foundation's publication.
  • system/index.md: scope cells for decisions, foundation, stage-contract, alerts, loop; a new intake row and toctree entry.
  • AGENTS.md: intake in the one-page-per-stage list.

Divergences from the brief, with the reason

  • load.md is not rewritten or renamed; intake.md is a new page. The brief treats load.md as the intake page, but load.md is the retired source-catalog loader (Photutils catalogs into sources), unrelated to intake, and is linked from decisions, maintain, prune, specification, crossmatch and finalize as that record. AGENTS.md's one-page-per-stage naming asks for the stage's name, so the intake page is intake.md and load.md stays as the record it says it is. The repository wins.
  • The Kafka publication is stated on foundation.md, not alerts.md. alerts.md is the retired alerts stage's record; the packet stage and the reader it would sit beside are on foundation.md. The rule is stated once there and alerts.md points at it, per AGENTS.md's one-statement-one-page rule.
  • "Gaia for the HLWAS footprint if the empty catalog stood" did not enter: task 4 fetched real Gaia DR3 for the footprint. What it surfaced, the catalogs key without a dataset, entered instead.
  • loop.md drops the run model's design text (registry trigger, spec, per-date runs, promotion, loop_dates). specification.md, tool.md and operations.md still point at its discovery/classification and loop run|plan|show; the new page says it governs where they do. Not rewritten here (out of the task's sentence); listed under Improvements.
  • No run ids, job ids, Batch ids or bucket names on the site, as foundation, stage-contract, decisions, index: milestones 4 to 6 on SMDC and Batch #89 and foundation, reference, difference, stage-contract, decisions, index: the night through the chain #90: the runbook (docs/foundation-smdc-step.md part 7 on rebuild) carries them. Field ids are not used either; the dataset name r00342 and the instance types are.

Build

Not built on the host (no Sphinx; provisioning is an install). docs.yml is the check. Locally: scripts/check-public-safety.sh OK; every {ref} decision target resolves; the added text carries no em or en dashes, none of AGENTS.md's excess-vocabulary words, and no "not X but Y".

Measurements

Documentation only: no operation ran. The figures on the pages are tasks 1 to 6's PR bodies and the runbook's "Results of part 7".

Improvements seen (not applied)

  • specification.md (Sequencing item 7, two "Not decided here" bullets), tool.md (loop run|plan|show) and operations.md still describe the processing-date loop; a pass pointing them at the foundation loop would close the drift.
  • load.md, maintain.md, crossmatch.md, statistics.md, prune.md and alerts.md remain retired-model records; once the foundation pages cover what they record, they could leave the site (history keeps them).
  • The two-epoch "thin chain" framing of foundation.md's chain section predates intake and the loop; a restructure into "the chain" would read better now that it runs at breadth.

What the next task must know

  • Rulings anchors: decision-instance-type, decision-hlwas-direction.
  • The intake page is system/intake.md; the loop page is the foundation loop.
  • Status stays DRAFT on every page.

Left

Nothing in this task's sentence.

🤖 Generated with Claude Code

…he HLWAS run from SOC L2 files to the Kafka topic, the intake stage, the foundation loop and the publication, with the ramp's measurements

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant