Parent: gloss. Recommendation: retain 1,536 dimensions for now. Shortening changes many residual-selected labels and does not consistently resolve unsupported specifics. This is a stability experiment, not proof that 1,536 is semantically optimal.
Ran all 712 non-empty notes from the fixed 713-key public snapshot against the same 14,554 filtered atoms. One empty note is recorded as excluded. Four concurrent processes, four numerical-library threads each, using the 16 available CPUs; 5.72s wall time. Zero API calls. Each note and atom vector was prefix-truncated and renormalized. Existing chunk pooling was held fixed before truncation for the 11 long notes.
Primary comparison excludes three Gloss write-ups (709 notes). Percentages compare each size with the existing 1,536-dimensional result. Label retention is the mean fraction of reference labels retained, ignoring order. These are agreement figures, not accuracy scores.
| Dimensions | Same first label | Same complete label set | Pursuit label retention | Direct-cosine label retention | Mean residual norm ratio |
|---|---|---|---|---|---|
| 256 | 57.3% | 4.7% | 39.6% | 58.2% | 0.7531 |
| 512 | 78.4% | 22.8% | 60.2% | 75.5% | 0.7747 |
| 1024 | 87.2% | 50.1% | 76.9% | 88.7% | 0.7847 |
| 1536 | 100.0% | 100.0% | 100.0% | 100.0% | 0.7950 |
Removing 105 repetitive drain logs leaves 604 notes: first-label agreement at 256/512/1,024 dimensions is 52.0%/75.2%/85.8%; pursuit label retention is 37.8%/58.5%/77.0%. The main conclusion survives this sensitivity check. Complete subgroup statistics are in summary.json.
Smaller spaces give lower residual norms, but norms across different dimensional spaces are not a common semantic-quality score. Direct-cosine labels are more stable than residual pursuit: at 1,024 dimensions they retain 88.7% of reference labels versus 76.9% for pursuit.
Source-checked examples show mixed effects. At 512 and 1,024 dimensions, the Python exception policy loses the unsupported Perl label. At 512, the Kathy poem loses the unsupported summer label, and the Kombu teardown gains decommissioning. Conversely, at 256 the eclipse note gains the unrelated David Lloyd schedule, and the terminated Kombu instance gains ongoing. Therefore label changes cannot all be called regressions or improvements.
The table below compares the same 25 examples used in the corpus review. It is a qualitative inspection sample, not blind scoring or a corpus accuracy estimate. No new aggregate quality verdict is claimed.
| Note | 256 dimensions | 512 dimensions | 1024 dimensions | 1536 dimensions |
|---|---|---|---|---|
| PROGRAMMING_RULES/philosophy | correctness with authority; philosophies; worst case | correctness notes; philosophies; arbitrary python | correctness notes; philosophies; arbitrary python | correctness notes; philosophies; arbitrary python |
| PROGRAMMING_RULES/exceptions | exception handling; core principle; perl python | exception handling; python api; general principles | exception handling; python api; general principles | exception handling; perl python; general principles |
| ideas/concept-factorisation | concept notes map; storage architecture; concept factorisation hierarchical | concept notes; core metadata infrastructure; concept factorisation hierarchical | concept notes; indexing; concept factorisation hierarchical | concept notes; indexing; concept factorisation hierarchical |
| first-thoughts/representation-not-language | open questions; structurally impossible; map and territory | open questions weak; variant; note embeddings | open questions weak; variant; note embeddings | open questions weak; note embeddings; behavioural equivalence |
| gdata-server/notes/design | gdata notes; imap client module; architecture notes | gdata notes; imap client module; architecture notes | gdata notes; notes client; python module | gdata notes; notes client; python module |
| envoy/design-phases | implementation notes; solver control structure; email processing pipeline | implementation notes; finite state; email processing pipeline | implementation notes; finite state; gathering summarising working | implementation notes; processing state machine; envoyresponse schema |
| README/orphaning | parent notes; dead link recovery; creating and updating | avoiding orphaned notes; metadata and links; article revision issues | avoiding orphaned notes; metadata and links; blueprint page checklist | avoiding orphaned notes; metadata and links; design documentation |
| TFG/exercise-demo-protocol | functional exercise; testing checklist; summarising working coding | functional exercise; review and handover; sample demonstrations | functional exercise; review and handover; sample demonstrations | functional exercise; review and handover; sample demonstrations |
| using-gps-data | gazetteer point; implementation details; ground truth | checks gazetteer comparisons; ground truth; jsonhtl notes | checks gazetteer comparisons; project notes; answered nearest station | checks gazetteer comparisons; project notes; answered nearest station |
| popit3/ops | context restored; maildir test completion; triage gathering | maildir test completion; computer crash occurred; pops | maildir test completion; computer crash occurred; pops | maildir test completion; computer crash occurred; pops |
| pwsafe/transport/plan | api implementation plan; status complete; open questions weak | phase webdav plugin; transport infrastructure; pwsafe article revision | webdav transport; pwsafe article revision; phase design | pwsafe article revision; transport plugin; current phase |
| Z80-sudoku-challenge/code/deterministic-fill-loop | deterministic fill loop; lib dap; board base address | deterministic fill loop; address of cell; sudoku board | deterministic fill loop; address of cell; sudoku board | deterministic fill loop; address of cell; bit candidate mask |
| delayrepay/session-2026-08-29-kombu-decommission | ansible on kelp; ongoing; firefox vnc | firefox vnc; ansible on kelp; decommissioning | firefox vnc; writeup; ansible on kelp | firefox vnc; kombu; automated via ansible |
| ask/jobs/schema | json schema; cover letters; calls openai | json schema; cover letter angle; calls openai | json schema; cover letter angle; docx generation | json schema; cover letters; docx generation |
| location-db/outcodes-1deg | cardiff gloucester swindon; postcodes; gwml neutral | bristol bath newport; postcodes; gwr delay | bristol bath newport; postcodes; gwr delay | bristol bath newport; postcodes; cardiff gloucester swindon |
| personal/interests | interests hobbies; johnsrcritchley gmail; GPS | interests hobbies; GPS; john has asked | interests hobbies; GPS; john has asked | interests hobbies; GPS; john has asked |
| proposals/section-editing | structural edits; new jsonhtl block; gdata notes | structural edits; new jsonhtl block; orphaned note subtrees | jsonhtl documentation improvements; blocks section; semantic spec | jsonhtl documentation improvements; completed section; semantic spec |
| astronomy/eclipse-2026 | path of totality; swindon reading; david lloyd schedule | path of totality; bristol london; solar eclipse | path of totality; bristol london; solar eclipse | path of totality; bristol london; solar eclipse |
| poems/first-to-Kathy | moments; kathy; sonnet | kathy; poems; love | kathy; summer poem; love | kathy; summer poem; forever |
| uucp/setup-status | taylor uucp; protocol restrictions; correctness and authority | roles uucp; stunnel client config; jsonhtl documentation improvements | roles uucp; stunnel client config; jsonhtl documentation improvements | taylor uucp; existing stunnel; protocol restrictions |
| ansible | git ansible; comprehensive notes; playbooks | git ansible; private notes; ephemeral hosts | git ansible; private notes store; ephemeral hosts | git ansible; private notes store; hostnames |
| music/exercise-folk-rock | exercise music; functional exercise; fetch notes | exercise music; functional exercise; shanties | exercise music; functional exercise; shanties | exercise music; functional exercise; shanties |
| hosts/gravlax | webdav notes; deployed to gravlax; freebsd host | webdav notes; deployed to gravlax; freebsd host | webdav notes; kelp gravlax; freebsd host | webdav notes; gravlax and kelp; freebsd host |
| fitness/bodypump-attendance | bodypump playlist importer; assess in august; david lloyd schedule | bodypump; david lloyd schedule; accommodation figures | bodypump; david lloyd schedule; costs september october | bodypump; david lloyd schedule; bristol minima shown |
| ssl/certhub-todo | dbcerts; future improvements; certhub | certificate configuration; future work; certhub polling | dbcerts; certhub; process improvements | certificate configuration; certhub; future work |
Storage and arithmetic scale approximately with dimensions: 256/512/1,024 use one sixth/one third/two thirds of the vector storage. The full float64 note-plus-atom matrix is only 179 MiB. Concurrent single-run timings are not a controlled speed benchmark. There is little pressure to sacrifice stability here.
Validation: all 15 unit tests passed; full-width labels and direct-cosine ordering match the previous corpus run, with coefficients and residuals within 1e-10. Provenance hashes, worker thread counts and timings are in run.json. All 713 keys are represented in comparison.csv; complete numerical results are in results.json.
Files: /home/john/py/gloss/artifacts/dimensions-2026-09-18/. Reproduce offline: python dimension_sweep.py --processors 16 --output artifacts/dimensions-new-run. No virtual environment or package installation was used for this sweep.