Revise the covers spec: both links given directly, static page served by a Cloudflare Worker plus a userscript on one pure core, Bun instead of Node, and R2 rehosting with a 30-day expiry. Move the spec to docs/specs/, merge HANDOVER.md into docs/DECISIONS.md, the spec and docs/TODO.md, and add AGENTS.md, pointer files, PERMISSIONS.md and agent permission configs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
60 lines
3.6 KiB
Markdown
60 lines
3.6 KiB
Markdown
# TODO
|
|
|
|
Durable backlog. Agents append here instead of leaving `TODO` comments in source.
|
|
Small, specific, independently actionable. Remove only when actually done.
|
|
Design: [specs/001-webtoons-covers.md](specs/001-webtoons-covers.md).
|
|
|
|
## Now
|
|
- [ ] User signs off the revised spec `docs/specs/001-webtoons-covers.md` (status: draft).
|
|
- [ ] Write the implementation plan with `superpowers:writing-plans` into `docs/plans/001-webtoons-covers.md`,
|
|
and **show it to the user before implementing** (the user asked for this in the design session).
|
|
|
|
## Next (rough order; the plan will refine it)
|
|
- [ ] **Scaffold with Bun.** `package.json`, `bun.lock`, TypeScript, `wrangler`, `.gitignore`.
|
|
Scripts for test, typecheck, build (page, Worker, userscript). Then fill the Commands in
|
|
`AGENTS.md` and the Verified commands in `docs/PERMISSIONS.md` from runs that worked.
|
|
- [ ] **Capture fixtures from real responses:** Webtoons pages (Tower of God, crow-time canvas,
|
|
title_no 6065 mature, a 2015 Wayback snapshot), Wayback CDX output, MangaBaka
|
|
`series`, `links`, `images` for 9999, and a snapshot/preview if a token is available.
|
|
- [ ] **Re-download the OpenAPI spec** from `https://mangabaka.org/api.json`; derive
|
|
`core/mangabaka/types.ts` (`SaveSubmissionBody`, series-images snapshot and preview,
|
|
`V1_Series_Cover_Image`).
|
|
- [ ] `core/`: model, transport (rate limit, retries, timeouts, token scoping), links, sources +
|
|
registry, webtoons (urls, parse, index), history/wayback, images, covers, mangabaka client,
|
|
hosting (worker, direct), seed.
|
|
- [ ] `worker/`: static assets, `/api/fetch` allowlist, `/api/upload` → R2, per-IP rate limit.
|
|
- [ ] `web/`: two-link form, review cards, rehost, copy, token flow (preview → confirm → save).
|
|
- [ ] `userscript/`: panel on mangabaka.org series pages, `GM_xmlhttpRequest` transport, token in
|
|
`GM_setValue`, build to `mbseed.user.js` with metadata banner.
|
|
- [ ] Manual smoke test against Tower of God (9999 / title_no 95).
|
|
- [ ] Update README, `docs/ARCHITECTURE.md` and `PRODUCT.md`/`DESIGN.md` to match reality.
|
|
|
|
## Verify with real services (once possible)
|
|
- [ ] Do Webtoons and Wayback serve requests from Cloudflare Worker IPs?
|
|
- [ ] Does MangaBaka accept our R2 URLs? Does it accept `swebtoon-phinf.pstatic.net` (`direct`)?
|
|
- [ ] Does MangaBaka copy images on submission or on approval?
|
|
- [ ] Is "main cover" really `is_default: true`? Ask on the MangaBaka Discord if unclear.
|
|
- [ ] Where are personal access tokens created in the MangaBaka UI? Add it to the README.
|
|
- [ ] Does the MangaBaka cover form accept fields filled by a userscript?
|
|
|
|
## Someday
|
|
- [ ] Bun CLI on the same core.
|
|
- [ ] More sources: Tapas, Tappytoon, Lezhin, Manta.
|
|
- [ ] Following Webtoons language editions of the same series.
|
|
- [ ] Edits beyond covers (series fields, links), via other submission resources.
|
|
- [ ] CI: check `AGENTS.md`, `CLAUDE.md`, `GEMINI.md` and the `docs/` paths exist; fail if
|
|
`AGENTS.md` exceeds 150 lines.
|
|
|
|
## Recurring
|
|
- [ ] Maintain `AGENTS.md`:
|
|
- **Add a rule only in response to a real failure.** When an agent repeatedly gets something wrong,
|
|
that is a gap; add one line, ideally with a code example. Do not pre-empt hypothetical mistakes.
|
|
- **Update in the same PR as the convention change.** A stale rules file is worse than none — it
|
|
actively misleads.
|
|
- **Prune quarterly.** Delete rules whose convention has changed or whose mistake no longer occurs.
|
|
- **Optional, cheap validation:** run the same task twice in clean sessions, with and without the
|
|
file, and compare steps and token use.
|
|
|
|
## Known issues
|
|
- None yet (no code).
|