diff --git a/paper-dynasty/2026-03-23.md b/paper-dynasty/2026-03-23.md new file mode 100644 index 0000000..7121fbb --- /dev/null +++ b/paper-dynasty/2026-03-23.md @@ -0,0 +1,61 @@ +--- +title: "PR Review Pipeline + Refractor Rename + CI/CD Modernization" +description: "Reviewed 12 PRs across all PD repos, completed Refractor rename on Discord PRs, converted CI to tag-based builds, built /release skill, migrated pd-ops agent." +type: context +domain: paper-dynasty +tags: [paper-dynasty, deployment, discord, database, card-creation, ci-cd, refractor] +--- + +# PR Review Pipeline + Refractor Rename + CI/CD Modernization + +**Date:** 2026-03-23 +**Repos:** paper-dynasty-umbrella, paper-dynasty-database, paper-dynasty-discord, paper-dynasty-card-creation + +## What Was Done + +Major cross-repo operations session covering PR review, feature work, and infrastructure modernization. + +1. **Reviewed 12 PRs across all repos** — Ran pd-ops GO/NO-GO assessment on `ai-reviewed` PRs, then launched 11 parallel pr-reviewer agents against all `ai-reviewing` PRs. Results: 4 approved, 7 changes requested, 1 do-not-merge. + +2. **Merged 3 clean PRs** — card-creation #30 (pytest.mark.asyncio), card-creation #41 (timeout fix), database #127 (SQLite refs cleanup). Closed database #99 as superseded by #89. + +3. **Completed Refractor rename on Discord PRs #87 and #88** — Renamed Evolution system to Refractor across cog files, test files, tier names, and badge labels. Multiple review-fix-push cycles to nail down the final tier names. + +4. **Finalized Refractor tier names** — Base Card (T0) → Base Chrome (T1) → Refractor (T2) → Gold Refractor (T3) → Superfractor (T4). Badge labels: [BC], [R], [GR], [SF]. No badge for T0. + +5. **Closed PR #84 and created fresh migration PR #128** — Old migration had schema drift (single player_season_stats vs split batting/pitching). Validated dev database has all evolution tables already applied; prod does not. New migration SQL generated from actual dev schema. + +6. **Converted CI/CD to tag-based Docker builds** — Replaced branch/PR-triggered builds with tag-only triggers matching Major Domo pattern. Created PRs: database #129, discord #110. Removed calver/docker-tags/gitea-tag reusable actions. Added build cache to database workflow. + +7. **Built `/release` skill** — Shell script at `.claude/skills/release/release.sh` that validates repo state, auto-increments CalVer from existing git tags, creates tag, and pushes to trigger CI. Supports database, discord, and card-creation services. + +8. **Migrated pd-ops agent to project-level** — Moved from `~/.claude/agents/pd-ops.md` to `.claude/agents/pd-ops.md` in the umbrella repo. Updated with `/release` skill reference and new CI/CD conventions. + +9. **Fixed card-creation #47** — Pushed url_get return type fix (dict, not aiohttp.ClientResponse). PR reviewer found the function body also needs updating — still returns raw response object. + +## Decisions + +### Refractor Tier Names (Final) +Settled on baseball card collecting terminology. T3 and T4 were both "Superfractor" initially — Cal corrected to shift all tiers down by one so each tier has a unique name. T4 ("Superfractor") is the only fully-evolved state. + +### Tag-Based CI Over Auto-Tag +Chose fully manual tagging (Major Domo pattern) over auto-tag-on-merge. Auto-tagging adds noise — not every merge is release-worthy. The `/release` skill provides the convenience layer without the automation overhead. + +### pd-ops Stays One Agent (No Separate pd-ci) +CI/CD knowledge belongs in pd-ops, not a separate agent. Release coordination is a natural extension of pd-ops' merge and deploy responsibilities. A `/release` skill gives the action without splitting the persona. + +### context7 MCP Not Worth Adding Yet +Researched context7 for live library docs. FastAPI and aiohttp are well-indexed, but discord.py and Peewee (the two most hallucination-prone libraries) are not. Coverage too patchy to justify the overhead. + +## Follow-Up + +| Item | Repo | Priority | +|---|---|---| +| Merge CI PRs #129 and #110 | database, discord | High | +| Final review pass on Discord #87 and #88 | discord | High | +| Fix card-creation #47 (url_get body + hardcoded token) | card-creation | Medium | +| Address database #128 reviewer feedback (card_type uniqueness, rollback section) | database | Medium | +| Fix database #125 (skill scripts pagination + false assertions) | database | Medium | +| Fix database #126 (compose.production.yml + docs cleanup) | database | Low | +| Rotate exposed secrets (card-creation #50, database #9) | card-creation, database | High | +| Run evolution migration on prod when ready | database | Medium |