Skip to content

docs: dependency diagram across active series - #38

Draft
kumavis wants to merge 1 commit into
mainfrom
claude/document-dependencies-diagram-1Mfd8
Draft

docs: dependency diagram across active series#38
kumavis wants to merge 1 commit into
mainfrom
claude/document-dependencies-diagram-1Mfd8

Conversation

@kumavis

@kumavis kumavis commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Condensed read of MASTER_ROADMAP.org as a series-level dependency
graph. Each Series / notable Track is a node; arrows say "enables"
(solid for hard prerequisites, double-line for load-bearing
convergence points, dotted for theory feedback and cross-cut
enrichments). Includes a mermaid diagram and a one-paragraph
description of every active series.

https://claude.ai/code/session_01YS1Z3dHpgg4SCh3PLABtNi

Condensed read of MASTER_ROADMAP.org as a series-level dependency
graph. Each Series / notable Track is a node; arrows say "enables"
(solid for hard prerequisites, double-line for load-bearing
convergence points, dotted for theory feedback and cross-cut
enrichments). Includes a mermaid diagram and a one-paragraph
description of every active series.

https://claude.ai/code/session_01YS1Z3dHpgg4SCh3PLABtNi
@kumavis
kumavis marked this pull request as draft April 29, 2026 02:55
kumavis pushed a commit that referenced this pull request May 9, 2026
Three new entries in 2026-04-27_GOBLIN_PITFALLS.md:

- #36: Multi-line constructor / function application — continuation
  args on a separate line are eaten as an inner application. Hit
  twice in this branch (Phase 41 `bs-add-pipeline-msg`, Phase 48
  `bs-gc-listeners-by-notified`); the second occurrence triggered
  codification per the workflow rule "codify a 2-occurrence pattern
  within a track immediately."

- #37: Single-arg multi-arity `defn` over `data` patterns sometimes
  infers a phantom 2nd parameter. Hit on `resolution-syrup-of-pst`
  (Phase 48); the fix was to switch to `defn name [arg] match arg`
  shape, which pinned the inferred type back to the spec.

- #38: `let X := EXPR` value can't span multiple lines. Hit on
  `drive-break-with-two-ops` (Phase 49); same workaround family as
  #21 and #36 — collapse to one line. Recorded separately because
  the error message ("missing value after :=") points at a
  different line than the actual broken `let`.

Plus a "Recurrences during Phase 47-49" section noting that
pitfall #16 (forward references) was hit again on `member-nat?` —
existing entry confirmed correct.

Also updated `.claude/rules/prologos-syntax.md` § "Application
style" with two new bullets cross-referencing #36/#37/#38, so
future implementations catch these at write time rather than at
load-time error. Per the workflow rule "if a workaround is needed
twice in the same track, add it to the pitfalls log AND to the
relevant rule file immediately."

https://claude.ai/code/session_01YM6gc3cMNH2Ymor4jdZY8u
kumavis pushed a commit that referenced this pull request Aug 1, 2026
…off migration

Three new entries plus a recurrence note, all Prologos-level rather than
OCapN-level.

#52 is the load-bearing one: a forward reference in a single-pass module
reduces to a STUCK TERM, which is well-typed, so nothing errors until an
FFI marshaller cannot accept a term -- and it then prints 41 KB of
unreduced tree naming the outermost stuck call rather than the definition
that was out of order. The expensive half is the false all-clear:
`:refer`, `:refer-all`, a probe calling every new function by name, and
`raco make` all passed while the module was broken. Referring a name does
not force its body, and calling a leaf does not reach the bad ordering.
Verify by calling the ENTRY POINT.

It also names the general defect the fourth sighting makes clear:
Prologos has no diagnostic for "this did not reduce." A warning on any
residual application of an fvar at end of module load would have caught
under-application, the forward reference, and the stuck `reserve-export`
result in seconds each.

#53 is a facet of #38 with a different and actively wrong message: a
`let` value broken after a complete bracketed argument reports "`let` is
not allowed at top level" for a `let` nested four levels inside a defn.

#54 records that check-parens.sh is Racket read-syntax and cannot read a
.prologos file, so running it there reports a bogus imbalance.

The #47 recurrence note is short but earns its place: a stale .pnet, an
under-applied call and a forward reference all present as a bare
"Unbound variable" with no location, so the cache is the cheap
discriminator and should be cleared before reading any code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YM6gc3cMNH2Ymor4jdZY8u
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants