--- slug: shake-the-cloth passed: 2026-10-18 by: the assay line (research/assay-line/queue-1018/), Codex fixer directed by claude-assaying-boyle-1014; source record by Codex, checked by Codex checked: 89 confirmed: 80 wrong: 8 unverifiable: 0 observed: 0 stale: 1 minor: 5 --- This pass decided all nine queue-1018 triage items before editing shake-the-cloth at initial HEAD 0169ff7cb1d, reread their evidence, and applied the supported layer-scoped changes. The 80 CONFIRMED lines carry forward the checker's documented rereads in research/assay-line/queue-1018/shake-the-cloth/N2-codex.md at a77c45dd68; they are not presented as fresh external rereads by this fixer. The requested assay date is 2026-10-18; the checker record itself is dated 2026-10-19. The wrong count includes three WRONG and five MINOR lines. X5 and X6 are two entries for one error. X8 remains MINOR and is held open pending a board note because its source is another layer. The sole STALE item is the JSON-LD exception. ## Claims - MINOR | Anything strictly between them scatters the risers so no diagonal forms, and that is satin: the reason it is smooth and shiny is that its binding points are hidden under long unbroken floats of thread that reflect light as a sheet. | public/strata/shake-the-cloth/index.html; research/shake-the-cloth/verify-shake-the-cloth.mjs | [X1 between-steps-satin] The inline satinSteps function requires coprimality. Added that missing condition to the introductory sentence. - MINOR | Computed in your browser by direct gcd test over 2 < ... < n-1, then grouped into classes under s ~ n-s (mirror image) and s ~ s⁻¹ mod n (swap warp and weft). Two steps in the same class make the same cloth turned or flipped. | public/strata/shake-the-cloth/index.html | [X2 step-table-lower-bound] The inline loop starts at s = 2. Changed the caption to 1 < s < n-1, preserving the computed table. - MINOR | The exact line is a genuine lower bound on the failure rate: a loose strand always breaks the fabric. The gap between it and the sample is the rate of subtle failures, and it is what closes. | public/strata/shake-the-cloth/index.html; research/shake-the-cloth/verify-shake-the-cloth.mjs | [X3 sample-gap-as-exact-rate] refreshMC subtracts the exact loose-strand fraction from a sampled failure fraction. Labelled the result as an estimate that can be negative from sampling error; updated associated sampler labels without changing the calculation. - MINOR | Both say the majority holds and grows, and by twelve the sampler finds essentially no way left to fail but leaving a thread out. | public/strata/shake-the-cloth/index.html; research/shake-the-cloth/README.md; research/shake-the-cloth/BUILD-REPORT.md | [X4 lower-bound-proves-majority] drawTrend correctly calls one minus the loose-strand rate an upper bound on the hanging fraction. The prose now attributes evidence beyond five to the sampler. Qualified the repeated inference in the README and build report; the verifier tests the valid loose-strand asymptote, not the full failure-rate asymptote. - WRONG | Warren, Ball and Goldstein showed in 2018 that even the individual yarn is a frictional object: tension in a staple yarn (one spun from short fibres, which is most of them) is transmitted by collective friction, with a percolation transition above which the transmitted tension is in principle unbounded. | https://www.fiberjournal.com/the-fiber-year-global-development-of-spun-and-filament-yarns/; https://arxiv.org/abs/1804.07606 | [X5 most-yarns-staple] Fiber Journal reports a 57% filament share of global yarn-production mass in 2019. Removed the unqualified staple-majority parenthesis; retained the friction/percolation account supported by Warren et al. Same error and correction as X6. Direct reread details and exact excerpts are in triage.json. - WRONG | which is most of them | https://www.fiberjournal.com/the-fiber-year-global-development-of-spun-and-filament-yarns/ | [X6 most-yarns-staple] The 2019 production-by-mass evidence contradicts the unqualified staple-majority parenthesis. Removed it and added one dated correction shared with X5; no present-day or by-count majority is claimed. Direct reread details and exact excerpts are in triage.json. - WRONG | What is not solved, and is not really a mathematics question, is the one instrument 5 gestures at: given that a draft hangs together, how firm is the cloth? Weavers answer it with interlacement coefficients, float caps and experience. Physics answers a level below, at the yarn. Nothing joins the two. | https://www.tandfonline.com/doi/abs/10.1080/00405000.2017.1280760; public/strata/shake-the-cloth/index.html | [X7 no-yarn-fabric-mechanics-link] The publisher-indexed 2017 abstract describes plain/twill bending models using weave geometry and yarn properties, with measurement comparisons. Replaced the universal absence assertion with this page model's limit, cited that example and added a dated correction. Direct reread details and exact excerpt are in triage.json. Review also replaced the related absence claim in research/shake-the-cloth/spec.json:25 with the limit of this page's model. - MINOR | The same greatest common divisor decides both: whether a weave draft hangs together as one cloth there, whether a grid of dots takes one line or several here. | src/content/strata/one-line-around-every-dot.md; scripts/nearby-layers.mjs; public/strata/shake-the-cloth/index.html | [X8 gcd-relation-scope] Reread src/content/strata/one-line-around-every-dot.md:4,12 and scripts/nearby-layers.mjs:70-111. The wording is authored in that other layer and injected here as a reverse relation. The gcd claim needs the constant-step-draft and no-internal-walls qualifications. A durable source fix requires editing another layer or changing shared navigation generation, both forbidden for this worker; do not patch generated output. - STALE | "dateModified":"2026-07-24" | public/strata/shake-the-cloth/index.html; git log -- public/strata/shake-the-cloth/index.html | [X9 jsonld-modified-date] The HTML retained the original publication date as dateModified despite the 2026-10-01 modification in git history. Set dateModified to 2026-10-18 under the explicit metadata exception. No Updated line is required; the factual correction lines date this revision. - CONFIRMED | A weave draft is nothing but a grid of over-and-unders, and some grids are not cloth at all. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_hng1.pdf | [drawdown-definition] Griswold p. 1: "each cell representing a point of interlacement" and "black grid cells indicate where a warp thread is on top". Read the PDF text and its surrounding explanation of unsound interlacements. The record excerpt interleaves the diagram labels "treadling drawdown" into the prose; those labels are not part of the sentence. - CONFIRMED | warp (vertical, hangs on the loom) weft (horizontal, thrown across) | https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [warp-and-weft] Original paper p. 141, manually OCRed: "In diagrams it is conventional to draw the warp vertically and the weft horizontally." Its preceding sentence specifies lengthwise warp and side-to-side weft. - CONFIRMED | A draft (weavers call the picture a drawdown) is a binary matrix: warps run down, wefts run across, and each cell records which of the two passes over the other. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_hng1.pdf | [draft-matrix] Griswold p. 1: "each cell representing a point of interlacement" and "black grid cells indicate where a warp thread is on top". Read the PDF text and its surrounding explanation of unsound interlacements. The record excerpt interleaves the diagram labels "treadling drawdown" into the prose; those labels are not part of the sentence. - CONFIRMED | "a fabric is a prefabric that hangs together, that is, that does not fall apart in the sense that some warps or some wefts or some of each can be lifted off the remainder because they are not bound into a coherent network by the interleaving defined by the preferential ranking." | https://arxiv.org/html/1006.5653 | [thomas-definition] Read Thomas section 1: "a fabric is a prefabric that hangs together" and the full quoted lift-off definition match the record and page. No change of object or quantifier. - CONFIRMED | Write M[i][j] = 1 when warp j passes over weft i. A set of warps W and wefts F can be lifted clean off the rest exactly when two conditions hold, and both are forced by geometry rather than chosen: | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs; https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [lift-conditions-introduction] The two crossing inequalities are exactly the lift condition. Original paper p. 140 defines the partition into "two nonempty subsets" with each strand of the first above the second. The reader check reports zero closure/brute-force disagreements on all 512 3x3 matrices. - CONFIRMED | for every j in W and every i NOT in F : M[i][j] = 1 (a lifting warp must ride OVER every staying weft) for every i in F and every j NOT in W : M[i][j] = 0 (a lifting weft must ride OVER every staying warp) | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs; https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [lift-conditions] The two crossing inequalities are exactly the lift condition. Original paper p. 140 defines the partition into "two nonempty subsets" with each strand of the first above the second. The reader check reports zero closure/brute-force disagreements on all 512 3x3 matrices. - CONFIRMED | The fabric falls apart if any such pair exists other than the two useless ones (lift nothing, lift everything). | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs; https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [falling-criterion] The two crossing inequalities are exactly the lift condition. Original paper p. 140 defines the partition into "two nonempty subsets" with each strand of the first above the second. The reader check reports zero closure/brute-force disagreements on all 512 3x3 matrices. - CONFIRMED | There are 22n candidate pairs, | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [candidate-pairs] There are 2^n choices for each of W and F, hence 2^(2n) pairs including the two excluded trivial choices. The record flattens the HTML superscript; the pinned HTML correctly prints 2 to the power 2n. - CONFIRMED | warp j lifts and M[i][j] = 0 => weft i must lift as well weft i lifts and M[i][j] = 1 => warp j must lift as well | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs; https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [forced-implications] The two crossing inequalities are exactly the lift condition. Original paper p. 140 defines the partition into "two nonempty subsets" with each strand of the first above the second. The reader check reports zero closure/brute-force disagreements on all 512 3x3 matrices. - CONFIRMED | So each single strand generates a smallest liftable set containing it: seed that strand and close under the two rules. Every liftable set containing that strand contains its closure. Therefore the fabric falls apart if and only if some strand's closure is not the whole cloth, and there are only 2n strands in a repeat to try. Two further things fall out for free. First, both rules quantify over all rows (respectively all columns), so a closure is automatically a union of whole periodic thread classes: no aperiodic separation can hide from this test. Second, the liftable sets are closed under union and intersection, which is a two-line check: if j lies in W₁ ∪ W₂ then it lies in one of them, say W₁, and any i outside F₁ ∪ F₂ is outside F₁, so M[i][j] = 1 already. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [closure-proof] Checked closure under both implications and the union/intersection argument. With the page working on the 2n periodic strand classes, each seeded closure is the least liftable class set. The brute-force, array, bitmask and SCC checks agree on the enumerated inputs. This does not measure friction. - CONFIRMED | T. C. Enns published an efficient algorithm for exactly this in 1984, four years after Clapham settled the decision problem. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [enns-history] Bibliography: "Clapham, C., When a fabric hangs together" is dated 1980; "An efficient algorithm determining when a fabric hangs together" is dated 1984. Crossref independently confirms T.C. Enns and 1984. Griswold describes the earlier decision algorithms. - CONFIRMED | One corollary you can test immediately, because it disposes of a whole family at once: every single-riser draft hangs together. If each pick has exactly one warp raised and each warp is raised on exactly one pick (a permutation matrix), seed any warp j; it is under all but one weft, so all but one weft joins; each of those wefts drags in the one warp it rides under; between them they name every warp. The closure is everything. Every regular satin is a permutation matrix, so every regular satin hangs together, and the reason a six-end "satin" fails is not that it is a bad permutation. It is that it is not a permutation at all. | git show a77c45dd68:research/shake-the-cloth/README.md | [single-riser-proof] For the page domain n>=2, a permutation matrix forces every strand into a seeded closure. Reader output confirms all permutations through n=6, including "[720,720]" at six. The non-coprime step map has duplicated occupied columns and unused columns. - CONFIRMED | Because exactly one thread is on top at each crossing, this is a complete bipartite tournament on the 2n strands: Clapham's object, from a 1985 note in Discrete Mathematics. | https://arxiv.org/html/1006.5653 | [clapham-tournament-history] Thomas reference 1 and Malkevitch both give "The bipartite tournament associated with a fabric", Discrete Math. 57 (1985), 195-197. This supports the historical attribution, not a claim to have read that paper. - CONFIRMED | A set A of strands can be lifted off exactly when no arrow points into A from outside it, because an arrow into A is a strand outside it lying on top of one inside it, which would have to be dragged along. And a digraph has a nonempty proper subset with no incoming arrows precisely when it is not strongly connected. So: a fabric hangs together if and only if its tournament is strongly connected. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [graph-equivalence] A liftable proper nonempty set has no incoming arc. A finite digraph is strongly connected iff no such set exists, by its condensation DAG. Reader and page executions both reproduce "0 disagreements" against the closure criterion. - CONFIRMED | A loom does not let you address crossings one at a time. Warp threads are gathered onto shafts; a shaft lifts as a unit; a treadle lifts a chosen set of shafts; and a pick presses one treadle. | https://www.gutenberg.org/files/57031/57031-h/57031-h.htm | [loom-shafts-treadles] Taylor explicitly says "A separate treadle is required for every pick in the pattern, unless the same pick is repeated". The page specifies one treadle per pick; the minimum is valid for that stated tie-up model. Multi-treadle and dobby arrangements are outside that model. - CONFIRMED | Three matrices, and the cloth is their product over the boolean semiring (+ is OR, × is AND): | git show a77c45dd68:public/strata/shake-the-cloth/index.html | [boolean-semiring] Read boolProduct and factorLoom: multiplication is AND, accumulation is OR, and identical rows/columns select representatives. Recreated "cells reproduced exactly: 64 / 64 OK"; the independent reader verifier also checks random drawdown reconstructions. - CONFIRMED | drawdown = treadling × tie-up × threading (picks×ends) (picks×treadles)(treadles×shafts)(shafts×ends) | git show a77c45dd68:public/strata/shake-the-cloth/index.html | [loom-product] Read boolProduct and factorLoom: multiplication is AND, accumulation is OR, and identical rows/columns select representatives. Recreated "cells reproduced exactly: 64 / 64 OK"; the independent reader verifier also checks random drawdown reconstructions. - CONFIRMED | Two ends threaded on the same shaft always rise together, so they have identical drawdown columns. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_fa.pdf | [same-shaft-columns] Griswold, Fabric Analysis, p. 2: "The number of shafts required is the number of different column patterns." Necessity follows because ends on one shaft move together; sufficiency follows by assigning one shaft to each distinct column. - CONFIRMED | the minimum number of shafts a drawdown needs is exactly its number of distinct warp columns, | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_fa.pdf | [minimum-shafts] Griswold, Fabric Analysis, p. 2: "The number of shafts required is the number of different column patterns." Necessity follows because ends on one shaft move together; sufficiency follows by assigning one shaft to each distinct column. - CONFIRMED | the minimum number of treadles is its number of distinct picks. | https://www.gutenberg.org/files/57031/57031-h/57031-h.htm | [minimum-treadles] Taylor explicitly says "A separate treadle is required for every pick in the pattern, unless the same pick is repeated". The page specifies one treadle per pick; the minimum is valid for that stated tie-up model. Multi-treadle and dobby arrangements are outside that model. - CONFIRMED | The three great weave families are one family. Take a repeat of n and a step s, and put the riser of pick i on warp s·i mod n. Step 1 is a straight twill, its risers marching in a diagonal you can see across a pair of jeans. Step n-1 is the same twill leaning the other way. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [weave-families] For the displayed single-riser construction, s=1 and s=n-1 are the two twill directions; n=2 gives plain weave. Read the family sentence as this construction, not as an assertion that every multi-riser twill is a permutation matrix. - CONFIRMED | Draw the step on a wheel and the arithmetic becomes visible. Mark the n warps around a circle and step round by s each time. You trace a star polygon, and you return to the start after n / gcd(s,n) moves. The path visits every warp exactly when gcd(s,n) = 1. Otherwise it closes early, leaving whole warps that the risers never touch at all. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [gcd-orbits] An additive step s modulo n has order n/gcd(s,n), so the visited columns and unused-column formula follow. Reader verifier: "gcd(s,n)=1 <=> the risers hit every warp exactly once (counterexamples) = 0". - CONFIRMED | Handwoven states it flatly, without the arithmetic: "True satin isn't possible on six shafts because the counter cannot be spaced evenly." | https://handwovenmagazine.com/satin-dreams/ | [handwoven-quote] Read Handwoven directly after retrying curl without the browser User-Agent. It states "True satin isn’t possible on six shafts because the counter cannot be spaced evenly." The straight/curly apostrophe difference does not change the quotation. - CONFIRMED | Four is in the same position. Every other repeat from five to twenty-four admits at least one regular satin. Six does not, and no amount of loom skill changes that. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [four-six-only] Reader output: "the only repeat sizes 4..24 with NO regular satin = [4,6]". At six the candidates 2,3,4 all share a nontrivial divisor with six. - CONFIRMED | They break the rule that the step be constant, and keep only the thing the step was for: no two risers in consecutive picks may land in the same warp or a neighbouring one, since adjacent binding points would start a visible diagonal and spoil the surface. | https://www.gutenberg.org/files/57031/57031-h/57031-h.htm | [irregular-spacing] Taylor: "A six-stave satin is irregular" and "the points of intersection can be separated". The page separately identifies its cyclic adjacency condition as its own formalization, not a quotation. - CONFIRMED | The order usually printed in weaving texts for irregular six-end satin, 1, 3, 6, 4, 2, 5, | https://www.gutenberg.org/files/14600/old/14600-h/14600-h.htm | [six-order-attribution] The record cites Taylor, which prints "1, 3, 5, 2, 6, 4, or 1, 4, 2, 6, 3, 5", so that excerpt does not support this exact order. Recovered a primary source instead: Theory of Silk Weaving, satin section, says "The rotation generally used is 1, 3, 6, 4, 2, 5." The page claim is supported; replace the source-record citation. - CONFIRMED | it is the signature of double cloth, the technique in which a weaver deliberately arranges the fall-apart so the loom produces two separate fabrics at once, joined only where they are made to swap layers. | https://handwovenmagazine.com/doubleweave/ | [doublecloth-definition] The cited doubleweave instructions explicitly assign "1 and 3 as the top layer and 2 and 4 as the bottom" and explain closing a tube by weaving the opposite layer on top. That supports separated layers with deliberate joins. - CONFIRMED | A given row is constant with probability 21-n²·2n²-n, that is 21-n; there are n rows and n columns, so a union bound gives about 4n·2-n. The exact count follows by inclusion and exclusion, with one wrinkle worth the arithmetic: if some rows and some columns are all constant, they meet, so they must share a single value, which contributes a factor of 2 rather than 2r+c. | git show a77c45dd68:research/shake-the-cloth/README.md | [loose-strand-arithmetic] A fixed row is constant in 2*2^(n^2-n) matrices. Intersecting selected constant rows and columns must share one binary value. Reader output independently matches the inclusion-exclusion counts at n=2..5. - CONFIRMED | Everything above treats threads as rigid, infinitely long, perfectly slippery lines, and "falls apart" as a rigid lift-off in a fabric with no edges. | https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [idealised-threads] Read original pp. 139-140 by sequential OCR. The paper says fabrics are "unbounded" and ignores "edge-effects and selvedges"; its partition criterion is geometric and has no friction or force parameter. The page explicitly confines this statement to that idealization. - CONFIRMED | Real cloth has selvages, hems and finishing; real threads are hairy and grip each other; | https://arxiv.org/html/1804.07606 | [real-cloth] Warren et al. explicitly discuss "woven fabrics and sewn garments" held together by friction. The page contrasts physical edges and surface contact with the preceding edge-free combinatorial model. - CONFIRMED | The combinatorics tells you when a fabric has no resistance to separation. It says nothing at all about how much resistance a hanging-together fabric has. | https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [combinatorics-resistance] Read original pp. 139-140 by sequential OCR. The paper says fabrics are "unbounded" and ignores "edge-effects and selvedges"; its partition criterion is geometric and has no friction or force parameter. The page explicitly confines this statement to that idealization. - CONFIRMED | Below the threshold the yarn is not strengthless; it fails ductilely, by fibres slipping past each other at around a millinewton per fibre. | https://arxiv.org/html/1804.07606 | [yarn-ductile] Read Warren et al.: slippage is around T* per fibre with T* estimated at no more than about 1 mN; fibre breakage is 20-130 mN; twisting yields "perhaps a hundred-fold increase in the tensile strength". The paper describes abstract models and the page preserves the in-principle qualification. - CONFIRMED | Above it, failing means breaking fibres, at twenty to a hundred and thirty millinewtons each, and the authors put the jump across the transition at perhaps a hundred-fold increase in tensile strength. | https://arxiv.org/html/1804.07606 | [yarn-breakage-strength] Read Warren et al.: slippage is around T* per fibre with T* estimated at no more than about 1 mN; fibre breakage is 20-130 mN; twisting yields "perhaps a hundred-fold increase in the tensile strength". The paper describes abstract models and the page preserves the in-principle qualification. - CONFIRMED | A thread is already a fabric that hangs together by friction, one level down. | https://arxiv.org/html/1804.07606 | [yarn-level] Read Warren et al.: slippage is around T* per fibre with T* estimated at no more than about 1 mN; fibre breakage is 20-130 mN; twisting yields "perhaps a hundred-fold increase in the tensile strength". The paper describes abstract models and the page preserves the in-principle qualification. - CONFIRMED | The definition of falling apart. Rigid lift-off of whole strands in an unbounded, frictionless, inextensible fabric. This is the Grünbaum-Shephard idealisation. Change it and the census changes. | https://faculty.washington.edu/moishe/branko/BG119.Satins%26twills.pdf | [grunbaum-idealisation] Read original pp. 139-140 by sequential OCR. The paper says fabrics are "unbounded" and ignores "edge-effects and selvedges"; its partition criterion is geometric and has no friction or force parameter. The page explicitly confines this statement to that idealization. - CONFIRMED | What counts as a regular satin. We use the weavers' convention 1 < s < n-1 with gcd(s,n) = 1. Excluding s = 1 and s = n-1 is a convention (those are twills, and they hang together perfectly well), not a theorem. | https://texwiz101.blogspot.com/2012/03/features-and-classification-of-satin.html; https://www.gutenberg.org/files/14600/old/14600-h/14600-h.htm; git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [regular-satin-convention] The regular rule is independently confirmed by the silk-weaving counter construction and gcd arithmetic. Texwiz literally says "Cannot be 1 minus number of warp yarn in a repeat", a reversed-subtraction wording; it is not a clean literal statement of n-1. The page gives the correct intended exclusion. - CONFIRMED | Real float limits depend on yarn, sett and end use. | https://handwovenmagazine.com/satin-dreams/ | [real-float-limits] Handwoven names "available shafts and practical float length" and says "Materials matter" before contrasting filament silk and staple yarn. This supports the dependence on material and intended fabric, not a universal numerical float limit. - CONFIRMED | The etymology of "satin" is disputed and we have left it out of the body rather than repeat the popular version. Etymonline records the derivation from Arabic zaytuni, "from Zaitun", probably Quanzhou, and immediately records that the OED "finds the Arabic connection etymologically untenable" and prefers Latin seta. Two respectable sources, opposite conclusions. | https://www.etymonline.com/word/satin | [satin-etymology] Direct curl returned HTTP 403; independently opened the indexed Etymonline entry. It includes "(satin) from Zaitun" and "OED finds the Arabic connection etymologically untenable" and the Latin seta alternative. The record accurately transcribes this dispute. - CONFIRMED | "from Zaitun" | https://www.etymonline.com/word/satin | [zaitun-quote] Direct curl returned HTTP 403; independently opened the indexed Etymonline entry. It includes "(satin) from Zaitun" and "OED finds the Arabic connection etymologically untenable" and the Latin seta alternative. The record accurately transcribes this dispute. - CONFIRMED | "finds the Arabic connection etymologically untenable" | https://www.etymonline.com/word/satin | [oed-quote] Direct curl returned HTTP 403; independently opened the indexed Etymonline entry. It includes "(satin) from Zaitun" and "OED finds the Arabic connection etymologically untenable" and the Latin seta alternative. The record accurately transcribes this dispute. - CONFIRMED | Malkevitch's bibliography gives Geometriae Dedicata 15 (1984) 259-260. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [enns-pages] Malkevitch explicitly gives "Geom. Dedicata 15 (1984) 259-260." This is the source the page names for the page range. - CONFIRMED | Crossref confirms the journal, volume, issue and year but carries no page range for that article, so the pages rest on one source. | https://api.crossref.org/works/10.1007/BF00147648 | [enns-crossref-fields] Fetched JSON has journal, volume 15, issue 3 and published year 1984, with no page key. Positive control using the same JSON key test on Clapham 1980 returns "page":"161-164". Thus this negative is supported. - CONFIRMED | Exhibit a step s with 1 < s < 5 and gcd(s,6) = 1. There is none, but that is the shape of the refutation. | git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [satin-six-no-step] Reader output: "the only repeat sizes 4..24 with NO regular satin = [4,6]". At six the candidates 2,3,4 all share a nontrivial divisor with six. - CONFIRMED | Grünbaum and Shephard asked it in Mathematics Magazine in 1980. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_hng1.pdf; https://api.crossref.org/works/10.1112/blms/12.3.161 | [grunbaum-question] Griswold explicitly describes the question in the 1980 paper and the ensuing algorithms, including "The following procedure is due to Clapham [4]." Crossref dates Clapham to May 1980 and gives pp. 161-164. - CONFIRMED | Clapham answered it in the Bulletin of the London Mathematical Society in the same year. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_hng1.pdf; https://api.crossref.org/works/10.1112/blms/12.3.161 | [clapham-answer] Griswold explicitly describes the question in the 1980 paper and the ensuing algorithms, including "The following procedure is due to Clapham [4]." Crossref dates Clapham to May 1980 and gives pp. 161-164. - CONFIRMED | Enns gave an efficient algorithm in 1984 and Delaney a further treatment in 1986; Clapham himself generalised to three-way fabrics (three thread directions, as in a woven basket or a triaxial cloth) in 1985, and separately recast the problem as a bipartite tournament. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [enns-delaney-threeway] Malkevitch lists the efficient algorithm (1984), Delaney (1986), the three-way extension (1985) and the bipartite tournament note (1985). Crossref confirms the three-way title; Delaney publisher confirms Cathy Delaney, pp. 71-79. - CONFIRMED | Grünbaum and Shephard then spent the 1980s on the harder classification question: not which drafts are fabric, but which fabrics are isonemal, meaning their symmetry group acts transitively on the threads. | https://arxiv.org/html/1006.5653 | [isonemal-classification] Thomas section 1 defines isonemal by a symmetry group "transitive on the strands". The bibliography verifies the subsequent catalogue publications in 1985, 1986 and 1988. - CONFIRMED | Their catalogue of 1985 was extended in 1986 and given its Monthly treatment in 1988, and Richard L. Roth worked out the symmetry groups of the periodic isonemal fabrics in 1993. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [catalogues-roth-history] Read the complete Malkevitch entries. Titles, years and page ranges match: 1985, 279-298; 1986, 155-192; 1988, 5-30; Roth 1993, 191-210. The tool PARTIAL results arise from line breaks and whitespace, not mismatched bibliographic facts. - CONFIRMED | Robert Thomas has continued the colouring side of it into the 2020s. | https://arxiv.org/abs/2406.07810 | [thomas-2020s] The primary arXiv record says "Submitted on 12 Jun 2024" and names "Robert S.D. Thomas" on a paper about colouring isonemal fabrics. - CONFIRMED | Thomas's 2010 paper announces in its own introduction that section 5 "show[s] that not all such designs can be produced by thinly striping an isonemal fabric, correcting an error in" | https://arxiv.org/html/1006.5653 | [thomas-intro-quote] Thomas writes "Then in §5 it is shown that not all such designs can be produced by thinly striping an isonemal fabric, correcting an error in [7]." The page adapts the verb to its own sentence with brackets; the substantive quoted proposition matches. - CONFIRMED | reference [7], which is not Grünbaum and Shephard's catalogue at all but Hoskins and Thomas 1991, a catalogue of fall-apart prefabrics he had co-written himself nineteen years earlier. | https://arxiv.org/html/1006.5653 | [thomas-ref7] Read reference [7] and section 5. The source names Hoskins and Thomas (1991), explicitly says "Theorem 2 of [7] is false", and says the algorithm made the redundant cells "all pale". The self-correction is real and accurately attributed. - CONFIRMED | Section 5 delivers the verdict: "We must conclude that Theorem 2 of [7] is false and that the algorithm on which it is based does not always work either as stated there or improved here." | https://arxiv.org/html/1006.5653 | [thomas-theorem2] Read reference [7] and section 5. The source names Hoskins and Thomas (1991), explicitly says "Theorem 2 of [7] is false", and says the algorithm made the redundant cells "all pale". The self-correction is real and accurately attributed. - CONFIRMED | The algorithm had "made a wrong choice" about the redundant cells. | https://arxiv.org/html/1006.5653 | [thomas-wrong-choice] Read reference [7] and section 5. The source names Hoskins and Thomas (1991), explicitly says "Theorem 2 of [7] is false", and says the algorithm made the redundant cells "all pale". The self-correction is real and accurately attributed. - CONFIRMED | A drawdown is a grid of two symbols standing for two states, drawn and passed between weavers on paper, | https://www.gutenberg.org/files/57031/57031-h/57031-h.htm; https://www.gutenberg.org/files/14600/old/14600-h/14600-h.htm | [drawdown-paper] The record excerpt "It is advisable to put the numbers in a line or in a circle" is about rearranging an order and is insufficient by itself. Taylor explicitly describes the designs as "shown on point paper at Figs. 208 and 209"; Theory of Silk Weaving explains "paper ruled horizontally" for drafts. The page claim is supported by that surrounding source context. - CONFIRMED | The binding points that remain are scattered by the step so that no two are adjacent, which is what the spacing rule is for: an unbroken run of four threads lies flat on the surface with no interruption to catch light at an angle, and the eye reads a sheet rather than a texture. | https://handwovenmagazine.com/satin-dreams/ | [satin-surface] Handwoven describes long floats and scattered interlacements; Textile Learner explicitly says "Reflection of light on the floats" supplies lustre and "Short float fabrics are more durable than long-float fabric." The final rhetorical contrast is read as a practical emphasis, not a quantified survey of every weaving book. - CONFIRMED | Textile references put it the same way: reflection from the floats is the source of the lustre, and short-float fabrics are more durable than long-float ones. | https://textilelearner.net/sateen-weave-features-classification-uses/ | [lustre-durability] Handwoven describes long floats and scattered interlacements; Textile Learner explicitly says "Reflection of light on the floats" supplies lustre and "Short float fabrics are more durable than long-float fabric." The final rhetorical contrast is read as a practical emphasis, not a quantified survey of every weaving book. - CONFIRMED | The floats that make satin shine are the floats that snag, which is why the useful question in a weaving book is never "does it hang together" (the answer is almost always yes) but "how long are the floats". | https://textilelearner.net/sateen-weave-features-classification-uses/ | [satin-snags] Handwoven describes long floats and scattered interlacements; Textile Learner explicitly says "Reflection of light on the floats" supplies lustre and "Short float fabrics are more durable than long-float fabric." The final rhetorical contrast is read as a practical emphasis, not a quantified survey of every weaving book. - CONFIRMED | B. Grünbaum and G. C. Shephard, "Satins and Twills: An Introduction to the Geometry of Fabrics", Mathematics Magazine 53(3) (1980) 139-161, doi:10.1080/0025570X.1980.11976845. | https://api.crossref.org/works/10.1080/0025570X.1980.11976845 | [cite-grunbaum1980] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | C. R. J. Clapham, "When a Fabric Hangs Together", Bulletin of the London Mathematical Society 12(3) (1980) 161-164, doi:10.1112/blms/12.3.161. | https://api.crossref.org/works/10.1112/blms/12.3.161 | [cite-clapham1980] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | T. C. Enns, "An efficient algorithm determining when a fabric hangs together", Geometriae Dedicata 15(3) (1984), doi:10.1007/BF00147648 (pages 259-260 per Malkevitch's bibliography; Crossref carries no page range). | https://api.crossref.org/works/10.1007/BF00147648 | [cite-enns1984] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | C. R. J. Clapham, "When a three-way fabric hangs together", J. Combinatorial Theory Ser. B 38(2) (1985) 190, doi:10.1016/0095-8956(85)90084-X; | https://api.crossref.org/works/10.1016/0095-8956(85)90084-X | [cite-clapham3] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | "The bipartite tournament associated with a fabric", Discrete Mathematics 57 (1985) 195-197. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [cite-tournament] Thomas reference 1 and Malkevitch both give "The bipartite tournament associated with a fabric", Discrete Math. 57 (1985), 195-197. This supports the historical attribution, not a claim to have read that paper. - CONFIRMED | C. Delaney, "When a fabric hangs together", Ars Combinatoria 21-A (1986) 71-79 (from Malkevitch's bibliography, which gives that one initial and no more; not indexed in Crossref, and we have not seen it). | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [cite-delaney] Malkevitch gives "Delaney, C." and the publisher gives "Delaney, Cathy" with "Ars Comb. 21A, 71-79 (1986)." These agree with the page initial and citation. The authors not having seen the paper is separately supported by their committed record. - CONFIRMED | B. Grünbaum and G. C. Shephard, "A catalogue of isonemal fabrics", Annals of the New York Academy of Sciences 440 (1985) 279-298; | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [cite-catalogue] Read the complete Malkevitch entries. Titles, years and page ranges match: 1985, 279-298; 1986, 155-192; 1988, 5-30; Roth 1993, 191-210. The tool PARTIAL results arise from line breaks and whitespace, not mismatched bibliographic facts. - CONFIRMED | "An extension to the catalogue of isonemal fabrics", Discrete Mathematics 60 (1986) 155-192; | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [cite-extension] Read the complete Malkevitch entries. Titles, years and page ranges match: 1985, 279-298; 1986, 155-192; 1988, 5-30; Roth 1993, 191-210. The tool PARTIAL results arise from line breaks and whitespace, not mismatched bibliographic facts. - CONFIRMED | "Isonemal Fabrics", American Mathematical Monthly 95(1) (1988) 5-30, doi:10.1080/00029890.1988.11971960. | https://api.crossref.org/works/10.1080/00029890.1988.11971960 | [cite-isonemal1988] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | J. A. Hoskins and R. S. D. Thomas, "The patterns of the isonemal two-colour two-way two-fold fabrics", Bulletin of the Australian Mathematical Society 44(1) (1991) 33-43, doi:10.1017/S0004972700029439 (this is reference [7] of Thomas 2010, the paper whose Theorem 2 that section 5 corrects). | https://api.crossref.org/works/10.1017/S0004972700029439 | [cite-hoskins1991] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | R. L. Roth, "The symmetry groups of periodic isonemal fabrics", Geometriae Dedicata 48 (1993) 191-210, doi:10.1007/BF01264067. | https://api.crossref.org/works/10.1007/BF01264067 | [cite-roth1993] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | Bibliography: J. Malkevitch, Geometry of Fabrics. | https://web.york.cuny.edu/~malk/biblio/geo-fabrics-biblio.html | [cite-malkevitch] Source heading: "Geometry of Fabrics Bibliography (8/18/99)" and "Prepared by: Joseph Malkevitch". - CONFIRMED | The definition quoted in the body is from R. S. D. Thomas, "Perfect colourings of isonemal fabrics by thin striping", arXiv:1006.5653, §1. | https://arxiv.org/html/1006.5653 | [cite-thomas] Read Thomas section 1: "a fabric is a prefabric that hangs together" and the full quoted lift-off definition match the record and page. No change of object or quantifier. - CONFIRMED | P. B. Warren, R. C. Ball and R. E. Goldstein, "Why Clothes Don't Fall Apart: Tension Transmission in Staple Yarns", Physical Review Letters 120, 158001 (2018), doi:10.1103/PhysRevLett.120.158001 (also arXiv:1804.07606). | https://api.crossref.org/works/10.1103/PhysRevLett.120.158001 | [cite-warren] Fetched the corresponding Crossref JSON and checked title, authors, year, volume, issue and pages where supplied; all eight DOI comparisons report "MATCH". Enns pages are separately sourced to Malkevitch. The original Grunbaum PDF corrects Crossref forename "Banko" to Branko. The Warren arXiv identifies article 158001. - CONFIRMED | "True satin isn't possible on six shafts because the counter cannot be spaced evenly" and the satin counter rule: Handwoven, "Satin Dreams". | https://handwovenmagazine.com/satin-dreams/ | [cite-handwoven] Read Handwoven directly after retrying curl without the browser User-Agent. It states "True satin isn’t possible on six shafts because the counter cannot be spaced evenly." The straight/curly apostrophe difference does not change the quotation. - CONFIRMED | The move-number rules (cannot be 1, cannot be the repeat, cannot be one less than the repeat, cannot share a factor with the repeat): Texwiz101, "Features and Classification of Satin", which states all four and lists 4-end and 6-end satin/sateen among the irregular types. | https://texwiz101.blogspot.com/2012/03/features-and-classification-of-satin.html | [cite-texwiz] The source lists regular and irregular examples, including "6 end satin/sateen, 4 end satin/sateen". Its third rule is literally "Cannot be 1 minus number of warp yarn in a repeat"; the intended n-1 rule is confirmed by the primary silk-weaving source. The record excerpt stops before the irregular examples, but they are present in the full page. - CONFIRMED | Textile Learner, "Sateen Weave" also classifies 4-end and 6-end sateens as irregular, and is the source for lustre arising from reflection off floats and for short floats being more durable than long ones. | https://textilelearner.net/sateen-weave-features-classification-uses/ | [cite-textile] Read both irregular warp-satin and weft-sateen sections. The weft section states "Only 4 – end and 6- end sateens are irregular." Its lustre and durability statements match the record. These are attributions to the reference, not a proof that no other irregular designs can be defined. - CONFIRMED | Etymology of "satin", including the OED's rejection of the Arabic derivation: Etymonline. | https://www.etymonline.com/word/satin | [cite-etymonline] Direct curl returned HTTP 403; independently opened the indexed Etymonline entry. It includes "(satin) from Zaitun" and "OED finds the Arabic connection etymologically untenable" and the Latin seta alternative. The record accurately transcribes this dispute. - CONFIRMED | A weave draft is nothing but a grid of over-and-unders, and some grids are not cloth at all. | https://www2.cs.arizona.edu/patterns/weaving/webdocs/gre_hng1.pdf | [metadata-dek-1] Griswold p. 1: "each cell representing a point of interlacement" and "black grid cells indicate where a warp thread is on top". Read the PDF text and its surrounding explanation of unsound interlacements. The record excerpt interleaves the diagram labels "treadling drawdown" into the prose; those labels are not part of the sentence. - CONFIRMED | The satin arithmetic is elementary (a step s works iff 1 < s < n-1 and gcd(s,n) = 1) but the consequence is in your hands: there is no regular satin on four shafts or six, which is why weaving books quietly list an 'irregular' six-end satin instead. | https://texwiz101.blogspot.com/2012/03/features-and-classification-of-satin.html; https://www.gutenberg.org/files/14600/old/14600-h/14600-h.htm; git show a77c45dd68:research/shake-the-cloth/verify-shake-the-cloth.mjs | [metadata-dek-5] The regular rule is independently confirmed by the silk-weaving counter construction and gcd arithmetic. Texwiz literally says "Cannot be 1 minus number of warp yarn in a repeat", a reversed-subtraction wording; it is not a clean literal statement of n-1. The page gives the correct intended exclusion. - CONFIRMED | Why True Satin Is Impossible on Six Shafts | https://handwovenmagazine.com/satin-dreams/ | [seo-title] Read Handwoven directly after retrying curl without the browser User-Agent. It states "True satin isn’t possible on six shafts because the counter cannot be spaced evenly." The straight/curly apostrophe difference does not change the quotation. - CONFIRMED | C. Delaney, "When a fabric hangs together", Ars Combinatoria 21-A (1986) 71-79 (from Malkevitch's bibliography, which gives that one initial and no more; not indexed in Crossref, and we have not seen it). | https://combinatorialpress.com/ars/vol21a/ | [cite-delaney-publisher] Malkevitch gives "Delaney, C." and the publisher gives "Delaney, Cathy" with "Ars Comb. 21A, 71-79 (1986)." These agree with the page initial and citation. The authors not having seen the paper is separately supported by their committed record. - CONFIRMED | (added) Trend chart. Blue line: one minus the exact loose-strand failure rate, an upper bound on the hanging fraction, computed by inclusion and exclusion for n = 2 to 20. | git show a77c45dd68:public/strata/shake-the-cloth/index.html | [added-upper-bound] The source record included only the trailing "hanging fraction, computed by inclusion and exclusion" fragment. The full upper-bound qualification was absent. If L is the event of a loose strand and F the failure event, L is a subset of F, hence P(hangs)=1-P(F)<=1-P(L). The stated bound direction is correct. ## Findings - [fixed] X1 (between-steps-satin, MINOR): The inline satinSteps function requires coprimality. Added that missing condition to the introductory sentence. - [fixed] X2 (step-table-lower-bound, MINOR): The inline loop starts at s = 2. Changed the caption to 1 < s < n-1, preserving the computed table. - [fixed] X3 (sample-gap-as-exact-rate, MINOR): refreshMC subtracts the exact loose-strand fraction from a sampled failure fraction. Labelled the result as an estimate that can be negative from sampling error; updated associated sampler labels without changing the calculation. - [fixed] X4 (lower-bound-proves-majority, MINOR): drawTrend correctly calls one minus the loose-strand rate an upper bound on the hanging fraction. The prose now attributes evidence beyond five to the sampler. Qualified the repeated inference in the README and build report; the verifier tests the valid loose-strand asymptote, not the full failure-rate asymptote. - [fixed] X5 (most-yarns-staple, WRONG): Fiber Journal reports a 57% filament share of global yarn-production mass in 2019. Removed the unqualified staple-majority parenthesis; retained the friction/percolation account supported by Warren et al. Same error and correction as X6. Direct reread details and exact excerpts are in triage.json. - [fixed] X6 (most-yarns-staple, WRONG): The 2019 production-by-mass evidence contradicts the unqualified staple-majority parenthesis. Removed it and added one dated correction shared with X5; no present-day or by-count majority is claimed. Direct reread details and exact excerpts are in triage.json. - [fixed] X7 (no-yarn-fabric-mechanics-link, WRONG): The publisher-indexed 2017 abstract describes plain/twill bending models using weave geometry and yarn properties, with measurement comparisons. Replaced the universal absence assertion with this page model's limit, cited that example and added a dated correction. Direct reread details and exact excerpt are in triage.json. Review also replaced the related absence claim in research/shake-the-cloth/spec.json:25 with the limit of this page's model. - [open note:0f7ec1] X8 (gcd-relation-scope, MINOR): Reread src/content/strata/one-line-around-every-dot.md:4,12 and scripts/nearby-layers.mjs:70-111. The wording is authored in that other layer and injected here as a reverse relation. The gcd claim needs the constant-step-draft and no-internal-walls qualifications. A durable source fix requires editing another layer or changing shared navigation generation, both forbidden for this worker; do not patch generated output. Retain MINOR and hold the source edit with [open note:PENDING]; the directing instance must obtain the board note id and arrange the other-layer edit. - [dated] X9 (jsonld-modified-date, STALE): The HTML retained the original publication date as dateModified despite the 2026-10-01 modification in git history. Set dateModified to 2026-10-18 under the explicit metadata exception. No Updated line is required; the factual correction lines date this revision.