gosalyn: Case 2 playground ruling round d2 for Webby d1: a prefix that holds a book folder refuses (other-universe for another entry's book, mapping-invalid for its own), kind values and the draft key list, the readers of books and classify().book at cca206cdc with mapping.test.mjs:16-20, the 1.2 unmapped row, and a C2-01c line in section 8 (webby-0088 B1 N1-N4, mos-1233)
This commit is contained in:
@@ -68,7 +68,15 @@ The validator replaces `library-playground-outside-book` with two refusals. A pr
|
||||
another universe's book folder refuses `library-playground-other-universe`. A draft with `books`, or
|
||||
with no `playground` prefix, refuses `library-mapping-invalid`. The rule that no prefix holds another, and
|
||||
no prefix is listed twice, covers all three levels. A prefix equal to a book folder is still refused.
|
||||
A hybrid's `sources` can't name a draft, since a draft has no canon.
|
||||
A prefix that holds a book folder refuses too, since prefixes are checked first and the book would turn
|
||||
into playground: `library-playground-other-universe` when the book belongs to another entry, and
|
||||
`library-mapping-invalid` when it is the entry's own. A hybrid's `sources` can't name a draft, since a
|
||||
draft has no canon.
|
||||
|
||||
`kind` is absent for a plain universe, `"hybrid"` or `"draft"`, and any other value refuses
|
||||
`library-mapping-invalid`. A draft takes the keys `kind`, `name` and `playground` only, and `playground`
|
||||
must name at least one prefix. A plain universe still takes `name`, `books` and `playground`, and a
|
||||
hybrid keeps its key list.
|
||||
|
||||
REQ-LIB-2's scope rule still reads from the path alone, and a playground at any level is never canon.
|
||||
The rule checks prefixes first. A `.md` file under any universe's or draft's playground prefix is
|
||||
@@ -87,8 +95,24 @@ a draft. `library_universe` on a draft returns its kind, name and prefixes.
|
||||
|
||||
The build is a new row, C2-01c, in `packages/library` `mapping.mjs` and `scope.mjs`, with a test per
|
||||
level, per new refusal and per lookup rule above. It goes before C2-05a and C2-06 read `classify`, or into
|
||||
their candidates if they've started. C2-12's setup sheet gets one line per level. Sections 1.1 and 1.2 say
|
||||
so.
|
||||
their candidates if they've started. C2-12's setup sheet gets one line per level. Sections 1.1, 1.2 and 8
|
||||
say so.
|
||||
|
||||
C2-01c's brief names every reader of a universe's `books` and of `classify(...).book`, so a draft with no
|
||||
books and a null book reach no code that assumes them. At refactor cca206cdc these are:
|
||||
- `mapping.mjs:73-78`, which builds `books` and `bookOwner`, and `scope.mjs:11-18`, which C2-01c
|
||||
rewrites;
|
||||
- `reader.mjs:182` and `:194`, which copy `book` into every file record, and `:208`, which reads
|
||||
`sources` and works for a draft as it is;
|
||||
- `survey.mjs:66` and `mirror.mjs:246`, which read only `scope`.
|
||||
The rows not landed are C2-05a (row 216), with its book filter, `library_manuscript` and the
|
||||
`library_universe` reply, and C2-06 (row 217), with the guard's universe check. Each takes a null book
|
||||
through C2-01c's tests, or C2-01c goes into its candidate. The tests at `mapping.test.mjs:16-20` pin
|
||||
`library-playground-outside-book` and change with this row.
|
||||
|
||||
Webby's round d1 on this ruling (webby-0088, REVIEW-d1 at webby/reviews 35130c26b) found the missing
|
||||
refusal for a prefix that holds a book folder (B1), and asked for the `unmapped` row, the `kind` values,
|
||||
the readers and the section 8 line (N1-N4). All five are in the text above, in 1.2 and in 8.
|
||||
|
||||
## Changes from r10
|
||||
|
||||
@@ -478,8 +502,9 @@ The mapping is a new form of business file project entry. Business files live in
|
||||
- `playground` is a list of path prefixes inside each universe entry (B1). A prefix inside one of that
|
||||
universe's book folders is book level. A prefix outside every book folder is universe level. A
|
||||
`"kind": "draft"` entry has prefixes and no books, and is where a new universe starts. No prefix may
|
||||
hold another. A prefix inside another universe's book folder refuses the business file with
|
||||
`library-playground-other-universe`, so every playground file has one universe, and the one-universe
|
||||
hold another, or hold a book folder. A prefix inside, or holding, another universe's book folder
|
||||
refuses the business file with `library-playground-other-universe`, so every playground file has one
|
||||
universe, and the one-universe
|
||||
cite check (5.2) has something to compare (ruling after r11, three levels). Her repo has no playground
|
||||
today as far as I know. The setup sheet suggests one folder per book, for example
|
||||
`<book>/playground/`. Until she makes one, everything mapped is canon.
|
||||
@@ -504,7 +529,7 @@ Each path in her repo, relative to the repo root, gets one scope:
|
||||
|---|---|
|
||||
| `playground` | A `.md` file that starts with a playground prefix of any universe entry, drafts included |
|
||||
| `canon` | Otherwise, a `.md` file inside a configured book folder |
|
||||
| `unmapped` | Everything else: top-level notes, `.base`, `.canvas` (under a playground prefix too), attachments, anything outside a book folder |
|
||||
| `unmapped` | Everything else: top-level notes, `.base`, `.canvas` (under a playground prefix too), attachments, anything outside a book folder and outside every playground prefix |
|
||||
|
||||
Lookups default to canon and return playground only on request. Unmapped files are never returned or
|
||||
citable. The universe of a canon file is the universe whose `books` list holds its book folder. The
|
||||
@@ -1099,6 +1124,7 @@ Chains follow Q177 merge-chaining. S marks a slice row.
|
||||
| Row | S | Scope | After | Owner | Test gate |
|
||||
|---|---|---|---|---|---|
|
||||
| C2-01 | S | `packages/library`: mapping schema, scope rule, front matter reader, link resolver (`vaultPrefix`, relative, shortest path), R1-R7 reporting, `renderItems`, and `library survey` | none | Opus (Gosalyn) | one case per R-rule and per resolver step, a link into another repo unresolved, `appears_in` wikilinks indexed. `renderItems` snapshot per kind and notice. The survey prints names, counts, key sets and link-form counts, and a marker string in a fixture body never appears in its output |
|
||||
| C2-01c | S | Playgrounds at three levels (ruling after r11, mos-1233): `kind` values, draft entries, the prefix refusals, `classify` checking prefixes first, `book: null` | C2-01 | Opus | one test per level and per new refusal, including a prefix that holds its own book and one that holds another entry's book, and the readers named in the ruling given a draft and a null book. `mapping.test.mjs:16-20` moves to the new codes |
|
||||
| C2-04 | S | Business file `kind: "library"` entry, skips at each consumer in 2.1, M9, mirror creation at the `projectRepo` path, human verbs `library.file` (read) and `library.status` | C2-01 | Sol (Herb, sage-1482) | business file tests. One test per consumer skip. A launcher test that the workspace has no clone. M9 test. Each verb from an agent session refuses (M4) |
|
||||
| C2-03a | S | Fetch-only sync (7.2): `syncCommand`, askpass helper, served ref, `library-diverged`, `--accept`, sync state file, timer, `library.sync` | C2-04 | Opus | the C2-03a tests in 7.2 |
|
||||
| C2-05a | S | Lookup index and queries: find, get, search, manuscript with scope, universe, isolation | C2-01 | Haiku high | isolation, scope labels on every tool, unmapped files never returned, paging under `REPLY_CAP`, rebuild time on a 3,000-file fixture |
|
||||
|
||||
Reference in New Issue
Block a user