12 KiB
12 KiB
Comprehension history
2026-10-09T08:59:19Z, PR #190 at 17f732a, against ee4b40b
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
pick.go:9pickKey: the definition sits on the type, besidelevelKeys,addressedKeys,keptInPickandreadUnder, where four files held themrender.go:155readField: one named predicate,keptInPick, states the whole keep ruledatatype.go:217columnRead: beside the code that reads it
Inherited architect, decided by:
pick.go:9pickKey: the 3am path for a named pick now ends in one file, with its worked examplerender.go:155readField:keptInPickholds its own nil and reference checkspath.go:72compiledPath: the field no longer reuses the vocabulary word level
2026-10-09T09:24:31Z, PR #190 at 65a32db, against ee4b40b
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
pick.go:9pickKey: the definitions sit on the type, beside the functions that build and read the keysdatatype.go:217columnRead: besideitemDatatypeandcheckColumns, which consume itnode.go:70template.readsColumn: names the four readers that change together
Inherited architect, decided by:
pick.go:9pickKey: a pick-key bug needs one file, where it needed four and the vocabularyrender.go:155readField: one named predicate,keptInPick, states the keep rulepath.go:72compiledPath:headSpansis the costliest new read in the diff
2026-10-09T09:30:15Z, PR #190 at d9f0fc9, against ee4b40b
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
pick.go:9pickKey: the definitions and the code building and reading the keys share one filerender.go:155readField:keptInPickholds the whole keep rule and its own nil checkpath.go:74compiledPath:headSpansand the bare 0 its callers pass cost a second read
Inherited architect, decided by:
pick.go:9pickKey: the 3am mechanism reads in one file, in reading orderdatatype.go:217columnRead: beside its consumers, andnode.go:70names its four readerspath.go:119compileStep: six parameters, the one place that reads harder
2026-10-09T10:16:38Z, PR #193 at c27e8b7, against d74c0ed
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
data-import/geo.py:75fence: one named step states the locality row and drops childless parents level by level, wherewith_streetspruned localities alonedata-import/geo-us.py:174main: the county and region pruning no longer hides inside thetsv.writecomprehensionsdata-import/geo-se.py:186main: builds its rows before the fence, so it has the US script's shape
Inherited architect, decided by:
data-import/geo.py:75fence: the loader's parent-has-a-child rule is named in the import code and applied in one place at all three levelsdata-import/geo-us.py:174main: onefencecall before any write replaces filters buried in the writesdata-import/geo-se.py:186main: both scripts read alike, build rows, fence, write
2026-10-09T10:29:19Z, PR #193 at 8433689, against d74c0ed
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
data-import/geo.py:75fence: the parent-has-a-child rule lives in one function whose docstring states the rule, each argument's shape and what it returnsdata-import/geo-us.py:174main:zctasis built once and fenced, and every write reads fromkeptwith no filter of its owndata-import/geo-us.py:128zcta_localities: the name says it returns a ZCTA-to-place map, wherepostal_codespointed at the wrong output
Inherited architect, decided by:
data-import/geo.py:75fence: one unit owns the chain from locality to municipality to region, where the base spread it overwith_streetsand bothmainsdata-import/geo-us.py:128zcta_localities: the name and docstring say what it maps todata-import/geo-se.py:181main:region_namesandmunicipality_namessay they map codes to names, and the rows are built once before the fence
2026-10-07, scoring run at ad59967
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mean | 7.00 | 5.88 | 6.50 | 6.13 | 6.38 |
2026-10-09T11:04:29Z, PR #195 at b9d1af6
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Junior A | 7.5 | 6.5 | 7 | 7 | 7 |
| Mid A | 7.5 | 6 | 6.5 | 7 | 6.5 |
| Maintainability senior | 7.5 | 6 | 6.5 | 6.5 | 6.5 |
| Inherited architect | 7 | 5.5 | 6 | 7 | 6.5 |
| Mean | 7.38 | 6.00 | 6.50 | 6.88 | 6.63 |
Junior A, hardest first:
pick.go:70keptInPick: a level, a first-level key, that key moved underenv.pickAt, and the name's addressed set, held at oncenamefence.go:76refuseTwiceDrawnIn: mirrors the keep rule inkeptInPick, and nothing ties the two in code
Mid A, hardest first:
pick.go:79readUnder: a key built at load inaddressedKeysmust equal one built at render throughpickKey.under, and a mismatch is silentnode.go:70readsColumn: four functions in three files must change together
Maintainability senior, hardest first:
render.go:146readField: whether a read is kept in a pick rests on string keys from three places and onenv.pickcleared at the right momentpath.go:190drawSteps: a nilpinsormemonames the mode, andclimbedcarries state across iterations
Inherited architect, would restructure first:
pick.go:179readName: keeping one named pick needsname.go,pick.go,env.go,render.go,path.goandrecord.goheld at oncenode.go:52template: filled in four phases by four functions
2026-10-09T11:09:34Z, PR #195 at 344023d, against 1c342bc
Ruling: better
| Seat | Vote |
|---|---|
| Mid A | better |
| Inherited architect | better |
Mid A, decided by:
shipped.go:61loadCallerPath:FakeandFakeRecordget their segments from the one call that loads them, where each repeated the split and the loadnode.go:30choice: thesharedcomment says what the field counts, where it claimedListreads itdata-import/tsv.py:7write: its check and message match the loader's one-row rule
Inherited architect, decided by:
shipped.go:61loadCallerPath: the load-before-walk order is held by data flow, where a comment onloadShippedAtstated itnode.go:30choice: thesharedcomment no longer sends a--listbug to the wrong fieldREADME.md:163## Data: the opening names thegeotrees the section documents
2026-10-09T16:48:45Z, PR #201 at c3ef728, against 2652779
Ruling: same
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mid A | same | same | same | same | same |
| Inherited architect | same | same | same | same | same |
2026-10-09T16:54:01Z, PR #201 at 8b5a972, against 2652779
Ruling: same
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mid A | same | same | same | same | same |
| Inherited architect | same | same | same | same | same |
2026-10-09T17:21:57Z, PR #202 at 65b2de8, against 2652779
Ruling: worse
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mid A | same | worse | same | same | worse |
| Inherited architect | same | worse | worse | worse | worse |
Mid A, decided by:
- Locality, Overall:
data.go:13loadSources: one pass mixes lazy and eager loading through before/after snapshots, aprovidesclosure and a reverse graph search, and the skip of the first source is unexplained - Locality:
data.go:107mergeFolder: a category must sit in one of two maps,childrenorunloaded, kept by deletes in four functions across two files - Locality:
internal/datafiles/datafiles.go:83embeddedManifests: a process-wide cache in a package that was otherwise pure
Inherited architect, decided by:
- Locality, Self-sufficiency:
data.go:13loadSources: nothing says why replaced paths drag their readers in, or what the!after[p]case covers - Locality:
index.go:113loadReached: its rollback claims the next call fails the same way, which holds only while no parent table was linked to a rolled-back child - Shape:
index.go:159reaching: four near-synonyms,reaching,reachedFrom,loadReachedandreferenced, andreferencedandcategoryUnderreturn loaded categories too - Shape:
data.go:40place: shares its name withcompileInto's parameter, and returns a closure answering one question two ways - Locality:
internal/datafiles/datafiles.go:83embeddedManifests: hidden global state for a small saving
2026-10-09T17:32:44Z, PR #202 at fdc6a04, against 2652779
Ruling: worse
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mid A | same | worse | same | same | worse |
| Inherited architect | same | worse | worse | worse | worse |
Mid A, decided by:
- Locality, Overall:
index.go:175loadReached: one loop loads, puts back on failure, checks each entry before linking and again after the pipeline, and its rollback rests on an ordering invariant its comment argues - Locality:
data.go:13loadSources: whether a category loads in New means holding every source and every index entry together, throughstandingsnapshots anddependents - Shape:
index.go:36categoryAt: a near-synonym ofcategorySite, besidedependenciesanddependents, which differ by two letters and run in opposite directions
Inherited architect, decided by:
- Locality, Overall:
index.go:175loadReached: five jobs in one queue loop, with a cross-call ordering invariant to hold - Locality, Shape:
data.go:13loadSources: one source can make another load early through identity-compared snapshots and a reverse graph over index entries - Shape:
index.go:36categoryAt: two near-synonym types for where a category sits, and three near-identical function names - Self-sufficiency:
index.go:248staleEntry: its note on linking cannot be read without knowing the pipeline, andconfig.loadpoints at a paragraph-long decision anchor
2026-10-09T17:39:40Z, PR #202 at 0bdb100, against 2652779
Ruling: worse
| Seat | Navigation | Locality | Shape | Self-sufficiency | Overall |
|---|---|---|---|---|---|
| Mid A | same | worse | worse | same | worse |
| Inherited architect | same | worse | worse | same | worse |
Mid A, decided by:
- Locality, Overall:
data.go:13loadSources: whether an indexed category loads in New depends on source order and what other sources hold, through before-and-after snapshots - Locality:
index.go:119affectedBy: trusts the manifest'sreadsto match the templates, with nothing beside the code checking it - Locality, Shape:
index.go:174loadReached: a rollback batch to reason about, with names that say less thanunloadedReadsandlinkedTablesdid - Shape:
index.go:16ErrLoad: a public error every entry point depends on, in a file named for the index - Shape:
internal/datafiles/datafiles.go:103decodeManifest: a hand-written strict decoder doubles the package's responsibilities
Inherited architect, decided by:
- Locality, Overall:
data.go:13loadSources: New's load set follows dependencies forward from templates and backward from the manifest'sreads, and a stalereadsleaves a broken reader for its first reach - Locality:
index.go:201batch.load: the unloaded entry is deleted three calls away, andputBackreverses it - Locality, Shape:
data.go:62standing: amap[string]anyof nodes and entries compared by identity - Shape:
index.go:1index.go: fifteen units under generic names in a file named for the index,ErrLoadamong them - Shape:
internal/datafiles/datafiles.go:103decodeManifest: a strict JSON decoder shares the tree walker's file with no seam