Skip to content

Weekly update routine: open a PR with this week's events #17

Closed

Description

@ToothyDev

A scheduled Claude Code routine that runs once a week after GTA Online's weekly reset. It reads that week's event announcement, writes public/weekly.json in the #16 format and opens a PR for review.

Decisions for the maintainer

  • Schedule: the weekly event reset is on Thursday (verify the exact UTC time). Run it shortly after, so the Newswire post is out.
  • Merge policy: review every PR by hand (safer), or auto-merge once CI is green?
  • Source access: the routine's cloud environment needs network access to the source pages (Rockstar Newswire and/or a community site). Check the environment's network policy.

Scope

  • A skill (.claude/skills/weekly-update/SKILL.md) with the exact steps, so the routine prompt stays one line and the same steps work when run by hand.
  • The routine itself (configured in Claude Code, not in the repo).

Depends on #16.

Activity

  1. ToothyDev commented on Oct 15, 2026

    @ToothyDev
    OwnerAuthor

    Decisions and findings for the routine, from #16 (PR #66, decision 027):

    What it writes

    • src/data/weekly.ts (the WEEK object, typed by Week in src/lib/weekly.ts), not public/weekly.json. Replaced in full each week.
    • Step-by-step guide: docs/weekly-update.md. The skill (.claude/skills/weekly-update/SKILL.md) should point to it rather than repeat it.

    Source and timing

    • Source: the gta.wiki weekly event page, the newest in Category:Weekly events (infobox type = weeklyevent), read as wikitext through https://gta.wiki/api.php?action=parse&page=<title>&prop=wikitext&format=json. Reachable from the cloud environment; the Rockstar Newswire is not (JavaScript-only, its API host did not answer) and is only kept as a link.
    • Schedule: Thursday late afternoon, around 16:00 UTC. On 2026-10-15 the page was created at 23:53 UTC the night before, and its Gun Van, Salvage Yard and Prize Ride parts were only filled in between 11:52 and 11:57 UTC.
    • Week bounds: start Thursday 2:00 AM US Pacific (09:00 UTC during US daylight saving time, 10:00 UTC otherwise), end at the next week's start, or later if the page's dates span longer. Not officially sourced; check once against a real reset.

    Decided: an AI routine, not a deterministic script
    The wiki page is hand-written and its wording changes week to week ("was changed to", "were remained to"). Some steps need judgement too: dropping GTA+ values, linking a bonus to an owned property (property id), and keeping seasonal activities with a bonus this week out of "Also running". A script would either break or guess wrong without saying so.

    The routine must stop and flag instead of writing when

    • the page is missing or incomplete (no Discounts or Standard Bonuses section, or Gun Van / Salvage Yard / Prize Ride not filled in yet);
    • the week has something the Week type cannot hold: a discount that is not a vehicle, property or weapon (kind), or a bonus paying something other than GTA$ and RP, GTA$ or RP (pays). It should say so on the PR instead of changing the type itself.

    Left out on purpose: everything GTA+; the Gun Van's daily location and the daily Junk Energy and RC Time Trials (daily and map-bound; no daily source).

    Merge policy: auto-merge with strict checks, possible

    1. A workflow job that fails unless the PR comes from the routine's branch (e.g. claude/weekly-*) and changes only src/data/weekly.ts.
    2. Branch protection on main requiring that job and the existing verify check; "Allow auto-merge" turned on in the repository settings.
    3. The routine opens the PR and enables auto-merge (squash). Anything outside that one file then waits for review.

    What CI cannot catch is a wrong but well-formed entry (a misread vehicle name, a wrong percentage). If a week is never merged, the Weekly tab shows "Out of date" instead of wrong data.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    infraCI, hosting, tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions