Files

111 lines
4.6 KiB
YAML

name: Weekly Regression and Review
on:
schedule:
# Friday 5:00 AM CST. Gitea schedules use UTC.
# CST (UTC-6): 11:00 UTC.
# During CDT this runs at 6:00 AM America/Chicago unless the cron is adjusted.
- cron: '0 11 * * 5'
workflow_dispatch:
jobs:
create-regression-review-issue:
name: Create Regression & Review Issue
runs-on: ubuntu-latest
steps:
- name: Create weekly review issue
run: |
python3 - <<'PYEOF'
import json
import urllib.request
from datetime import datetime, timezone
gitea_api = "http://100.79.253.19:3000/api/v1"
repo = "${{ gitea.repository }}"
token = "${{ gitea.token }}"
run_url = "http://100.79.253.19:3000/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}"
today = datetime.now(timezone.utc).strftime("%Y-%m-%d")
body = f"""## Regression & Review - {today}
Weekly checkpoint for moving **Throne of the Bone King** forward without letting regressions or vague design debt accumulate.
**Action run:** {run_url}
---
> Agent instructions:
>
> Post a separate comment for each completed section below.
> If any section exposes a concrete bug, create a focused follow-up issue and link it from this review.
> Keep notes practical: include affected files, screenshots when useful, and the next smallest shippable action.
---
### 1. Regression Smoke Pass
- [ ] Run `npm run lint`.
- [ ] Run `npm run test -- --runInBand`.
- [ ] Run `npm run web:build`.
- [ ] Run `npm run electron:build`.
- [ ] Start `npm run dev:all` and confirm the browser app loads.
- [ ] Confirm Toolkit becomes clickable only when resolution is Browser and socket is connected.
- [ ] Confirm route persistence survives refresh on Home, Settings, Policies, Credits, and Toolkit.
### 2. Game Loop Readiness
- [ ] Review New Game and Saves placeholders and identify the next implementation slice.
- [ ] Verify the planned daily loop is still represented in Toolkit sections: Opening, Petitioners, Rulings, Seed, Resources, Map, Factions, Flags, Story, Lore, Audio, Credits, Endings, References.
- [ ] Identify one gameplay loop that can be made testable with JSON fixtures this week.
- [ ] Check whether content should stay in JSON or move toward a stronger schema.
### 3. Settings, Resolution, and Audio
- [ ] Test Browser and phone-like resolution modes.
- [ ] Verify mute, master, music, ambience, speech, and SFX settings persist.
- [ ] Check that background music loops and respects mute/master/music values.
- [ ] Identify any layout that scrolls or clips in fixed landscape sizes.
### 4. Toolkit Content Review
- [ ] Review `src/data/credits.json` and the Toolkit Credits display.
- [ ] Confirm socket read/save/change behavior is still covered by tests.
- [ ] Identify the next Toolkit content resource that should get typed JSON support.
- [ ] List any authoring forms that are now justified, but do not implement them from this issue.
### 5. Art, Fonts, and Presentation
- [ ] Confirm the menu background, landing background, favicon, fonts, and audio assets render correctly.
- [ ] Identify any oversized assets that should be optimized.
- [ ] Check the main menu hierarchy, button contrast, and Toolkit distinction.
### 6. Backlog Decisions
- [ ] Pick the top three follow-up issues that most directly advance the playable game.
- [ ] Close or rewrite stale issues that no longer match current architecture.
- [ ] Make sure each new issue has a small, testable outcome.
---
_Auto-generated weekly by Gitea Actions._"""
payload = {
"title": f"Regression & Review - {today}",
"body": body,
}
req = urllib.request.Request(
f"{gitea_api}/repos/{repo}/issues",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": f"token {token}",
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(req, timeout=20) as response:
result = json.loads(response.read())
print(f"Created issue #{result['number']}: {result['html_url']}")
PYEOF