erdos-problems 0.2.10 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +220 -23
  2. package/data/upstream/erdosproblems/SYNC_MANIFEST.json +4 -4
  3. package/docs/CANONICAL_REPO_MIGRATION_PLAN.md +279 -0
  4. package/docs/DEEP_RESEARCH_BUNDLE_SPEC.md +129 -0
  5. package/docs/ERDOS_PROBLEMS_PROBLEM_SCHEMA.md +27 -20
  6. package/docs/ERDOS_PROBLEMS_REPO_SPEC.md +22 -13
  7. package/docs/PAPER_WRITER_MODE.md +118 -0
  8. package/package.json +1 -1
  9. package/problems/1/AGENT_START.md +1 -1
  10. package/problems/1/EVIDENCE.md +1 -1
  11. package/problems/1/FORMALIZATION.md +2 -2
  12. package/problems/1/problem.yaml +6 -6
  13. package/problems/1008/problem.yaml +5 -5
  14. package/problems/18/problem.yaml +5 -5
  15. package/problems/19/AGENT_START.md +1 -1
  16. package/problems/19/EVIDENCE.md +1 -1
  17. package/problems/19/FORMALIZATION.md +2 -2
  18. package/problems/19/problem.yaml +6 -6
  19. package/problems/2/AGENT_START.md +1 -1
  20. package/problems/2/EVIDENCE.md +1 -1
  21. package/problems/2/FORMALIZATION.md +2 -2
  22. package/problems/2/problem.yaml +6 -6
  23. package/problems/20/problem.yaml +5 -5
  24. package/problems/21/AGENT_START.md +1 -1
  25. package/problems/21/EVIDENCE.md +1 -1
  26. package/problems/21/FORMALIZATION.md +2 -2
  27. package/problems/21/problem.yaml +6 -6
  28. package/problems/22/AGENT_START.md +1 -1
  29. package/problems/22/EVIDENCE.md +1 -1
  30. package/problems/22/FORMALIZATION.md +2 -2
  31. package/problems/22/problem.yaml +6 -6
  32. package/problems/3/AGENT_START.md +1 -1
  33. package/problems/3/EVIDENCE.md +1 -1
  34. package/problems/3/FORMALIZATION.md +2 -2
  35. package/problems/3/problem.yaml +6 -6
  36. package/problems/4/AGENT_START.md +1 -1
  37. package/problems/4/EVIDENCE.md +1 -1
  38. package/problems/4/FORMALIZATION.md +2 -2
  39. package/problems/4/problem.yaml +6 -6
  40. package/problems/5/AGENT_START.md +1 -1
  41. package/problems/5/EVIDENCE.md +1 -1
  42. package/problems/5/FORMALIZATION.md +2 -2
  43. package/problems/5/problem.yaml +6 -6
  44. package/problems/536/problem.yaml +5 -5
  45. package/problems/542/problem.yaml +5 -5
  46. package/problems/6/AGENT_START.md +1 -1
  47. package/problems/6/EVIDENCE.md +1 -1
  48. package/problems/6/FORMALIZATION.md +2 -2
  49. package/problems/6/problem.yaml +6 -6
  50. package/problems/7/AGENT_START.md +1 -1
  51. package/problems/7/EVIDENCE.md +1 -1
  52. package/problems/7/FORMALIZATION.md +2 -2
  53. package/problems/7/problem.yaml +6 -6
  54. package/problems/856/problem.yaml +5 -5
  55. package/problems/857/problem.yaml +5 -5
  56. package/problems/89/problem.yaml +5 -5
  57. package/src/atlas/catalog.js +6 -5
  58. package/src/cli/index.js +10 -5
  59. package/src/commands/bootstrap.js +1 -1
  60. package/src/commands/dossier.js +1 -1
  61. package/src/commands/maintainer.js +2 -2
  62. package/src/commands/paper.js +147 -0
  63. package/src/commands/problem.js +9 -9
  64. package/src/commands/pull.js +8 -8
  65. package/src/commands/scaffold.js +1 -1
  66. package/src/commands/seed.js +1 -1
  67. package/src/commands/upstream.js +27 -24
  68. package/src/runtime/maintainer-seed.js +12 -12
  69. package/src/runtime/paper.js +720 -0
  70. package/src/runtime/paths.js +16 -0
  71. package/src/runtime/problem-artifacts.js +2 -2
  72. package/src/runtime/state.js +1 -1
  73. package/src/upstream/sync.js +18 -18
package/README.md CHANGED
@@ -33,21 +33,24 @@ A short example from the first minute:
33
33
 
34
34
  ## What It Includes
35
35
 
36
- - a bundled snapshot of the Erdős problem atlas
36
+ - a bundled external atlas import snapshot for provenance and seeding
37
37
  - local dossiers and workspace bundles
38
38
  - separate surfaces for public status, local route state, and verification records
39
39
  - pack-specific views where this repo already has enough structure to support them
40
40
  - an ORP-based workflow for claims, checkpoints, and run artifacts
41
+ - a paper writer bundle mode for public-safe, citation-safe, agent-friendly drafting
41
42
 
42
- ## Repo, npm, and Upstream
43
+ ## Repo, npm, and External Imports
43
44
 
44
- - the npm package is the installable CLI plus the bundled atlas snapshot, packaged dossiers, and pack assets
45
- - the GitHub repo is the central collaboration space for dossiers, pack packets, docs, issues, discussions, and pull requests
46
- - `.erdos/` is local workspace state created by the CLI; it is not the canonical public collaboration surface
47
- - `erdos upstream show` tells you whether you are currently using the bundled package snapshot or a workspace-local refreshed snapshot
48
- - `erdos upstream sync` refreshes a workspace-local snapshot from `teorth/erdosproblems` without mutating the packaged bundle
49
- - `erdos upstream sync --write-package-snapshot` is the maintainer path for intentionally updating the bundled snapshot in this repo
50
- - repo-only collaboration files can live in the public repo without shipping in the npm tarball; see the GitHub contribution guide: https://github.com/SproutSeeds/erdos-problems/blob/main/CONTRIBUTING.md
45
+ - `SproutSeeds/erdos-problems` is the canonical public home for this project's atlas, dossiers, packs, and contribution workflow
46
+ - the npm package is the installable CLI plus the bundled import snapshot, packaged dossiers, and packaged pack assets
47
+ - the GitHub repo is the broader public collaboration space for dossiers, pack packets, docs, issues, discussions, PRs, and future deep research bundles
48
+ - `.erdos/` is local workspace state created by the CLI; it is not canonical repo truth
49
+ - `erdos import show` reports whether you are using the bundled import snapshot or a workspace-local refreshed import snapshot
50
+ - `erdos import sync` currently refreshes an external atlas import snapshot from `teorth/erdosproblems` without mutating the canonical local dossier layer
51
+ - `erdos import sync --write-package-snapshot` is the maintainer path for intentionally updating the bundled import snapshot in this repo
52
+ - repo-only deep-research directories such as `research/`, `formal/`, `paper/`, `imports/`, and `analysis/` are intentionally kept out of npm by staying outside the `package.json` `files` list
53
+ - repo-only public research can live in this GitHub repo without shipping in the npm tarball; see the contribution guide: https://github.com/SproutSeeds/erdos-problems/blob/main/CONTRIBUTING.md
51
54
 
52
55
  ## Start In 60 Seconds
53
56
 
@@ -57,7 +60,7 @@ Install:
57
60
  npm install -g erdos-problems
58
61
  ```
59
62
 
60
- Bootstrap a seeded problem:
63
+ If you already know the problem you want, the fastest path is:
61
64
 
62
65
  ```bash
63
66
  erdos bootstrap problem 857
@@ -66,7 +69,7 @@ erdos sunflower ready 857
66
69
  erdos workspace show --json
67
70
  ```
68
71
 
69
- Seed a new problem into the current workspace:
72
+ If you want to start from a new local seed:
70
73
 
71
74
  ```bash
72
75
  erdos seed problem 25 --cluster number-theory
@@ -74,6 +77,186 @@ erdos problem show 25
74
77
  erdos checkpoints sync
75
78
  ```
76
79
 
80
+ ## Beginner Flow
81
+
82
+ This is the zero-assumption path for a new user.
83
+
84
+ ### 1. Install the CLI once
85
+
86
+ ```bash
87
+ npm install -g erdos-problems
88
+ ```
89
+
90
+ This gives you a global `erdos` command. The workspace state it creates is local to the folder you are in.
91
+
92
+ ### 2. Make a clean working folder
93
+
94
+ ```bash
95
+ mkdir erdos-work
96
+ cd erdos-work
97
+ ```
98
+
99
+ Later, the CLI will create a local `.erdos/` directory here for workspace state, checkpoints, ORP files, and pulled artifacts.
100
+
101
+ ### 3. Browse everything first
102
+
103
+ ```bash
104
+ erdos problem list
105
+ ```
106
+
107
+ Use this when you do not yet know a problem number or cluster.
108
+
109
+ ### 4. Inspect one problem in plain English
110
+
111
+ ```bash
112
+ erdos problem show 857
113
+ ```
114
+
115
+ This shows the title, status, cluster, short statement, and research-state posture for that problem.
116
+
117
+ ### 5. Learn the families only after that
118
+
119
+ ```bash
120
+ erdos cluster list
121
+ erdos cluster show sunflower
122
+ ```
123
+
124
+ Once you know what a cluster is, you can narrow the atlas:
125
+
126
+ ```bash
127
+ erdos problem list --cluster sunflower
128
+ ```
129
+
130
+ ### 6. Start a workspace on a well-packaged problem
131
+
132
+ ```bash
133
+ erdos bootstrap problem 857
134
+ ```
135
+
136
+ What this does:
137
+ - creates `.erdos/` in the current folder
138
+ - activates the problem locally
139
+ - syncs the ORP kit
140
+ - scaffolds the workspace for the next research move
141
+
142
+ ### 7. Orient yourself immediately
143
+
144
+ ```bash
145
+ erdos workspace show
146
+ erdos state show
147
+ erdos problem artifacts 857 --json
148
+ ```
149
+
150
+ Use these to understand the workspace layout, current route/frontier state, and the artifact surface that already exists for the problem.
151
+
152
+ ### 8. Run the first honest-state sync
153
+
154
+ ```bash
155
+ erdos orp sync
156
+ erdos state sync
157
+ erdos preflight
158
+ ```
159
+
160
+ This refreshes the protocol kit, recomputes local research state, and checks whether the workspace is in a sane posture to continue.
161
+
162
+ ### 9. Set your continuation mode
163
+
164
+ ```bash
165
+ erdos continuation show
166
+ erdos continuation use route
167
+ ```
168
+
169
+ For most new users, `route` is the right default. It keeps the loop focused on the current route instead of bouncing between surfaces.
170
+
171
+ ### 10. Sync checkpoints before doing real work
172
+
173
+ ```bash
174
+ erdos checkpoints sync
175
+ ```
176
+
177
+ This writes the checkpoint shelf and keeps the workspace history honest.
178
+
179
+ ### 11. Look at the actual frontier
180
+
181
+ ```bash
182
+ erdos sunflower status 857
183
+ erdos sunflower frontier 857
184
+ erdos sunflower ready 857
185
+ ```
186
+
187
+ This is where the problem becomes actionable instead of just descriptive.
188
+
189
+ ### 12. Drill down to the next unit of work
190
+
191
+ ```bash
192
+ erdos sunflower routes 857
193
+ erdos sunflower ticket 857 T10
194
+ erdos sunflower atom 857 T10.G3.A2
195
+ ```
196
+
197
+ That is the real research loop:
198
+ - inspect route
199
+ - inspect ticket
200
+ - inspect atom
201
+ - do the next honest move
202
+
203
+ ### 13. Close the loop cleanly
204
+
205
+ ```bash
206
+ erdos state sync
207
+ erdos checkpoints sync
208
+ erdos workspace show
209
+ ```
210
+
211
+ If the problem is not already deeply packaged, use one-step local seeding instead of bootstrapping:
212
+
213
+ ```bash
214
+ erdos seed problem 25 --cluster number-theory
215
+ erdos preflight
216
+ erdos continuation use route
217
+ erdos checkpoints sync
218
+ erdos workspace show
219
+ ```
220
+
221
+ In that flow, the seeded dossier is written under `.erdos/seeded-problems/<id>/` and enters the same state/checkpoint loop as packaged dossiers.
222
+
223
+ ## Daily Loop
224
+
225
+ Once a workspace already exists, this is the main operating loop:
226
+
227
+ ```bash
228
+ erdos state sync
229
+ erdos preflight
230
+ erdos continuation use route
231
+ erdos checkpoints sync
232
+ erdos workspace show
233
+ ```
234
+
235
+ Then inspect the current frontier and active unit of work:
236
+
237
+ ```bash
238
+ erdos sunflower frontier 857
239
+ erdos sunflower atom 857 T10.G3.A2
240
+ ```
241
+
242
+ After a real step, sync checkpoints again:
243
+
244
+ ```bash
245
+ erdos checkpoints sync
246
+ ```
247
+
248
+ The guiding rule is simple:
249
+ - inspect frontier
250
+ - work the next honest move
251
+ - checkpoint at honest boundaries
252
+
253
+ Initialize or resume a paper bundle:
254
+
255
+ ```bash
256
+ erdos paper init 857
257
+ erdos paper show 857
258
+ ```
259
+
77
260
  Archive a solved problem:
78
261
 
79
262
  ```bash
@@ -85,7 +268,7 @@ erdos archive scaffold 1008 --json
85
268
 
86
269
  | Surface | Coverage |
87
270
  | --- | --- |
88
- | Bundled upstream atlas | `1183` problems |
271
+ | Bundled external atlas snapshot | `1183` problems |
89
272
  | Native packaged dossiers | `18` |
90
273
  | Sunflower pack | `20`, `536`, `856`, `857` |
91
274
  | Number-theory pack | `1`, `2` |
@@ -140,7 +323,7 @@ erdos seed problem 25 --cluster number-theory
140
323
  ```
141
324
 
142
325
  What this does:
143
- - pulls upstream public metadata into a workspace bundle
326
+ - pulls external public metadata into a workspace bundle
144
327
  - includes live site review and an agent websearch brief by default
145
328
  - seeds a local dossier into `.erdos/seeded-problems/<id>/`
146
329
  - syncs state, checkpoints, and ORP automatically
@@ -161,6 +344,19 @@ erdos maintainer review problem 25 --from-pull .erdos/pulls/25
161
344
  erdos maintainer seed problem 25 --from-pull .erdos/pulls/25 --cluster number-theory
162
345
  ```
163
346
 
347
+ ### 5. Initialize a paper writer bundle
348
+
349
+ ```bash
350
+ erdos paper init 857
351
+ erdos paper show 857
352
+ ```
353
+
354
+ What this does:
355
+ - creates or resumes a paper bundle for the problem
356
+ - writes machine-readable public evidence and section indexes
357
+ - scaffolds claim-safe section drafts, a citation ledger, and a privacy review
358
+ - defaults to `paper/problems/<id>/` when run inside this repo and to `.erdos/papers/<id>/` elsewhere
359
+
164
360
  ## Packs
165
361
 
166
362
  ### Sunflower Pack
@@ -233,7 +429,7 @@ Design rule:
233
429
 
234
430
  If you are using Codex, Claude Code, or another coding agent, the package provides:
235
431
  - canonical dossier files
236
- - upstream provenance
432
+ - external import provenance when available
237
433
  - pack-aware context where it exists
238
434
  - `.erdos/` workspace state
239
435
  - ORP templates and protocol guidance
@@ -247,7 +443,7 @@ Useful commands for agent workflows:
247
443
  erdos problem artifacts 857 --json
248
444
  erdos workspace show --json
249
445
  erdos pull literature 857 --include-crossref --include-openalex --json
250
- erdos upstream drift 857 --json
446
+ erdos import drift 857 --json
251
447
  ```
252
448
 
253
449
  ## ORP And Truth Hygiene
@@ -260,8 +456,8 @@ erdos upstream drift 857 --json
260
456
  - `templates/FAILED_TOPIC.md`
261
457
 
262
458
  The package keeps these layers separate:
263
- - upstream public truth
264
- - local canonical dossier truth
459
+ - canonical repo truth
460
+ - external imported public truth
265
461
  - workspace bundle truth
266
462
  - pack-specific route / checkpoint / run truth
267
463
 
@@ -294,13 +490,14 @@ erdos maintainer review problem 25 --from-pull .erdos/pulls/25
294
490
  erdos archive scaffold 1008 --json
295
491
  ```
296
492
 
297
- ## Canonical Sources
493
+ ## Canonical Home And External Inputs
298
494
 
495
+ - canonical repo: <https://github.com/SproutSeeds/erdos-problems>
299
496
  - local dossier truth: `problems/<id>/problem.yaml`
300
- - bundled upstream snapshot: `data/upstream/erdosproblems/`
301
- - workspace upstream snapshot: `.erdos/upstream/erdosproblems/`
302
- - live upstream repo: <https://github.com/teorth/erdosproblems>
303
- - live public site: <https://www.erdosproblems.com/>
497
+ - bundled external import snapshot: `data/upstream/erdosproblems/`
498
+ - workspace external import snapshot: `.erdos/upstream/erdosproblems/`
499
+ - external atlas import repo: <https://github.com/teorth/erdosproblems>
500
+ - external public site: <https://www.erdosproblems.com/>
304
501
 
305
502
  ## Docs
306
503
 
@@ -321,7 +518,7 @@ If you are preparing a public post, start here:
321
518
 
322
519
  ### What is the difference between this and erdosproblems.com?
323
520
 
324
- `erdosproblems.com` is a public problem atlas. `erdos-problems` uses that public record, but adds local dossiers, workspace scaffolding, checkpoints, and pack-specific views for the problems that already have more structure here.
521
+ `erdosproblems.com` is an external public problem source. `erdos-problems` imports from public sources when helpful, but keeps its canonical dossiers, packs, workflow, and contribution surface in this repo.
325
522
 
326
523
  ### Can I use this with Codex, Claude Code, or another agent?
327
524
 
@@ -1,9 +1,9 @@
1
1
  {
2
- "upstream_repo": "https://github.com/teorth/erdosproblems",
3
- "source_url": "https://raw.githubusercontent.com/teorth/erdosproblems/master/data/problems.yaml",
4
- "source_file": "data/problems.yaml",
2
+ "external_repo": "https://github.com/teorth/erdosproblems",
3
+ "external_source_url": "https://raw.githubusercontent.com/teorth/erdosproblems/master/data/problems.yaml",
4
+ "external_source_file": "data/problems.yaml",
5
+ "imported_commit": "cd91711d143184e090e5336e3165be50abfaaaf3",
5
6
  "fetched_at": "2026-03-25T19:24:57.377Z",
6
- "upstream_commit": "cd91711d143184e090e5336e3165be50abfaaaf3",
7
7
  "raw_sha256": "e2d161ffe3866275704bb18a268f9417f32d8a92a0af19fa119a856445cd2021",
8
8
  "entry_count": 1183
9
9
  }
@@ -0,0 +1,279 @@
1
+ # Canonical Repo Migration Plan
2
+
3
+ Last updated: 2026-03-30
4
+
5
+ ## Decision
6
+
7
+ `SproutSeeds/erdos-problems` becomes the canonical public home for:
8
+
9
+ - the Erdős problem atlas as presented by this project
10
+ - canonical seeded dossiers
11
+ - pack-specific route, board, and compute packets
12
+ - formal artifacts, papers, and deeper research files that are intentionally public
13
+ - contribution, issue, and pull-request workflow
14
+
15
+ External sources remain valuable, but they are inputs, not authorities:
16
+
17
+ - `erdosproblems.com` remains a public source surface
18
+ - `teorth/erdosproblems` remains an import and comparison source when useful
19
+ - `sunflower-coda` is treated as a migration source and lab origin, not the long-term public home
20
+
21
+ ## Why
22
+
23
+ The current architecture mixes two different ownership stories:
24
+
25
+ - the package, CLI, and curated public harness live in `SproutSeeds/erdos-problems`
26
+ - the bundled atlas snapshot and several provenance fields still point at `teorth/erdosproblems` as "upstream truth"
27
+
28
+ That split is workable for importing data, but confusing for users. It leaves the project with two competing authority stories:
29
+
30
+ - "this repo is the home"
31
+ - "another repo is the truth"
32
+
33
+ The migration resolves that by keeping one canonical owner and treating outside sources as import feeds with explicit provenance.
34
+
35
+ ## Product Model After Migration
36
+
37
+ ### Canonical public home
38
+
39
+ - GitHub repo: `SproutSeeds/erdos-problems`
40
+ - npm package: installable CLI and packaged public harness assets
41
+ - canonical problem records: `problems/<id>/`
42
+ - canonical pack context: `packs/<family>/`
43
+ - canonical public docs: `docs/`
44
+
45
+ ### External imports
46
+
47
+ - imported public site snapshots
48
+ - imported external atlas snapshots
49
+ - imported public literature adapters
50
+
51
+ These stay visible as provenance, but never outrank the canonical local record.
52
+
53
+ ### Packaging split
54
+
55
+ The GitHub repo may contain much more than the npm tarball.
56
+
57
+ GitHub can hold:
58
+
59
+ - deep research notes
60
+ - paper drafts and public reference bundles
61
+ - Lean and formalization source
62
+ - board JSON exports
63
+ - long-form analysis artifacts
64
+
65
+ The npm package should ship only what is needed for:
66
+
67
+ - the CLI
68
+ - canonical dossiers
69
+ - pack packets
70
+ - packaged compute packets
71
+ - essential docs and templates
72
+
73
+ ## Current State
74
+
75
+ Today the repo already behaves partly like the canonical home:
76
+
77
+ - `erdos problem list` and `erdos problem show` are driven by local seeded dossiers under `problems/`
78
+ - the public deep harness for `20` and `857` is already expressed in local pack files under `packs/sunflower/`
79
+ - the GitHub repo is already the collaboration surface for issues and PRs
80
+
81
+ But these parts still reflect the old authority model:
82
+
83
+ - `src/upstream/sync.js` fetches and labels `teorth/erdosproblems` as the upstream repo
84
+ - bundled manifest files record that external repo as the source of truth
85
+ - dossier `upstream.repo` fields and references point at `teorth/erdosproblems`
86
+ - docs describe that external repo as the upstream truth layer
87
+ - package shipping boundaries are still broad enough that repo-only deep research would accidentally ship if dropped into currently published directories
88
+
89
+ ## Migration Principles
90
+
91
+ 1. One canonical owner
92
+ `SproutSeeds/erdos-problems` is the only authority users should need to trust.
93
+
94
+ 2. Provenance without ambiguity
95
+ External records stay cited, but only as imported evidence.
96
+
97
+ 3. Fast install, deep repo
98
+ npm stays lean enough for CLI installs, while GitHub can hold the full public research archive.
99
+
100
+ 4. Public handoff first
101
+ A new user should be able to pick up `20` or `857` and immediately see the live route posture, active files, and next honest move.
102
+
103
+ 5. Deep material on demand
104
+ Users should be able to pull or inspect fuller problem bundles from the repo without shipping all of that by default in npm.
105
+
106
+ ## Rollout Phases
107
+
108
+ ## Phase 1: Ownership And Provenance Cleanup
109
+
110
+ Goal:
111
+ - make the docs and metadata say what the product now means
112
+
113
+ Changes:
114
+ - rewrite docs so `SproutSeeds/erdos-problems` is described as canonical
115
+ - replace "upstream truth" wording with "external import source" wording
116
+ - update dossier schema language to distinguish:
117
+ - canonical local record
118
+ - imported external sources
119
+ - public site snapshots
120
+ - update any visible README/help text that suggests the external repo is authoritative
121
+
122
+ Acceptance:
123
+ - a user reading the README should understand there is one canonical repo
124
+ - no user-facing docs should describe `teorth/erdosproblems` as the authoritative owner of this package's atlas
125
+
126
+ ## Phase 2: Package Boundary Split
127
+
128
+ Goal:
129
+ - let GitHub hold the full public archive without forcing it into npm
130
+
131
+ Changes:
132
+ - define repo-only directories for deep research
133
+ - tighten `package.json` `files` handling or segregate content so deep research is excluded from the tarball
134
+ - document which directories are:
135
+ - canonical and shipped
136
+ - canonical but repo-only
137
+ - generated workspace state
138
+
139
+ Candidate repo-only directories:
140
+ - `research/`
141
+ - `formal/lean/`
142
+ - `paper/`
143
+ - `imports/`
144
+ - `analysis/`
145
+
146
+ Acceptance:
147
+ - `npm pack --dry-run` excludes repo-only deep research
148
+ - GitHub still exposes the full public archive
149
+
150
+ ## Phase 3: Repo Structure For Full Public Research
151
+
152
+ Goal:
153
+ - move the public-facing deep material into this repo in an orderly way
154
+
155
+ Changes:
156
+ - create canonical directories for:
157
+ - problem-deep research bundles
158
+ - Lean / formal source
159
+ - paper drafts and publication support
160
+ - imported external snapshots and reconciliations
161
+ - preserve a clear distinction between:
162
+ - concise user-facing handoff packets
163
+ - deeper research inventory
164
+
165
+ Suggested layout:
166
+
167
+ ```text
168
+ erdos-problems/
169
+ problems/<id>/
170
+ packs/<family>/
171
+ research/problems/<id>/
172
+ formal/lean/
173
+ paper/
174
+ imports/
175
+ ```
176
+
177
+ Acceptance:
178
+ - the repo can absorb public material from `sunflower-coda` without collapsing the package structure
179
+
180
+ ## Phase 4: CLI Surface For Deep Problem Bundles
181
+
182
+ Goal:
183
+ - let users access the deeper repo-held material intentionally
184
+
185
+ Changes:
186
+ - add documented repo-backed bundle concepts, for example:
187
+ - deep research bundle
188
+ - formalization bundle
189
+ - paper/reference bundle
190
+ - expose them either as:
191
+ - repo file paths in scaffold outputs
192
+ - new CLI commands
193
+ - both
194
+
195
+ Possible commands:
196
+ - `erdos problem deep 857`
197
+ - `erdos problem formal 857`
198
+ - `erdos pull repo-bundle 857`
199
+
200
+ Acceptance:
201
+ - a user can start with the lightweight public packet
202
+ - then intentionally step into the deeper public archive without guessing where things live
203
+
204
+ ## Phase 5: External Import And Reconciliation Workflow
205
+
206
+ Goal:
207
+ - retain harmony with outside sources without giving away canonical ownership
208
+
209
+ Changes:
210
+ - rename the current "upstream" semantics toward import/reconcile language
211
+ - preserve diff tooling, but point it at external comparisons rather than canonical truth
212
+ - store imported manifests under an explicitly non-canonical namespace
213
+
214
+ Possible wording shift:
215
+ - current: "upstream snapshot"
216
+ - target: "import snapshot" or "external atlas snapshot"
217
+
218
+ Acceptance:
219
+ - a mismatch between an external source and the canonical local record is legible as a reconciliation task, not a contradiction in authority
220
+
221
+ ## Phase 6: Flagship Problem Migration
222
+
223
+ Goal:
224
+ - make `20` and `857` the model examples of the full system
225
+
226
+ Changes:
227
+ - migrate the public `sunflower-coda` materials for those problems into this repo
228
+ - replace `sunflower-coda/repo/...` path references with repo-local paths
229
+ - ensure the public packet plus deep bundle plus formal bundle line up cleanly
230
+
231
+ Acceptance:
232
+ - a new user can pick up `20` or `857` from this repo alone
233
+ - no crucial public handoff step depends on another repo existing
234
+
235
+ ## Risks
236
+
237
+ ### Risk: accidental npm bloat
238
+
239
+ If deep research lands under currently shipped directories, npm installs become heavier and noisier.
240
+
241
+ Mitigation:
242
+ - separate repo-only directories
243
+ - verify with `npm pack --dry-run`
244
+
245
+ ### Risk: provenance confusion
246
+
247
+ If external import fields disappear entirely, users may lose track of where records originated.
248
+
249
+ Mitigation:
250
+ - keep provenance blocks, but label them as imported or external
251
+
252
+ ### Risk: partial migration
253
+
254
+ If docs are updated before structure and commands are ready, users may expect deeper repo-backed pulls that do not exist yet.
255
+
256
+ Mitigation:
257
+ - roll out phase by phase
258
+ - clearly document what exists now versus what is planned
259
+
260
+ ## Initial Implementation Slice
261
+
262
+ This change series should start with the smallest durable slice:
263
+
264
+ 1. store this migration plan in the repo
265
+ 2. update ownership/provenance docs so the repo is described as canonical
266
+ 3. create the repo-only directory contract and npm boundary rules
267
+ 4. add minimal scaffolding docs for deep research bundles
268
+
269
+ That gives the project a correct public model before the larger content migration begins.
270
+
271
+ ## Definition Of Done
272
+
273
+ The migration is complete when:
274
+
275
+ - `SproutSeeds/erdos-problems` is clearly the canonical public home in docs, metadata, and CLI wording
276
+ - external sources are treated as imports and reconciliation inputs
277
+ - the repo can hold public Lean, paper, and deep research artifacts without shipping all of them to npm
278
+ - flagship problems like `20` and `857` can be followed from this repo alone
279
+ - contributors can update dossiers, packs, and deep research in one place