Browse the rules, stage 2: a rules library per game system, outside any campaign #1241

Closed
opened 2026-10-26 23:37:12 +00:00 by claude-bot · 3 comments
Collaborator

Why

Owner, 26 Oct 2026, stage 2 of 4, after #1240. Today loaded content can only be reached from inside a campaign that uses that game system. Nobody can see what a pack actually loaded without making or opening such a campaign, and nothing can be looked up between campaigns.

What (to draw first)

  • A rules library for each game system that has packs loaded. It reuses #1240's kinds, list, filters and entry view, scoped to the instance's packs rather than a campaign's.
  • A Browse view on each pack in Admin → Content packs: that pack's records only, by kind. This checks an import ("did the feats come through?") and sits beside the import warnings.
  • To decide in the drawing:
    • Who may open the per-system library: admins only, or any signed-in user of the server? Campaign packs are never included; GM-only records follow the same rule as today.
    • Where its door is. D64 keeps loaded packs off every public page, so this is never public.
    • Whether "Make it ours" and "Add to a sheet" appear here. They need a campaign, so probably "Open in a campaign…" or nothing.

Server

  • The search service scoped to the instance only (campaign_id absent) plus an optional pack_id, with the visibility rule written down.
  • Counts by kind per pack. counts on the pack row may already carry these; check.

Process

Draw, owner sign-off, build, a CATALOGUE row (ADMIN-11, and a new surface for the library). Tests: no campaign pack ever shows; a disabled pack is listed as disabled with its records out of the library; admin and non-admin access follows whatever the drawing settles.

## Why Owner, 26 Oct 2026, stage 2 of 4, after #1240. Today loaded content can only be reached from inside a campaign that uses that game system. Nobody can see what a pack actually loaded without making or opening such a campaign, and nothing can be looked up between campaigns. ## What (to draw first) - **A rules library for each game system** that has packs loaded. It reuses #1240's kinds, list, filters and entry view, scoped to the instance's packs rather than a campaign's. - **A Browse view on each pack** in Admin → Content packs: that pack's records only, by kind. This checks an import ("did the feats come through?") and sits beside the import warnings. - **To decide in the drawing:** - Who may open the per-system library: admins only, or any signed-in user of the server? Campaign packs are never included; GM-only records follow the same rule as today. - Where its door is. D64 keeps loaded packs off every public page, so this is never public. - Whether "Make it ours" and "Add to a sheet" appear here. They need a campaign, so probably "Open in a campaign…" or nothing. ## Server - The search service scoped to the instance only (`campaign_id` absent) plus an optional `pack_id`, with the visibility rule written down. - Counts by kind per pack. `counts` on the pack row may already carry these; check. ## Process Draw, owner sign-off, build, a CATALOGUE row (ADMIN-11, and a new surface for the library). Tests: no campaign pack ever shows; a disabled pack is listed as disabled with its records out of the library; admin and non-admin access follows whatever the drawing settles.
Author
Collaborator

Drawn as lane 6f: https://questboard-dev.rhoving.com/feedback/prototype/lane6f (branch design/1241-rules-library).

The page has the library (LIB-1), Browse on a pack in Admin (ADMIN-11b) including a switched-off pack, a phone view, and the nothing-loaded state. Four questions for the owner are at the bottom:

  1. Who may open the library? Drawn for any signed-in user.
  2. Who sees GM-only entries outside a campaign? Drawn for admins and anyone who runs a campaign of that system.
  3. Where are its doors? Drawn as Home's menu → This server, plus Browse on each pack.
  4. What can you do with an entry outside a campaign? Drawn as "Use it in a campaign…", the alternative being nothing.

Building waits for sign-off.

Drawn as lane 6f: https://questboard-dev.rhoving.com/feedback/prototype/lane6f (branch `design/1241-rules-library`). The page has the library (LIB-1), Browse on a pack in Admin (ADMIN-11b) including a switched-off pack, a phone view, and the nothing-loaded state. Four questions for the owner are at the bottom: 1. Who may open the library? Drawn for any signed-in user. 2. Who sees GM-only entries outside a campaign? Drawn for admins and anyone who runs a campaign of that system. 3. Where are its doors? Drawn as Home's menu → This server, plus Browse on each pack. 4. What can you do with an entry outside a campaign? Drawn as "Use it in a campaign…", the alternative being nothing. Building waits for sign-off.
Author
Collaborator

The owner answered Q194–Q198 on 31 Oct. Recorded as D305–D309 (commit on design/1241-rules-library, PR #1298):

  • D305: anyone signed in may open the library. It is on no public page.
  • D306: GM-only entries are shown to admins, and to anyone who runs a campaign of that game system.
  • D307: three doors:
    • Home's menu → This server → Rules library;
    • Browse on each pack in Admin;
    • and "The whole library" on each campaign's Rules page (option b). The drawing now shows this one too.
  • D308: an entry offers "Use it in a campaign…".
  • D309: "Copy a link to it" opens the library with that entry open.

Building next.

The owner answered Q194–Q198 on 31 Oct. Recorded as D305–D309 (commit on `design/1241-rules-library`, PR #1298): - **D305:** anyone signed in may open the library. It is on no public page. - **D306:** GM-only entries are shown to admins, and to anyone who runs a campaign of that game system. - **D307:** three doors: - Home's menu → This server → Rules library; - Browse on each pack in Admin; - **and** "The whole library" on each campaign's Rules page (option b). The drawing now shows this one too. - **D308:** an entry offers "Use it in a campaign…". - **D309:** "Copy a link to it" opens the library with that entry open. Building next.
rbrooks referenced this issue from a commit 2026-10-31 19:26:18 +00:00
Author
Collaborator

Done: #1300 merged on 1 Nov, after CI went green and the owner approved all 16 pieces of wording (Wording Review part l).

What shipped:

  • the rules library at /rules, with one button per game system, the kinds, filters and numbered pages, and search;
  • records open in place, with "Use it in a campaign…" and "Copy a link to it";
  • open= deep links, on the campaign Rules page too;
  • the three doors: Home's menu → This instance → Rules library, Browse on each pack in Admin, and "The whole library" on a campaign's Rules page;
  • the admin pack page, at any status, with the switched-off banner;
  • GM-only records outside a campaign follow D306.

Also fixed in the same PR: #1301 (a record's markdown is drawn, not shown raw) and the pressed state on the system buttons.

The render check found more things that were already on main; they're filed as #1302.

Follow-up from the design: no import-warnings link on the pack page, because the server doesn't keep a pack's warnings after the import.

Done: #1300 merged on 1 Nov, after CI went green and the owner approved all 16 pieces of wording (Wording Review part l). What shipped: - the rules library at `/rules`, with one button per game system, the kinds, filters and numbered pages, and search; - records open in place, with "Use it in a campaign…" and "Copy a link to it"; - `open=` deep links, on the campaign Rules page too; - the three doors: Home's menu → This instance → Rules library, Browse on each pack in Admin, and "The whole library" on a campaign's Rules page; - the admin pack page, at any status, with the switched-off banner; - GM-only records outside a campaign follow D306. Also fixed in the same PR: #1301 (a record's markdown is drawn, not shown raw) and the pressed state on the system buttons. The render check found more things that were already on main; they're filed as #1302. Follow-up from the design: no import-warnings link on the pack page, because the server doesn't keep a pack's warnings after the import.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
rbrooks/Quest-Board#1241
No description provided.