From 4b2054732e5b665b8e4fb8401de69b1f4dfecc11 Mon Sep 17 00:00:00 2001 From: Xingru Lu Date: Wed, 14 Oct 2026 20:42:15 -0400 Subject: [PATCH 1/2] Preserve initial implementation and baseline evidence Co-Authored-By: gpt-6-luna via Codex CLI --- studio/sharonlu2/code/README.md | 44 ++ studio/sharonlu2/code/research_update.py | 748 ++++++++++++++++++ studio/sharonlu2/delegation-card.md | 35 + ...esearch-update-20261014-202318-40f0bd.json | 124 +++ .../research-update-20261014-202318-40f0bd.md | 83 ++ 5 files changed, 1034 insertions(+) create mode 100644 studio/sharonlu2/code/README.md create mode 100644 studio/sharonlu2/code/research_update.py create mode 100644 studio/sharonlu2/delegation-card.md create mode 100644 studio/sharonlu2/outputs/baseline/research-update-20261014-202318-40f0bd.json create mode 100644 studio/sharonlu2/outputs/baseline/research-update-20261014-202318-40f0bd.md diff --git a/studio/sharonlu2/code/README.md b/studio/sharonlu2/code/README.md new file mode 100644 index 0000000..1abc998 --- /dev/null +++ b/studio/sharonlu2/code/README.md @@ -0,0 +1,44 @@ +# Research Update + +## Requirements and setup + +The Python program uses only the standard library, so there are no Python packages to install and no separate virtual environment is needed. Use the shared course Python installation (`python3`). The report summarizer also requires the Codex CLI to be installed and signed in; the script does not read or store API keys. + +From the repository root, run: + +```bash +python3 studio/sharonlu2/code/research_update.py --team sharonlu2 +``` + +By default, the program checks Anthropic News, Anthropic Engineering, and OpenAI News. To check custom sites instead, repeat `--source`: + +```bash +python3 studio/sharonlu2/code/research_update.py --team sharonlu2 \ + --source https://example.org/news \ + --source https://example.net/research +``` + +Each model invocation writes raw evidence outside the repository under `~/.local/state/research-update/raw-logs/` by default. Override that location with `--raw-log-dir`; the program rejects paths inside the repository. For example: + +```bash +python3 studio/sharonlu2/code/research_update.py --team sharonlu2 \ + --raw-log-dir /private/tmp/research-update-raw-logs +``` + +Each invocation gets its own directory, named by the log identifier. It contains the exact prompt (`prompt.txt`), final response (`response.txt`), Codex JSONL stdout events (`events.jsonl`), stderr (`stderr.log`), and command settings and exit status (`invocation.json`). Article text is included in the prompt, so raw logs can contain full retrieved article content. The structured run record links to the invocation by `model.log_id`. When no articles qualify, it records `invoked: false` and `not_called_reason: no_eligible_articles`. + +If a custom URL is malformed or DNS confirms its host does not exist, the program prints a notice and checks the three default sources. An HTTP 404/410 means the requested page is unavailable; it is recorded as a source failure and does not establish that the website itself is gone. Other retrieval errors are recorded as failed or partial checks. `--timeout` controls each web request, and `--model-timeout` bounds the model step. + +The model defaults to `gpt-6-luna`, matching the existing run metadata. Override it with `--model ` or `RESEARCH_UPDATE_MODEL=`. The Codex executable defaults to `codex`; use `--codex-binary` if it is installed under another command name or path. + +## Retrieval and reporting + +For each source, the program fetches the source page, follows a discovered RSS/Atom feed when one is available, and otherwise collects same-site article links from the page HTML. It then fetches candidate article pages and reads publication dates from page metadata, JSON-LD, `