PLAN-QELD-PACKAGE.md landed in #65 with the design settled and the ambiguities deliberately left open. This issue is where they get discussed and closed. Each item names the phase that needs it, so nothing has to be decided earlier than it must be.
The plan's section 8 is the authoritative text; this is the tracker.
Needed before Q6 (pilots)
1. The .npy pair — how do we convert caron.npy and nom_balances.npy? These are (63, 2) and (81, 2) float64 arrays whose manifests already name the columns. Converting to CSV deletes requests, BytesIO and two imports from french_rev in every consuming repo, and makes two of the repo's most provenance-poor files legible in a diff.
The window closed while the design was being written. When analysed both had consumers: []; the A3 set was repointed in #49 and both now have two consumers, so this is no longer a free replacement. Either the "new vintage, new filename" route (caron.csv lands alongside, consumers opt in, the .npy is swept later) or a coordinated set under repoint rules 1-3. french_rev is a pilot, so this gates it.
2. dataBHS.mat — convert at migration, or exclude? 5,588 bytes, three (236, 1) float64 variables, and the lecture uses only one of them inside a hide-input cell, so nothing about the read is taught. Trivially a 236x3 CSV. It is the only file in the whole endgame that cannot be read from a URL, so this decision is what makes url()-only sufficient or not. A Track C question.
Note the caveat in section 4.3: pandas' default CSV parser is fast but not correctly rounded, so any binary-to-text conversion must state its read and gate on np.array_equal under the reader the lecture will actually use.
Needed before Q7 (sweep)
3. pandas_panel's carve-out — permanent, or revisited? The prose reads "The dataset can be accessed with the following link:" and then shows a cell containing nothing but the URL, so a beginner can paste it into a browser. All three files already resolve to data-lectures in the exact form qeld emits, so converting buys nothing and costs the link. The alternative is rewriting the prose, which is a larger edit than the one being justified.
4. The markdown-time story for {download} links. qeld.url() cannot appear in markdown. 28 prose refs exist and 11 name a data file in two places; the acute case is simple_linear_regression.md, where a {download} role and the code read sit five lines apart containing byte-identical 158-character strings. Options: convert both and accept two spellings, leave those lectures alone, or give qeld a markdown-time story such as a MyST substitution. Until answered, "convert neither" is the default.
Needed before Tracks B and C migrate
5. The rename list for generic filenames. The published tree is flat, so the key is a bare filename, and several pending files will not survive it: fred_data.csv names a source rather than a dataset, fp.dta is two letters, test_pwt.csv says "test", acs_data_summary.csv claims a whole survey. Each rename needs its prose pairing found by grep, not by the audit — mle.md:160 names mle/fp.dta in prose today.
Scope
6. Is lecture-intro.zh-cn in scope for v1? It carries data reads, appears in zero consumers blocks, is excluded from SCAN_REPOS by decision, has no data CI, publishes on a tag, and inherits install cells automatically through the markdown-only sync — so it acquires whatever intro acquires without anyone deciding. It also holds files with no data-lectures key and no business having one, such as country_code_cn.csv, a translation asset.
The plan recommends an explicit v1 non-goal with one fixed rule instead of machinery: any sweep touching an intro file also touches zh-cn.
7. qeds. Dead as a project but still installable — PyPI returns 200 for 0.7.0, not yanked — and one letter-transposition from qeld. Worth asking Spencer or Tom what actually retired it, since the answer tests the zero-dependency bet. quantecon-data and qedata are both free and cheap to reserve as stubs.
Not an ambiguity, but decided here if anyone disagrees
Publishing qeld does not move #35's licensing gate. It rehosts nothing and fetches the same public URLs pandas_panel reads today. Concretely: do not add a release check that fails on redistribution: restricted, because countries.csv is restricted and unresolved, so such a check would block every release from day one.
🤖 Generated with Claude Code
PLAN-QELD-PACKAGE.mdlanded in #65 with the design settled and the ambiguities deliberately left open. This issue is where they get discussed and closed. Each item names the phase that needs it, so nothing has to be decided earlier than it must be.The plan's section 8 is the authoritative text; this is the tracker.
Needed before Q6 (pilots)
1. The
.npypair — how do we convertcaron.npyandnom_balances.npy? These are (63, 2) and (81, 2) float64 arrays whose manifests already name the columns. Converting to CSV deletesrequests,BytesIOand two imports fromfrench_revin every consuming repo, and makes two of the repo's most provenance-poor files legible in a diff.The window closed while the design was being written. When analysed both had
consumers: []; the A3 set was repointed in #49 and both now have two consumers, so this is no longer a free replacement. Either the "new vintage, new filename" route (caron.csvlands alongside, consumers opt in, the.npyis swept later) or a coordinated set under repoint rules 1-3.french_revis a pilot, so this gates it.2.
dataBHS.mat— convert at migration, or exclude? 5,588 bytes, three (236, 1) float64 variables, and the lecture uses only one of them inside ahide-inputcell, so nothing about the read is taught. Trivially a 236x3 CSV. It is the only file in the whole endgame that cannot be read from a URL, so this decision is what makesurl()-only sufficient or not. A Track C question.Note the caveat in section 4.3: pandas' default CSV parser is fast but not correctly rounded, so any binary-to-text conversion must state its read and gate on
np.array_equalunder the reader the lecture will actually use.Needed before Q7 (sweep)
3.
pandas_panel's carve-out — permanent, or revisited? The prose reads "The dataset can be accessed with the following link:" and then shows a cell containing nothing but the URL, so a beginner can paste it into a browser. All three files already resolve to data-lectures in the exact form qeld emits, so converting buys nothing and costs the link. The alternative is rewriting the prose, which is a larger edit than the one being justified.4. The markdown-time story for
{download}links.qeld.url()cannot appear in markdown. 28 prose refs exist and 11 name a data file in two places; the acute case issimple_linear_regression.md, where a{download}role and the code read sit five lines apart containing byte-identical 158-character strings. Options: convert both and accept two spellings, leave those lectures alone, or give qeld a markdown-time story such as a MyST substitution. Until answered, "convert neither" is the default.Needed before Tracks B and C migrate
5. The rename list for generic filenames. The published tree is flat, so the key is a bare filename, and several pending files will not survive it:
fred_data.csvnames a source rather than a dataset,fp.dtais two letters,test_pwt.csvsays "test",acs_data_summary.csvclaims a whole survey. Each rename needs its prose pairing found by grep, not by the audit —mle.md:160namesmle/fp.dtain prose today.Scope
6. Is
lecture-intro.zh-cnin scope for v1? It carries data reads, appears in zeroconsumersblocks, is excluded fromSCAN_REPOSby decision, has no data CI, publishes on a tag, and inherits install cells automatically through the markdown-only sync — so it acquires whatever intro acquires without anyone deciding. It also holds files with no data-lectures key and no business having one, such ascountry_code_cn.csv, a translation asset.The plan recommends an explicit v1 non-goal with one fixed rule instead of machinery: any sweep touching an intro file also touches zh-cn.
7.
qeds. Dead as a project but still installable — PyPI returns 200 for 0.7.0, not yanked — and one letter-transposition fromqeld. Worth asking Spencer or Tom what actually retired it, since the answer tests the zero-dependency bet.quantecon-dataandqedataare both free and cheap to reserve as stubs.Not an ambiguity, but decided here if anyone disagrees
Publishing qeld does not move #35's licensing gate. It rehosts nothing and fetches the same public URLs
pandas_panelreads today. Concretely: do not add a release check that fails onredistribution: restricted, becausecountries.csvis restricted and unresolved, so such a check would block every release from day one.🤖 Generated with Claude Code