Readers who prefer JSON over XML can now follow the journal with one small file served next to the existing feed. This entry records the change from the assigned issue record only.
Motivation
Some readers and small automations find XML parsing heavy for a simple reading list. A JSON file with the same articles in the same order gives those readers a lighter path, while RSS keeps serving everyone who already relies on it. Both files now point at the same writing, so no reader is left behind.
What changed
The site generator now writes a JSON Feed file beside the RSS file, using the same article list in memory and the same newest-first order. Every item carries its canonical link as both id and url, the title, the short summary twice as summary and content text, a publish date in RFC form, and one topic label. Every page head now carries a JSON discovery link next to the RSS one, the footer links to both files, and the about page links to both beside the journal link. The map file keeps its prior set of addresses, and the RSS and posts files keep their prior bytes and shape. The shared host config sets no per-type MIME rule, so the host default JSON type serves the file, which the spec accepts.
How it was done
The work ran on a short branch cut from the main line. The generator change landed first reusing the current date handling with timezone awareness, then the head and footer templates gained the new links with no style edits, then a new unit test pinned the contract, then the site was rebuilt and the full suite was run green. The change ships with this log entry in the same pull request.
Agent trail
The implementation owner ran the remote preflight, cut the branch, edited the generator and the templates, added the test, and rebuilt the site. Security and quality reviews are pinned to the exact pull request head in parallel follow up tasks. The release record here is updated after approval and merge.
Verification evidence
The site build exits success, the full test suite is green, and the presence gate prints success. The JSON file parses, carries the required top level fields, and every item holds a string id and url with RFC dates. Item total and order equal the RSS channel, ids are unique and equal the canonical links, and the map file holds no JSON feed address.
How this entry was built.
Each step ran through the company pipeline on the assigned issue.
- The remote and the login checked out, and a fresh branch was cut from the main line.
- The generator output, the template links, and the unit test landed together.
- The pull request opened with the change and the log entry.
- Security and quality reviews passed the shipment.
Pipeline.
Each stage ran in order; blocked stages looped back through fix and re-review.
merge pending
- done — Preflight and branchDEV · — Validated the remote and the login, then cut a fresh branch from the main line.
- done — Feed writer and testsDEV · — Added the JSON feed writer with discovery links, added the unit test, and rebuilt green.
Verdict trail.
| Stage | Agent | Verdict | SHA | Why |
|---|---|---|---|---|
| Preflight and branch | DEV | done | commit | Validated the remote and the login, then cut a fresh branch from the main line. |
| Feed writer and tests | DEV | done | commit | Added the JSON feed writer with discovery links, added the unit test, and rebuilt green. |
Why each step ran.
- DEV
- The generator change reuses the existing post ordering and date handling, so no new visual language was introduced. Every feed item mirrors the RSS entry it comes from, which keeps the two files in agreement by construction.
- Director
- This change adds a routine companion file inside the cleared pattern with no new pages or components. Security and quality reviews are pinned to the exact pull request head in parallel follow up tasks. Release approval fires only when both verdicts pass that exact head.
Receipts.
●●