{
  "version": 2,
  "counts": {
    "species": 83,
    "entities": 2,
    "hazards": 1,
    "guilds": 30,
    "rules": 92,
    "beliefs": 35
  },
  "species": [
    {
      "id": "zea_mays",
      "common": [
        "corn",
        "maize",
        "sweet corn"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Suikermais.jpg",
        "artist": "Rasbak at Dutch Wikipedia",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "Corn plants growing in a field, with tasselled tops"
      },
      "family": "poaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 3.8,
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        180,
        260
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "root_depth": "medium",
      "spacing_in_row_cm": 25,
      "spacing_between_row_cm": 75,
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "gdd",
      "gdd_base_c": 10,
      "gdd_to_maturity": [
        1100,
        1400
      ],
      "days_to_maturity": [
        75,
        95
      ],
      "pollination": {
        "mode": "wind",
        "block_min_plants": 12,
        "block_min_rows": 3
      },
      "support": {
        "provides": "weak",
        "provides_load_vines": 2,
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "THE TWO ROW COUNTS ARE BOTH SOURCED AND THEY ARE NOT THE SAME QUANTITY (recorded 2026-07-26). `block_min_rows: 3` is a FLOOR; R-001's claim, mechanism and remedy all say \"at least 4 rows\", which is a RECOMMENDATION. Neither is a typo for the other and neither should be \"corrected\" to match.\nUMD states both in one sentence - \"minimum of three rows side by side (preferably four rows)\" - and UMN and NC State state only the four (\"blocks of at least four rows\"). Clemson says \"several rows\" and quantifies nothing. So 3 is the lowest figure any read source will defend and 4 is what three of the four sources actually advise. All four are quoted in full in R-001's own evidence pointers, read 2026-07-11.\nWHY THIS NOTE EXISTS: `block_min_rows` is read by nothing (ISSUES #15), so the divergence has no downstream symptom, and it reads as an error against a grade-A rule that says four three times. The next person to notice it would \"fix\" it to 4 and silently discard UMD's floor. R-001's trigger fires on `block_min_plants`, not on rows at all, so no behaviour depends on either number today.\nThe app quotes the RECOMMENDATION (\"a block of 4+ rows\"), which is the right advice to give and matches the rule's remedy. If anything ever reads this field, it must not be assumed to be the number the UI is showing.\n",
      "confidence": {
        "estimated": [
          "gdd_to_maturity",
          "support.provides_load_vines",
          "ph_range"
        ],
        "contested": [
          "pollination.block_min_plants"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Corn' -> 1.5' = 3.8 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "pollination.block_min_plants": [
            "CHECKED 2026-07-26 AGAINST R-001's OWN FOUR SOURCES, AND NONE OF THEM STATES A PLANT COUNT. That is why this field is `contested` rather than merely estimated, and the reason was not written down anywhere until now. R-001's claim says 'a block of at least 4 rows (roughly 12 plants)' - the ROWS are sourced four times over (UMN and NC State 'at least four rows', UMD 'three to four short rows', Clemson 'several rows'), and THE 12 IS THE CORPUS'S OWN. All four pointers were re-read 2026-07-26 while sourcing block_min_rows and not one gives a number of plants. IT IS ALSO THE FIELD THE RULE ACTUALLY FIRES ON: R-001's trigger is {kind: count_in_block, field: pollination.block_min_plants}, so a grade-A BLOCK rule is enforced on the one number in it that no source supplies, while the well-sourced row count is enforced by nothing. Recorded rather than changed - 12 is a reasonable reading of 'four rows' and inventing a different unsourced number would not improve it. [read]"
          ],
          "support.provides_load_vines": [
            "NOT PUBLISHED, AND THE CORPUS ALREADY DECIDED THAT - recorded here 2026-07-26 because the judgement lived on the rule and this field, where the number actually lives, said only 'estimated'. R-041's note (maintainer, 2026-07-25): 'no extension service publishes it and none will, so waiting for a citation meant waiting forever'. No search will resolve this one. TWO THINGS MEASURED 2026-07-26 THAT WERE NOT RECORDED ANYWHERE. First, R-041 IS NOT IMPLEMENTED: it is absent from dispatch.py's IMPLEMENTED set, so the rule never fires and this number gates nothing today - the only code that reads the field is the USER-species validator. Second, THE CORPUS'S OWN GUILDS NEVER REACH THE CAPACITY: three_sisters and four_sisters plant 5 support and 4 fixer per m2 and milpa 8 and 6, which is 0.75 to 0.80 vines per stalk against a claimed capacity of 2. Even implemented, the canonical plantings would not approach it. R-041's own effect_size says 'corn 1-2' while this field says 2; the rule and the species do not agree, which is why R-041's remedy states a difference in KIND and quotes no count. [read]"
          ],
          "pollination.block_min_rows": [
            "UMD Extension, 'Growing Sweet Corn in a Home Garden', extension.umd.edu/resource/growing-sweet-corn-home-garden (read 2026-07-11, by the human who recorded it as R-001's third pointer; this entry re-uses that read, it is not a new one): 'Plant in blocks of at least three to four short rows, rather than one or two long rows, to ensure good pollination; minimum of three rows side by side (preferably four rows).' THE FIELD TAKES THE MINIMUM, 3, and the same sentence's 'preferably four' is what R-001's prose states. UMN and NC State give only four. Unflagged because 3 is stated outright by a read source as a minimum - it is not this corpus's estimate. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Sweet corn' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0. 6.0 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. The old 5.8 floor had no source and no flag; UMD's is 6.0. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "phaseolus_vulgaris",
      "common": [
        "common bean"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Phaseolus_vulgaris.jpg",
        "artist": "Rainer Zenz (uploader), via Wikimedia Commons",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "A bean plant with green pods hanging among the leaves"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "rhizobia_group": "rhizobium_leguminosarum",
      "n_fixed_kg_ha_season": [
        40,
        70
      ],
      "n_available_to_neighbors_same_season": "negligible",
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "succession_interval_days": [
        14,
        21
      ],
      "casts_shade": false,
      "pollinator_value": "low",
      "cultivar_groups": [
        {
          "id": "pole",
          "common": "pole bean",
          "habit": "vine",
          "mature_height_cm": [
            180,
            240
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            60,
            75
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low"
        },
        {
          "id": "bush",
          "common": "bush bean",
          "habit": "bush",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            35,
            35
          ],
          "spacing_in_row_cm": 10,
          "days_to_maturity": [
            50,
            60
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate"
        }
      ],
      "confidence": {
        "estimated": [
          "n_fixed_kg_ha_season",
          "succession_interval_days",
          "ph_range"
        ],
        "contested": [
          "n_available_to_neighbors_same_season"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Bean, Snap, Bush / Bean, Snap, Pole' -> 1' = 2.5 cm. Both habit rows give the same depth. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "n_available_to_neighbors_same_season": [
            "SOURCED FROM R-014's OWN EVIDENCE, and the reads are not new - all three pointers were read by a human on 2026-07-11 and carry that rule's `verified` status. This field IS the species-level statement of what R-014 refutes, and nothing was connecting the two. Univ. of Arkansas Extension, 'Creating a Three Sisters Garden', uaex.uada.edu: 'Most of the nitrogen converted by the beans will not be available to the corn and pumpkins the first year; the bean roots have to break down to release nitrogen.' THAT SENTENCE IS ABOUT THIS SPECIES IN THIS GUILD. Two intercropping studies put a number on the same-season transfer: Hupe et al. 2021 (Sci Rep 11:11424) gives 'a mean N transfer rate of 8.4%, with a range of 2.7 to 22.5%' and '3.1 and 6.0% ... from soybean to maize'; PMC5648690 gives 'N transferred from soybean to maize account for 2.4%-3.3% of the N uptake of maize'. STAYS `contested` RATHER THAN BECOMING CLEAN, deliberately: 'negligible' is this corpus's word, and Hupe's upper bound of 22.5% is not negligible by any ordinary reading. The tier is honest about a range whose top end disagrees with the label. [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. FOR THIS SPECIES ONLY, the floor is supported: UMD names it outright - 'green beans may be planted at two-week intervals for a continuous harvest' - which is the 14. The 21 is ours. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Beans - lima, snap' gives target pH 6.2, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. The row names both binomials' crops together, so it is not bean-species-specific. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "phaseolus_lunatus",
      "common": [
        "lima bean",
        "butter bean"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Phaseolus_lunatus_(Gousses).jpg",
        "artist": "Filo gèn'",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Lima bean pods on the plant"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "casts_shade": false,
      "pollinator_value": "low",
      "note": "Lima / butter bean — added 2026-07-25. Phaseolus lunatus, a DIFFERENT SPECIES from the common bean (P. vulgaris) and from the runner bean (P. coccineus), all three of which this corpus now models separately. Illinois names the binomials on the same page, which is what makes the split checkable rather than assumed; they share the fabaceae rotation break either way.\nNO rhizobia_group, deliberately. This corpus distinguishes symbionts - Bradyrhizobium (cowpea group) for vigna_unguiculata against Rhizobium leguminosarum for bean and pea - and NEITHER source read on 2026-07-25 states which one a lima partners with. UMN discusses inoculant for common beans only and says nothing about limas. A guessed symbiont is a fabricated mechanism, so the field is absent rather than assumed from the genus.\nA SOIL NOTE WORTH KEEPING, and the first sourced texture preference in the corpus: UMN states that \"lima bean plants grow best in a coarser-textured, sandier soil\", against a clay loam for common beans. Nothing acts on it - soil P0 gates nothing (D-148) - but it is exactly the kind of input P2's texture work would use, and it is recorded now while the source is in hand.\n",
      "cultivar_groups": [
        {
          "id": "bush",
          "common": "bush lima",
          "habit": "bush",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            35,
            35
          ],
          "spacing_in_row_cm": 10,
          "days_to_maturity": [
            67,
            70
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate"
        },
        {
          "id": "pole",
          "common": "pole lima",
          "habit": "vine",
          "mature_height_cm": [
            180,
            240
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            72,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low"
        }
      ],
      "confidence": {
        "estimated": [
          "cultivar_groups.bush.mature_height_cm",
          "cultivar_groups.bush.mature_spread_cm",
          "cultivar_groups.pole.mature_height_cm",
          "cultivar_groups.pole.mature_spread_cm",
          "cultivar_groups.bush.days_to_maturity",
          "cultivar_groups.pole.days_to_maturity",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Bean, Lima, Bush / Bean, Lima, Pole' -> 1' = 2.5 cm. Both habit rows give the same depth. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Beans - lima, snap' gives target pH 6.2, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. LIMA IS NAMED IN THE ROW ITSELF, so unlike most of this species' numbers - which are carried from phaseolus_vulgaris by analogy - the floor here is genuinely about limas. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.bush.days_to_maturity": [
            "Illinois Extension HortAnswers, 'Beans (Phaseolus vulgaris, P. lunatus)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=287 (read 2026-07-25): lima BUSH cultivars listed with their days - 'Allgreen (67 days), Baby Bush (70 days); Eastland (70 days); Fordhook 242 (70 days)'. 67-70 is that cultivar list's span, DERIVED from four named varieties rather than stated for the group, so it is flagged - the same treatment okra's UGA variety table got. [read]"
          ],
          "cultivar_groups.pole.days_to_maturity": [
            "Illinois Extension HortAnswers, same page (read 2026-07-25): lima POLE cultivars - 'King of the Garden (85 days); Big 6 (72 days), and Prizetaker (90 days)'. 72-90 is that span, derived from three named varieties, flagged for the same reason. Note the page states no days for limas as a group at all. [read]"
          ],
          "cultivar_groups.bush.mature_height_cm": [
            "NO SOURCE READ STATES A LIMA'S HEIGHT OR SPREAD. Both groups' figures are carried from this corpus' own phaseolus_vulgaris, and UMN is what licenses that: 'Choose either pole or bush plant habits and grow limas just as you would common beans' (extension.umn.edu/vegetables/growing-beans, read 2026-07-25). An INTERNAL ANALOGY with a read source behind the analogy is still an analogy, so all four dimensions are flagged. [read]"
          ],
          "cultivar_groups.pole.mature_height_cm": [
            "See the bush group's citation: carried from phaseolus_vulgaris on UMN's 'grow limas just as you would common beans', and flagged. [read]"
          ],
          "cultivar_groups.bush.mature_spread_cm": [
            "See the bush group's height citation - carried and flagged. [read]"
          ],
          "cultivar_groups.pole.mature_spread_cm": [
            "See the bush group's height citation - carried and flagged. [read]"
          ],
          "cultivar_groups.bush.spacing_in_row_cm": [
            "Illinois Extension HortAnswers (read 2026-07-25), stated for all beans on the page that covers both binomials: 'Plant seeds of bush beans 2 to 4 inches apart in rows at least 18 to 24 inches apart.' 10 cm is 4 inches. Generic across beans rather than lima-specific, and the citation says so. [read]"
          ],
          "cultivar_groups.pole.spacing_in_row_cm": [
            "Illinois Extension HortAnswers (read 2026-07-25): 'Plant seeds of pole beans 4 to 6 inches apart in rows 30 to 36 inches apart.' 15 cm is 6 inches. Generic across beans, like the bush figure. [read]"
          ]
        }
      }
    },
    {
      "id": "phaseolus_coccineus",
      "common": [
        "runner bean",
        "scarlet runner bean"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:-2020-08-02_Runner_bean_harvest_(Phaseolus_coccineus),_Trimingham,_Norfolk.JPG",
        "artist": "Kolforn",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Green runner bean pods"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": [
        5.1,
        7.6
      ],
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "rhizobia_group": "rhizobium_leguminosarum",
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        90
      ],
      "mature_height_cm": [
        200,
        300
      ],
      "mature_spread_cm": [
        20,
        20
      ],
      "spacing_in_row_cm": 15,
      "support": {
        "provides": "none",
        "requires": "strong"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "midsummer"
      ],
      "note": "A climbing warm-season legume like common bean and a genuine fixer alternative in a Three Sisters — grown for both the pods and its showy, pollinator- (and hummingbird-) drawing flowers, and a little more cool-tolerant than common bean. A tender perennial in frost-free climates, grown as an annual. Needs strong support (the corn or a trellis).\nSPREAD ESTIMATED, and for a climber the field means something narrower than it does elsewhere: a supported vine's footprint is the base it occupies, not the area its foliage reaches, because the foliage is up the pole. Clemson (read 2026-07-25) states the base figure that logic needs - five or six seeds in a 6-8 in circle around a pole - and states nothing about a plant's width. It also never mentions scarlet runner bean; the numbers here are the pole-bean pattern applied to a species Clemson does not cover, which is why the flag stays.\n",
      "cultivar_groups": [
        {
          "id": "climbing",
          "common": "climbing runner bean",
          "habit": "vine",
          "mature_height_cm": [
            200,
            300
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            70,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low",
          "note": "The default climbing type (Scarlet Runner, Painted Lady) - the Three Sisters fixer role, up the corn or a trellis."
        },
        {
          "id": "dwarf",
          "common": "dwarf runner bean",
          "habit": "bush",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            30,
            40
          ],
          "spacing_in_row_cm": 20,
          "days_to_maturity": [
            65,
            85
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "low",
          "note": "Bush runner beans (Hestia, Pickwick) for small or windy beds - self-supporting and too short to climb, so not a sisters fixer."
        }
      ],
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Wisconsin-Madison Div. of Extension, Wisconsin Horticulture, 'Scarlet Runner Bean, Phaseolus coccineus', hort.extension.wisc.edu/articles/scarlet-runner-bean-phaseolus-coccineus (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Direct sow in the garden, planting seeds 2 to 3 inches deep' = 5.1-7.6 cm. ROUGHLY TRIPLE EVERY OTHER BEAN IN THIS CORPUS, AND THE SOURCE GIVES THE MECHANISM: this species germinates hypogeally - 'when the seed germinates, the cotyledons remain underground' - unlike common beans, whose cotyledons are pushed above the soil. Recorded because a reader comparing it with phaseolus_vulgaris at 2.5 cm would otherwise reasonably suspect an error. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Bean (Runner, Broad, French) 6.0-7.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. THE ROW NAMES THE RUNNER BEAN OUTRIGHT, which is unusual for this species - the bean tables this corpus has read elsewhere lump P. vulgaris and P. lunatus and leave P. coccineus out entirely. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "mature_spread_cm": [
            "Clemson HGIC, 'Bush & Pole-Type Snap Beans', hgic.clemson.edu/factsheet/bush-pole-type-snap-beans (read 2026-07-25): 'Plant five or six seeds in a circle 6 to 8 inches from each pole'; 'Trellises should be at least 6 to 8 feet tall and sturdy enough to withstand strong winds and rain.' NO plant width or spread figure, and no conventional-row spacing for pole beans either - only the teepee arrangement. The 6-8 in circle (15-20 cm) is the closest published analogue to the 20 cm this species carries, and it describes where SEEDS go around a support, not how wide a plant gets. IT DOES NOT MENTION SCARLET RUNNER BEAN at all, so it is evidence about pole beans generally and not about P. coccineus. [read]"
          ]
        }
      }
    },
    {
      "id": "vigna_unguiculata",
      "common": [
        "cowpea",
        "black-eyed pea",
        "southern pea"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Vigna_unguiculata_subsp.sesquipedalis-2-veerapandy-coimbatore-India.jpg",
        "artist": "Yercaud-elango",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A cowpea plant with its long pods"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": [
        1.9,
        3.8
      ],
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "rhizobia_group": "bradyrhizobium_cowpea",
      "ph_range": [
        5.5,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        60,
        90
      ],
      "mature_height_cm": [
        150,
        250
      ],
      "mature_spread_cm": [
        20,
        20
      ],
      "spacing_in_row_cm": 10,
      "support": {
        "provides": "none",
        "requires": "strong"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "note": "A heat- and drought-tolerant legume traditional in milpa and Southern gardens; the climbing types modelled here fit the Three Sisters fixer role, standing more heat than common bean. Fixes with Bradyrhizobium (cowpea group), not the bean/pea Rhizobium — a genuinely different symbiont.\nSPREAD ESTIMATED (read 2026-07-25). Clemson does distinguish the VINING cultivars this species models - one to two seeds per foot of row against four to six for the bush types - which is the right distinction for the Three Sisters role, and it is still a sowing rate, not a width. The species carries a climber's footprint (20 cm at the base, foliage up the corn), and no publication read in this pass states a width for a supported legume.\n",
      "cultivar_groups": [
        {
          "id": "climbing",
          "common": "vining cowpea",
          "habit": "vine",
          "mature_height_cm": [
            150,
            250
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 10,
          "days_to_maturity": [
            60,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low",
          "note": "The vining type this species models for the Three Sisters fixer role - Clemson's \"older vining cultivars\", sown one to two seeds per foot, up the corn."
        },
        {
          "id": "bush",
          "common": "bush cowpea",
          "habit": "bush",
          "mature_height_cm": [
            50,
            75
          ],
          "mature_spread_cm": [
            30,
            40
          ],
          "spacing_in_row_cm": 12,
          "days_to_maturity": [
            60,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "The common bush black-eyed / southern pea (California Blackeye) - self-supporting, sown four to six seeds per foot (Clemson), not a climber."
        }
      ],
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Clemson HGIC, 'Southern Peas', hgic.clemson.edu/factsheet/southern-peas (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Four to six seeds per foot of row should be planted three-quarters to 1 1/2 inches deep in rows 20 to 42 inches apart.' = 1.9-3.8 cm, kept as the published band rather than narrowed. NOTE A SEARCH SUMMARY GAVE THIS AS '3/4 to 1 1/4 inches' AND THE PAGE SAYS 1 1/2 - the page was opened and the page wins. [read]"
          ],
          "ph_range": [
            "NO SOURCE READ ON 2026-07-25 COVERS THIS SPECIES. UMD Extension Table B-1, the table every other ph_range in this corpus now rests on, is a VEGETABLE table and has no row for it. UF/IFAS HS1207 gives only a blanket vegetable band, and Cornell's horticultural-crops chart draws its ranges as bars on a pH axis - the crop names extract from the PDF, the numbers do not, so nothing can be cited from it. Cowpea is a warm-season southern crop absent from this mid-Atlantic table entirely. 5.5-7.0 is carried unchanged and is the corpus's own on BOTH ends. Flagged. The honest state is that this species' pH is unresearched, and the pH gate must not treat it as known. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "Clemson HGIC, 'Southern Peas', hgic.clemson.edu/factsheet/southern-peas (read 2026-07-25): 'Four to six seeds per foot of row should be planted three-quarters to 1 1/2 inches deep in rows 20 to 42 inches apart', and specifically for the type modelled here, 'The older vining-type cultivars of Southern peas should be planted with only one to two seeds per foot of row.' The factsheet contains NO plant height, width, spread or trellising figure at all. One to two seeds per foot is 15-30 cm between plants, which brackets this species' 20 cm - but it is a sowing rate for a field row, and the corpus number is a supported climber's base footprint. [read]"
          ]
        }
      }
    },
    {
      "id": "cucurbita_pepo",
      "common": [
        "summer squash",
        "zucchini",
        "acorn squash"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cucurbita_pepo_Vilarromaris_Oroso_Galiza_2.jpg",
        "artist": "Lmbuga",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A green zucchini growing on the ground among the leaves",
        "caption": "C. pepo spans zucchini, pumpkin and more by cultivar group."
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "ber_susceptible": true,
      "lifespan": "annual",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "pollination": {
        "mode": "insect",
        "monoecious": true
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "pest_pressure": [
        "anasa_tristis",
        "melittia_cucurbitae"
      ],
      "cultivar_groups": [
        {
          "id": "bush",
          "common": "bush squash",
          "habit": "bush",
          "mature_height_cm": [
            60,
            60
          ],
          "mature_spread_cm": [
            70,
            100
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            45,
            60
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Required for beds under 4 sq m. See R-042."
        },
        {
          "id": "vining",
          "common": "vining squash",
          "habit": "vine",
          "mature_height_cm": [
            40,
            40
          ],
          "mature_spread_cm": [
            200,
            400
          ],
          "spacing_in_row_cm": 120,
          "days_to_maturity": [
            50,
            65
          ],
          "support": {
            "provides": "none",
            "requires": "optional_strong"
          },
          "ground_coverage": "high"
        },
        {
          "id": "zucchini",
          "common": "zucchini",
          "habit": "bush",
          "mature_height_cm": [
            60,
            90
          ],
          "mature_spread_cm": [
            90,
            120
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            45,
            55
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Zucchini / courgette — the archetypal bush summer squash. A named cultivar group of the same species as summer/acorn squash (Cucurbita pepo); bush habit, so it fits a small bed where a vining squash escapes (R-042), not the sprawling living-mulch role a vining cover fills.\n"
        },
        {
          "id": "pumpkin",
          "common": "pumpkin",
          "habit": "vine",
          "mature_height_cm": [
            40,
            40
          ],
          "mature_spread_cm": [
            200,
            400
          ],
          "spacing_in_row_cm": 150,
          "days_to_maturity": [
            70,
            120
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "The garden pumpkin — carving and pie types — added 2026-07-25. A cultivar group, not a species: UMN states outright that jack-o'-lantern and many pie pumpkins are Cucurbita pepo, the same species as summer squash and zucchini, so it belongs here and inherits the cucurbit rotation (R-011) correctly. Only the GIANT competition types are C. maxima, and those are deliberately not modelled: a 50-plus-pound pumpkin needs 150 sq ft per hill and is a different undertaking.\nAppended LAST on purpose. The first group is what an unqualified Cucurbita pepo resolves to (dispatch.resolve's default-cultivar rule), so inserting a group ahead of `bush` would silently re-shape every existing summer squash in the corpus — the mistake apple's standard_rootstock group exists to prevent.\nNO SUPPORT, unlike the vining group: a squash on a trellis is a routine small-garden technique, a pumpkin on one is not, so this group does not offer optional_strong.\n"
        }
      ],
      "confidence": {
        "estimated": [
          "cultivar_groups.pumpkin.mature_spread_cm",
          "cultivar_groups.pumpkin.mature_height_cm",
          "ph_range",
          "bloom_window"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Squash, Summer' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "bloom_window": [
            "INFERRED FROM THIS RECORD'S OWN DTM PLUS A SOURCED PLANTING DATE, NOT READ OFF A PAGE, which is why it is flagged `estimated` rather than asserted. Clemson HGIC 1321, 'Summer Squash', hgic.clemson.edu/factsheet/summer-squash (fetched and read in-container 2026-08-01): 'In the spring, do not plant this crop until after the last chance of frost has passed, and the soil temperature is 60 F, 4-inches below the surface' and 'Summer squash can be harvested about 55 days after planting.' UMN Extension, 'Growing summer squash and zucchini in home gardens', extension.umn.edu/vegetables/growing-summer-squash-and-zucchini (read 2026-08-01): 'Sow seeds after the last frost date, once soil temperatures are at least 70 F at the two-inch depth.' WHAT NEITHER SOURCE STATES, AND IT IS THE HALF THIS FIELD ACTUALLY NEEDS: when flowering BEGINS, and whether it continues to frost. Both were searched for and neither page says it. The window here is arithmetic on top of them — sown after last frost, first fruit at this record's own days_to_maturity (45-60 bush, 50-65 vining), and a flower necessarily precedes its fruit, so bloom opens inside early summer; a monoecious cucurbit keeps setting flowers while the plant lives, and `frost_tolerance: tender` ends it. Hence [early_summer, late_summer]. A source that dates first bloom directly would replace this and could clear the flag. NOTE the five annual bloom_windows already in this corpus (sunflower, dill, cleome, phacelia, scarlet runner) carry NO confidence entry at all; this one is deliberately held to a higher bar than its neighbours, not a lower one."
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Squash - winter, summer' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. Table B-1 also carries a separate 'Pumpkins' row with the same pair, 6.5 and 6.0, so the species' pumpkin cultivar group needs no different figure. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.pumpkin.days_to_maturity": [
            "Clemson HGIC, 'Pumpkins & Winter Squash', hgic.clemson.edu/factsheet/pumpkins-winter-squash (read 2026-07-25): 'Maturity of pumpkins varies from 70 to 120 days, depending on growing conditions', with 'Big Max' at 120 days and 'Big Moon' at 115. The corpus takes the stated 70-120 band VERBATIM, which is why this field is NOT flagged - it is quoted, not derived. Neither UMN's nor Illinois's pumpkin pages carry a days-to-maturity at all (both read the same day), so this is the only source found for it. [read]"
          ],
          "cultivar_groups.pumpkin.spacing_in_row_cm": [
            "Illinois Extension, 'Pumpkin' (Home Vegetable Gardening), extension.illinois.edu/gardening/pumpkin (read 2026-07-25): vining pumpkins want '5 to 6 feet between hills, spaced in rows 10 to 15 feet apart' and 'a minimum of 50 to 100 square feet per hill'; semi-bush '4 feet between hills and 8 feet between rows'; jumbo varieties '150 square feet per hill'. 150 cm is the bottom of the 5-6 ft hill spacing. [read]"
          ],
          "cultivar_groups.pumpkin.mature_spread_cm": [
            "NO SOURCE READ STATES A PUMPKIN VINE SPREAD - the same pattern the 2026-07-25 spread pass found across every cucurbit. Illinois's '50 to 100 square feet per hill' is the nearest published figure and it is an AREA allowance, not a width. 200-400 cm is carried over from this species' own vining group, so it is an INTERNAL ANALOGY rather than a measurement, and that is why it is flagged. [read]"
          ],
          "cultivar_groups.pumpkin.mature_height_cm": [
            "No source read states a pumpkin plant's height; 40 cm is this species' vining group figure, carried over, and flagged for the same reason as the spread. Least consequential of the group's numbers: it feeds R-003's tall-plant ordering, where a 40 cm vine is nowhere near the 120 cm threshold either way. [read]"
          ]
        }
      }
    },
    {
      "id": "cucurbita_moschata",
      "common": [
        "butternut",
        "winter squash"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cucurbita_moschata_Butternut_2012_G2.jpg",
        "artist": "George Chernilevsky",
        "licence": "Public domain",
        "alt": "Butternut squash, whole and halved"
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "ber_susceptible": true,
      "lifespan": "annual",
      "habit": "vine",
      "mature_height_cm": [
        40,
        40
      ],
      "mature_spread_cm": [
        250,
        450
      ],
      "spacing_in_row_cm": 120,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        90,
        110
      ],
      "support": {
        "provides": "none",
        "requires": "optional_strong"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "note": "More vine-borer resistant than C. pepo (solid stems). Grade C.",
      "confidence": {
        "estimated": [
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Squash, Winter' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Squash - winter, summer' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "solanum_lycopersicum",
      "common": [
        "tomato"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Tomato_je.jpg",
        "artist": "Softeis",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "Ripe red tomatoes on the vine",
        "caption": "A determinate tomato in fruit; cultivars vary widely."
      },
      "family": "solanaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "ber_susceptible": true,
      "verticillium_host": true,
      "lifespan": "annual",
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.8
      ],
      "frost_tolerance": "tender",
      "start_indoors_weeks": 6,
      "scheduling_model": "dtm",
      "night_temp_max_c": 21,
      "pollination": {
        "mode": "self",
        "buzz_assisted": true
      },
      "support": {
        "provides": "none",
        "requires": "strong"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "pathogens": [
        "alternaria_solani",
        "septoria_lycopersici",
        "verticillium",
        "fusarium"
      ],
      "cultivar_groups": [
        {
          "id": "determinate",
          "common": "bush tomato",
          "habit": "bush",
          "mature_height_cm": [
            90,
            120
          ],
          "mature_spread_cm": [
            60,
            60
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            60,
            80
          ],
          "support": {
            "provides": "none",
            "requires": "moderate"
          },
          "ground_coverage": "low"
        },
        {
          "id": "indeterminate",
          "common": "vining tomato",
          "habit": "vine",
          "mature_height_cm": [
            180,
            300
          ],
          "mature_spread_cm": [
            60,
            60
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            70,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low"
        }
      ],
      "confidence": {
        "estimated": [
          "ph_range",
          "sowing_depth_cm"
        ],
        "contested": [
          "night_temp_max_c"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "night_temp_max_c": [
            "SOURCED FROM R-030's OWN EVIDENCE, and the reads are not new - both pointers were read by a human on 2026-07-11 and carry that rule's `verified` status. This field is the species-level number R-030 fires on and nothing connected the two. Univ. of Missouri IPM, 'Understanding Tomato Fruit Set': 'When daytime temperatures exceed 85 degrees F or nighttime temperatures exceed 70 degrees F, pollination suffers'. UMD Extension (J. Brust), 'Expect Poor Fruit Set in Tomatoes This Week': 'nighttime lows only getting down to 70 F ... will cause blossom drop and fruit abortion'. 70 F IS 21.1 C AND THIS FIELD IS CELSIUS, so the stored 21 is those sentences rounded to the nearest degree, not an independent figure - the same Fahrenheit-to-Celsius rounding as lettuce's bolting threshold. Two independent sources give the identical night figure. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Tomatoes' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.8 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "capsicum_annuum",
      "common": [
        "pepper",
        "chile",
        "jalapeno"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Capsicum_annuum_var._Fiesta_-_MHNT.jpg",
        "artist": "PierreSelim",
        "licence": "CC BY 3.0",
        "licence_url": "https://creativecommons.org/licenses/by/3.0",
        "alt": "A pepper plant bearing red and orange fruit",
        "caption": "C. annuum covers sweet bell and hot chili types."
      },
      "family": "solanaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "ber_susceptible": true,
      "verticillium_host": true,
      "lifespan": "annual",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.8
      ],
      "frost_tolerance": "tender",
      "start_indoors_weeks": 8,
      "scheduling_model": "dtm",
      "pollination": {
        "mode": "self"
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "cultivar_groups": [
        {
          "id": "sweet",
          "common": "bell pepper",
          "habit": "bush",
          "mature_height_cm": [
            45,
            75
          ],
          "mature_spread_cm": [
            45,
            45
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            70,
            85
          ]
        },
        {
          "id": "hot",
          "common": "hot pepper",
          "habit": "bush",
          "mature_height_cm": [
            45,
            90
          ],
          "mature_spread_cm": [
            40,
            45
          ],
          "spacing_in_row_cm": 40,
          "days_to_maturity": [
            70,
            100
          ]
        }
      ],
      "confidence": {
        "estimated": [
          "ph_range",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Peppers' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.8 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "physalis_philadelphica",
      "common": [
        "tomatillo"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Kluse_-_Physalis_philadelphica_-_Tomatillo_06_ies.jpg",
        "artist": "Frank Vincentz",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A tomatillo plant carrying husked fruit"
      },
      "family": "solanaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "verticillium_host": true,
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        90,
        150
      ],
      "mature_spread_cm": [
        90,
        90
      ],
      "spacing_in_row_cm": 90,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "start_indoors_weeks": 6,
      "scheduling_model": "dtm",
      "days_to_maturity": [
        75,
        100
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": true,
        "min_plants": 2
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "gates": [
        "R-080"
      ],
      "confidence": {
        "estimated": [
          "bloom_window",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "bloom_window": [
            "INFERRED FROM SOWING DATE PLUS THIS RECORD'S OWN DTM, NOT READ OFF A PAGE, hence `estimated`. A tender tender fruiting annual is sown after the last frost and killed by the first; a flower necessarily precedes its fruit, and a tomatillo keeps setting flowers while the plant lives. So bloom opens inside early summer and ends with frost. NO SOURCE READ DATES FIRST BLOOM FOR THIS SPECIES and that was searched for (Clemson HGIC and UMN Extension crop pages, 2026-08-01). DELIBERATELY THE SAME WINDOW AS THE OTHER TENDER CUCURBITS despite days_to_maturity ranging 45-110 across them: DTM measures FRUIT DEVELOPMENT, not time to first flower - a winter squash ripening at 110 days is not flowering 50 days later than a zucchini. Spreading these apart by DTM would invent precision no source supports. A source dating first bloom would replace this and could clear the flag. [searched]"
          ]
        }
      }
    },
    {
      "id": "solanum_tuberosum",
      "common": [
        "potato"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Potato_flowers_2016_G1.jpg",
        "artist": "George Chernilevsky",
        "licence": "Public domain",
        "alt": "A potato plant in flower, with purple blossoms",
        "caption": "Grown for its tubers; the plant flowers above ground."
      },
      "family": "solanaceae",
      "category": "root",
      "verticillium_host": true,
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        45,
        90
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        5.0,
        6.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        120
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "pathogens": [
        "alternaria_solani",
        "verticillium"
      ],
      "note": "THE ONLY PER-CROP pH CEILING IN THIS CORPUS THAT A SOURCE ARGUES FOR, and the three sources read on 2026-07-25 do not agree where it sits. Every other vegetable's upper bound is the corpus's own (see confidence.sources on any of them); potato's is contested in the literature, which is a better problem to have and is recorded rather than resolved.\nAll three agree on the MECHANISM: common scab (Streptomyces scabies) gets worse as soil goes less acid, so potato is grown deliberately sour. They disagree on the number, and UMD names why: the threshold depends on whether the cultivar is scab-resistant. 5.0-6.0 is kept unchanged and FLAGGED, because picking one of three numbers would hide a disagreement the gardener should see.\n",
      "cultivar_groups": [
        {
          "id": "first_early",
          "common": "first early (new potatoes)",
          "habit": "bush",
          "mature_height_cm": [
            40,
            50
          ],
          "mature_spread_cm": [
            40,
            50
          ],
          "spacing_in_row_cm": 30,
          "days_to_maturity": [
            70,
            90
          ],
          "ground_coverage": "high",
          "note": "First-early maturity class - lifted young as new potatoes, not stored. Smallest, most compact haulm and the shortest season; the closest spacing of the three."
        },
        {
          "id": "second_early",
          "common": "second early",
          "habit": "bush",
          "mature_height_cm": [
            45,
            55
          ],
          "mature_spread_cm": [
            45,
            55
          ],
          "spacing_in_row_cm": 35,
          "days_to_maturity": [
            90,
            110
          ],
          "ground_coverage": "high",
          "note": "Second-early maturity class - a few weeks later than first earlies, eaten fresh or kept a short while. Mid-sized sprawling haulm, between new-potato and storage types in time and room."
        },
        {
          "id": "maincrop",
          "common": "maincrop (storage)",
          "habit": "bush",
          "mature_height_cm": [
            50,
            60
          ],
          "mature_spread_cm": [
            50,
            60
          ],
          "spacing_in_row_cm": 38,
          "days_to_maturity": [
            110,
            135
          ],
          "ground_coverage": "high",
          "note": "Maincrop maturity class - the longest season and the storage potato, cured and kept through winter. Largest, most vigorous haulm, so the widest spacing."
        }
      ],
      "confidence": {
        "estimated": [
          "ph_range",
          "cultivar_groups.first_early.mature_height_cm",
          "cultivar_groups.first_early.mature_spread_cm",
          "cultivar_groups.first_early.days_to_maturity",
          "cultivar_groups.second_early.mature_height_cm",
          "cultivar_groups.second_early.mature_spread_cm",
          "cultivar_groups.second_early.days_to_maturity",
          "cultivar_groups.maincrop.mature_height_cm",
          "cultivar_groups.maincrop.mature_spread_cm",
          "cultivar_groups.maincrop.days_to_maturity"
        ],
        "sources": {
          "ph_range": [
            "THREE SOURCES, ONE MECHANISM, NO AGREED THRESHOLD (all read 2026-07-25). Cornell, 'Soil pH ranges for a selection of Horticultural Crops', dlc.cce.cornell.edu, annotates its potato row in text: 'At pH's > 6 will develop scab' - a ceiling of 6.0. UF/IFAS HS1207 says scab 'is favored when the pH is greater than 5.2 but significantly reduced at less than 5.2', and that 'Within the soil pH range from 5.2 through 8.0, the severity of the common scab increases with soil alkalinity' - a ceiling of 5.2. UMD Extension Table B-1 splits the crop instead: white potato 'scab susceptible' targets 5.2 and limes below 5.0, while 'scab resistant' targets 6.2 and limes below 5.5. So UMD explains the other two's disagreement - it is cultivar resistance, not a contradiction - which is also why this corpus cannot state one number: it does not model potato cultivar groups. 5.0 is UMD's scab-susceptible lime floor; 6.0 is Cornell's ceiling; the pair is FLAGGED and left unchanged. `contested` was considered and rejected: the sources do not contradict each other, they condition on a variable this corpus lacks. [read]"
          ]
        }
      }
    },
    {
      "id": "solanum_melongena",
      "common": [
        "eggplant"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Solanum_melongena_24_08_2012_(1).JPG",
        "artist": "Joydeep",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Purple eggplants ripening on the plant"
      },
      "family": "solanaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "ber_susceptible": true,
      "verticillium_host": true,
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        60,
        120
      ],
      "mature_spread_cm": [
        60,
        60
      ],
      "spacing_in_row_cm": 60,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "start_indoors_weeks": 8,
      "scheduling_model": "dtm",
      "days_to_maturity": [
        80,
        100
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "cultivar_groups": [
        {
          "id": "standard",
          "common": "standard (globe / American)",
          "habit": "bush",
          "mature_height_cm": [
            75,
            120
          ],
          "mature_spread_cm": [
            60,
            75
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            80,
            100
          ],
          "ground_coverage": "low",
          "note": "Tall, bushy plant carrying heavy bell-shaped globe fruit - the largest footprint of the groups; a laden branch benefits from staking."
        },
        {
          "id": "italian",
          "common": "italian (oval)",
          "habit": "bush",
          "mature_height_cm": [
            60,
            90
          ],
          "mature_spread_cm": [
            55,
            60
          ],
          "spacing_in_row_cm": 55,
          "days_to_maturity": [
            70,
            90
          ],
          "ground_coverage": "low",
          "note": "Medium oval-fruited types - a shade smaller and a little earlier than the globe types."
        },
        {
          "id": "asian",
          "common": "asian (long / slender)",
          "habit": "bush",
          "mature_height_cm": [
            60,
            90
          ],
          "mature_spread_cm": [
            45,
            55
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            60,
            80
          ],
          "ground_coverage": "low",
          "note": "Japanese and Chinese long slender types - more upright and compact than the globe types, the earliest of the full-size groups, and the one that takes closest spacing."
        },
        {
          "id": "dwarf",
          "common": "dwarf / patio",
          "habit": "bush",
          "mature_height_cm": [
            30,
            60
          ],
          "mature_spread_cm": [
            40,
            45
          ],
          "spacing_in_row_cm": 40,
          "days_to_maturity": [
            50,
            70
          ],
          "ground_coverage": "low",
          "note": "Compact container and small-fruited types - the smallest footprint and the fastest, low enough to hold its own fruit without staking."
        }
      ],
      "confidence": {
        "estimated": [
          "ph_range",
          "sowing_depth_cm",
          "cultivar_groups.standard.mature_height_cm",
          "cultivar_groups.standard.mature_spread_cm",
          "cultivar_groups.standard.days_to_maturity",
          "cultivar_groups.italian.mature_height_cm",
          "cultivar_groups.italian.mature_spread_cm",
          "cultivar_groups.italian.days_to_maturity",
          "cultivar_groups.asian.mature_height_cm",
          "cultivar_groups.asian.mature_spread_cm",
          "cultivar_groups.asian.days_to_maturity",
          "cultivar_groups.dwarf.mature_height_cm",
          "cultivar_groups.dwarf.mature_spread_cm",
          "cultivar_groups.dwarf.days_to_maturity"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Eggplant' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "daucus_carota",
      "common": [
        "carrot"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Carrots_of_many_colors.jpg",
        "artist": "Stephen Ausmus",
        "licence": "Public domain",
        "alt": "Carrots of many colours arranged in a fan",
        "caption": "Cultivars range from orange to purple, white and yellow."
      },
      "family": "apiaceae",
      "category": "root",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "root",
      "mature_height_cm": [
        30,
        30
      ],
      "mature_spread_cm": [
        8,
        8
      ],
      "spacing_in_row_cm": 5,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        5.5,
        6.8
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        65,
        80
      ],
      "succession_interval_days": [
        14,
        21
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "pest_pressure": [
        "psila_rosae"
      ],
      "note": "Fresh high-N causes forking (R-016).",
      "cultivar_groups": [
        {
          "id": "nantes",
          "common": "Nantes",
          "habit": "root",
          "mature_height_cm": [
            25,
            35
          ],
          "mature_spread_cm": [
            8,
            12
          ],
          "spacing_in_row_cm": 4,
          "days_to_maturity": [
            55,
            65
          ],
          "ground_coverage": "low",
          "note": "Cylindrical, blunt-tipped root ~15-18 cm - the earliest of the full-size types and the most forgiving of ordinary garden soil."
        },
        {
          "id": "danvers",
          "common": "Danvers",
          "habit": "root",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            10,
            14
          ],
          "spacing_in_row_cm": 5,
          "days_to_maturity": [
            70,
            75
          ],
          "ground_coverage": "low",
          "note": "Conical, strong-shouldered root tapering to a point, ~15-18 cm - a vigorous main-season storage carrot, slower than Nantes."
        },
        {
          "id": "chantenay",
          "common": "Chantenay",
          "habit": "root",
          "mature_height_cm": [
            25,
            30
          ],
          "mature_spread_cm": [
            10,
            15
          ],
          "spacing_in_row_cm": 5,
          "days_to_maturity": [
            65,
            70
          ],
          "ground_coverage": "low",
          "note": "Short, broad-shouldered root ~12-15 cm that stays stubby - the one for heavy or shallow soil where the long types deform."
        },
        {
          "id": "imperator",
          "common": "Imperator",
          "habit": "root",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            8,
            12
          ],
          "spacing_in_row_cm": 5,
          "days_to_maturity": [
            70,
            80
          ],
          "ground_coverage": "low",
          "note": "Long, slender, tapering root ~20-25 cm - the supermarket shape; needs deep, loose, stone-free soil to size up straight, and is the slowest of the four."
        }
      ],
      "confidence": {
        "estimated": [
          "succession_interval_days",
          "ph_range",
          "cultivar_groups.nantes.mature_height_cm",
          "cultivar_groups.nantes.mature_spread_cm",
          "cultivar_groups.nantes.days_to_maturity",
          "cultivar_groups.danvers.mature_height_cm",
          "cultivar_groups.danvers.mature_spread_cm",
          "cultivar_groups.danvers.days_to_maturity",
          "cultivar_groups.chantenay.mature_height_cm",
          "cultivar_groups.chantenay.mature_spread_cm",
          "cultivar_groups.chantenay.days_to_maturity",
          "cultivar_groups.imperator.mature_height_cm",
          "cultivar_groups.imperator.mature_spread_cm",
          "cultivar_groups.imperator.days_to_maturity"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Carrots' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Carrot' gives target pH 6.0, and the second column, 'Target lime when pH falls below', gives 5.5. 5.5 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.8 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "brassica_oleracea",
      "common": [
        "cabbage",
        "broccoli",
        "kale",
        "cauliflower",
        "brussels sprouts"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Brassica_oleracea_2011_G1.jpg",
        "artist": "George Chernilevsky",
        "licence": "Public domain",
        "alt": "A green cabbage head with tight wrapping leaves",
        "caption": "B. oleracea also includes broccoli, cauliflower and kale by cultivar group."
      },
      "family": "brassicaceae",
      "category": "salad_green",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "rosette",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.2,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "none",
      "pathogens": [
        "plasmodiophora_brassicae"
      ],
      "pest_pressure": [
        "pieris_rapae",
        "plutella_xylostella"
      ],
      "cultivar_groups": [
        {
          "id": "capitata",
          "common": "cabbage",
          "habit": "rosette",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            45,
            45
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            70,
            100
          ]
        },
        {
          "id": "italica",
          "common": "broccoli",
          "habit": "stalk",
          "mature_height_cm": [
            45,
            60
          ],
          "mature_spread_cm": [
            45,
            45
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            60,
            90
          ]
        },
        {
          "id": "acephala",
          "common": "kale",
          "habit": "rosette",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            40,
            40
          ],
          "spacing_in_row_cm": 40,
          "days_to_maturity": [
            50,
            65
          ]
        },
        {
          "id": "gemmifera",
          "common": "brussels sprouts",
          "habit": "stalk",
          "mature_height_cm": [
            75,
            90
          ],
          "mature_spread_cm": [
            60,
            60
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            90,
            120
          ]
        },
        {
          "id": "botrytis",
          "common": "cauliflower",
          "habit": "rosette",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            50,
            60
          ],
          "spacing_in_row_cm": 55,
          "days_to_maturity": [
            55,
            100
          ]
        },
        {
          "id": "gongylodes",
          "common": "kohlrabi",
          "habit": "bulb",
          "mature_height_cm": [
            25,
            30
          ],
          "mature_spread_cm": [
            25,
            30
          ],
          "spacing_in_row_cm": 20,
          "days_to_maturity": [
            45,
            60
          ]
        },
        {
          "id": "viridis",
          "common": "collards",
          "habit": "rosette",
          "mature_height_cm": [
            60,
            90
          ],
          "mature_spread_cm": [
            60,
            75
          ],
          "spacing_in_row_cm": 60,
          "days_to_maturity": [
            60,
            85
          ]
        }
      ],
      "confidence": {
        "estimated": [
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Broccoli / Cauliflower / Kale / Collards' -> 0.5' = 1.3 cm. Four rows of this one species appear separately in the table and ALL FOUR give 0.5', so the species-level value is not a choice between them. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Broccoli / Brussels sprouts / Cabbage / Cauliflower / Collards / Kale / Kohlrabi' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.2. 6.2 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE 7.5 CEILING IS DELIBERATELY NOT LOWERED to UF/IFAS's blanket 7.0: the same publication says clubroot (Plasmodiophora brassicae) 'is virtually eliminated when the soil pH is greater than 7.3', so a brassica has a documented reason to sit above 7.0 that a general vegetable band would have erased. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.5 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "lactuca_sativa",
      "common": [
        "lettuce"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Lactuca_sativa_%27Lollo_Bionda%27.jpg",
        "artist": "DeFacto",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A loose-leaf lettuce growing in garden soil"
      },
      "family": "asteraceae",
      "category": "salad_green",
      "sowing_depth_cm": 0.6,
      "lifespan": "annual",
      "habit": "rosette",
      "mature_height_cm": [
        25,
        25
      ],
      "mature_spread_cm": [
        25,
        25
      ],
      "spacing_in_row_cm": 25,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        45,
        60
      ],
      "succession_interval_days": [
        10,
        14
      ],
      "bolt_risk": {
        "trigger": "temp_and_daylength",
        "threshold_c": 24
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "none",
      "cultivar_groups": [
        {
          "id": "looseleaf",
          "common": "leaf lettuce",
          "habit": "rosette",
          "mature_height_cm": [
            20,
            25
          ],
          "mature_spread_cm": [
            20,
            25
          ],
          "spacing_in_row_cm": 20,
          "days_to_maturity": [
            40,
            50
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "Open, non-heading rosette, cut leaf-by-leaf or as a whole young plant - the fastest lettuce and the smallest footprint, and the one that takes close spacing and cut-and-come-again."
        },
        {
          "id": "butterhead",
          "common": "butterhead (Bibb / Boston)",
          "habit": "rosette",
          "mature_height_cm": [
            20,
            25
          ],
          "mature_spread_cm": [
            25,
            30
          ],
          "spacing_in_row_cm": 25,
          "days_to_maturity": [
            50,
            60
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "Forms a loose, soft head - midway between the leaf types and the tight heading types in both time and room."
        },
        {
          "id": "romaine",
          "common": "romaine (cos)",
          "habit": "rosette",
          "mature_height_cm": [
            25,
            35
          ],
          "mature_spread_cm": [
            20,
            25
          ],
          "spacing_in_row_cm": 25,
          "days_to_maturity": [
            60,
            75
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "Upright, elongated head - taller and slower than the leaf types, and an upright footprint rather than a wide one."
        },
        {
          "id": "crisphead",
          "common": "crisphead (iceberg)",
          "habit": "rosette",
          "mature_height_cm": [
            25,
            30
          ],
          "mature_spread_cm": [
            30,
            35
          ],
          "spacing_in_row_cm": 30,
          "days_to_maturity": [
            70,
            85
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "Tight, dense head - the largest footprint and the longest cool window of the four; the hardest in a warm-summer home garden, where it needs a long cool spell to head before summer heat drives it to bolt (the species heat/daylength bolt_risk)."
        }
      ],
      "confidence": {
        "estimated": [
          "succession_interval_days",
          "ph_range",
          "cultivar_groups.looseleaf.mature_height_cm",
          "cultivar_groups.looseleaf.mature_spread_cm",
          "cultivar_groups.looseleaf.days_to_maturity",
          "cultivar_groups.butterhead.mature_height_cm",
          "cultivar_groups.butterhead.mature_spread_cm",
          "cultivar_groups.butterhead.days_to_maturity",
          "cultivar_groups.romaine.mature_height_cm",
          "cultivar_groups.romaine.mature_spread_cm",
          "cultivar_groups.romaine.days_to_maturity",
          "cultivar_groups.crisphead.mature_height_cm",
          "cultivar_groups.crisphead.mature_spread_cm",
          "cultivar_groups.crisphead.days_to_maturity"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Lettuce, Head / Leaf' -> 0.25' = 0.6 cm. Both lettuce rows give the same depth. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "bolt_risk.threshold_c": [
            "UMN Extension, 'Growing lettuce, endive and radicchio in home gardens', extension.umn.edu/vegetables/growing-lettuce-endive-and-radicchio (fetched and read in-container 2026-07-26): 'Multiple days of high temperatures (greater than 75 F) can cause lettuce plants to flower.' 75 F IS 23.9 C AND THE CORPUS STORES 24 - the field is Celsius and the source is Fahrenheit, so the stored value is that sentence rounded to the nearest degree, not an independent figure. BOTH HALVES OF THE TRIGGER ARE SUPPORTED: this rule's trigger is `temp_and_daylength`, and UMN's cool-season page (extension.umn.edu/planting-and-growing-guides/non-pest-issues-cool-season-crops, read the same day) adds 'high heat and longer days will speed up flowering' - it states no temperature, which is why it is not the citation here. Note the source says MULTIPLE DAYS above the threshold, not one; the engine does not model duration. [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Lettuce - leaf, iceberg' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. Both of this species' cultivar groups fall under the one row. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "eruca_sativa",
      "common": [
        "arugula",
        "rocket",
        "roquette"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Eruca_sativa_1_IP0206101.jpg",
        "artist": "Leo Michels",
        "licence": "Public domain",
        "alt": "Arugula plants growing as leafy salad greens"
      },
      "family": "brassicaceae",
      "category": "salad_green",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "rosette",
      "mature_height_cm": [
        20,
        30
      ],
      "mature_spread_cm": [
        20,
        25
      ],
      "spacing_in_row_cm": 23,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        45,
        60
      ],
      "succession_interval_days": [
        10,
        14
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "note": "Arugula / rocket — added 2026-07-25, the first genuinely NEW species of the expansion arc rather than a cultivar group of one already here. Eruca sativa is its own genus, not a Brassica, so it could not be modelled as a group of anything: what it shares with the cole crops is the FAMILY, and that is what matters here, because R-012's four-year interval and the clubroot pressure behind it are family-level. A fast salad green is not a rotation loophole any more than radish is.\nNO BOLT RISK FIELD, deliberately. Arugula bolts hard in heat and every gardener knows it, but lettuce's `bolt_risk.threshold_c` is itself flagged as estimated, and adding a second guessed threshold by analogy to the first would be fabrication compounding fabrication (D-004's rule about GDD, applied to a different number). Its absence is the honest state until a source gives a figure.\n",
      "confidence": {
        "estimated": [
          "mature_height_cm",
          "mature_spread_cm",
          "succession_interval_days",
          "light_min",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "light_min": [
            "NO SOURCE READ STATES ARUGULA'S LIGHT REQUIREMENT. Clemson's factsheet (read 2026-07-25) gives the binomial, spacing and days and says nothing about sun or shade. `part_sun` is the corpus's own call, matched to lettuce, and it is flagged BECAUSE IT IS LOAD-BEARING: it is the reason a part-shade bed now has an eligible brassica_aromatic primary where every other brassica in the corpus is full_sun and R-005 blocks them all. An unsourced categorical that changes what a guild offers should be visible on the Why page, not silent. [read]"
          ],
          "days_to_maturity": [
            "Clemson HGIC, 'Arugula, Kale, Mesclun, Mustard, and Swiss Chard', hgic.clemson.edu/factsheet/arugula-kale-mesclun-mustard-and-swiss-chard (read 2026-07-25): arugula is 'Eruca sativa' and 'can be harvested once it reaches maturity about 45 to 60 days after sowing'. Taken as stated, so this field is NOT flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "Clemson HGIC, same factsheet (read 2026-07-25): plants are thinned 'to 9 inches apart', in rows '18 to 36 inches apart'. 23 cm is 9 inches. Stated, so not flagged. [read]"
          ],
          "mature_height_cm": [
            "NO SOURCE READ STATES AN ARUGULA'S HEIGHT OR SPREAD - Clemson gives the botanical name, spacing and days and no plant size at all. 20-30 cm and 20-25 cm are the corpus's own figures for a leaf rosette grown at 9-inch spacing, and both are flagged for that reason. This is the pattern the 2026-07-25 spread pass established rather than a gap in this particular read: extension publishes spacing and days, rarely a plant's dimensions. [read]"
          ],
          "mature_spread_cm": [
            "See the height citation: unstated by the one source read, inferred from its 9-inch thinning distance, flagged. The spacing is what the plant is GIVEN, not what it fills. [read]"
          ],
          "succession_interval_days": [
            "NO SOURCE READ STATES A SUCCESSION INTERVAL for arugula. 10-14 days is lettuce's figure, which is itself flagged estimated in this corpus - so this is an estimate carried from an estimate, and it is flagged rather than quietly inherited. A cut-and-come-again green re-sown on a guess is a calendar recommendation nobody sourced. [read]"
          ]
        }
      }
    },
    {
      "id": "brassica_juncea",
      "common": [
        "mustard greens",
        "mustard"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Brassica_juncea_flower_15.jpg",
        "artist": "Krish Dulal",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A leafy mustard plant"
      },
      "family": "brassicaceae",
      "category": "salad_green",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "rosette",
      "mature_height_cm": [
        30,
        45
      ],
      "mature_spread_cm": [
        25,
        35
      ],
      "spacing_in_row_cm": 25,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        25,
        50
      ],
      "succession_interval_days": [
        10,
        14
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "note": "Mustard greens — added 2026-07-25. Brassica juncea: a Brassica, but NOT B. oleracea, B. rapa or B. napus, so it is its own species here rather than a group of the cabbage, the turnip or the rutabaga. That distinction is worth stating because this corpus now models four Brassica species and the temptation to file a fifth green under whichever is nearest is exactly how a rotation model rots. All four share the family, which is what R-012 gates on.\nTHE FASTEST BRASSICA IN THE CORPUS at 25 days on Clemson's low end, which makes it a genuine catch crop — and, like radish, not a rotation loophole: it counts toward the brassica interval in full.\n",
      "confidence": {
        "estimated": [
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "succession_interval_days",
          "light_min",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "light_min": [
            "NO SOURCE READ STATES MUSTARD'S LIGHT REQUIREMENT either - same factsheet, same silence. `part_sun` is the corpus's own call, flagged for the same reason as arugula's: it decides whether this species is offered in a part-shade bed. [read]"
          ],
          "days_to_maturity": [
            "Clemson HGIC, 'Arugula, Kale, Mesclun, Mustard, and Swiss Chard', hgic.clemson.edu/factsheet/arugula-kale-mesclun-mustard-and-swiss-chard (read 2026-07-25): mustard is 'Brassica juncea' and the crops 'reach maturity between 25 to 50 days from sowing, depending on the cultivar'. Taken as stated, so not flagged - and the 2:1 spread across that band is the cultivar variation Clemson names, not uncertainty about the species. [read]"
          ],
          "mature_height_cm": [
            "Clemson HGIC, same factsheet (read 2026-07-25), gives ONE height and it is cultivar-specific: 'Red Giant' grows 'up to 18 inches tall'. 30-45 cm brackets that 45.7 cm at the top while allowing the smaller cultivars the same sentence implies, so the figure is DERIVED from a single named cultivar rather than stated for the species - flagged, per D-146's rule about a number the publication does not state. [read]"
          ],
          "spacing_in_row_cm": [
            "NO SOURCE READ STATES AN IN-ROW SPACING FOR MUSTARD. Clemson gives the row spacing ('18 to 36 inches apart') and, unlike its arugula paragraph on the same page, no thinning distance. 25 cm is the corpus's own figure and is flagged - a spacing that feeds the placement fill should not be silently borrowed from the arugula two paragraphs up. [read]"
          ],
          "mature_spread_cm": [
            "Unstated by the one source read; 25-35 cm is the corpus's own figure for a leaf rosette of this height. Flagged, same as the spacing. [read]"
          ],
          "succession_interval_days": [
            "NO SOURCE READ STATES A SUCCESSION INTERVAL. 10-14 days is lettuce's flagged estimate, carried; flagged here for the same reason it is flagged there. [read]"
          ]
        }
      }
    },
    {
      "id": "cichorium_endivia",
      "common": [
        "endive",
        "escarole",
        "frisee"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cichorium_endivia_field.jpg",
        "artist": "Montréalais",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "Rows of curly endive growing"
      },
      "family": "asteraceae",
      "category": "salad_green",
      "sowing_depth_cm": 1.3,
      "lifespan": "annual",
      "habit": "rosette",
      "mature_height_cm": [
        25,
        35
      ],
      "mature_spread_cm": [
        25,
        30
      ],
      "spacing_in_row_cm": 25,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        55,
        70
      ],
      "succession_interval_days": [
        10,
        14
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "none",
      "note": "Endive and escarole — added 2026-07-25. Two forms of one plant: curly endive (frisee) and the broad-leaved form UMN calls escarole. Asteraceae, like lettuce, so it breaks the big-three rotation the same way and shares lettuce's cool-season habits.\nBLANCHING IS PART OF THE CROP, not an optional flourish, and it is why the days-to-maturity here is a derivation rather than a quotation: UMN gives no DTM at all, but it does give the blanching timeline - tie the outer leaves about a month after transplanting or six weeks after direct seeding, and blanching takes about two weeks. Six plus two is eight weeks from seed, which is where 55-70 days comes from. The arithmetic is in confidence.sources; the field is flagged because a number assembled from two sentences is not a number the publication states.\nNO SEPARATE CULTIVAR GROUPS for curly vs broad-leaf, deliberately: UMN describes them as forms and gives ONE set of spacings covering both. A group asserting different geometry would be inventing a difference the source does not make.\n",
      "confidence": {
        "estimated": [
          "days_to_maturity",
          "mature_height_cm",
          "mature_spread_cm",
          "light_min",
          "frost_tolerance",
          "succession_interval_days",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Endive & Escarole' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Endive - escarole' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. BOTH OF THIS SPECIES' NAMES ARE IN THE ROW, which is unusual - the corpus models endive and escarole as one species precisely because UMN describes them as forms of one plant, and UMD's row is headed the same way. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ],
          "spacing_in_row_cm": [
            "UMN Extension, 'Growing lettuce, endive and radicchio in home gardens', extension.umn.edu/vegetables/growing-lettuce-endive-and-radicchio (read 2026-07-25): endive is spaced '8 inches' for self-blanching, '10 to 12 inches' for full growth, and '5 inches' for picking at baby-leaf size. 25 cm is 10 inches - the full-growth figure, chosen because the corpus plans a plant grown to size rather than a baby-leaf cut. STATED, so not flagged. [read]"
          ],
          "days_to_maturity": [
            "NO SOURCE READ STATES AN ENDIVE DTM. UMN (read 2026-07-25) gives the blanching timeline instead: 'About a month after transplanting, or six weeks after direct seeding, carefully tie the outer leaves up around the heart of the plant', and 'Blanching takes about two weeks.' Six weeks plus two is eight weeks - 56 days - from direct seeding, and 55-70 brackets that with room for the slower broad-leaf form. DERIVED FROM TWO SENTENCES, not quoted from one, so it is flagged (D-146). [read]"
          ],
          "light_min": [
            "UMN (read 2026-07-25) states the temperature preference - 'Both lettuce and the chicories do best in cool weather. Ideal conditions are a nighttime low temperature of 50F, and up to a 68F daytime high' - and says nothing about sun or shade. `part_sun` is matched to lettuce and flagged, the same call as arugula's, and for the same reason: an unsourced light minimum decides whether a species is offered in a shaded bed. [read]"
          ],
          "frost_tolerance": [
            "Unstated by the source read. `half_hardy` is lettuce's value, carried across within the family; UMN's cool-weather sentence is consistent with it but is a temperature PREFERENCE, not a frost tolerance. Flagged - this field feeds the sow-window rules (R-031, R-096), so a carried guess should be visible. [read]"
          ],
          "mature_height_cm": [
            "NO PLANT SIZE OF ANY KIND on the page read - UMN says so by omission and the search results that led there had none either. 25-35 cm and 25-30 cm are the corpus's own figures for a rosette grown at 10-inch spacing, slightly larger than lettuce's because escarole is the broader plant. Flagged, both. [read]"
          ],
          "mature_spread_cm": [
            "See the height citation: unstated, inferred from the spacing, flagged. [read]"
          ],
          "succession_interval_days": [
            "Unstated. 10-14 days is lettuce's interval, itself flagged estimated in this corpus - an estimate carried from an estimate, flagged again rather than inherited quietly. [read]"
          ]
        }
      }
    },
    {
      "id": "glycine_max",
      "common": [
        "edamame",
        "vegetable soybean",
        "soybean"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Soya_beans_plants.jpg",
        "artist": "Ibnjabal",
        "licence": "CC BY 4.0",
        "licence_url": "https://creativecommons.org/licenses/by/4.0",
        "alt": "Soybean plants growing in a field",
        "caption": "Edamame is soybean harvested young."
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        60,
        90
      ],
      "mature_spread_cm": [
        30,
        40
      ],
      "spacing_in_row_cm": 8,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        80,
        100
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "note": "Edamame — vegetable soybean, added 2026-07-25. A bush legume that needs NO support, which is what separates it from every other fixer in this corpus: the corn-guild fixer role wants a vine that climbs (predicate: habit vine, support.requires strong), and edamame satisfies none of that. It is a fixer for a bed, not for a trellis.\nNO rhizobia_group, for the same reason lima bean has none and a sharper one. UMN says only \"Inoculation with Rhizobium may help plant growth and yield\" - the generic word, not a group. A soybean's actual symbiont is not the bean-and-pea Rhizobium this corpus already names, so writing that value would be WRONG rather than merely unsourced, and writing the right one would be unsourced. Both are worse than leaving it out.\nTHE HARVEST WINDOW IS THE HARD PART and no field models it: edamame is picked immature, while the pods are plump and still bright green, and Iowa State records that the window is only a few days. days_to_maturity plans the sow date; it does not warn you that the harvest is a week, not a month.\n",
      "confidence": {
        "estimated": [
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Bean, Soy' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "days_to_maturity": [
            "Iowa State University Extension, 'All About Beans' (Yard and Garden), yardandgarden.extension.iastate.edu/how-to/all-about-beans (read 2026-07-25): for edamame, '(Days to harvest 80-100)'. Taken as stated, so NOT flagged. UMN's bean page (read the same day) gives no days for edamame at all - two land-grant sources, one number between them. [read]"
          ],
          "mature_height_cm": [
            "Iowa State (read 2026-07-25): 'Plants are approximately 3 feet tall and do not require support.' UMN says the same in its own words - 'Plants are tall, up to three feet, but sturdy and upright, requiring no support' - so the no-support call has TWO read sources and is not flagged. The 60-90 cm range is flagged: both sources give a single ceiling (3 ft = 91 cm), not a range, and a plant is not always at its ceiling. [read]"
          ],
          "mature_spread_cm": [
            "No source read states a soybean's width. 30-40 cm is the corpus's own figure for an upright bush legume of this height. Flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "NO EDAMAME-SPECIFIC SPACING IN EITHER SOURCE. Iowa State gives a general bean figure - 'seedlings should be thinned to their appropriate spacing of 2 to 3 inches apart for best yield' - and its own page says that applies to beans broadly, not to edamame in particular. 8 cm is 3 inches, the top of a range borrowed from a different crop, so it is flagged rather than presented as edamame's. [read]"
          ]
        }
      }
    },
    {
      "id": "allium_cepa",
      "common": [
        "onion"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Onion_on_White.JPG",
        "artist": "Colin",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A single brown onion bulb"
      },
      "family": "amaryllidaceae",
      "category": "allium",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "biennial",
      "habit": "bulb",
      "mature_height_cm": [
        45,
        45
      ],
      "mature_spread_cm": [
        15,
        15
      ],
      "spacing_in_row_cm": 12,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        90,
        120
      ],
      "photoperiod": {
        "type": "daylength_sensitive",
        "groups": [
          "short_day",
          "intermediate",
          "long_day"
        ]
      },
      "volatile_aromatic": true,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "gates": [
        "R-081"
      ],
      "cultivar_groups": [
        {
          "id": "bulb_onion",
          "common": "onion",
          "habit": "bulb",
          "mature_height_cm": [
            45,
            45
          ],
          "mature_spread_cm": [
            15,
            15
          ],
          "spacing_in_row_cm": 12,
          "days_to_maturity": [
            90,
            120
          ],
          "note": "The species' own envelope - the unqualified default, repeating its numbers with zero new assertion."
        },
        {
          "id": "shallot",
          "common": "shallot",
          "habit": "bulb",
          "mature_height_cm": [
            45,
            45
          ],
          "mature_spread_cm": [
            15,
            15
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            90,
            120
          ],
          "note": "The shallot — same species as the onion (Allium cepa), added 2026-07-25 — so it inherits the allium rotation break (R-013) and the daylength gate (R-081) correctly rather than needing either re-stated.\nWhat genuinely differs is the HARVEST, not the plant: USU records that wide spacing \"results in bulb clusters\" of 10-15 bulbs where high-density planting gives one bulb per set. The corpus has no field for multiplier yield, so that difference is prose here rather than a fabricated number.\nIts spacing is sourced (USU's 3-6 in for sets, taken at the top since a cluster wants the room). Height, spread and days-to-maturity are the ONION's numbers, flagged: USU gives green-top harvest at 50-60 days and says dry-bulb maturity \"will vary depending on the variety\", so no source read states a shallot's own maturity. See confidence.sources.\n"
        }
      ],
      "confidence": {
        "estimated": [
          "cultivar_groups.shallot.days_to_maturity",
          "cultivar_groups.shallot.mature_height_cm",
          "cultivar_groups.shallot.mature_spread_cm",
          "ph_range",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Onions - green, bulb, scallions' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. The row names bulb onions explicitly. allium_fistulosum, the bunching onion, rests on the same row and carries the same floor. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.shallot.spacing_in_row_cm": [
            "USU Extension, 'How to Grow Shallots in Your Garden', extension.usu.edu/yardandgarden/research/shallots-in-the-garden (read 2026-07-25): bulb sets go '3-6 inches apart in rows 12-18 inches apart' at '1-2 inches deep'; from seed, '1/2 inch to 3/4 inch apart in rows 1-2 feet apart', thinned to '2-4 inches apart in rows'. 15 cm is the TOP of the 3-6 in set spacing, chosen because USU also states that wide spacing is what produces the bulb cluster a shallot is grown for - the tighter figure would plan for single bulbs. [read]"
          ],
          "cultivar_groups.shallot.days_to_maturity": [
            "NO SOURCE READ STATES A SHALLOT'S DRY-BULB MATURITY. USU (read 2026-07-25) gives the GREEN harvest - tops usable 'roughly 50-60 days after planting' - and says of the bulbs only that 'Maturity date will vary depending on the variety'. So 90-120 days is the ONION's figure carried across within the species, an internal analogy, and flagged as one. It is also why the group exists with a flag rather than a confident number: an unflagged inherited DTM would have quietly scheduled shallot harvests off onion data. [read]"
          ],
          "cultivar_groups.shallot.mature_height_cm": [
            "No source read states a shallot's height or spread; both are the onion's numbers, carried across within the species and flagged. USU describes the plant only through its harvest ('tops 6-8 inches tall' when thinning) and its yield. [read]"
          ],
          "cultivar_groups.shallot.mature_spread_cm": [
            "See the height citation: the onion's 15 cm, carried across and flagged. USU's set spacing of 3-6 in (7.6-15 cm) brackets it, which is corroboration of the packing figure rather than of the plant's width - the distinction the whole 2026-07-25 spread pass turned on. [read]"
          ]
        }
      }
    },
    {
      "id": "allium_sativum",
      "common": [
        "garlic"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Garlic_bulbs_and_cloves.jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A garlic bulb with a few cloves separated"
      },
      "family": "amaryllidaceae",
      "category": "allium",
      "lifespan": "perennial",
      "habit": "bulb",
      "mature_height_cm": [
        60,
        60
      ],
      "mature_spread_cm": [
        15,
        15
      ],
      "spacing_in_row_cm": 15,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "hardiness_zone": [
        3,
        8
      ],
      "planting_window": "fall",
      "sow_season": "fall",
      "vernalization_required": true,
      "volatile_aromatic": true,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "cultivar_groups": [
        {
          "id": "hardneck",
          "common": "hardneck (var. ophioscorodon)",
          "habit": "bulb",
          "mature_height_cm": [
            60,
            75
          ],
          "mature_spread_cm": [
            15,
            20
          ],
          "spacing_in_row_cm": 15,
          "ground_coverage": "low",
          "note": "Sends up a central woody flower stalk (the scape), cut in early summer to drive size into the bulb. Fewer but larger cloves, stronger flavour, and the more cold-hardy of the two; stores less long (~4-6 months). Fall-planted; about 240 days in ground. No days_to_maturity - the species is scheduling_model perennial."
        },
        {
          "id": "softneck",
          "common": "softneck (var. sativum)",
          "habit": "bulb",
          "mature_height_cm": [
            50,
            60
          ],
          "mature_spread_cm": [
            15,
            20
          ],
          "spacing_in_row_cm": 13,
          "ground_coverage": "low",
          "note": "No scape - the neck stays soft, so these are the braidable types. More, smaller cloves, higher count, and better suited to milder climates; stores the longest of any garlic (~6-9+ months). Fall-planted; about 250 days in ground. No days_to_maturity - the species is scheduling_model perennial."
        }
      ],
      "note": "Occupies ground through winter. Core of restorative_break.",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "cultivar_groups.hardneck.mature_height_cm",
          "cultivar_groups.hardneck.mature_spread_cm",
          "cultivar_groups.softneck.mature_height_cm",
          "cultivar_groups.softneck.mature_spread_cm"
        ],
        "sources": {
          "hardiness_zone": [
            "NO ZONE SOURCE FOUND. Illinois Hort Answers has no garlic entry, and UMN Extension, 'Growing garlic', extension.umn.edu/vegetables/growing-garlic (read 2026-07-26), states no USDA zone and - notably - no vernalization requirement either, though a cold requirement is the usual reason given for garlic's warm limit. [3, 8] is the corpus's own at both ends. [read]",
            "WHAT UMN DOES GIVE IS THE CULTIVAR ANSWER AGAIN, in a different family and the opposite direction from peach: 'The mild climate of northern California grows most commercial garlic. These varieties of garlic will not grow well in Minnesota and will develop a hot flavor.' It separates hardneck types (Rocambole, Purple Stripe, Porcelain) from softneck (Artichoke, Silverskin). So garlic's usable climate range is a property of the TYPE, not of Allium sativum - the third independent corroboration in this pass, after peach's chill ceiling and raspberry's cultivar-rated floor, that this field is asking a species to answer a cultivar's question. See ISSUES #13. [read]"
          ]
        }
      }
    },
    {
      "id": "pisum_sativum",
      "common": [
        "pea"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Doperwt_rijserwt_peulen_Pisum_sativum.jpg",
        "artist": "Rasbak",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "A pea plant with green pods on the vine"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "ph_range": [
        6.0,
        7.0
      ],
      "rhizobia_group": "rhizobium_leguminosarum",
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "casts_shade": false,
      "pollinator_value": "low",
      "cultivar_groups": [
        {
          "id": "bush",
          "common": "bush pea",
          "habit": "bush",
          "mature_height_cm": [
            45,
            75
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 5,
          "days_to_maturity": [
            55,
            65
          ],
          "support": {
            "provides": "none",
            "requires": "weak"
          },
          "ground_coverage": "low"
        },
        {
          "id": "climbing",
          "common": "climbing pea",
          "habit": "vine",
          "mature_height_cm": [
            150,
            200
          ],
          "mature_spread_cm": [
            20,
            20
          ],
          "spacing_in_row_cm": 8,
          "days_to_maturity": [
            60,
            70
          ],
          "support": {
            "provides": "none",
            "requires": "strong"
          },
          "ground_coverage": "low"
        }
      ],
      "note": "Cool-season. Sow at or before last frost; fails in summer heat.",
      "confidence": {
        "estimated": [
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Pea' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Peas' gives target pH 6.5, and 'Target lime when pH falls below' gives 6.0. This species had NO ph_range at all before today. 6.0 is the floor, taken as the pH at which this crop's extension service says to intervene. THE CEILING IS THE WEAKER HALF: no source read gives a per-crop maximum for a vegetable, so 7.0 comes from UF/IFAS HS1207's blanket statement that 'A pH-range from 5.5 to 7.0 is suitable for most vegetable crops' - a band for vegetables collectively, not for this species. Stated by a source but not about this crop, so the field is FLAGGED. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "vicia_faba",
      "common": [
        "fava bean",
        "broad bean"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Vicia_faba_kz01.jpg",
        "artist": "Krzysztof Ziarnek, Kenraiz",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A fava bean plant in flower"
      },
      "family": "fabaceae",
      "category": "bean_or_pea",
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        90,
        150
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 20,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        80,
        100
      ],
      "n_fixed_kg_ha_season": [
        70,
        150
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "moderate",
      "cultivar_groups": [
        {
          "id": "tall",
          "common": "tall fava",
          "habit": "bush",
          "mature_height_cm": [
            100,
            150
          ],
          "mature_spread_cm": [
            30,
            45
          ],
          "spacing_in_row_cm": 20,
          "days_to_maturity": [
            80,
            100
          ],
          "support": {
            "provides": "none",
            "requires": "weak"
          },
          "ground_coverage": "moderate",
          "note": "Standard tall favas (Aquadulce, Windsor, Masterpiece) lodge once podded; a light stake-and-string round the row keeps them upright."
        },
        {
          "id": "dwarf",
          "common": "dwarf fava",
          "habit": "bush",
          "mature_height_cm": [
            30,
            45
          ],
          "mature_spread_cm": [
            25,
            30
          ],
          "spacing_in_row_cm": 20,
          "days_to_maturity": [
            75,
            95
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "moderate",
          "note": "Compact self-supporting type (The Sutton, Robin Hood) for small or windy beds."
        }
      ],
      "confidence": {
        "estimated": [
          "n_fixed_kg_ha_season"
        ]
      }
    },
    {
      "id": "coriandrum_sativum",
      "common": [
        "cilantro",
        "coriander"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:A_scene_of_Coriander_leaves.JPG",
        "artist": "Thamizhpparithi Maari",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Fresh green cilantro leaves",
        "caption": "The leaf is cilantro; the seed is coriander."
      },
      "family": "apiaceae",
      "category": "herb",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "rosette",
      "mature_height_cm": [
        50,
        50
      ],
      "mature_spread_cm": [
        20,
        20
      ],
      "spacing_in_row_cm": 15,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        45,
        70
      ],
      "succession_interval_days": [
        14,
        21
      ],
      "bolt_risk": {
        "trigger": "heat",
        "threshold_c": 24,
        "severity": "high"
      },
      "volatile_aromatic": true,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_summer",
        "midsummer"
      ],
      "note": "Umbels feed parasitoid wasps once bolted. Succession sow (R-034).",
      "confidence": {
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "bloom_window": [
            "University of Wisconsin Horticulture, 'Cilantro / Coriander, Coriandrum sativum', hort.extension.wisc.edu/articles/cilantro-coriander-coriandrum-sativum (read 2026-08-01) and UMD Extension, 'Cilantro/Coriander' (read 2026-08-01): cilantro is a cool-season crop that BOLTS - flowers and sets seed - when temperatures rise, 'quick to flower and set seed' at 'the first sign of hot temperatures', and it 'tends to bolt as plants mature late in the season'. So the flowering event is triggered by summer heat rather than by a calendar date, on a crop whose DTM here is 45-70 days. NEITHER SOURCE NAMES MONTHS; early summer to midsummer is this corpus's reading of 'when it turns hot', which is why it is flagged. Succession sowings (both sources recommend them) extend it in practice. [read]"
          ],
          "bolt_risk.threshold_c": [
            "SEARCHED 2026-07-26, AND NO SOURCE READ GIVES A NUMBER. Two pages were fetched and read and both describe bolting only qualitatively: Wisconsin Horticulture, 'Cilantro / Coriander, Coriandrum sativum', hort.extension.wisc.edu/articles/cilantro-coriander-coriandrum-sativum/ - 'Cilantro is a cool season crop that tends to bolt (go to seed) in hot weather but will not survive a hard freeze' - and UMD Extension, 'Cilantro/Coriander', extension.umd.edu/resource/cilantrocoriander - 'Plants will bolt (flower and go to seed) in hot, humid weather'. NEITHER STATES A TEMPERATURE. AND THE 24 HERE IS THE SAME 24 CARRIED BY lactuca_sativa, whose figure IS sourced (UMN, 75 F). Two species sharing an identical threshold where only one of them has evidence is what a borrowed number looks like, so this one is recorded as unsourced rather than treated as corroborated. It stays flagged. [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ]
        },
        "estimated": [
          "bloom_window",
          "bolt_risk.threshold_c",
          "succession_interval_days",
          "sowing_depth_cm"
        ]
      }
    },
    {
      "id": "ocimum_basilicum",
      "common": [
        "basil"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Ocimum_basilicum_CG_NBG_LR.jpg",
        "artist": "PumpkinSky",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A sweet basil plant with broad green leaves"
      },
      "family": "lamiaceae",
      "category": "herb",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        45,
        70
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "start_indoors_weeks": 6,
      "scheduling_model": "dtm",
      "days_to_maturity": [
        60,
        75
      ],
      "volatile_aromatic": true,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "note": "Does nothing for the tomato (R-060).",
      "confidence": {
        "estimated": [
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ]
        }
      }
    },
    {
      "id": "anethum_graveolens",
      "common": [
        "dill"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Aneth_FR_2012.jpg",
        "artist": "JLPC",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A dill flower head with its yellow umbels"
      },
      "family": "apiaceae",
      "category": "herb",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        90,
        150
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 25,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        60,
        90
      ],
      "volatile_aromatic": true,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "midsummer",
        "late_summer"
      ],
      "confidence": {
        "estimated": [
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ]
        }
      }
    },
    {
      "id": "amaranthus_cruentus",
      "common": [
        "amaranth"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Amaranthus_cruentus_1DS-II_1-7478.jpg",
        "artist": "SAplants",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "An amaranth plant with a deep-red flower plume"
      },
      "family": "amaranthaceae",
      "category": "salad_green",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        120,
        200
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        110
      ],
      "support": {
        "provides": "weak",
        "provides_load_vines": 1,
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "note": "Candidate fourth sister. Self-seeds aggressively.",
      "confidence": {
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "support.provides_load_vines": [
            "NOT PUBLISHED, AND THE CORPUS ALREADY DECIDED THAT - recorded here 2026-07-26 because the judgement lived on the rule and this field, where the number actually lives, said only 'estimated'. R-041's note (maintainer, 2026-07-25): 'no extension service publishes it and none will, so waiting for a citation meant waiting forever'. No search will resolve this one. TWO THINGS MEASURED 2026-07-26 THAT WERE NOT RECORDED ANYWHERE. First, R-041 IS NOT IMPLEMENTED: it is absent from dispatch.py's IMPLEMENTED set, so the rule never fires and this number gates nothing today - the only code that reads the field is the USER-species validator. Second, THE CORPUS'S OWN GUILDS NEVER REACH THE CAPACITY: three_sisters and four_sisters plant 5 support and 4 fixer per m2 and milpa 8 and 6, which is 0.75 to 0.80 vines per stalk against a claimed capacity of 1. Even implemented, the canonical plantings would not approach it. R-041's effect_size names sunflower and corn and says NOTHING about amaranth, so this 1 is unsupported even by the rule's own prose. [read]"
          ]
        },
        "estimated": [
          "support.provides_load_vines",
          "sowing_depth_cm"
        ]
      }
    },
    {
      "id": "helianthus_annuus",
      "common": [
        "sunflower"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Sunflower_l.jpg",
        "artist": "Roberta F.",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Sunflowers in bloom against the sky"
      },
      "family": "asteraceae",
      "category": "flower",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        150,
        350
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        100
      ],
      "support": {
        "provides": "weak",
        "provides_load_vines": 2,
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "midsummer",
        "late_summer"
      ],
      "allelopathy": {
        "targets": "small_seeded_direct_sown",
        "grade": "B",
        "rule": "R-021"
      },
      "cultivar_groups": [
        {
          "id": "giant",
          "common": "giant single-stem sunflower",
          "habit": "stalk",
          "mature_height_cm": [
            200,
            350
          ],
          "mature_spread_cm": [
            45,
            60
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            80,
            110
          ],
          "support": {
            "provides": "weak",
            "provides_load_vines": 2,
            "requires": "weak"
          },
          "ground_coverage": "low",
          "note": "Tall single-stem types (Mammoth, Titan, American Giant) - the trellis-capable role in a sisters guild (R-041); the heavy head lodges in wind, so a light stake helps."
        },
        {
          "id": "dwarf",
          "common": "dwarf or branching sunflower",
          "habit": "stalk",
          "mature_height_cm": [
            40,
            120
          ],
          "mature_spread_cm": [
            30,
            45
          ],
          "spacing_in_row_cm": 40,
          "days_to_maturity": [
            60,
            90
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "low",
          "note": "Dwarf/branching types (Teddy Bear, Music Box, Sunspot) are too short to trellis a bean - grown for bloom and pollinators, not as a support."
        }
      ],
      "confidence": {
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Minnesota Extension, 'Sunflowers', extension.umn.edu/flowers/sunflowers (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Plant seeds one inch deep.' = 2.5 cm. A per-crop published figure, so unflagged. [read]"
          ],
          "support.provides_load_vines": [
            "NOT PUBLISHED, AND THE CORPUS ALREADY DECIDED THAT - recorded here 2026-07-26 because the judgement lived on the rule and this field, where the number actually lives, said only 'estimated'. R-041's note (maintainer, 2026-07-25): 'no extension service publishes it and none will, so waiting for a citation meant waiting forever'. No search will resolve this one. TWO THINGS MEASURED 2026-07-26 THAT WERE NOT RECORDED ANYWHERE. First, R-041 IS NOT IMPLEMENTED: it is absent from dispatch.py's IMPLEMENTED set, so the rule never fires and this number gates nothing today - the only code that reads the field is the USER-species validator. Second, THE CORPUS'S OWN GUILDS NEVER REACH THE CAPACITY: three_sisters and four_sisters plant 5 support and 4 fixer per m2 and milpa 8 and 6, which is 0.75 to 0.80 vines per stalk against a claimed capacity of 2. Even implemented, the canonical plantings would not approach it. R-041's effect_size agrees here - 'Sunflower approx 2 vines/stalk'. [read]"
          ]
        },
        "estimated": [
          "support.provides_load_vines"
        ]
      }
    },
    {
      "id": "cleome_serrulata",
      "common": [
        "Rocky Mountain bee plant"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cleome_serrulata_(5006627540).jpg",
        "artist": "Matt Lavin from Bozeman, Montana, USA",
        "licence": "CC BY-SA 2.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/2.0",
        "alt": "The spidery pink flower of Rocky Mountain bee plant"
      },
      "family": "cleomaceae",
      "category": "flower",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        60,
        150
      ],
      "mature_spread_cm": [
        40,
        40
      ],
      "spacing_in_row_cm": 40,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        80,
        100
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "midsummer",
        "late_summer"
      ],
      "provenance_note": "Cited as the fourth sister in some Haudenosaunee and Plains accounts. Native to western North America. Verify the attribution against ethnobotanical sources before repeating it.\n",
      "confidence": {
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "days_to_maturity": [
            "SEARCHED 2026-07-26, AND NO DTM IS PUBLISHED. Utah State University Extension's range-plant page, 'Rocky Mountain Beeplant', extension.usu.edu/rangeplants/forbs-herbaceous/rocky-mountain-beeplant (fetched and read in-container 2026-07-26), gives a BLOOM PERIOD - 'It is in flower from July to August' - and no days-to-maturity of any kind. THAT IS THE EXPECTED SHAPE FOR THIS PLANT: it is a native forb documented as rangeland and pollinator habitat, not a crop, so the literature dates it by calendar month rather than by days from sowing. The bloom months are consistent with this corpus's [80, 100] but do not measure it. The value is the corpus's own and stays flagged. [read]"
          ]
        },
        "estimated": [
          "days_to_maturity",
          "sowing_depth_cm"
        ]
      }
    },
    {
      "id": "phacelia_tanacetifolia",
      "common": [
        "lacy phacelia"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Phacelia_tanacetifolia_(KPFC)_01.jpg",
        "artist": "KPFC",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "The coiled purple flower of lacy phacelia"
      },
      "family": "boraginaceae",
      "category": "cover_crop",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        50,
        90
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 20,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        45,
        60
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "very_high",
      "bloom_window": [
        "early_summer",
        "midsummer"
      ],
      "note": "Best-evidenced insectary annual in the corpus. Also a fast cover crop.",
      "confidence": {
        "estimated": [
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ]
        }
      }
    },
    {
      "id": "tagetes_patula",
      "common": [
        "French marigold"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:French_marigold_garden_2009_G1.jpg",
        "artist": "George Chernilevsky",
        "licence": "Public domain",
        "alt": "A French marigold flower"
      },
      "family": "asteraceae",
      "category": "flower",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        25,
        45
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 20,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        50,
        70
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "nematode_suppression": {
        "target": "meloidogyne_spp",
        "compound": "alpha_terthienyl",
        "requires": "solid_stand_full_season",
        "grade": "B"
      },
      "note": "In the corpus so the engine can refute the interplant claim (R-061).",
      "confidence": {
        "estimated": [
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ]
        }
      }
    },
    {
      "id": "borago_officinalis",
      "common": [
        "borage",
        "starflower"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:20160514Borago_officinalis1.jpg",
        "artist": "AnRo0002",
        "licence": "CC0 1.0",
        "alt": "Blue star-shaped borage flowers"
      },
      "family": "boraginaceae",
      "category": "herb",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "annual",
      "habit": "bush",
      "mature_height_cm": [
        60,
        90
      ],
      "mature_spread_cm": [
        30,
        40
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        50,
        70
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "note": "Borage — added 2026-08-12 (O67b(iii)). The other boraginaceae here are comfrey and phacelia; borage is the culinary one — UMD: blossoms and leaves give a \"cool, cucumber-like flavor\" to summer drinks. It readily reseeds (UMD) — recorded here as behaviour, NOT as spreads_unbidden, which this corpus applies to vegetative spread; no self-seeding annual carries that field. Difficult to transplant (UMD), so direct-sow; the taproot behind that is also why root_depth reads medium rather than shallow, and that inference is flagged. The borage-beside-strawberries claim from the 2026-08 triage stays OUT: no source read supports a mechanism beyond the insectary visitation claim the corpus already carries, and strawberry is in no guild for it to join anyway.\n",
      "confidence": {
        "estimated": [
          "sowing_depth_cm",
          "days_to_maturity",
          "root_depth",
          "feeder_class",
          "ground_coverage",
          "frost_tolerance"
        ],
        "sources": {
          "mature_height_cm": [
            "Univ. of Maryland Extension, 'Borage', extension.umd.edu/resource/borage (fetched and read in-container 2026-08-12): 'grows about 2-3 feet tall'. Illinois Extension, 'Borage', extension.illinois.edu/herbs/borage (fetched and read in-container 2026-08-12) agrees: 'growing to about 2 to 3 feet'. Two extension pages, one band - not flagged. NC State's toolbox gives '1 ft. 7 in. - 3 ft. 2 in.', which brackets it. [read]"
          ],
          "mature_spread_cm": [
            "NC State Extension Gardener Plant Toolbox, 'Borago officinalis', plants.ces.ncsu.edu/plants/borago-officinalis (fetched and read in-container 2026-08-12): 'Width: 1 ft. 0 in. - 1 ft. 4 in.' = 30-41 cm. A PUBLISHED spread - rare; the usual shape in this corpus is a published height and an estimated spread. Not flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "UMD Extension, 'Borage' (read 2026-08-12): '18\" between rows and 12\" between plants'. 12 in = 30 cm, taken as stated. [read]"
          ],
          "days_to_maturity": [
            "SEARCHED 2026-08-12, AND NO DTM IS PUBLISHED - the cleome shape again: an herb the literature dates by season, not by days from sowing. UMD and Illinois give no days figure (UMD: 'Pick blossoms as they open'); NC State gives bloom SEASONS ('Summer' and 'Fall'). [50, 70] to first bloom is the corpus's own figure and stays flagged. [read]"
          ],
          "bloom_window": [
            "NC State toolbox (read 2026-08-12): bloom 'Summer' and 'Fall'. This corpus's bloom vocabulary ends at late_summer (no fall token), so the span is recorded as [early_summer, late_summer] and the fall tail is TRUNCATED - the plant blooms later than this field can say, which understates rather than overstates its forage value. [read]"
          ],
          "pollinator_value": [
            "UMD Extension, 'Borage' (read 2026-08-12): 'Pollinators are attracted to the borage plant.' NC State (read 2026-08-12): 'bee friendly', attracts 'bees and other wildlife'. Qualitative statements from two sources support high. NOT very_high: that level is phacelia's, which the corpus calls its best-evidenced insectary annual; no borage trial was read. [read]"
          ],
          "light_min": [
            "UMD (read 2026-08-12): 'does best in dry, sunny places'; Illinois (read 2026-08-12): 'prefers a full sun location'. NC State allows partial shade; full_sun is the two-source preference and the conservative gate. [read]"
          ],
          "frost_tolerance": [
            "INFERRED: Illinois (read 2026-08-12) says 'directly sown in the garden after frost is past' - a sow-after-frost instruction, not a stated tolerance. Tender is the corpus's reading of it, flagged. [read]"
          ],
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP - it is the class rule for small-to-medium seeds applied to this species. Neither UMD's borage page nor Illinois's states a depth (both read 2026-08-12), and no per-crop extension figure was found. [read]"
          ],
          "root_depth": [
            "INFERRED, NOT PUBLISHED: UMD's 'difficult to transplant' is the taproot signature, so medium rather than shallow - flagged, because the inference is the corpus's. [read]"
          ],
          "feeder_class": [
            "Not stated by any source read; light is the corpus's own call for an unfed herb of 'dry, sunny places' (UMD), flagged. [read]"
          ],
          "ground_coverage": [
            "Not stated by any source read; moderate is the corpus's own call for a 60-90 cm branching herb, flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "tropaeolum_majus",
      "common": [
        "nasturtium"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:20141206Tropaeolum_majus1.jpg",
        "artist": "AnRo0002",
        "licence": "CC0 1.0",
        "alt": "Nasturtium plants with round leaves and orange flowers"
      },
      "family": "tropaeolaceae",
      "category": "herb",
      "lifespan": "annual",
      "habit": "vine",
      "mature_spread_cm": [
        30,
        90
      ],
      "spacing_in_row_cm": 25,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        55,
        70
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "late_summer"
      ],
      "note": "Nasturtium — added 2026-08-12 (O67b(iii)). NO CULTIVAR GROUPS, and the reason is the blackberry ruling: the read sources do not share a taxonomy. Illinois draws the line at the species - \"a trailing type (Tropaeolum majus) that can be trained to climb or allowed to spread on the ground and a bush type (Tropaeolum minus) that forms loose mounds\" - while NC State's toolbox folds \"both climbing and bushy forms\" into T. majus. Groups here would encode a taxonomy no two sources share, so this entry models the trailing species Illinois describes, habit vine. Edible: NC State, \"All parts, with exception of the roots\" - it is a culinary herb as much as a flower, which is the category call. TWO TRIAGE CLAIMS STAY OUT, deliberately: the cucumber-and-nasturtium TRAP-CROP claim has had no source read (and trap_crop is a role and a rule this corpus does not have - a three-step addition, species then role then rule); and volatile_aromatic is NOT set, though R-050's own cited Iowa trial names nasturtium among the aromatics that reduced cabbage-worm damage - setting it would put nasturtium in the masking role's predicate, and that is an evidence decision for a session that reads a source on the volatiles themselves.\n",
      "confidence": {
        "estimated": [
          "spacing_in_row_cm",
          "days_to_maturity",
          "root_depth",
          "feeder_class",
          "ground_coverage",
          "frost_tolerance"
        ],
        "sources": {
          "mature_spread_cm": [
            "NC State Extension Gardener Plant Toolbox, 'Tropaeolum majus', plants.ces.ncsu.edu/plants/tropaeolum-majus (fetched and read in-container 2026-08-12): 'Width: 1 ft. 0 in. - 3 ft. 0 in.' = 30-90 cm. Taken as stated, not flagged. [read]"
          ],
          "bloom_window": [
            "NC State toolbox (read 2026-08-12): bloom 'Fall, Spring, Summer'. Recorded as [late_spring, late_summer]; the vocabulary ends at late_summer, so the fall tail is TRUNCATED, understating the forage span rather than overstating it. [read]"
          ],
          "pollinator_value": [
            "NC State toolbox (read 2026-08-12): 'Butterflies are attracted to this plant', and the page lists it as attracting hummingbirds and pollinators. Qualitative, one source read -> high, not very_high. [read]"
          ],
          "light_min": [
            "Illinois Extension, 'Nasturtium', extension.illinois.edu/herbs/nasturtium (fetched and read in-container 2026-08-12): 'prefers a full sun location but will tolerate some light shade however flowering may be reduced'. For a plant grown for its flowers, reduced flowering is the cost that matters, so full_sun. [read]"
          ],
          "frost_tolerance": [
            "INFERRED: Illinois (read 2026-08-12) says to sow 'after danger of frost is past'; tender is the corpus's reading of that instruction, flagged. [read]"
          ],
          "days_to_maturity": [
            "SEARCHED 2026-08-12, AND NO DTM IS PUBLISHED - Illinois covers sowing and harvest without a days figure, NC State gives bloom seasons. [55, 70] to first bloom is the corpus's own figure, flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "Not stated by either source read; 25 cm is the corpus's own figure, flagged. [read]"
          ],
          "root_depth": [
            "Not stated by any source read; shallow is the corpus's own call, flagged. [read]"
          ],
          "feeder_class": [
            "Not stated outright; Illinois says 'Average well-drained garden soil produces the best growth', which is a light-feeder shape but not a statement of one - flagged. [read]"
          ],
          "ground_coverage": [
            "QUALITATIVE ONLY: Illinois says the trailing type may be 'allowed to spread on the ground', which supports coverage without quantifying it. Moderate is the conservative reading, flagged - and it is load-bearing in that direction: at moderate, nasturtium does NOT qualify for the high-coverage living-mulch cover roles, and promoting it there requires a source that measures its cover, not this sentence. [read]"
          ]
        }
      }
    },
    {
      "id": "sorghum_bicolor",
      "common": [
        "sorghum",
        "grain sorghum",
        "broomcorn",
        "milo"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Guinea_corn_cultivation_in_Jalingo.jpg",
        "artist": "Gwanki",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A field of sorghum plants"
      },
      "family": "poaceae",
      "category": "cover_crop",
      "sowing_depth_cm": [
        2.5,
        5
      ],
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        60,
        120
      ],
      "mature_spread_cm": [
        60,
        90
      ],
      "spacing_in_row_cm": 15,
      "spacing_between_row_cm": 75,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        90,
        120
      ],
      "pollination": {
        "mode": "self",
        "self_incompatible": false
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "bloom_window": [
        "midsummer",
        "late_summer"
      ],
      "cultivar_groups": [
        {
          "id": "grain",
          "common": "grain sorghum",
          "habit": "stalk",
          "mature_height_cm": [
            60,
            120
          ],
          "mature_spread_cm": [
            60,
            90
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            90,
            120
          ],
          "note": "The species' own envelope - Purdue's \"Current grain hybrids are 2-4 feet tall\"."
        },
        {
          "id": "broomcorn",
          "common": "broomcorn",
          "habit": "stalk",
          "casts_shade": true,
          "mature_height_cm": [
            240,
            450
          ],
          "mature_spread_cm": [
            60,
            90
          ],
          "spacing_in_row_cm": 15,
          "days_to_maturity": [
            90,
            120
          ],
          "note": "Arkansas Extension: \"capable of growing 8 to 15 feet tall\", \"an annual grass with a corn-like habit of growth\", tassel branches \"12 to 18 inches in length\". The tall type - and the one the sorghum-plus-melons idea would need. Spread is carried from the grain group and flagged; no read source states a broomcorn plant's width.\n"
        }
      ],
      "note": "Sorghum — added 2026-08-12 (O67b(iii)) to unblock the 2026-08 triage's sorghum-plus-melons (shade and structure) research item. IN NO GUILD, deliberately, and support.provides records NONE: no source read says sorghum bears a climbing vine — Arkansas's \"corn-like habit of growth\" is a statement about height, not about load, and the okra bar applies (evidence that it carries a climber, not that it is tall). Second poaceae in the corpus after corn; no rotation rule keys on grasses, so it arrives with no rule of its own, which is honest. TWO GROUPS, grain and broomcorn, because two read sources share that taxonomy (NC State's toolbox names broomcorn among the types; Arkansas documents it as var. technicum) — the same bar that denied blackberry groups. POLLINATION: the sources disagree and the disagreement is recorded: Purdue's production manual says \"Sorghums are normally self-fertilized, but can cross pollinate\" while NC State's toolbox says \"Wind pollinated\"; the corpus takes the production manual, and either way no insect vector is implied, so the pollinator-forage rule correctly ignores it. NC State notes hydrogen cyanide (prussic acid) in immature or stressed plants — a grazing concern, not a garden gate, recorded so nobody re-derives it.\n",
      "confidence": {
        "estimated": [
          "spacing_in_row_cm",
          "root_depth",
          "feeder_class",
          "cultivar_groups.broomcorn.mature_spread_cm"
        ],
        "sources": {
          "mature_height_cm": [
            "Purdue Alternative Field Crops Manual, 'Sorghum', hort.purdue.edu/newcrop/afcm/sorghum.html (fetched and read in-container 2026-08-12): 'Current grain hybrids are 2-4 feet tall' (older types '5-7 feet'). NC State's toolbox gives 'Height: 2 ft. 0 in. - 3 ft. 0 in.', inside Purdue's band. The species envelope is the grain type's; broomcorn's 8-15 ft lives on its group. [read]"
          ],
          "mature_spread_cm": [
            "NC State Extension Gardener Plant Toolbox, 'Sorghum bicolor', plants.ces.ncsu.edu/plants/sorghum-bicolor (fetched and read in-container 2026-08-12): 'Width: 2 ft. 0 in. - 3 ft. 0 in.' = 60-90 cm. Taken as stated, not flagged. [read]"
          ],
          "days_to_maturity": [
            "Purdue AFCM (read 2026-08-12): 'Most hybrids require 90-120 days to reach maturity.' Taken as stated, not flagged. [read]"
          ],
          "sowing_depth_cm": [
            "Purdue AFCM (read 2026-08-12): '1 inch in heavy soil and 1 1/2 to 2 inches in sandy soil' = 2.5-5 cm. Taken as stated, not flagged. [read]"
          ],
          "spacing_between_row_cm": [
            "Purdue AFCM (read 2026-08-12): rows '30-40 inches in width' as the standard, with narrow-row trials at 10 inches yielding 10-15% more. 75 cm is the standard's low end, matching corn's row figure in this corpus. [read]"
          ],
          "spacing_in_row_cm": [
            "NOT STATED PER PLANT - Purdue gives seeding rates per acre, not in-row spacing, and NC State gives '3 feet-6 feet' of available space, which is a landscape figure. 15 cm is the corpus's own figure, flagged. [read]"
          ],
          "pollination": [
            "Purdue AFCM (read 2026-08-12): 'Sorghums are normally self-fertilized, but can cross pollinate.' NC State's toolbox (read 2026-08-12) DISAGREES: 'Wind pollinated flowers appear from August to October.' The production manual wins - it is the source that describes reproduction rather than listing traits - and mode reads self. Recorded because two read sources conflict. [read]"
          ],
          "bloom_window": [
            "Arkansas Cooperative Extension, 'Sorghum' (Plant of the Week, 2009-09-11), uaex.uada.edu (fetched and read in-container 2026-08-12): 'Flowers are produced in a terminal tassel in midsummer.' NC State: flowers 'appear from August to October'. Recorded as [midsummer, late_summer]; the fall tail is truncated by the vocabulary, and for a wind/self grass the forage span carries no weight anyway. [read]"
          ],
          "frost_tolerance": [
            "Purdue AFCM (read 2026-08-12): 'Frost will generally kill the top of the plant.' Tender, taken as stated. [read]"
          ],
          "root_depth": [
            "Not stated as a depth by any source read - Purdue documents drought tolerance (the 'waxy coating') without a rooting figure. Medium is the corpus's own call, flagged. [read]"
          ],
          "feeder_class": [
            "Not stated by any source read; moderate is the corpus's own call for a grain crop documented as less thirsty than corn (Arkansas), flagged. [read]"
          ],
          "cultivar_groups.broomcorn.mature_height_cm": [
            "Arkansas Cooperative Extension (read 2026-08-12): broomcorn (Sorghum bicolor var. technicum) is 'capable of growing 8 to 15 feet tall' = 240-450 cm. Taken as stated, not flagged. [read]"
          ],
          "cultivar_groups.broomcorn.mature_spread_cm": [
            "NO READ SOURCE STATES A BROOMCORN PLANT'S WIDTH - Arkansas gives tassel branch length (12-18 in), which is not a spread. Carried from the grain group's NC State figure and flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "zinnia_elegans",
      "common": [
        "zinnia",
        "common zinnia"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Common_Zinnia_flower.jpg",
        "artist": "Derk29",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A common zinnia flower in bloom"
      },
      "family": "asteraceae",
      "category": "flower",
      "sowing_depth_cm": 0.6,
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        15,
        120
      ],
      "mature_spread_cm": [
        20,
        30
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        56,
        84
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "note": "Zinnia — added 2026-08-12 (O67c) as a cutting-garden member; NC State records that zinnias \"were used primarily as cut flowers\". Clemson's height taxonomy (dwarf, medium, large) is one source's; NC State publishes a single band, so NO cultivar groups (the blackberry ruling) — the species envelope spans both. Direct-sow after last frost (both sources).\n",
      "confidence": {
        "estimated": [
          "frost_tolerance",
          "root_depth",
          "feeder_class",
          "ground_coverage"
        ],
        "sources": {
          "mature_height_cm": [
            "NC State Extension Gardener Plant Toolbox, 'Zinnia elegans', plants.ces.ncsu.edu/plants/zinnia-elegans (fetched and read in-container 2026-08-12): 'Height: 0 ft. 6 in. - 3 ft. 0 in.'. Clemson HGIC, 'How to Grow Zinnias', hgic.clemson.edu (fetched and read in-container 2026-08-12) goes taller by type: dwarf '6 inches' to '12 to 14 inches', medium '30 inches', large '3 to 4 feet'. THE CEILINGS DISAGREE (NC State 3 ft, Clemson 4 ft); the envelope takes the union, 15-120 cm, and both are quoted so the disagreement is visible. [read]"
          ],
          "mature_spread_cm": [
            "NC State toolbox (read 2026-08-12): 'Width: 0 ft. 8 in. - 1 ft. 0 in.' = 20-30 cm. Published, not flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "Clemson HGIC (read 2026-08-12): 'taller 2- to 3-foot zinnia cultivars should be spaced a foot apart' (dwarfs '8 to 9 inches'). 30 cm is the tall-cultivar figure - the cutting-garden type. [read]"
          ],
          "sowing_depth_cm": [
            "Clemson HGIC (read 2026-08-12): 'Plant them 1/4 inch deep' = 0.6 cm. A per-crop published figure, so unflagged. [read]"
          ],
          "days_to_maturity": [
            "Clemson HGIC (read 2026-08-12): 'Zinnias will mature and bloom 8 to 12 weeks after planting' = 56-84 days. Published, not flagged. [read]"
          ],
          "bloom_window": [
            "NC State toolbox (read 2026-08-12): bloom 'Summer and Fall'. Recorded as [early_summer, late_summer]; the fall tail is truncated by the five-token vocabulary, understating the span. [read]"
          ],
          "pollinator_value": [
            "NC State toolbox (read 2026-08-12): attracts 'Bees', 'Butterflies', 'Hummingbirds'; 'bee friendly'. Qualitative -> high. [read]"
          ],
          "light_min": [
            "Clemson HGIC (read 2026-08-12): 'at least 6 hours of full sun'; NC State agrees ('Full sun'). [read]"
          ],
          "frost_tolerance": [
            "INFERRED: both sources sow 'after the last frost date' (NC State) / 'when the chance of the last frost has passed' (Clemson); tender is the corpus's reading, flagged. [read]"
          ],
          "root_depth": [
            "Not stated by any source read; shallow is the corpus's own call, flagged. [read]"
          ],
          "feeder_class": [
            "Not stated by any source read; light is the corpus's own call, flagged. [read]"
          ],
          "ground_coverage": [
            "Not stated by any source read; low is the corpus's own call for an erect stalk, flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "cosmos_bipinnatus",
      "common": [
        "cosmos",
        "garden cosmos"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cosmos_bipinnatus_2019-07-01_2653.jpg",
        "artist": "Salicyna",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Pink cosmos flowers in a garden"
      },
      "family": "asteraceae",
      "category": "flower",
      "sowing_depth_cm": 0.3,
      "lifespan": "annual",
      "habit": "stalk",
      "mature_height_cm": [
        60,
        120
      ],
      "mature_spread_cm": [
        60,
        90
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        90
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "late_summer"
      ],
      "note": "Cosmos — added 2026-08-12 (O67c) as a cutting-garden member; USU: \"The stems and flowers of Cosmos make a very nice cutting plant\". The soil warning is USU's and worth carrying verbatim: \"Nutrient rich soil produces plants that are weak-stemmed (floppy), late blooming and flower sparsely\" — a flower that punishes generosity. It self-sows heavily (USU calls it \"referred to as a weed due to heavy seed production and self-sowing\") — recorded as behaviour, not spreads_unbidden, which this corpus applies to vegetative spread.\n",
      "confidence": {
        "estimated": [
          "days_to_maturity",
          "spacing_in_row_cm",
          "frost_tolerance",
          "root_depth",
          "feeder_class",
          "ground_coverage"
        ],
        "sources": {
          "mature_height_cm": [
            "NC State Extension Gardener Plant Toolbox, 'Cosmos bipinnatus', plants.ces.ncsu.edu/plants/cosmos-bipinnatus (fetched and read in-container 2026-08-12): 'Height: 2 ft. 0 in. - 4 ft. 0 in.' = 60-120 cm. Utah State, 'Cosmos in the Garden', extension.usu.edu (fetched and read in-container 2026-08-12) gives the species '1 to 6 feet' - a cultivar-extremes band; the toolbox profile is taken and USU's wider range recorded here. [read]"
          ],
          "mature_spread_cm": [
            "NC State toolbox (read 2026-08-12): 'Width: 2 ft. 0 in. - 3 ft. 0 in.' = 60-90 cm. Published, not flagged. [read]"
          ],
          "sowing_depth_cm": [
            "Utah State (read 2026-08-12): 'Plant seeds 1/8 inches deep' = 0.3 cm. A per-crop published figure, so unflagged. [read]"
          ],
          "spacing_in_row_cm": [
            "Utah State (read 2026-08-12): 'A plant spacing of 1-2 feet apart is recommended.' The FLOOR is taken (30 cm) and flagged, because collapsing a published range to one end is the corpus's choice, not the source's precision. [read]"
          ],
          "days_to_maturity": [
            "SEARCHED 2026-08-12, AND NO DAYS-TO-BLOOM IS PUBLISHED - USU gives germination days ('7 to 14 days') and NC State gives seasons, neither a sowing-to-flower figure. [70, 90] is the corpus's own figure, flagged (the cleome shape). [read]"
          ],
          "bloom_window": [
            "NC State toolbox (read 2026-08-12): bloom 'Fall, Spring, Summer', with a 'Long Bloom Season' tag. Recorded as [late_spring, late_summer]; the fall tail is truncated by the vocabulary. [read]"
          ],
          "pollinator_value": [
            "NC State toolbox (read 2026-08-12): 'Attracts pollinators, birds and butterflies'; tagged bee-friendly. Qualitative -> high. [read]"
          ],
          "light_min": [
            "Utah State (read 2026-08-12): 'Cosmos likes full sun, needing at least 8 hours of light.' [read]"
          ],
          "frost_tolerance": [
            "INFERRED: USU sows 'once all danger of frost has passed'; tender is the corpus's reading, flagged. [read]"
          ],
          "root_depth": [
            "Not stated by any source read; medium is the corpus's own call for a 2-4 ft stalk, flagged. [read]"
          ],
          "feeder_class": [
            "LIGHT IS AN INFERENCE FROM A READ WARNING, and flagged as one: USU's 'Nutrient rich soil produces plants that are weak-stemmed (floppy), late blooming and flower sparsely' describes a plant that does badly when fed, which is the light-feeder shape - but the source states a failure mode, not a feeder class. [read]"
          ],
          "ground_coverage": [
            "Not stated by any source read; low is the corpus's own call for an erect stalk, flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "foeniculum_vulgare",
      "common": [
        "fennel"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Foeniculum_vulgare_FlowersCloseup_15July2009_ParqueNaturalLagunasdelaMata.jpg",
        "artist": "Javier martin",
        "licence": "Public domain",
        "alt": "A fennel plant with yellow flower umbels"
      },
      "family": "apiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "stalk",
      "mature_height_cm": [
        120,
        200
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "perennial",
      "hardiness_zone": [
        4,
        10
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "late_summer"
      ],
      "volatile_aromatic": true,
      "allelopathy": {
        "targets": "unspecified",
        "grade": "C",
        "rule": "R-022"
      },
      "invasive_status": {
        "regions": [
          "CA",
          "OR",
          "WA"
        ],
        "note": "Naturalized and problematic in parts of the western US. Check locally."
      },
      "confidence": {
        "estimated": [
          "bloom_window",
          "hardiness_zone"
        ],
        "sources": {
          "bloom_window": [
            "University of Wisconsin Horticulture, 'Fennel, Foeniculum vulgare', hort.extension.wisc.edu/articles/fennel-foeniculum-vulgare (read 2026-08-01): 'Flat topped clusters of yellow flowers appear in late summer' for herb fennel, in terminal compound umbels of 20-50 flowers, and the seeds mature in fall. DELIBERATELY NARROW - one season, not the wider midsummer span that would have been the intuitive guess - because the source says late summer and nothing read widens it. Also note the source's caveat, NOT modelled here: fennel 'often does not bloom until its second year', so a first-year planting may offer no forage at all, which this field cannot express. [read]"
          ],
          "hardiness_zone": [
            "HALF-SOURCED, and flagged for it (corrected 2026-07-26, same day it was wrongly narrowed). NC State Extension Gardener Plant Toolbox, 'Foeniculum vulgare', plants.ces.ncsu.edu/plants/foeniculum-vulgare/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b'. THE FLOOR MOVED 5 -> 4 ON THIS EVIDENCE AND STANDS: the Toolbox states the plant grows in 4a, which is positive evidence and a widening. THE CEILING DOES NOT. It was briefly cut 10 -> 9 on the same source, and that was wrong: a North Carolina database's upper bound is not a statement that the plant fails above it - see the Fragaria case recorded under origanum_vulgare. 10 is the corpus's own and unsourced. [read]"
          ]
        }
      }
    },
    {
      "id": "cucumis_sativus",
      "common": [
        "cucumber"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cucumber_in_jaffna.JPG",
        "artist": "Maathavan",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A cucumber hanging on the vine"
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "pollination": {
        "mode": "insect",
        "monoecious": true
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "pest_pressure": [
        "acalymma_vittatum"
      ],
      "cultivar_groups": [
        {
          "id": "vining",
          "common": "vining cucumber",
          "habit": "vine",
          "mature_height_cm": [
            30,
            30
          ],
          "mature_spread_cm": [
            120,
            200
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            50,
            70
          ],
          "support": {
            "provides": "none",
            "requires": "optional_strong"
          },
          "ground_coverage": "high"
        },
        {
          "id": "bush",
          "common": "bush cucumber",
          "habit": "bush",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            60,
            90
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            50,
            65
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Compact type for small beds."
        }
      ],
      "confidence": {
        "estimated": [
          "bloom_window",
          "cultivar_groups.vining.mature_spread_cm",
          "cultivar_groups.bush.mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Cucumber' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "bloom_window": [
            "INFERRED FROM SOWING DATE PLUS THIS RECORD'S OWN DTM, NOT READ OFF A PAGE, hence `estimated`. A tender cucurbit is sown after the last frost and killed by the first; a flower necessarily precedes its fruit, and a monoecious/andromonoecious cucurbit keeps setting flowers while the plant lives. So bloom opens inside early summer and ends with frost. NO SOURCE READ DATES FIRST BLOOM FOR THIS SPECIES and that was searched for (Clemson HGIC and UMN Extension crop pages, 2026-08-01). DELIBERATELY THE SAME WINDOW AS THE OTHER TENDER CUCURBITS despite days_to_maturity ranging 45-110 across them: DTM measures FRUIT DEVELOPMENT, not time to first flower - a winter squash ripening at 110 days is not flowering 50 days later than a zucchini. Spreading these apart by DTM would invent precision no source supports. A source dating first bloom would replace this and could clear the flag. [searched]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Cucumber' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.vining.mature_spread_cm": [
            "UMN Extension, 'Growing cucumbers', extension.umn.edu/vegetables/growing-cucumbers (read 2026-07-25): 'Allow about two or three feet of space on either side of the row for the vines to spread'; 'Allow five to six feet between hills'; thin 'seedlings to stand 8 to 12 inches apart'; and on training, 'train the vines to climb a three- to four-foot trellis'. The first sentence is the nearest thing to a stated SPREAD found for any cucurbit in this pass - two to three feet either side of a row is 122-183 cm of vine width - but it is still phrased as space to allow, and the corpus's 120-200 cm has a ceiling ABOVE that band. Derived, not quoted: the flag stays (D-146). [read]",
            "Illinois Extension, 'Cucumber' (Home Vegetable Gardening), extension.illinois.edu/gardening/cucumber (read 2026-07-25): 'vines of standard varieties grow rapidly and require substantial space'; thin to 'one plant every 12 inches in the row or to three plants every 36 inches in the hill system'; rows '5 to 6 feet apart'. NO vine length or spread figure - 'substantial space' is the whole of it. Recorded as a second publication checked for a cucumber vine dimension without finding one. [read]"
          ],
          "cultivar_groups.bush.mature_spread_cm": [
            "UMN Extension, 'Growing cucumbers', extension.umn.edu/vegetables/growing-cucumbers (read 2026-07-25): 'You can plant bush types, with very short vines, in closely spaced rows or hills, with only two to three feet between rows or hills.' Two to three feet is 61-91 cm and the corpus's bush group is 60-90 cm, so the correspondence is close enough to be worth stating - but it is a SPACING instruction for bush types, not a measurement of a bush plant, and 'very short vines' is the only description of the plant itself. Flag stays. [read]"
          ]
        }
      }
    },
    {
      "id": "beta_vulgaris",
      "common": [
        "beet",
        "beetroot",
        "Swiss chard",
        "chard"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Beta_vulgaris,_San_Francisco_farmers_market.jpg",
        "artist": "Frank Schulenburg",
        "licence": "CC0",
        "licence_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
        "alt": "Freshly harvested red beets with their roots and tops"
      },
      "family": "amaranthaceae",
      "category": "root",
      "sowing_depth_cm": 2.5,
      "lifespan": "biennial",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.2,
        7.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "succession_interval_days": [
        14,
        21
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "none",
      "cultivar_groups": [
        {
          "id": "conditiva",
          "common": "beetroot",
          "habit": "root",
          "mature_height_cm": [
            20,
            30
          ],
          "mature_spread_cm": [
            15,
            20
          ],
          "spacing_in_row_cm": 8,
          "days_to_maturity": [
            50,
            70
          ]
        },
        {
          "id": "cicla",
          "common": "Swiss chard",
          "habit": "rosette",
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            30,
            40
          ],
          "spacing_in_row_cm": 25,
          "days_to_maturity": [
            50,
            60
          ],
          "note": "Leaf beet; cut-and-come-again, DTM is to first harvest."
        }
      ],
      "confidence": {
        "estimated": [
          "cultivar_groups.conditiva.mature_spread_cm",
          "cultivar_groups.cicla.mature_spread_cm",
          "succession_interval_days",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Beets' -> 1' = 2.5 cm. A JUDGEMENT, RECORDED RATHER THAN BURIED: this one species is grown as both beet and chard, and the table lists them separately - 'Beets' 1' and 'Swiss Chard' 0.75'. The beet figure is taken because 'beet' is this species' primary common name; the chard figure is 0.75' and a reader growing it as chard should sow slightly shallower. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Beets' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.2. 6.2 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.conditiva.mature_spread_cm": [
            "Illinois Extension, 'Beet' (Home Vegetable Gardening), extension.illinois.edu/gardening/beet (read 2026-07-25): 'Plant seeds about 1/2 inch deep and one inch apart'; 'Allow 12 to 18 inches between rows'; 'The seedlings should be thinned to 1 to 3 inches apart.' Every dimension it states is the ROOT - about 1 1/2 in at 60 days, enlarging to 3 in with moisture and space, and 'Beets larger than 3 inches may become tough and fibrous'. No top height or plant width, which is what the corpus's 15-20 cm is. [read]"
          ],
          "cultivar_groups.cicla.mature_spread_cm": [
            "UMN Extension, 'Growing spinach and Swiss chard in home gardens', extension.umn.edu/vegetables/growing-spinach-and-swiss-chard (read 2026-07-25): 'Thin Swiss chard to four to six inches apart', 'Transplant four to six inches apart, in rows 18 to 30 inches apart', and 'Closer spacing will result in smaller, baby leaf plants, and farther spacing will result in larger heads or plants.' 10-15 cm of spacing against the corpus's 30-40 cm rosette - a chard plant is expected to close over its spacing, which is why the two numbers differ and neither is wrong. No plant width stated. [read]"
          ]
        }
      }
    },
    {
      "id": "spinacia_oleracea",
      "common": [
        "spinach"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Spinacia_oleracea_Spinazie_bloeiend.jpg",
        "artist": "Rasbak",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "A spinach plant with broad green leaves"
      },
      "family": "amaranthaceae",
      "category": "salad_green",
      "sowing_depth_cm": 1.3,
      "lifespan": "annual",
      "habit": "rosette",
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        37,
        55
      ],
      "succession_interval_days": [
        10,
        14
      ],
      "mature_height_cm": [
        15,
        30
      ],
      "mature_spread_cm": [
        15,
        20
      ],
      "spacing_in_row_cm": 8,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "none",
      "note": "Cool-season and a long-day bolter — lengthening days with heat trigger it to run to seed. Sow for spring and autumn, not midsummer. Tolerates hard frost; one of the most cold-hardy leaf crops.\nSPREAD ESTIMATED (read 2026-07-25). For a leaf crop the published thinning distance is closer to the plant's own width than it was for a root crop - a spinach rosette IS roughly what its spacing allows - but UMN states the spacing and not the rosette, and it says outright that the plant's size is a CONSEQUENCE of the spacing chosen: closer for baby leaf, farther for larger plants. A number the grower sets by thinning is not a fixed species property, which is a better argument for leaving this estimated than any missing sentence.\n",
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "succession_interval_days",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Spinach' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Spinach' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0. 6.0 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.5 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing spinach and Swiss chard in home gardens', extension.umn.edu/vegetables/growing-spinach-and-swiss-chard (read 2026-07-25): 'Thin spinach to two to four inches apart', in 'rows 18 to 30 inches apart'. NO rosette width or plant spread figure. The page does state the relationship that matters here: 'Closer spacing will result in smaller, baby leaf plants, and farther spacing will result in larger heads or plants' - so the plant's width partly follows the gardener's thinning, and 5-10 cm of thinning against the corpus's 15-20 cm rosette is not a contradiction. [read]"
          ]
        }
      }
    },
    {
      "id": "allium_ampeloprasum",
      "common": [
        "leek"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Leek_on_white_background_-_0947.jpg",
        "artist": "Amada44",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A single leek with a white shaft and green leaves"
      },
      "family": "amaryllidaceae",
      "category": "allium",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "stalk",
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        120
      ],
      "mature_height_cm": [
        40,
        60
      ],
      "mature_spread_cm": [
        15,
        15
      ],
      "spacing_in_row_cm": 15,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "Grown for the blanched pseudostem, not a bulb — so unlike onion it is not daylength-gated. A long-season allium, hardy enough to stand in the ground into winter. Breaks the big-three rotation as an allium (R-013).\n",
      "confidence": {
        "estimated": [
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Leeks' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "days_to_maturity": [
            "UMD Extension, 'Growing Leeks in a Home Garden', extension.umd.edu/resource/growing-leeks-home-garden (fetched and read in-container 2026-07-26): 'Days to maturity: 70 - 120, depending on the cultivar.' THE CEILING CONFIRMS THE CORPUS AND THE FLOOR WIDENS 100 -> 70. The source says 'depending on the cultivar', which is exactly the cultivar-spanning species range this field models, and a wider floor on a read source is the safe direction - it is positive evidence that some leeks finish that early. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Leeks' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "apium_graveolens",
      "common": [
        "celery"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Bleekselderij_groen_(Apium_graveolens_var._dulce_green).jpg",
        "artist": "Eric Hunt",
        "licence": "CC BY 2.5",
        "licence_url": "https://creativecommons.org/licenses/by/2.5",
        "alt": "A bunch of celery stalks"
      },
      "family": "apiaceae",
      "category": "salad_green",
      "sowing_depth_cm": 0.6,
      "lifespan": "biennial",
      "habit": "stalk",
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        100,
        130
      ],
      "mature_height_cm": [
        40,
        60
      ],
      "mature_spread_cm": [
        25,
        30
      ],
      "spacing_in_row_cm": 20,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "cultivar_groups": [
        {
          "id": "celery",
          "common": "celery",
          "habit": "stalk",
          "days_to_maturity": [
            100,
            130
          ],
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            25,
            30
          ],
          "spacing_in_row_cm": 20,
          "note": "The species' own envelope — the unqualified default, repeating its numbers with zero new assertion. It exists because celeriac below would otherwise become the default. dispatch.resolve falls back to the FIRST group, so a species that gains groups without a guard silently changes what every existing unqualified planting means.\n"
        },
        {
          "id": "celeriac",
          "common": "celeriac",
          "habit": "stalk",
          "days_to_maturity": [
            110,
            110
          ],
          "mature_height_cm": [
            40,
            60
          ],
          "mature_spread_cm": [
            25,
            30
          ],
          "spacing_in_row_cm": 20,
          "note": "Celeriac — added 2026-07-26, and it is a GROUP rather than a species because it is the same plant: Apium graveolens, grown for the swollen hypocotyl instead of the petioles. So it inherits the apiaceous rotation break (R-013) and the family intervals correctly rather than needing either restated.\nDAYS TO MATURITY IS THE ONLY FIELD THAT DIFFERS, and it is the only one a source distinguishes. Wisconsin A1653 gives celeriac 110 days to first harvest against celery's 100-110, on the same table. Written [110, 110] because the publication states ONE number and this corpus never uses a scalar — the degenerate range is the honest shape, not a range narrowed by guesswork.\nSPACING IS DELIBERATELY IDENTICAL TO CELERY'S, and that is a refusal rather than an oversight. A1653 gives BOTH crops the same 4-6 in between plants. Giving celeriac its own figure while celery kept the species' 20 cm would assert a difference the source explicitly denies — the ruling endive got, for the same reason. Note this also means A1653's 4-6 in contradicts the corpus's 20 cm for CELERY, which is a celery question and is recorded on the species rather than fixed inside a celeriac commit.\nHABIT STAYS `stalk` THOUGH A1653 CALLS IT \"root celery\". In this corpus `root` means carrot at 8 cm of spread, radish at 3 cm of spacing, parsnip — a class of plants a quarter of celeriac's size. Celeriac's above-ground plant is a celery rosette and A1653 spaces it exactly like celery. The swollen part is below ground and `habit` describes the plant, so moving it would misplace the crop to satisfy its common name.\n"
        }
      ],
      "note": "Long-season, thirsty, and a heavy feeder — wants steady moisture and rich soil or the stalks turn stringy. An apiaceous crop, so it breaks the big-three rotation (R-013). Bolts if chilled young.\nSPREAD ESTIMATED (read 2026-07-25), and celery is the one species in this pass where a published HEIGHT exists and a width still does not: USU states 18-24 in tall and gives two different in-row spacings on the same page (12 in in the body, 18-24 in in the summary), the tighter one deliberately - \"Tight planting helps force long growth and tall petioles\". A spacing chosen to change the plant's shape is the clearest possible case of a spacing that is not a spread.\n",
      "confidence": {
        "estimated": [
          "days_to_maturity",
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Celery' -> 0.25' = 0.6 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "days_to_maturity": [
            "Wisconsin A1653, 'Vegetable cultivars and planting guide for Wisconsin gardens' (Bussan, Reith-Rozelle & Delahaut), florence.extension.wisc.edu/files/2020/04/A1653.pdf (read 2026-07-26): the planting table gives CELERY 100-110 days to first harvest, against this corpus's [100, 130]. THE FLOOR IS CONFIRMED EXACTLY; THE CEILING IS CONTRADICTED and was not adopted, because narrowing an already-flagged range on one table would trade a soft number for a slightly different soft number rather than settle it. The field stays flagged. Cited here rather than acted on because the same table is what added the celeriac group, and a celeriac commit is not the place to move celery's numbers. [read]",
            "THE SAME TABLE CONTRADICTS THIS SPECIES' SPACING TOO, and it is recorded rather than fixed: A1653 gives 4-6 in between plants (10-15 cm) for celery AND for celeriac, where this corpus carries 20 cm. USU, already cited on mature_spread_cm, gives 12 in in its body and 18-24 in in its summary on the same page - so three published in-row figures now exist for celery (4-6, 12, 18-24 in) and the corpus's 20 cm matches none of them cleanly. That is a celery question worth its own commit. The one thing it settles is that celeriac must NOT be given a different spacing from celery: A1653 gives them the same number, so a difference would be invented. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Celery' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "USU Extension, 'How to Grow Celery in Your Garden', extension.usu.edu/yardandgarden/research/celery-in-the-garden (read 2026-07-25): 'Space the rows 2 feet apart and the plants 12 inches apart in the row', with 'Space plants 18-24 inches apart' in its own summary section - the page disagrees with itself, and the tight figure is intentional: 'Tight planting helps force long growth and tall petioles.' It states a HEIGHT, 'Celery grows to a height of 18 to 24 inches', and NO width or spread. The corpus's 25-30 cm sits just above USU's 12 in (30 cm) body figure. A spacing deliberately chosen to change the plant's shape cannot be read as the plant's width. [read]"
          ]
        }
      }
    },
    {
      "id": "raphanus_sativus",
      "common": [
        "radish"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Raphanus_sativus_Radieschen,_Bakterielle_Nassf%C3%A4ule,_J.Schlaghecken-1a.jpg",
        "artist": "Schlaghecken Josef",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Red radishes growing in the soil with their leafy tops"
      },
      "family": "brassicaceae",
      "category": "root",
      "sowing_depth_cm": 1.3,
      "lifespan": "annual",
      "habit": "root",
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        6.2,
        7.0
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        22,
        30
      ],
      "succession_interval_days": [
        7,
        10
      ],
      "mature_height_cm": [
        15,
        20
      ],
      "mature_spread_cm": [
        8,
        10
      ],
      "spacing_in_row_cm": 3,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "Fast salad radish. Brassicaceae, so despite the short season it counts toward the brassica rotation (R-012) and shares brassica soilborne pressure — a quick catch crop is not a rotation loophole.\nSPREAD ESTIMATED, and for a root crop the gap between the published number and this one is a different gap than it was for the vines (read 2026-07-25). Extension gives a THINNING distance, which is the room the ROOT needs: 1/2-1 in for spring radish (Illinois), about 2 in (UMN). The corpus's 8-10 cm is the leafy TOP, which is wider than the root and is what shades the ground and occupies a bed. Both are real quantities and they are not the same one, so the thinning figures corroborate nothing here - they are recorded because they are what the literature offers.\n",
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "succession_interval_days",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Radish' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "succession_interval_days": [
            "SEARCHED 2026-07-26, AND THE PER-CROP INTERVAL IS NOT PUBLISHED IN THE SHAPE THIS FIELD WANTS. Two extension sources were fetched and read and both give ONE GENERAL interval for all crops. UMD Extension, 'Planting Vegetables in Succession', extension.umd.edu/resource/planting-vegetables-succession (read 2026-07-26): 'plant a portion of that space every two weeks'. UGA Extension / CAES Field Report, 'Succession planting for an extended harvest', fieldreport.caes.uga.edu/news/7554/ (read 2026-07-26): 'Two weeks throughout the planting season makes for a good planting interval for most crops.' NEITHER DIFFERENTIATES BY CROP, so this corpus's spread - radish at 7-10 days, salad greens at 10-14, beans and roots at 14-21 - is ITS OWN and stays flagged. The values are not contradicted either: two weeks sits inside every band here. This is the same shape as ph_range (D-149) - the literature publishes a different quantity from the one the field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Radish' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.2. 6.2 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing radishes', extension.umn.edu/vegetables/growing-radishes (read 2026-07-25): 'Allow about one inch between seeds in the row'; 'Thin radishes to about two inches between plants as soon as they reach a small, edible size. For larger varieties, such as daikons, allow four to six inches between plants.' NO plant width, top height or spread figure. The only size language is about the root: a daikon's 'shoulders ... stand up out of the soil, so the width of the root will be obvious'. [read]",
            "Illinois Extension, 'Radish' (Home Vegetable Gardening), extension.illinois.edu/gardening/radish (read 2026-07-25): 'Thin spring varieties to 1/2 to 1 inch between plants'; 'Winter radishes must be thinned to 2 to 4 inches, or even farther apart to allow for proper development of their larger roots'; 'On beds, radishes may be broadcast lightly and thinned to stand 2 to 3 inches apart in all directions.' No top height or spread; the one dimension it gives is a mature daikon root 'up to about 18 inches long'. The broadcast-in-all-directions figure (5-7.6 cm) is the closest published analogue to a per-plant footprint and is BELOW the corpus's 8-10 cm, consistent with 8-10 being the leaf top rather than the root. [read]"
          ]
        }
      }
    },
    {
      "id": "cucumis_melo",
      "common": [
        "melon",
        "cantaloupe",
        "muskmelon"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cucumis_melo_var._reticulatus_(photo_by_Scott_Bauer).jpg",
        "artist": "USDA photo by Scott Bauer. Image Number K7355-11.",
        "licence": "Public domain",
        "alt": "Cantaloupe melons, whole and cut into slices",
        "caption": "C. melo spans cantaloupe, honeydew and more by cultivar."
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        90
      ],
      "mature_height_cm": [
        30,
        30
      ],
      "mature_spread_cm": [
        150,
        300
      ],
      "spacing_in_row_cm": 60,
      "pollination": {
        "mode": "insect",
        "monoecious": true
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "note": "Warm-season sprawling vine; cucurbitaceae, counts toward the cucurbit rotation (R-011).\nSPREAD STILL ESTIMATED AFTER TWO READS (2026-07-25), same outcome as watermelon and for the same reason: USU and UMN state spacing, neither states a vine spread. UMN's in-row figure (18-24 in) is TIGHTER than this species' own spacing_in_row_cm of 60, and its row figure (5-6 ft) is wider than the 150-300 cm envelope - which is what a spacing recommendation looks like when vines are expected to interlock down the row and be walked between across it. Do not read either number as a canopy width.\n",
      "confidence": {
        "estimated": [
          "bloom_window",
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Cantaloupe & Melons' -> 1' = 2.5 cm. The table also carries a bare 'Melons' row at 0.5' which cannot be told apart from this one, so citrullus_lanatus (watermelon) takes NO value from this source rather than a guessed one. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "bloom_window": [
            "INFERRED FROM SOWING DATE PLUS THIS RECORD'S OWN DTM, NOT READ OFF A PAGE, hence `estimated`. A tender cucurbit is sown after the last frost and killed by the first; a flower necessarily precedes its fruit, and a monoecious/andromonoecious cucurbit keeps setting flowers while the plant lives. So bloom opens inside early summer and ends with frost. NO SOURCE READ DATES FIRST BLOOM FOR THIS SPECIES and that was searched for (Clemson HGIC and UMN Extension crop pages, 2026-08-01). DELIBERATELY THE SAME WINDOW AS THE OTHER TENDER CUCURBITS despite days_to_maturity ranging 45-110 across them: DTM measures FRUIT DEVELOPMENT, not time to first flower - a winter squash ripening at 110 days is not flowering 50 days later than a zucchini. Spreading these apart by DTM would invent precision no source supports. A source dating first bloom would replace this and could clear the flag. [searched]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Muskmelons' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. Table B-1's separate 'Cantaloupes' row gives the same pair. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing melons in the home garden', extension.umn.edu/fruit/growing-melons-home-garden (read 2026-07-25): 'Sow 2 or 3 seeds in groups 18 to 24 inches apart'; 'Space rows 5 to 6 feet apart'; for transplants, 'Plant the potted seedlings about two feet apart, in rows five feet apart.' NO vine length or plant spread anywhere on the page. It does say a small-fruited melon can be grown 'in small gardens by training the plant to a fence or trellis' - a training technique, not a compact variety, so it is not a second envelope. [read]",
            "USU Extension, 'How to Grow Cantaloupe (Muskmelon) in Your Garden', extension.usu.edu/yardandgarden/research/cantaloupe-in-the-garden (read 2026-07-25): 'Plant 4-6 seeds in mounds 4 feet apart'; 'Transplants should be planted 2 feet apart in row, with rows 4-6 feet apart.' States no vine spread either; the only growth-stage language is 'After the vines develop runners', which quantifies nothing. [read]"
          ]
        }
      }
    },
    {
      "id": "ipomoea_batatas",
      "common": [
        "sweet potato"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Ipomoea_batatas_-_Tubers.jpg",
        "artist": "Filo gèn'",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A pile of harvested sweet potato tubers",
        "caption": "Grown for its tuberous roots, not the flower."
      },
      "family": "convolvulaceae",
      "category": "root",
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        5.5,
        6.5
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        90,
        120
      ],
      "mature_height_cm": [
        20,
        30
      ],
      "mature_spread_cm": [
        100,
        200
      ],
      "spacing_in_row_cm": 30,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "low",
      "note": "A tender perennial grown as an annual from slips; the crop is the storage root. A sprawling ground-covering vine. Convolvulaceae — unrelated to the big-three or the alliums/apiaceae, so it is its own rotation family.\nTHE ONE READ FIGURE IS 3x THIS ONE, AND IT IS A DIFFERENT QUANTITY (2026-07-25). Clemson lists a 'Murasaki' sweetpotato with \"vigorous vines (grows 20')\" - 610 cm of VINE LENGTH, where the corpus carries 100-200 cm of spread. A 6 m runner does not make a 6 m radius: it snakes, loops and roots where it touches, so the ground one plant occupies is far smaller than the vine it grows. Keeping both numbers straight is the whole reason this stays estimated, and it is also a warning: anyone who finds that 20 ft and \"corrects\" the spread upward would have the planner reserve a bed per plant.\n",
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "days_to_maturity": [
            "Clemson HGIC, 'Sweet Potato', hgic.clemson.edu/factsheet/sweet-potato/ (fetched and read in-container 2026-07-26): 'Sweetpotatoes should be ready to harvest about 90 to 120 days after planting.' MATCHES THE CORPUS EXACTLY and no number moved. The same page lists per-cultivar figures spanning 90-135 days ('Beauregard' 90-100, 'Jewel' 120-135), so the 90-120 here is the page's own SPECIES-LEVEL guidance, which is the quantity this field models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Potatoes, sweet' gives target pH 6.2, and the second column, 'Target lime when pH falls below', gives 5.5 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.5 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "Clemson HGIC, 'Sweet Potato', hgic.clemson.edu/factsheet/sweet-potato (read 2026-07-25): '8 to 12 inches between plants in the row', 'rows 3 feet apart', slips planted at 'a depth of 3 inches'. It gives NO general vine spread or ground-coverage figure. Its one dimensional statement is inside a cultivar description - 'Murasaki' has 'vigorous vines (grows 20')' - which is a vine LENGTH for one named cultivar, not a spread for the species: 610 cm of runner does not imply a 610 cm footprint, because the vine snakes and roots as it goes. Recorded with the distinction spelled out, because the number is tempting and wrong for this field. [read]"
          ]
        }
      }
    },
    {
      "id": "petroselinum_crispum",
      "common": [
        "parsley"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Petroselinum_crispum_003.JPG",
        "artist": "H. Zell",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Flat-leaf parsley foliage"
      },
      "family": "apiaceae",
      "category": "herb",
      "sowing_depth_cm": [
        0.3,
        0.6
      ],
      "lifespan": "biennial",
      "habit": "rosette",
      "root_depth": "medium",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        90
      ],
      "mature_height_cm": [
        20,
        35
      ],
      "mature_spread_cm": [
        20,
        25
      ],
      "spacing_in_row_cm": 15,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "moderate",
      "note": "Grown as an annual for the leaf; biennial, so it bolts and flowers in its second year (the umbels feed beneficial insects). Apiaceous — breaks the big-three rotation (R-013).\n",
      "confidence": {
        "estimated": [
          "days_to_maturity",
          "ph_range",
          "sowing_depth_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Univ. of Maryland Extension, 'Starting Seeds Indoors', extension.umd.edu/resource/starting-seeds-indoors (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Make shallow rows for small-to-medium size seeds, 1/8 to 1/4 inch deep', and the rule behind it, 'A suitable planting depth is typically about twice the seed''s diameter.' 1/8-1/4 inch = 0.3-0.6 cm. FLAGGED ESTIMATED BECAUSE THIS SOURCE NAMES NO CROP. It is a CLASS rule for small-to-medium seeds applied to this species, not a figure published for it, and that is a weaker claim than the per-crop table figures elsewhere in this field. Three sources were checked for a per-crop number and none has one: Iowa State''s germination table has no depth column, Utah State''s tomato/pepper/eggplant page gives TRANSPLANT depth only, and Penn State''s seed chart omits these crops because they are transplanted. The published RANGE is kept rather than narrowed to a single figure - picking 1/4 inch alone would be this corpus presenting its own choice as the source''s precision. [read]"
          ],
          "days_to_maturity": [
            "SEARCHED 2026-07-26, AND NO EXTENSION SOURCE READ PUBLISHES A DTM FOR PARSLEY - which on reflection is the right answer rather than a gap. Two pages were fetched and read in-container and both state none: UMN Extension, 'Growing parsley in home gardens', extension.umn.edu/vegetables/growing-parsley, and Wisconsin Horticulture, 'Parsley, Petroselinum crispum', hort.extension.wisc.edu/articles/parsley-petroselinum-crispum/. UMN says only that leaves are picked 'as soon as sufficient growth has been made' and Wisconsin gives a first-year height and nothing else. PARSLEY IS CUT-AND-COME-AGAIN, so harvest is continuous and there is no single day the crop is 'ready' - the same reason beta_vulgaris' chard group carries the note 'DTM is to first harvest'. What this field holds for parsley is days to FIRST USABLE CUT, which is a quantity the literature does not publish. [70, 90] is the corpus's own and stays flagged. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Parsley' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "pastinaca_sativa",
      "common": [
        "parsnip"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Pastinaca_sativa_plant.jpg",
        "artist": "MurielBendel",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A parsnip plant in flower",
        "caption": "Grown for its root; shown here in flower."
      },
      "family": "apiaceae",
      "category": "root",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "root",
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        120,
        180
      ],
      "mature_height_cm": [
        30,
        40
      ],
      "mature_spread_cm": [
        10,
        15
      ],
      "spacing_in_row_cm": 8,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "Long-season root; flavour sweetens after a frost. Apiaceous — breaks the big-three rotation (R-013). Wants deep, stone-free soil or the roots fork (R-016).\n",
      "confidence": {
        "estimated": [
          "days_to_maturity",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Parsnip' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "days_to_maturity": [
            "Clemson HGIC, 'Carrot, Beet, Radish & Parsnip', hgic.clemson.edu/factsheet/carrot-beet-radish-parsnip/ (fetched and read in-container 2026-07-26): 'The time from seeding to harvest may take from 120 to 180 days.' THE CORPUS HAD [100, 130] WITH NO SOURCE AT ALL, and this disagrees at both ends. Adopted, because unlike the hardiness-zone case the coverage argument does not apply: Clemson is not failing to cover 100 days, it is stating the crop takes 120-180, which IS a claim about the low end. The regional direction also cuts against the old number - South Carolina should finish parsnip FASTER than the corpus's audience, and it reports longer. STILL FLAGGED: one regional source for a duration that varies with climate is thin, and no second source was found. UMN's carrot-and-parsnip page and Illinois Extension's parsnip page were both fetched and read 2026-07-26 and STATE NO DTM AT ALL. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Parsnips' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ]
        }
      }
    },
    {
      "id": "abelmoschus_esculentus",
      "common": [
        "okra"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Okra_(Abelmoschus_esculentus)_Feb_2019._DSC_0060_01.jpg",
        "artist": "ADARSHluck",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "An okra plant with a cream-coloured flower"
      },
      "family": "malvaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "lifespan": "annual",
      "habit": "stalk",
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.8
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        50,
        65
      ],
      "mature_height_cm": [
        90,
        180
      ],
      "mature_spread_cm": [
        45,
        60
      ],
      "spacing_in_row_cm": 45,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "cultivar_groups": [
        {
          "id": "standard",
          "common": "standard okra",
          "habit": "stalk",
          "mature_height_cm": [
            120,
            185
          ],
          "mature_spread_cm": [
            45,
            60
          ],
          "spacing_in_row_cm": 45,
          "days_to_maturity": [
            50,
            65
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "low",
          "note": "Full-height upright types (Clemson Spineless, Cajun Delight); Illinois puts these at 3-6 ft."
        },
        {
          "id": "dwarf",
          "common": "dwarf okra",
          "habit": "stalk",
          "mature_height_cm": [
            75,
            150
          ],
          "mature_spread_cm": [
            40,
            55
          ],
          "spacing_in_row_cm": 38,
          "days_to_maturity": [
            50,
            65
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "low",
          "note": "Dwarf/basal-branching types (Annie Oakley) at 2.5-5 ft for small beds - the case the species note flagged, where a full-height plan is wrong."
        }
      ],
      "note": "Heat-loving Southern staple; wants warm soil and a long hot season, tall and upright at maturity. Malvaceae — its own rotation family, unrelated to the big-three.\nHEIGHT IS PUBLISHED, unlike every spread in the 2026-07-25 pass, and three sources agree on the band: Illinois puts a standard okra at 3-6 ft and dwarf cultivars at 2.5-5 ft, and UGA's variety table gives four named cultivars at 4-5 ft. The corpus's 90-180 cm (3-5.9 ft) sits inside all of that WITHOUT being quoted from any of it - it is wider at both ends than UGA's table and matches Illinois's standard range almost exactly - so the flag stays under D-146. What would clear it is a decision to adopt one published band verbatim, which is a number change, not a citation.\nWorth noting for the small-bed case: Illinois names DWARF okra cultivars (Annie Oakley, basal-branching types) at 2.5-5 ft. CLOSED 2026-08-28: this species now carries cultivar_groups (standard, dwarf), so a gardener choosing a dwarf okra is no longer planned as a full-height one. The group heights are general-knowledge estimates inside the sourced species band, not quoted verbatim - the same standing as the other group blocks. (Pear's absent semi-dwarf group is the same shape and still open.)\n",
      "confidence": {
        "estimated": [
          "mature_height_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Okra' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Okra' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.8 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_height_cm": [
            "Illinois Extension, 'Okra' (Home Vegetable Gardening), extension.illinois.edu/gardening/okra (read 2026-07-25): 'The hibiscus-like flowers and upright plant (3 to 6 feet or more in height) have ornamental value for backyard gardens', and on the compact types, 'Choose one of the dwarf or basal-branching varieties, such as Annie Oakley, that grow only 2-1/2 to 5 feet tall.' 3-6 ft is 91-183 cm, which is the corpus's 90-180 cm almost exactly - but it is a range 'or more', and the corpus figure is not quoted from it. [read]",
            "UGA Extension Circular 941, 'Home Garden Okra', fieldreport.caes.uga.edu/publications/C941 (read 2026-07-25): a suggested-variety table giving heights per cultivar - 'Annie Oakley II' 4.5 ft, 'Burgundy' 4 ft, 'Cajun Delight' 4 ft, 'Clemson Spineless' 4 to 5 ft. Also 'Space rows 3-feet apart; sow seeds 1-inch deep and 4- to 6-inches apart within the row', thinning to 1.5-2 ft. THE VARIETY TABLE IS THE FORM docs/VERIFY-QUEUE.md said would settle a dwarf-tree height and could not be found for peach - it exists for okra, and its span (122-152 cm) is NARROWER than the corpus's 90-180 cm at both ends. [read]",
            "Clemson HGIC, 'How to Grow Okra in South Carolina', hgic.clemson.edu/factsheet/okra (read 2026-07-25): describes a 'tall, upright growth habit' and gives NO height figure at all, while stating spacing - 'Rows: 3 to 6 feet apart', 'Plants: 9 to 12 inches apart'. Recorded as the third publication read: two of three state a height, which is the opposite ratio to the spread pass. [read]"
          ]
        }
      }
    },
    {
      "id": "cucurbita_maxima",
      "common": [
        "winter squash",
        "hubbard",
        "kabocha",
        "buttercup"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Cucurbita_2018_G1.jpg",
        "artist": "George Chernilevsky",
        "licence": "Public domain",
        "alt": "A pile of winter squashes and pumpkins",
        "caption": "C. maxima spans many winter squashes and pumpkins."
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "ber_susceptible": true,
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        85,
        110
      ],
      "mature_height_cm": [
        30,
        30
      ],
      "mature_spread_cm": [
        200,
        400
      ],
      "spacing_in_row_cm": 120,
      "pollination": {
        "mode": "insect",
        "monoecious": true
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "note": "The large winter squashes (hubbard, kabocha, buttercup), completing the three cultivated Cucurbita (with pepo and moschata). A long-season sprawling vine; cucurbitaceae, counts toward the cucurbit rotation (R-011).\nSPREAD STILL ESTIMATED AFTER TWO READS (2026-07-25). Four cucurbits, eight publications, and not one states a vine spread; every page states spacing and stops. That is now a finding about the literature rather than about these pages: home-garden extension guides tell a gardener how far apart to plant, because that is the decision the gardener makes, and the mature footprint of a sprawling vine is not a number they publish. The corpus's 200-400 cm is bracketed by Clemson's large-vined spacing (3-5 ft in rows 6-8 ft) but stated by nobody.\nClemson does state one thing worth keeping even though no field holds it: \"Pumpkins have many important feeder roots near the surface and roots grow to about the same spread as vines\" (hgic.clemson.edu/factsheet/pumpkins-winter-squash, read 2026-07-25, weed-control section). A read source for roots reaching roughly 1x the canopy on a sprawling cucurbit. It lives in the note and NOT in confidence.sources, because this species has no root_spread_multiplier and a citation keyed to a field that does not exist is exactly what E-CONF-REF refuses - correctly. Whether the field should exist here is a corpus decision nobody has made.\n",
      "cultivar_groups": [
        {
          "id": "buttercup_kabocha",
          "common": "buttercup / kabocha",
          "habit": "vine",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            200,
            350
          ],
          "spacing_in_row_cm": 100,
          "days_to_maturity": [
            85,
            100
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Buttercup and kabocha types - medium, sweet, dense-fleshed, a good keeper on a somewhat more compact and shorter-season vine than hubbard. The everyday eating winter squash of this species, and the closest to the species defaults."
        },
        {
          "id": "hubbard",
          "common": "hubbard",
          "habit": "vine",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            300,
            450
          ],
          "spacing_in_row_cm": 120,
          "days_to_maturity": [
            95,
            110
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Large hard-shelled storage squash (Blue / Green Hubbard). A big, long-season sprawling ground-run vine and an excellent long keeper - the widest footprint of the ordinary (non-giant) types."
        },
        {
          "id": "giant",
          "common": "giant / show pumpkin",
          "habit": "vine",
          "mature_height_cm": [
            40,
            50
          ],
          "mature_spread_cm": [
            500,
            800
          ],
          "spacing_in_row_cm": 300,
          "days_to_maturity": [
            110,
            130
          ],
          "support": {
            "provides": "none",
            "requires": "none"
          },
          "ground_coverage": "high",
          "note": "Atlantic Giant and competition show pumpkins - enormous fruit on a very long, very late vine; wants roughly 50-60 sq ft per plant and is grown for size, not storage. Modelled so the footprint gate greys it out of small beds rather than silently substituting."
        }
      ],
      "confidence": {
        "estimated": [
          "bloom_window",
          "mature_spread_cm",
          "ph_range",
          "cultivar_groups.buttercup_kabocha.mature_height_cm",
          "cultivar_groups.buttercup_kabocha.mature_spread_cm",
          "cultivar_groups.buttercup_kabocha.days_to_maturity",
          "cultivar_groups.buttercup_kabocha.spacing_in_row_cm",
          "cultivar_groups.hubbard.mature_height_cm",
          "cultivar_groups.hubbard.mature_spread_cm",
          "cultivar_groups.hubbard.days_to_maturity",
          "cultivar_groups.giant.mature_height_cm",
          "cultivar_groups.giant.mature_spread_cm",
          "cultivar_groups.giant.days_to_maturity",
          "cultivar_groups.giant.spacing_in_row_cm"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Squash, Winter' -> 1' = 2.5 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "bloom_window": [
            "INFERRED FROM SOWING DATE PLUS THIS RECORD'S OWN DTM, NOT READ OFF A PAGE, hence `estimated`. A tender cucurbit is sown after the last frost and killed by the first; a flower necessarily precedes its fruit, and a monoecious/andromonoecious cucurbit keeps setting flowers while the plant lives. So bloom opens inside early summer and ends with frost. NO SOURCE READ DATES FIRST BLOOM FOR THIS SPECIES and that was searched for (Clemson HGIC and UMN Extension crop pages, 2026-08-01). DELIBERATELY THE SAME WINDOW AS THE OTHER TENDER CUCURBITS despite days_to_maturity ranging 45-110 across them: DTM measures FRUIT DEVELOPMENT, not time to first flower - a winter squash ripening at 110 days is not flowering 50 days later than a zucchini. Spreading these apart by DTM would invent precision no source supports. A source dating first bloom would replace this and could clear the flag. [searched]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Squash - winter, summer' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "Clemson HGIC, 'Pumpkins & Winter Squash', hgic.clemson.edu/factsheet/pumpkins-winter-squash (read 2026-07-25): 'Plant bush or short-vined varieties 2 to 3 feet apart in rows 3 to 5 feet apart'; 'Large-vined varieties should be planted 3 to 5 feet apart in rows that are 6 to 8 feet apart'; a giant pumpkin wants '50 to 60 square feet per plant'. NO vine length or spread figure for an ordinary winter squash. The large-vined spacing brackets the corpus's 200-400 cm without stating it. [read]",
            "UMN Extension, 'Growing pumpkins and winter squash in home gardens', extension.umn.edu/vegetables/pumpkins-and-winter-squash (read 2026-07-25): 'Pumpkins and winter squash vines run, or grow along, the ground and take up a lot of space'; 'Plant pumpkin and winter squash seeds three-fourths of an inch deep, 24 to 36 inches apart'; 'Spacing between rows should be 5 to 6 feet', with the closer in-row figure for bush types. 'Take up a lot of space' is as close as it comes to a dimension. Fourth cucurbit read in this pass and the fourth with no published spread. [read]"
          ]
        }
      }
    },
    {
      "id": "brassica_rapa",
      "common": [
        "turnip"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Turnips_in_a_field.jpg",
        "artist": "Miya",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Turnips growing in the ground with their leafy tops"
      },
      "family": "brassicaceae",
      "category": "root",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "root",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        40,
        60
      ],
      "mature_height_cm": [
        30,
        40
      ],
      "mature_spread_cm": [
        15,
        20
      ],
      "spacing_in_row_cm": 10,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "Fast brassica root (the greens are edible too). Brassicaceae, so it counts toward the brassica rotation (R-012) and shares clubroot/brassica pressure — not a rotation loophole. Brassica rapa, distinct from the cole crops (B. oleracea) and rutabaga (B. napus).\nSPREAD ESTIMATED after three reads (2026-07-25). Same root-crop distinction as radish: every page gives a thinning distance for the ROOT (3-6 in UMN, 2-4 in Illinois, 3-4 in USU) and none gives a top width, and the corpus's 15-20 cm is the top. Note the three thinning bands disagree with each other by a factor of two, which is itself a reason not to promote any of them into a spread.\nTHE ASIAN GREENS ARE THIS SPECIES (2026-07-25). Bok choy and napa cabbage are Brassica rapa too - UMN gives the binomials outright, `B. rapa chinensis` and `B. rapa pekinensis` - so they are cultivar groups here rather than new species, and they inherit R-012's brassica rotation and the clubroot pressure that goes with it. UMN's own planting advice says the same thing in gardener's terms: plant them where you have not grown cabbage, broccoli, cauliflower, turnips, rutabaga or Brussels sprouts in four years. Clemson still calls bok choy \"Brassica chinensis\", an older name for the same plant; the corpus follows the current binomial and records the disagreement rather than silently picking.\n",
      "cultivar_groups": [
        {
          "id": "turnip",
          "common": "turnip",
          "habit": "root",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            15,
            20
          ],
          "spacing_in_row_cm": 10,
          "days_to_maturity": [
            40,
            60
          ],
          "note": "The species' own envelope - the unqualified default, repeating its numbers with zero new assertion."
        },
        {
          "id": "bok_choy",
          "common": "bok choy",
          "habit": "rosette",
          "mature_height_cm": [
            15,
            30
          ],
          "mature_spread_cm": [
            30,
            45
          ],
          "spacing_in_row_cm": 30,
          "days_to_maturity": [
            40,
            60
          ],
          "note": "Bok choy / pak choi - Brassica rapa chinensis, the same species as the turnip and grown for the leaf stalks rather than the root. HEIGHT is UMN's, stated per type (dwarf \"only six inches tall\", full-sized \"a foot tall\"); spacing is UMN's thinning figure. DAYS TO MATURITY IS THE TURNIP'S and is flagged: UMN says only that bok choy is \"quicker to mature\" than Chinese cabbage, which is a comparison, not a number, and Clemson gives none.\n"
        },
        {
          "id": "napa_cabbage",
          "common": "napa cabbage",
          "habit": "rosette",
          "mature_height_cm": [
            30,
            40
          ],
          "mature_spread_cm": [
            30,
            45
          ],
          "spacing_in_row_cm": 40,
          "days_to_maturity": [
            60,
            60
          ],
          "note": "Chinese / napa cabbage - Brassica rapa pekinensis, a heading form of the same species. UMN's \"about two months to mature\" is the DTM, taken as stated; Clemson's \"eighteen inches apart for napa types\" is the spacing, which is wider than bok choy's and is why the two are separate groups rather than one \"Asian greens\" entry. Height and spread are flagged - neither source states either for this form, and the figures are carried from the heading habit this species' turnip tops already show.\n"
        }
      ],
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "cultivar_groups.bok_choy.days_to_maturity",
          "cultivar_groups.bok_choy.mature_spread_cm",
          "cultivar_groups.napa_cabbage.mature_height_cm",
          "cultivar_groups.napa_cabbage.mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Turnip' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Turnips' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. Bok choy and napa cabbage are cultivar groups of this species and Table B-1 names neither; the turnip row is what the floor rests on. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.5 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "cultivar_groups.bok_choy.mature_height_cm": [
            "UMN Extension, 'Growing Chinese cabbage and bok choy in home gardens', extension.umn.edu/vegetables/growing-chinese-cabbage-and-bok-choy (read 2026-07-25): bok choy is 'Brassica rapa chinensis'; dwarf varieties are 'only six inches tall' and full-sized ones 'a foot tall'. 15-30 cm is those two figures as a range, STATED rather than derived - which is why the height is not flagged while the spread beside it is. [read]"
          ],
          "cultivar_groups.bok_choy.spacing_in_row_cm": [
            "UMN Extension, same page (read 2026-07-25): 'Plant three seeds every 12 inches for dwarf varieties, or every 18 inches for full-sized heads', then 'thin to one plant every 12 to 18 inches'. 30 cm is the bottom of that thinning band. [read]"
          ],
          "cultivar_groups.bok_choy.days_to_maturity": [
            "NO SOURCE READ STATES A BOK CHOY DTM. UMN (read 2026-07-25) says only that bok choy is 'quicker to mature' than Chinese cabbage - a comparison, not a number - and Clemson's Chinese-vegetables factsheet gives none for it either (read 2026-07-25; it names 'Joi-Choi' and 'Mei Qing Choi' with no days). 40-60 is the TURNIP's figure carried across inside the species, an internal analogy, and flagged as one. Being quicker than a two-month napa is consistent with it, which is corroboration of a band, not a statement of one. [read]"
          ],
          "cultivar_groups.bok_choy.mature_spread_cm": [
            "No source read states a bok choy's width; 30-45 cm is inferred from UMN's own 12-18 in thinning band, i.e. the room it is given rather than the room it fills - the distinction the whole 2026-07-25 spread pass turned on. Flagged. [read]"
          ],
          "cultivar_groups.napa_cabbage.days_to_maturity": [
            "UMN Extension, same page (read 2026-07-25): Chinese cabbage takes 'about two months to mature'. Taken as stated - two months as 60 days - so the field is not flagged. [read]"
          ],
          "cultivar_groups.napa_cabbage.spacing_in_row_cm": [
            "Clemson HGIC, 'Chinese Vegetables', hgic.clemson.edu/factsheet/chinese-vegetables (read 2026-07-25): 'eighteen inches apart for napa types'. 40 cm rounds that 45.7 cm down to the band UMN's 12-18 in thinning also reaches; the two sources agree at the wide end, which is why napa is a separate group from bok choy rather than sharing its spacing. [read]"
          ],
          "cultivar_groups.napa_cabbage.mature_height_cm": [
            "NO SOURCE READ STATES A NAPA CABBAGE'S HEIGHT OR SPREAD. UMN gives heights for bok choy and none for Chinese cabbage (read 2026-07-25); Clemson gives neither. Both figures are carried from elsewhere in this species and flagged. Recorded so the next reader does not re-check the same two pages. [read]"
          ],
          "cultivar_groups.napa_cabbage.mature_spread_cm": [
            "See the height citation on this group: unstated by both sources read, carried, flagged. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing turnips and rutabagas in home gardens', extension.umn.edu/vegetables/growing-turnips-and-rutabagas (read 2026-07-25): 'Plant seeds one to two inches apart in rows 18 to 30 inches apart'; 'Thin turnips to a spacing of three to six inches between plants'; harvest 'about two to three inches in width', which is the ROOT. No top-growth height or plant spread figure. [read]",
            "Illinois Extension, 'Turnip' (Home Vegetable Gardening), extension.illinois.edu/gardening/turnip (read 2026-07-25): 'Allow 12 to 24 inches between rows'; 'Thin turnip seedlings to 2 to 4 inches apart when they are four inches tall'; 'turnips should be 2 to 3 inches in diameter' at harvest. No mature plant spread or width. [read]",
            "USU Extension, 'How to Grow Rutabagas and Turnips in Your Garden', extension.usu.edu/yardandgarden/research/rutabagas-and-turnips-in-the-garden (read 2026-07-25): 'Thin turnips 3-4 inches between plants in rows 12-18 inches apart.' Explicitly no mature plant height, width or spread for either crop. Third publication read for a turnip top width without finding one; the three thinning bands (2-4, 3-4 and 3-6 in) also disagree by about a factor of two. [read]"
          ]
        }
      }
    },
    {
      "id": "brassica_napus",
      "common": [
        "rutabaga",
        "swede"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Steckr%C3%BCbe_(Brassica_napus_subsp_rapifera).jpg",
        "artist": "Garitzko",
        "licence": "Public domain",
        "alt": "A rutabaga root"
      },
      "family": "brassicaceae",
      "category": "root",
      "sowing_depth_cm": 1.3,
      "lifespan": "biennial",
      "habit": "root",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.2,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        90,
        110
      ],
      "mature_height_cm": [
        30,
        40
      ],
      "mature_spread_cm": [
        20,
        25
      ],
      "spacing_in_row_cm": 20,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "none",
      "note": "A long-season storage root (swede); sweetens after frost. Brassicaceae, so it counts toward the brassica rotation (R-012). Brassica napus, distinct from the turnip (B. rapa) and the cole crops (B. oleracea).\nSPREAD ESTIMATED after two reads (2026-07-25), and this is the closest coincidence in the batch: UMN thins rutabagas to eight inches, which is 20 cm, the exact bottom of this species' spacing_in_row_cm 20 and of the 20-25 cm spread. It is still a thinning distance for the root, not a measurement of the top, and USU's figure for the same crop is 4-6 in - half of UMN's. A coincidence between a corpus number and one source's spacing is not a source for the number.\n",
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Rutabaga' -> 0.5' = 1.3 cm. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Rutabaga' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.2. 6.2 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing turnips and rutabagas in home gardens', extension.umn.edu/vegetables/growing-turnips-and-rutabagas (read 2026-07-25): 'Plant seeds one to two inches apart in rows 18 to 30 inches apart'; 'Thin rutabagas to an eight-inch spacing'; of the crop itself only 'The roots can be quite large', with no dimensions. Eight inches is 20 cm and matches the bottom of the corpus's 20-25 cm exactly - but it is the room the ROOT is given, and no top width appears on the page. [read]",
            "USU Extension, 'How to Grow Rutabagas and Turnips in Your Garden', extension.usu.edu/yardandgarden/research/rutabagas-and-turnips-in-the-garden (read 2026-07-25): 'thin rutabagas, spacing them 4-6 inches between plants in rows 18 inches apart'; harvest when roots 'reach 4 inches in diameter'. Explicitly no mature plant height, width or spread. Its thinning figure is HALF of UMN's for the same crop, which is why UMN's coincidence with 20 cm cannot be treated as a source for it. [read]"
          ]
        }
      }
    },
    {
      "id": "allium_fistulosum",
      "common": [
        "scallion",
        "green onion",
        "bunching onion"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:HK_SYP_Best_of_Best_Vegetable_Peking_Welsh_onion_Allium_Aug-2012.JPG",
        "artist": "Genmewcaugsa",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Bunches of scallions with white shafts and green tops"
      },
      "family": "amaryllidaceae",
      "category": "allium",
      "sowing_depth_cm": 1.3,
      "lifespan": "annual",
      "habit": "stalk",
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        60,
        80
      ],
      "mature_height_cm": [
        30,
        45
      ],
      "mature_spread_cm": [
        8,
        10
      ],
      "spacing_in_row_cm": 5,
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "note": "Bunching onion grown for the green stalks, not a bulb — so unlike onion it is not daylength-gated. Amaryllidaceae → breaks the big-three rotation (R-013). Perennial and clump-forming if left, but grown here as a quick annual scallion crop.\nSPREAD ESTIMATED, and UMN's figure is an order of magnitude tighter (2026-07-25): scallions are thinned to ONE INCH, because they are pulled before crowding matters. The corpus's 8-10 cm is a grown plant's leaf fan, not the row it is raised in, and the two diverge here more than in any other species in this pass. Neither is wrong; the crop is harvested before it reaches the number the corpus carries.\n",
      "confidence": {
        "estimated": [
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Penn State Extension, York County Master Gardener, 'Vegetable Seed Planting Guide' (extension.psu.edu/programs/master-gardener/counties/york/vegetable-guides/vegetable-seed-planting-guide, fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the column 'Inches deep to sow seeds', row 'Onion, Bunching' -> 0.5' = 1.3 cm. THIS ROW IS THIS SPECIES AND NOT allium_cepa. The table has no plain 'Onion' row, so allium_cepa carries NO depth from this source - the automated matcher's error was to give it this one. THE JOIN FROM THAT ROW TO THIS SPECIES WAS MADE BY HAND. An earlier attempt to map the table by name-token overlap produced demonstrable errors (it gave beet the Swiss chard figure, gave onion the bunching-onion row, and matched false indigo BUSH to the bean rows), so every row here was read against the species list one at a time. PROVENANCE CAVEAT: the PDF carries no extractable text layer via ordinary tools in this container; values were read by decompressing its content streams directly, and sanity-check against horticultural expectation (corn deepest, celery and lettuce shallowest). [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Onions - green, bulb, scallions' gives target pH 6.5, and the second column, 'Target lime when pH falls below', gives 6.0 - WHICH THIS CORPUS ALREADY HAD. The value does not move; it acquires a source and a flag. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 7.0 is this corpus's own figure. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing scallions in home gardens', extension.umn.edu/vegetables/growing-scallions-home-gardens (read 2026-07-25): 'Sow seeds in a two-inch wide band, one-fourth to one-half inch deep, in rows 12 to 18 inches apart'; 'After seedlings emerge, thin to one plant every inch'; transplants go 'in the furrow one inch apart'. NO mature plant width, spread or height for scallions - the page says to 'Pull scallions when they have reached usable size' and gives no size. One inch of thinning against the corpus's 8-10 cm spread is the widest gap in this pass, and it is explained by the crop being harvested young rather than by either figure being wrong. [read]"
          ]
        }
      }
    },
    {
      "id": "citrullus_lanatus",
      "common": [
        "watermelon"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Watermelon_Fruit_at_Bobonong_Farms.jpg",
        "artist": "MmaBaggio",
        "licence": "CC0",
        "licence_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
        "alt": "Whole striped watermelons"
      },
      "family": "cucurbitaceae",
      "category": "fruiting_vegetable",
      "sowing_depth_cm": 2.5,
      "ber_susceptible": true,
      "lifespan": "annual",
      "habit": "vine",
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "ph_range": [
        5.5,
        6.8
      ],
      "frost_tolerance": "tender",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        80,
        100
      ],
      "mature_height_cm": [
        30,
        30
      ],
      "mature_spread_cm": [
        200,
        400
      ],
      "spacing_in_row_cm": 120,
      "pollination": {
        "mode": "insect",
        "monoecious": true
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_summer",
        "late_summer"
      ],
      "note": "Heat-loving sprawling vine that needs a long warm season; cucurbitaceae, counts toward the cucurbit rotation (R-011).\nTHE SPREAD IS STILL ESTIMATED AFTER TWO READS (2026-07-25). USU and Clemson both state SPACING and neither states a vine spread or plant width - which turns out to be the pattern for vine crops, not an accident of these two pages. Spacing is not spread: growers set vines closer than they run and let them interlock, so a spacing figure is a floor on the ground a plant is given, not a measure of the ground it covers. Worth knowing before anyone \"corrects\" this number, because mature_spread_cm feeds the R-002 area sum: 400 cm treated as an exclusive circle reserves about 12.6 m2 per plant, where Clemson's own spacing works out to 2.8-4.5 m2 and its rule of thumb to 2.2 m2. That gap is a question about how the engine spends spread, not a demonstration that 200-400 cm is wrong, and it is recorded rather than acted on.\n",
      "confidence": {
        "estimated": [
          "bloom_window",
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "sowing_depth_cm": [
            "Clemson HGIC, 'Watermelons', hgic.clemson.edu/factsheet/watermelons (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'If starting from seed, plant the seed about 1 inch deep.' = 2.5 cm. A PER-CROP PUBLISHED FIGURE, so unflagged - unlike the class-rule entries elsewhere in this field. Source 1 (Penn State's chart) deliberately gave this species nothing: it has no Watermelon row, and its bare 'Melons' row could not be told apart from 'Cantaloupe & Melons'. [read]"
          ],
          "bloom_window": [
            "INFERRED FROM SOWING DATE PLUS THIS RECORD'S OWN DTM, NOT READ OFF A PAGE, hence `estimated`. A tender cucurbit is sown after the last frost and killed by the first; a flower necessarily precedes its fruit, and a monoecious/andromonoecious cucurbit keeps setting flowers while the plant lives. So bloom opens inside early summer and ends with frost. NO SOURCE READ DATES FIRST BLOOM FOR THIS SPECIES and that was searched for (Clemson HGIC and UMN Extension crop pages, 2026-08-01). DELIBERATELY THE SAME WINDOW AS THE OTHER TENDER CUCURBITS despite days_to_maturity ranging 45-110 across them: DTM measures FRUIT DEVELOPMENT, not time to first flower - a winter squash ripening at 110 days is not flowering 50 days later than a zucchini. Spreading these apart by DTM would invent precision no source supports. A source dating first bloom would replace this and could clear the flag. [searched]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Watermelon' gives target pH 6.2, and the second column, 'Target lime when pH falls below', gives 5.5. 5.5 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.8 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "USU Extension, 'How to Grow Watermelon in Your Garden', extension.usu.edu/yardandgarden/research/watermelon-in-the-garden (read 2026-07-25): 'Plant 4-6 seeds in mounds 4 feet apart'; 'Transplants should be planted 2 feet apart in the row with rows 4-6 feet apart.' It states NO vine spread, vine length or plant width anywhere - the closest quantity on the page is spacing, which is not the same claim. [read]",
            "Clemson HGIC, 'Watermelons', hgic.clemson.edu/factsheet/watermelons (read 2026-07-25): 'rows spaced 6 to 8 feet apart'; 'Plants should be spaced 5 to 6 feet apart within the row'; 'A rule of thumb is to allow 24 square feet per plant.' Also states no vine length. The 24 sq ft allowance (2.2 m2) is the only published AREA figure found for a watermelon plant and it is far below the 12.6 m2 that a 400 cm spread implies as a circle - see the species note before treating either as wrong. [read]"
          ]
        }
      }
    },
    {
      "id": "malus_domestica",
      "common": [
        "apple"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Red_Apple.jpg",
        "artist": "Abhijit Tembhekar from Mumbai, India",
        "licence": "CC BY 2.0",
        "licence_url": "https://creativecommons.org/licenses/by/2.0",
        "alt": "A single ripe red apple"
      },
      "family": "rosaceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "tree",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        200,
        800
      ],
      "mature_spread_cm": [
        200,
        600
      ],
      "root_spread_multiplier": 2.0,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        5.0,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        2,
        6
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": true,
        "min_cultivars": 2
      },
      "support": {
        "provides": "strong",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring"
      ],
      "juglone_sensitive": true,
      "ground_entity": "radial_rings",
      "gates": [
        "R-080",
        "R-020"
      ],
      "cultivar_groups": [
        {
          "id": "standard_rootstock",
          "common": "standard tree",
          "habit": "tree",
          "mature_height_cm": [
            200,
            800
          ],
          "mature_spread_cm": [
            200,
            600
          ],
          "support": {
            "provides": "strong",
            "requires": "none"
          },
          "note": "The species' own envelope across seedling/semi-standard rootstocks - the unqualified default."
        },
        {
          "id": "dwarf_rootstock",
          "common": "dwarf tree",
          "habit": "tree",
          "mature_height_cm": [
            200,
            300
          ],
          "mature_spread_cm": [
            200,
            300
          ],
          "support": {
            "provides": "strong",
            "requires": "strong"
          },
          "note": "A rootstock class, not a scion group: a dwarfing rootstock - M9, Bud9 and M26 - holds any apple cultivar to roughly 2-3 m and leaves it poorly anchored, so the tree needs a permanent stake.\nROOT SPREAD (sourced 2026-07-25, and three things came out of it - this is the reference entry; pear, plum and peach carry the same 2.0 and point here).\n(1) The published figures are UPPER BOUNDS, not typical values: Illinois says \"up to 3 times the canopy spread\" in one post and \"up to four times (possibly more)\" in another. 2.0 sits inside both and is quoted by neither, so the flag stays under D-146.\n(2) THE PUBLISHED FIGURE IS SOIL-DEPENDENT and this field cannot express that. Illinois gives 0.5x the canopy width in heavy clay and up to 5x in sand - a TENFOLD range driven by soil texture, which the corpus stores as a single scalar per species. A number that varies by soil is not a species constant, and the honest fix is not a better number: it is either a soil input the engine does not have, or a documented decision that one figure stands for all soils.\nRESOLVED 2026-07-25 (D-150, maintainer): ONE FIGURE STANDS FOR ALL SOILS, and the flag says so. A texture-keyed map was the alternative and was rejected for the reason D-149 gives about pH: the two ENDPOINTS are published (0.5x clay, 5x sand) and the middle is NOT, so a map would have had to invent a value for loam - the most commonly declared texture - exactly the way a repeated [6.0, 7.0] once stood in for thirty-three researched pH ranges. Inventing the middle to make a schema look complete is the failure this corpus exists to avoid. The scalar stays, permanently flagged, with the published range recorded here; the flag is not a to-do, it is the answer. This paragraph is the canonical one - pear, plum and peach cite it by reference.\n(3) NOTHING IN THE ENGINE READS THIS FIELD. Checked across corpus/, engine/, web/ and e2e/ on 2026-07-25: no rule triggers on it, no placement or footprint code resolves it, no golden contains it. Its only appearance is the Why page's flagged-numbers list, where it renders as \"how far the roots reach past the canopy\". So the flag is honest and drives no output - worth knowing before anyone spends effort refining the value.\nM26 was excluded from this class on 2026-07-24 and PUT BACK on 2026-07-25. The exclusion rested on a search summary saying M26 makes a larger tree and is staked early rather than for life. Read directly, UGA Circular 740 groups M 9 and M 26 together as its dwarf rootstocks and states the support requirement for the class, with no early-only caveat and no separate tier. A read source outranks a summary of one, including when the summary was the basis for a decision made here the day before.\nThe numbers CORROBORATE but are not quoted: UGA gives a band, not a figure, and 200-300 cm sits inside it. So the fields stay ESTIMATED - a number derived from a published band is not a number the publication states, and the corpus marks the difference. What IS now confirmed from a read source is the staking requirement, which UGA states outright. The quotes, the publication and the read date are in confidence.sources (D-146).\n"
        }
      ],
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "root_spread_multiplier",
          "cultivar_groups.dwarf_rootstock.mature_height_cm",
          "cultivar_groups.dwarf_rootstock.mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'Apple (Malus pumila)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=28&PlantTypeID=11 (read 2026-07-26): USDA Hardiness Zone '3 - 9'. THE FLOOR CONFIRMS THE CORPUS EXACTLY. THE CEILING CONTRADICTS IT, and was deliberately NOT adopted: HortAnswers publishes a COLD-hardiness range - where the tree survives winter - while this corpus gates hardiness_zone two-sided, so its warm end also carries the chill requirement an apple has. Widening to 9 would offer apples in Houston, which is the exact bug prunus_cerasus produced from a faithfully quoted source (ISSUES #13). The field stays [3, 8] and stays FLAGGED, because the ceiling is still ours. Note the page names the species Malus pumila, a synonym of this corpus's malus_domestica. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Apple 5.0-6.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. THE FLOOR MOVES A LONG WAY - 6.0 to 5.0 - and that makes R-099 quieter on apples than it has been. UConn is per-crop and UMD's fruit page is a blanket band, and per-crop wins here for the same reason UMD's vegetable table beat UF/IFAS's blanket band in P1a. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "root_spread_multiplier": [
            "Illinois Extension, 'Clearing misconceptions around tree roots' (Ryan Pankau, The Garden Scoop, 2024-01-27), extension.illinois.edu/blogs/garden-scoop/2024-01-27-clearing-misconceptions-around-tree-roots (read 2026-07-25): a tree's root system is 'estimated to be up to 3 times the canopy spread, with some studies finding even larger root systems based on soil conditions'; in heavy clay 'often only 0.5 times the canopy width'; in sand 'up to 5 times the canopy spread'. Also: 'Over 90% of tree root biomass occurs in the upper 18 inches of soil, with almost 50% of that biomass concentrated into the upper 6 inches of soil', and 'most of the roots are concentrated around the dripline'. THE PUBLISHED FIGURE IS SOIL-DEPENDENT and the corpus's 2.0 is a single scalar that cannot express that - see the note. An extension blog post by a named extension educator, not a peer-reviewed paper or a factsheet; recorded as what it is. [read]",
            "Illinois Extension, 'Where the tree roots grow' (Emily Swihart, Good Growing, 2026-06-05), extension.illinois.edu/blogs/good-growing/2026-06-05-where-tree-roots-grow (read 2026-07-25): 'The reach of tree roots has been observed to spread up to four times (possibly more) as wide as the canopy', with roots 'typically located in the upper eighteen inches of soil, although some species develop tap roots that penetrate deeper into the soil profile.' A second Illinois source, a wider ceiling than the first (4x vs 3x), and the same shape of claim: an upper bound, not a typical value. Also an extension blog post. [read]"
          ],
          "cultivar_groups.dwarf_rootstock.mature_height_cm": [
            "UGA Extension Circular 740, 'Home Garden Apples' (Westerfield, reviewed July 2022), fieldreport.caes.uga.edu/publications/C740 (read 2026-07-25): 'True dwarf trees will be about 30 to 40 percent as large as standard trees', measured against a standard seedling rootstock that 'may get to be 20 ft tall or taller'. A BAND, not a figure: 200-300 cm sits inside it without being quoted from it, so the field stays estimated (D-146). [read]",
            "M9 'produces a tree 8-10 feet in height' (244-305 cm) and Bud9 trees 'when mature stand only seven to eight feet tall' (213-244 cm) are where 200-300 cm came from, but both reached this corpus through search-engine summaries and neither page was fetched. NOT a citation - recorded so the number's origin is not lost. See docs/VERIFY-QUEUE.md. [search]"
          ],
          "cultivar_groups.dwarf_rootstock.mature_spread_cm": [
            "UGA Extension Circular 740, 'Home Garden Apples' (Westerfield, reviewed July 2022), fieldreport.caes.uga.edu/publications/C740 (read 2026-07-25): 'True dwarf trees will be about 30 to 40 percent as large as standard trees.' The figure is a proportion of overall tree SIZE, not a spread measurement; no source read so far states a dwarf apple's spread on its own, and the corpus mirrors the height band here. Estimated stands. [read]"
          ],
          "cultivar_groups.dwarf_rootstock.support.requires": [
            "UGA Extension Circular 740, 'Home Garden Apples' (Westerfield, reviewed July 2022), fieldreport.caes.uga.edu/publications/C740 (read 2026-07-25): true dwarf trees 'require support by either a trellis or a post', and the dwarf rootstocks UGA names are M 9 and M 26 - no early-only caveat, no separate tier. The one field in this group a read source states outright rather than corroborating a derived number. [read]"
          ]
        }
      }
    },
    {
      "id": "pyrus_communis",
      "common": [
        "pear",
        "European pear"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Avocado_Pear_fruit_hanging_on_a_pear_plant.jpg",
        "artist": "Treysam",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Green pears hanging on the tree"
      },
      "family": "rosaceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "tree",
      "hardiness_zone": [
        4,
        8
      ],
      "mature_height_cm": [
        300,
        600
      ],
      "mature_spread_cm": [
        250,
        450
      ],
      "root_spread_multiplier": 2.0,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        3,
        8
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": true,
        "min_cultivars": 2
      },
      "support": {
        "provides": "strong",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring"
      ],
      "ground_entity": "radial_rings",
      "gates": [
        "R-076",
        "R-080"
      ],
      "note": "A pome fruit tree like apple, and a canopy alternative in the fruit-tree guild. Mostly self-incompatible, so plant two cultivars for fruit set (R-080).\nNO DWARF GROUP, deliberately (2026-07-25). A quince_rootstock group asserting a 2.5-3.5 m pear was added 2026-07-24 and removed the next day when the claim was checked against extension sources: there are no commercially available dwarfing rootstocks for pear, the home-planting stock is seedling, quince is graft-incompatible with the varieties an American nursery sells, and dwarf pears do not yet exist. A US home gardener buying \"a pear\" gets a standard or semi-dwarf tree, so the species carries one envelope and the small-space fruit guild prices pear honestly as the big tree it is. If a semi-dwarf group is ever wanted, it is a NEW claim with its own numbers - not this one restored.\nThose sources were RE-FETCHED on 2026-07-25, because the original round was read before the [read]/[search] convention existed and recorded no page, no date and no provenance - so none of it met D-146's bar. Penn State, UMaine and WSU are now read citations in confidence.sources. UC's quince page could NOT be re-fetched: it returns 403 from this container, like the Riesselman primary, so UC's fire-blight and alkaline-tolerance points are not carried as citations at all. WSU covers the winter-hardiness and graft-incompatibility halves by direct read and does not discuss fire blight.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "root_spread_multiplier",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'European and Asian Pear (European - Pyrus communis L.; Asian - P. pyrifolia)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=29&PlantTypeID=11 (read 2026-07-26): USDA Hardiness Zone '4 - 9'. FLOOR CONFIRMED EXACTLY; CEILING CONTRADICTED AND NOT ADOPTED, for the reason recorded on malus_domestica - it is a cold-hardiness figure and this field's warm end does chill work. Stays [4, 8], stays FLAGGED. WEAKER THAN IT LOOKS, and recorded as such: the page covers European AND Asian pear together, so its single range is not necessarily a figure about Pyrus communis alone. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Pear 6.0-7.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "root_spread_multiplier": [
            "Same two Illinois Extension posts read for malus_domestica on 2026-07-25 (Pankau, 'Clearing misconceptions around tree roots', The Garden Scoop 2024-01-27; Swihart, 'Where the tree roots grow', Good Growing 2026-06-05), quoted in full there: roots reach 'up to 3 times the canopy spread' / 'up to four times (possibly more) as wide as the canopy', and the figure is SOIL-DEPENDENT - 0.5x in heavy clay, up to 5x in sand. Neither post is pear-specific and neither states 2.0, so this is a genus-general claim standing in for a species number, which is why the flag stays. See malus_domestica's note for the full reasoning, including that nothing in the engine reads this field. [read]"
          ],
          "mature_height_cm": [
            "Penn State Extension, 'Fruit Cultivars and Rootstocks' (publication uj255), extension.psu.edu/publications/uj255 (read 2026-07-25): 'Unlike apples, there are no commercially available rootstocks for pear trees'; 'Pears are sometimes grafted onto hybrid rootstocks developed from crossing Old Home and Farmingdale varieties'; 'The most common pear rootstock in home plantings is seedling.' It states NO height figure - it is cited here because it is why this species carries ONE envelope and no dwarf group, not because it sizes the tree. [read]",
            "UMaine Cooperative Extension, 'Rootstocks and Dwarf Fruit Trees' (Growing Fruit Trees in Maine), extension.umaine.edu/fruit/growing-fruit-trees-in-maine/rootstocks-and-dwarf-fruit-trees (read 2026-07-25): 'Dwarf types are widely available for most varieties of apple and sweet cherry, but not for pear.' No height or spread figure for pear appears on the page. One wrinkle kept rather than hidden: the same page says 'Dwarf apple and pear trees have weak roots and will not support themselves once they bear fruit' - a sentence about a tree it has just said is not available for pear. It does not change support.requires here, because this corpus models no dwarf pear. [read]",
            "WSU Tree Fruit, 'Rootstocks for Pear', treefruit.wsu.edu/web-article/pear-rootstocks (read 2026-07-25): quince 'is not compatible as a rootstock for many varieties of pear such as Bartlett, Bosc, Forelle, Packham, Triumph, Winter Nellis and Eldorado', and of quince generally, 'Most varieties are not winter hardy making it a poor choice for the Pacific Northwest'; on the stock recommended instead, 'OHxF 87 makes a tree slightly smaller than Bartlett on seedling root. It is considered a semi-dwarf tree.' Read on 2026-07-25 to stand in for UC's quince page, which 403s from this container - it confirms the incompatibility and winter-hardiness points directly and DOES NOT discuss fire blight, so that part of the 2026-07-24 claim remains uncited. [read]"
          ],
          "years_to_bearing": [
            "UMaine Cooperative Extension, 'Rootstocks and Dwarf Fruit Trees' (Growing Fruit Trees in Maine), extension.umaine.edu/fruit/growing-fruit-trees-in-maine/rootstocks-and-dwarf-fruit-trees (read 2026-07-25): 'Semi-dwarf apple trees and most pear trees begin to bear fruit four to five years after planting.' The corpus's 3-8 years brackets that. The field is not flagged and this does not change it. [read]"
          ]
        }
      }
    },
    {
      "id": "prunus_domestica",
      "common": [
        "plum",
        "European plum"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Damson_plum_fruit.jpg",
        "artist": "Jonathan Billinger",
        "licence": "CC BY-SA 2.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/2.0",
        "alt": "Purple plums ripening on the branch"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "tree",
      "hardiness_zone": [
        4,
        8
      ],
      "mature_height_cm": [
        300,
        500
      ],
      "mature_spread_cm": [
        250,
        450
      ],
      "root_spread_multiplier": 2.0,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        3,
        6
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": false
      },
      "support": {
        "provides": "strong",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring"
      ],
      "ground_entity": "radial_rings",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "A stone fruit like peach — Prunus, a Verticillium host and itself susceptible (R-094) — and another canopy alternative in the fruit-tree guild. Many European plums are self-fruitful, though some cultivars set better with a pollinizer.\nTHE SPECIES SPREAD IS ESTIMATED AND NO SOURCE STATES IT (checked 2026-07-25). UMaine Bulletin #2034, the one publication read for this species, gives HEIGHT only. 250-450 cm is the corpus's own figure, and the honest end state may be a permanent estimate rather than a citation - the 2026-07-25 pass across 21 species found that home-garden extension publications state spacing and height and almost never state canopy width.\n",
      "cultivar_groups": [
        {
          "id": "standard_rootstock",
          "common": "standard tree",
          "habit": "tree",
          "mature_height_cm": [
            300,
            500
          ],
          "mature_spread_cm": [
            250,
            450
          ],
          "support": {
            "provides": "strong",
            "requires": "none"
          },
          "note": "The species' own envelope on vigorous plum rootstocks - the unqualified default."
        },
        {
          "id": "dwarf_rootstock",
          "common": "dwarf tree",
          "habit": "tree",
          "mature_height_cm": [
            240,
            370
          ],
          "mature_spread_cm": [
            240,
            370
          ],
          "support": {
            "provides": "strong",
            "requires": "strong"
          },
          "note": "A rootstock class, not a scion group: a Citation-class dwarfing rootstock (a peach-plum hybrid) holds a European plum to roughly 8-12 ft, and the tree wants a permanent stake. Named for the US home grower on purpose - this group first said \"Pixy\", which is a UK stock an American nursery will not sell them.\nRead the framing before trusting the number, and note which source says what: UMaine Bulletin #2034 is why a dwarfing plum stock is the exception rather than the norm, UC ANR is the source for the sizes, and #2034 does not mention Citation at all. Both are in confidence.sources with their quotes and their provenance (D-146).\nThe numbers stay ESTIMATED, and the provenance is uneven: the UMaine sentences were read off the page, the UC sizes came from a search summary of it rather than a direct read. A human reading UC's rootstock page is what would settle the 8-12 ft.\nThe SPREAD is weaker still than the height. UC's 8-12 ft is a height figure, and no source found states a Citation-class plum's canopy spread at all, so this group mirrors its own height band - the field is estimated for that reason, not merely for UC's provenance.\n"
        }
      ],
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "root_spread_multiplier",
          "mature_spread_cm",
          "cultivar_groups.dwarf_rootstock.mature_height_cm",
          "cultivar_groups.dwarf_rootstock.mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'Plums (European - Prunus domestica; Japanese - P. salicina)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=494&PlantTypeID=11 (read 2026-07-26): USDA Hardiness Zone '4 - 9'. FLOOR CONFIRMED EXACTLY; CEILING CONTRADICTED AND NOT ADOPTED - see malus_domestica for the reasoning. Stays [4, 8], stays FLAGGED. SAME CAVEAT AS PEAR: the page covers European and Japanese plum together, and Japanese plum is the more heat-tolerant of the two, so a shared ceiling of 9 may be carried entirely by the species this entry does NOT model. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Plum 6.0-7.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "root_spread_multiplier": [
            "Same two Illinois Extension posts read for malus_domestica on 2026-07-25 (Pankau, The Garden Scoop 2024-01-27; Swihart, Good Growing 2026-06-05), quoted in full there: 'up to 3 times the canopy spread' / 'up to four times (possibly more) as wide as the canopy', and SOIL-DEPENDENT - 0.5x in heavy clay, up to 5x in sand. Genus-general, not plum-specific, and neither states 2.0. Note the tension with this species' own root_depth: medium and with R-094: a Verticillium reservoir is a SOIL volume, so how far a plum's roots actually reach is the question that decides how much ground a logged plum contaminates - a reason this field might one day need to drive something. See malus_domestica's note. [read]"
          ],
          "mature_spread_cm": [
            "NO SOURCE STATES A EUROPEAN PLUM'S CANOPY SPREAD. UMaine Cooperative Extension Bulletin #2034, 'Plum Production in Maine' (read 2026-07-25) is the one publication read for this species and it gives HEIGHT only - 'Plum tree height varies from six feet for weak trees in poor soil up to 16 feet for vigorous trees at the end of the shoot growth phase' - with no width anywhere. 250-450 cm is the corpus's own figure. Recorded as a negative rather than left blank, because the 2026-07-25 pass across 21 species established that extension publications state spacing and height and almost never state canopy width: this is the pattern, not an unfinished search. [read]"
          ],
          "cultivar_groups.dwarf_rootstock.mature_height_cm": [
            "UMaine Cooperative Extension Bulletin #2034, 'Plum Production in Maine' (read 2026-07-25): 'Few choices of rootstocks exist for plums, and most lack the size-controlling capability of dwarfing stocks', and 'As a result, plum trees are standard or semidwarf in size' - a dwarfing plum stock is the exception, not the norm. The bulletin does NOT name Citation or Marianna 2624 anywhere, so it cannot be cited for the sizes below; it gives the species' own range instead - 'Plum tree height varies from six feet for weak trees in poor soil up to 16 feet for vigorous trees at the end of the shoot growth phase'. [read]",
            "UC ANR, 'Plum Rootstock & Scion Selection': Citation, a peach-plum hybrid rootstock, 'produces dwarf trees (8 to 12 ft)' - 244-366 cm, which is this group's 240-370 cm envelope; the semi-dwarf Marianna 2624 'produces a semi-dwarf tree (10 to 15 ft)' sits above it. This reached the corpus through a search summary of the page, not a fetch of it, so it is the recorded ORIGIN of the number and NOT a citation. A human reading UC's rootstock page is what would settle the 8-12 ft. [search]"
          ]
        }
      }
    },
    {
      "id": "rubus_idaeus",
      "common": [
        "red raspberry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Raspberry_-_whole_(Rubus_idaeus).jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A ripe red raspberry"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "cane",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        120,
        180
      ],
      "mature_spread_cm": [
        60,
        100
      ],
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        5.0,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        1,
        2
      ],
      "support": {
        "provides": "none",
        "requires": "weak"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring"
      ],
      "ground_entity": "rect",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "Suckers vigorously; mature_spread is a managed row, not the plant's ambition. The verticillium_susceptible marker blocks establishment where Solanaceae recently grew (R-094).\n\"A managed row\" is now a read source's phrasing, not just ours (2026-07-25), and it comes with a figure the corpus does NOT match: UMN says to keep primocane spread within 12 inches of the row, i.e. 30 cm, where this species carries 60-100 cm. The corpus number tracks UMN's in-row PLANT spacing (2-3 ft) instead. Both are defensible - one is the width of the fruiting hedge a gardener maintains, the other the ground a plant is given.\nRESOLVED 2026-07-25 AS NO CHANGE, on the maintainer's approval, and the reason is that the two figures are on the SAME PAGE and would contradict each other: UMN says to space plants 2-3 ft apart AND to keep primocanes within 12 in of the row. Adopting 30 cm as the spread would have the planner pack raspberries at 30 cm - a third of the spacing UMN itself prescribes, and denser than any source supports. The 12-inch figure is a PRUNING instruction for the fruiting wall, not a packing dimension, and mature_spread_cm is what the placement fill packs on (footprint._spread_m takes the max of the range). So the flag stays, the citation records both numbers, and the number stands. Do not \"correct\" it downward to 30 cm later: that is this paragraph's whole purpose.\nIN NO GUILD, AND THE FRUIT-TREE ONE IS WHERE IT WOULD GO (2026-07-26). Raspberry meets temperate_fruit_tree_guild.insectary's stated predicate exactly - {pollinator_value: high, casts_shade: false} - and is deliberately not named among its alternatives. The reason is Verticillium, and it is structural rather than a matter of taste: that guild's canopy role admits prunus_persica and prunus_domestica, both carrying verticillium_host AND verticillium_susceptible, and so does this species. Naming raspberry there would make it the first guild in the corpus to co-plant two Verticillium hosts in one bed.\nTHE POINT THAT MAKES THIS WORTH WRITING DOWN: neither R-094 nor R-095 would catch it. R-094 fires on a prior SEASON's family and R-095 on a LOGGED prior planting - both are history rules, and neither looks at what a guild puts in the ground together in the same season. So the guild roster is the only thing standing between a gardener and that bed, and this paragraph is the roster's reason. If a same-bed co-planting check ever exists, this is the case it should be tested on.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "RESOLVED 2026-07-26 AS NO CHANGE, on the maintainer's approval, and recorded so this stops reading as an open question. [3, 8] STANDS. The reasoning is UMN's, above: hardiness here is rated PER CULTIVAR, so zone 3 is right for the hardiest varieties and Illinois's 4 is right for the species at large, and a species-level floor cannot say which. Narrowing to 4 would refuse raspberries to a zone-3 gardener that UMN says can grow them - trading a gate that is slightly loose for one that is wrong in the other direction. THE FLAG STAYS, because the number still cannot express what the source expresses; this is ISSUES #13's per-cultivar problem in miniature and should be revisited if that is ever settled. Do not 'correct' it upward to 4 later: that is this paragraph's whole purpose. [read]",
            "University of Illinois Extension, Hort Answers, 'Raspberry (Rubus ideaus and R. occidentalis)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=283&PlantTypeID=10 (read 2026-07-26): USDA Hardiness Zone '4 - 9'. THE ONLY SPECIES IN THIS PASS WHERE BOTH ENDS DIFFER, AND THE ONLY CONTRADICTION IN THE PERMISSIVE DIRECTION: the corpus claims hardiness to zone 3 where this source says 4, so the corpus offers raspberries somewhere a read source would not. Everywhere else in this pass the corpus is the more conservative of the two. Flagged for a human on that basis. Note the page covers red AND black raspberry together, while this entry models red only. [read]",
            "UMN Extension, 'Growing raspberries in the home garden', extension.umn.edu/fruit/growing-raspberries-home-garden (read 2026-07-26) RESOLVES IT, and in the same cultivar-dependent way peach's ceiling resolved: 'Raspberries can be grown successfully in most areas of Minnesota' - a state spanning zones 3 and 4 - and its variety table gives hardiness per CULTIVAR as 'zone 4 to zone 3' ratings rather than one figure for the species. It also warns that 'very few raspberry varieties are completely hardy in Minnesota' and to 'always choose varieties that are suitable for your zone'. So zone 3 is defensible for the hardiest cultivars and Illinois's 4 is defensible for the species at large. THE NUMBER STANDS at [3, 8] and the flag stays, because a species-level floor cannot express a per-cultivar answer. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Raspberry 5.0-6.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. The 5.6 floor this replaces was oddly precise for a number with nothing behind it, which the previous citation flagged as its own reason for distrust. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing raspberries in the home garden', extension.umn.edu/fruit/growing-raspberries-home-garden (read 2026-07-25): 'space red or yellow raspberry plants every 2 to 3 feet'; 'Set black and purple raspberries 4 feet apart'; 'Plant them 18 to 24 inches apart in moist soil'; and on row width, 'Allow new primocanes of red and yellow raspberries to spread along the row or in between plants but not wider than 12 inches.' NO figure for a mature plant's own spread. TWO published numbers bracket the corpus's 60-100 cm from opposite sides: the in-row spacing of 2-3 ft (61-91 cm) matches it closely, while the maintained row width of 12 in (30 cm) is a third of it. The corpus is tracking the spacing, not the managed hedge - see the note. [read]"
          ]
        }
      }
    },
    {
      "id": "rubus_fruticosus",
      "common": [
        "blackberry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Blackberry_(Rubus_fruticosus).jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A ripe blackberry"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "cane",
      "hardiness_zone": [
        5,
        9
      ],
      "mature_height_cm": [
        120,
        200
      ],
      "mature_spread_cm": [
        60,
        120
      ],
      "spacing_in_row_cm": 90,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        1,
        2
      ],
      "support": {
        "provides": "none",
        "requires": "weak"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring"
      ],
      "ground_entity": "rect",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "Blackberry — added 2026-07-26, and it took three attempts. Surveyed across seven land-grant publications and REFUSED, because every one of them omitted the single field E-ZONE requires of a perennial. Added now because an eighth publication was found, and the way it was found is the lesson: BOTH OSU URLS HAD BEEN RECORDED AS \"403 FROM THIS CONTAINER\" AND THE 403 WAS OURS. WebFetch was refused; `curl -sSL` returns HTTP 200 on the identical URL. A species was declined on a negative that was never true. When a fetch tool 403s, try another before recording an absence.\nTHE ZONE IS THE BEST-SOURCED IN THIS CORPUS AND IS STILL FLAGGED. OSU EC 1303 publishes a table of SIXTEEN NAMED CULTIVARS, each with its own range, which is what every other perennial in this corpus lacks. [5, 9] is not a union artifact spanning plants that do not exist: five cultivars carry exactly that range ('Caddo', 'Prime-Ark Freedom', 'Galaxy', 'Eclipse', 'Twilight'). It is the WIDEST published range, and narrower ones exist - 'Black Gem' 5-8, 'Marion' 6-9. Flagged for consistency with all 25 other perennial zones and because the ceiling's mechanism is still open (ISSUES #13), not because the number is weak.\nTHE VERTICILLIUM FLAGS ARE NOT ANALOGY TO RASPBERRY, which SPECIES-EXPANSION.md warned against by name for this species. Penn State's bramble page - already R-094's own cited source - says the disease \"affects mainly black raspberries and certain cultivars of blackberries\", naming this crop DIRECTLY and rating it above red raspberry, which \"can be affected, but plants are likely to survive for several years with reduced vigor\". Better provenance than rubus_idaeus's own.\nNO CULTIVAR GROUPS, THOUGH BLACKBERRY LOOKS LIKE THE TEXTBOOK CASE. The sources do not share a cane-type taxonomy: NC State groups semi-trailing WITH erect at 3-4 ft, Clemson groups it with trailing at 6-8 ft, Illinois puts it at 8-10 ft. Three read sources, three incompatible classifications of the same middle type. OSU's cultivar table cuts across type as well - 'Black Gem' is erect at zones 5-8 while 'Kiowa' is erect at 6-9 - so type does not predict zone either. Groups here would encode a taxonomy no source shares, which is the ruling endive and sour cherry both got.\nSPACING IS THE ERECT FIGURE, and it is the one dimension the sources agree on: 2-4 ft from both Illinois and Clemson independently, 3-4 ft from NC State and UMD, 3 ft from Iowa State. OSU gives 3-5 ft for TRAILING plants, which is a different type and is not what 90 cm represents.\nHEIGHT AND YEARS TO BEARING HAVE NO SOURCE IN EIGHT PUBLICATIONS. The one figure that looked like a height is not one: UGA says \"Cut these to a height of 40 to 42 inches in early summer to encourage lateral shoot development\" - a PRUNING INSTRUCTION, the same trap as raspberry's 12 inches, and caught only because this corpus had already recorded that trap.\nIN NO GUILD, FOR RASPBERRY'S REASON ONLY MORE SO (the expansion plan requires this be written rather than left silent). The only perennial guilds are the two fruit-tree ones, whose canopy role admits prunus_persica and prunus_domestica - both verticillium_host AND verticillium_susceptible, as is this species. Naming a bramble there would put two Verticillium hosts in one bed, and NEITHER R-094 NOR R-095 WOULD CATCH IT: both fire on prior-season or logged history, never on a same-bed pairing. The case is stronger here than for rubus_idaeus, because Penn State rates blackberry as MORE affected than red raspberry. See rubus_idaeus for the full reasoning and docs/GUILD-MEMBERSHIP.md for why guild membership is editorial rather than computed.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "ph_range",
          "root_depth",
          "feeder_class",
          "frost_tolerance",
          "pollinator_value",
          "ground_coverage",
          "bloom_window",
          "years_to_bearing",
          "support.requires"
        ],
        "sources": {
          "hardiness_zone": [
            "OSU Extension EC 1303, 'Growing blackberries in your home garden' (Bernadine Strik), catalog.extension.oregonstate.edu/sites/catalog/files/project/pdf/ec1303.pdf (read 2026-07-26) publishes a PER-CULTIVAR ZONE TABLE - sixteen named cultivars, each with its own range. Trailing: 'Marion' 6-9, 'Columbia Star' 5 or 6-9, 'Hall's Beauty' 6-9, 'Columbia Giant' 6-9, 'Boysen' 6-9, 'Logan' 6-9. Erect summer-bearing: 'Navaho' 5 or 6-9, 'Ouachita' 5 or 6-9, 'Caddo' 5-9, 'Kiowa' 6-9. Erect everbearing: 'Prime-Ark Freedom' 5-9, 'Black Gem' 5-8. Semierect: 'Triple Crown' 5 or 6-9, 'Galaxy' 5-9, 'Eclipse' 5-9, 'Twilight' 5-9. [read]",
            "WHY [5, 9] AND WHAT IT MEANS. It is the WIDEST published range, and it is NOT a union artifact: five of the sixteen cultivars carry exactly 5-9. Narrower cultivars exist and a gardener buying 'Black Gem' has a 5-8 plant, not a 5-9 one, so this species-level figure answers 'is there a blackberry for my zone' and not 'will this blackberry survive'. The page says so itself: 'Minimize risk by choosing types and cultivars that are adapted to your hardiness zone.' FLAGGED on that basis rather than on weakness - it is the best-sourced zone in this corpus and still cannot express what the source expresses. See ISSUES #13. [read]",
            "AND THE SAME PAGE STATES THE WARM-END MECHANISM R-076 HAS NEVER NAMED: 'Winter cold-hardy cultivars adapted to the colder regions of Oregon (such as zones 5 to 7), may not grow normally in regions of the Willamette Valley (zone 8) where winters are warmer and plants receive less winter chill.' A plant failing in a WARMER zone for want of chill, stated by a land-grant source and attributed to the cultivar. Recorded here because this species is where it was found; the rule question is ISSUES #13's. [read]"
          ],
          "verticillium_host": [
            "Penn State Extension, 'Bramble Disease - Verticillium Wilt' (Kathy Demchak), extension.psu.edu/bramble-disease-verticillium-wilt - ALREADY R-094's own cited source (read 2026-07-26): 'The disease affects mainly black raspberries and certain cultivars of blackberries. Red raspberries can be affected, but plants are likely to survive for several years with reduced vigor.' NAMES THIS CROP DIRECTLY and rates it MORE affected than red raspberry - so these flags rest on a sentence about blackberry rather than on analogy to the bramble already in the corpus, which is what SPECIES-EXPANSION.md warned against for this species by name. [read]"
          ],
          "verticillium_susceptible": [
            "Same Penn State page and same sentence. The two markers are set together because that sentence establishes both halves at once: a crop the disease 'affects' is a victim, and R-094's own claim text already treats 'raspberry or other bramble' as a soil reservoir. [read]"
          ],
          "ph_range": [
            "FOUR SOURCES, THREE DIFFERENT RANGES, which is why this is flagged. Clemson HGIC, 'Blackberry', hgic.clemson.edu/factsheet/blackberry (read 2026-07-26): 'a pH in the 6.0-6.5 range'. UGA Extension C766, 'Home Garden Raspberries and Blackberries' (read 2026-07-26): 'pH of 6.0 to 6.5' - INDEPENDENTLY IDENTICAL, which is why 6.0-6.5 was taken. Iowa State, 'Growing Blackberries in the Home Garden' (read 2026-07-26): 'well-drained soils with a pH of 6.0 to 6.7'. NC State, 'Blackberries for the Home Garden' (read 2026-07-26): 'a pH of 5.5 to 6.5'. THE FLOOR IS THE CONTESTED END - three sources say 6.0 and one says 5.5 - and the floor is the end R-099 fires on, so the disagreement reaches a gardener. [read]"
          ],
          "spacing_in_row_cm": [
            "THE ONE DIMENSION THE SOURCES AGREE ON, for ERECT blackberries: Illinois Extension, 'Growing Blackberries' (read 2026-07-26), 'spaced two to four feet apart in rows eight to ten feet apart'; Clemson, 'Erect varieties should be planted 2 to 4 feet apart in the row' - two sources, independently identical. NC State: 'Erect and semi-trailing blackberry plants should be planted about 3 to 4 feet apart'. UMD: 'blackberry plants 3-4 feet apart'. Iowa State: 'set 3 feet apart within the row'. 90 cm is 3 ft, the value all five brackets contain. NOT the trailing figure - OSU gives 'Space trailing plants 3 to 5 feet apart in the row' and USU 3-6 ft, a different type. [read]"
          ],
          "mature_height_cm": [
            "NO SOURCE IN EIGHT PUBLICATIONS STATES A MATURE HEIGHT, and the one figure that looks like one is not. UGA C766 (read 2026-07-26): 'New canes produced the second and succeeding seasons will be erect. Cut these to a height of 40 to 42 inches in early summer to encourage lateral shoot development.' A PRUNING INSTRUCTION, not a dimension - the identical trap as UMN's 12-inch primocane figure on rubus_idaeus, and caught only because that trap was already written down. Illinois notes erect canes 'may grow to 12 feet in Oregon, if left unpruned' via OSU. 120-200 cm is the corpus's own, scaled to the summer-tipped cane a home garden actually keeps. [read]"
          ],
          "mature_spread_cm": [
            "No source read gives a canopy width - the pattern the 21-species spread pass established, where extension publishes spacing and height and rarely width. 60-120 cm is the corpus's own and mirrors rubus_idaeus, whose spread carries the same shape of evidence. Like raspberry, this is a MANAGED ROW rather than the plant's ambition: OSU describes erect types as needing summer tipping and winter pruning, and Illinois says primocanes are kept to a fruiting wall. [read]"
          ],
          "years_to_bearing": [
            "Unstated by all eight publications. [1, 2] is the corpus's own and matches rubus_idaeus, on the shared floricane habit both sources describe - a primocane grows one season and fruits the next. That is a mechanism the sources DO state; the number of years to a full crop is not. [read]"
          ],
          "support.requires": [
            "TYPE-DEPENDENT, AND THE CORPUS MODELS ONE SPECIES, so `weak` is a compromise and is flagged. Iowa State states it by type: the erect type 'has upright, thorny canes that do not require support'; semi-erect types 'do require some support'; trailing 'require a support'. Two other sources say all types benefit without requiring: UMD, 'All bramble plants, including those that are described as self-supporting (erect), will benefit from a sturdy trellis'; NC State, 'All blackberries benefit from some sort of support'. `weak` matches rubus_idaeus and sits between 'none' for erect and 'strong' for trailing. [read]"
          ],
          "root_depth": [
            "Unstated by every source read. `medium` matches rubus_idaeus and is the corpus's own. [read]"
          ],
          "feeder_class": [
            "Unstated in this corpus's vocabulary. `moderate` matches rubus_idaeus and is the corpus's own. [read]"
          ],
          "frost_tolerance": [
            "Not stated as a class. The sources discuss cold hardiness by zone and by cultivar, not in this corpus's frost_tolerance vocabulary. `hardy` is derived from the zone-5 floor and is the corpus's own. [read]"
          ],
          "pollinator_value": [
            "Not stated. `high` is the corpus's own, consistent with the other Rubus. No source read discusses what bramble bloom offers pollinators as opposed to what pollinators do for the crop. [read]"
          ],
          "ground_coverage": [
            "Not stated. `moderate` matches rubus_idaeus and is the corpus's own. [read]"
          ],
          "bloom_window": [
            "NOT STATED BY ANY SOURCE READ. `late_spring` matches rubus_idaeus and is the corpus's own - exactly the kind of field that gets filled in by analogy and never questioned, so it is flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "fragaria_x_ananassa",
      "common": [
        "strawberry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Garden_strawberry_(Fragaria_%C3%97_ananassa)_single2.jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A ripe red strawberry"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "groundcover",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        15,
        30
      ],
      "mature_spread_cm": [
        30,
        45
      ],
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        5.8,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        1,
        2
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "moderate",
      "bloom_window": [
        "early_spring",
        "late_spring"
      ],
      "ground_entity": "rect",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "Spreads by runners into a matted row; mature_spread is one crown, not the planting's extent. verticillium_susceptible marks it a Verticillium victim (R-094): do not establish where Solanaceae recently grew. Extension also lists strawberry among the crops that BUILD the Verticillium reservoir for later plantings — modeling strawberry as a reservoir source is a separate rule-level follow-up (the rule triggers on Solanaceae only).\n\"One crown, not the planting's extent\" is exactly what a read source cannot confirm (2026-07-25): UMN publishes three spacings for three systems and no crown width, and it puts the runner problem in the gardener's hands rather than the plant's - up to 120 daughter plants from one crown in a season, so the planting's extent is whatever the gardener permits. 30-45 cm sits inside UMN's 12-18 in general spacing, which is the closest thing to corroboration available.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'Strawberry (Fragaria spp.)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=282&PlantTypeID=10 (read 2026-07-26): USDA Hardiness Zone '3 - 9'. FLOOR CONFIRMED EXACTLY; CEILING CONTRADICTED AND NOT ADOPTED, for the reason recorded on malus_domestica - a published zone range answers winter survival, while this field's warm end also carries a chill requirement. Stays [3, 8], stays FLAGGED. WEAKER THAN IT LOOKS: the page is about Fragaria spp. as a genus, not the garden strawberry F. x ananassa this entry models. [read]"
          ],
          "ph_range": [
            "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (read 2026-07-25): row 'Strawberries' gives target pH 6.2, and the second column, 'Target lime when pH falls below', gives 5.8. 5.8 is taken as the LOWER bound - it is the pH at which this crop's own extension service says to intervene, which is what a gate should key on. It is NOT a survival minimum and the citation does not claim one. NOTE THE FLOOR RISES, 5.5 to 5.8: this NARROWS the range rather than widening it, so a gate built on it will speak up sooner than the old unsourced figure would have. THE UPPER BOUND IS NOT FROM THIS SOURCE OR ANY OTHER READ. Table B-1 publishes no per-crop maximum for any crop, and neither does UF/IFAS HS1207, which gives one blanket band for all vegetables ('A pH-range from 5.5 to 7.0 is suitable for most vegetable crops'). 6.5 is this corpus's own figure, carried unchanged. Flagged because half the field is ours. See docs/SOIL.md. [read]"
          ],
          "mature_spread_cm": [
            "UMN Extension, 'Growing strawberries in the home garden', extension.umn.edu/fruit/growing-strawberries-home-garden (read 2026-07-25): 'Space plants 12 to 18 inches apart'; for a June-bearing matted row, 'Space plants 18 to 24 inches apart' with 'rows 3 to 4 feet apart'; for day-neutrals as ground cover, 'space the mother plants in a grid, either 1 x 1 foot or 2 x 2 feet'. NO crown width or spread figure. The corpus's 30-45 cm sits inside the 12-18 in general spacing (30-46 cm), which is as close as this gets. Also states why a species-level spread is the wrong question for the PLANTING: 'One June-bearing plant can produce up to 120 new daughter plants in one season', and 'Remove some of the runners throughout the season or your strawberry plants will take over your yard.' [read]"
          ]
        }
      }
    },
    {
      "id": "prunus_persica",
      "common": [
        "peach"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Autumn_Red_peaches.jpg",
        "artist": "Jack Dykinga, USDA",
        "licence": "Public domain",
        "alt": "A peach, whole and halved to show the pit"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "tree",
      "hardiness_zone": [
        5,
        8
      ],
      "mature_height_cm": [
        250,
        450
      ],
      "mature_spread_cm": [
        250,
        450
      ],
      "root_spread_multiplier": 2.0,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        2,
        4
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": false
      },
      "support": {
        "provides": "strong",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring"
      ],
      "ground_entity": "radial_rings",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "Stone fruit. verticillium_host marks it a reservoir SOURCE: a logged peach builds the Verticillium reservoir that later blocks a susceptible perennial (R-094), the third reservoir crop — with strawberry and bramble — that the Penn State source names alongside Solanaceae. verticillium_susceptible makes it a Verticillium victim too (R-094): do not establish where Solanaceae or a logged Verticillium host recently grew. Self-fruitful, unlike apple: one tree sets fruit, so no cross-pollination rule applies (R-080).\nThe 2.5-4.5 m envelope is a HOME-GARDEN peach and is deliberately not the biggest number in the literature. Checked 2026-07-25 after a USU figure of about 20 feet wide suggested it was too low: that figure is an unpruned tree on a standard rootstock, and standard rootstocks (Guardian, Halford, Nemaguard) run 24-30 ft. A garden peach is trained to an open-centre vase and pruned down, and semi-dwarf rootstocks (Sharpe, MP-29) spread 12-15 ft. 250-450 cm is 8-15 ft, which covers the pruned tree and the semi-dwarf stock, i.e. what a home gardener actually ends up with. Do not \"correct\" it upward to an orchard-standard spread; the planner would reserve ground for a tree nobody here grows. The three publications behind that reasoning are in confidence.sources (D-146).\n",
      "cultivar_groups": [
        {
          "id": "standard_seedling",
          "common": "standard tree",
          "habit": "tree",
          "mature_height_cm": [
            250,
            450
          ],
          "mature_spread_cm": [
            250,
            450
          ],
          "support": {
            "provides": "strong",
            "requires": "none"
          },
          "note": "The species' own envelope on a seedling peach rootstock - the unqualified default."
        },
        {
          "id": "genetic_dwarf",
          "common": "genetic dwarf",
          "habit": "tree",
          "mature_height_cm": [
            150,
            300
          ],
          "mature_spread_cm": [
            150,
            300
          ],
          "support": {
            "provides": "strong",
            "requires": "none"
          },
          "note": "A SCION group, not a rootstock class - the one place this corpus's dwarf trees differ in mechanism. Peach dwarfs by cultivar genetics ('Bonanza', 'Pix-Zee', 'Bonfire' and kin have compressed internodes), not by a dwarfing rootstock, so the tree keeps a normal root system. The no-stake call is the part that has since been checked and held: extension guidance says genetic dwarf fruit trees are sturdier and may not need staking, unlike the dwarf apple and plum, which are staked precisely because a rootstock made them badly anchored. The top of the range moved 2.5 -> 3 m because the sources disagree about how big these get - 'Bonanza' is cited at 5-6 ft while genetic dwarf peaches generally are put at 8-10 ft - and the wider envelope covers the disagreement instead of picking a side. Still ESTIMATED; a human reading a land-grant VARIETY table (not a rootstock chart - different document, different mechanism) is what would settle it.\nTHREE land-grant publications have now been read looking for a mature height for a named genetic dwarf peach and none carries one - the negatives are recorded in confidence.sources so the next person does not spend the hour again. Leaving this range estimated with the disagreement written down may be the honest end state rather than a gap awaiting a source.\n"
        }
      ],
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "root_spread_multiplier",
          "mature_spread_cm",
          "cultivar_groups.genetic_dwarf.mature_height_cm",
          "cultivar_groups.genetic_dwarf.mature_spread_cm",
          "ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'Peach (Prunus persica)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=30&PlantTypeID=11 (read 2026-07-26): USDA Hardiness Zone '5 - 8'. BOTH ENDS CONFIRM THE CORPUS EXACTLY - the ONLY zone in this corpus of which that is true, and a genuine surprise: peach was the species expected to be most wrong. The same page also states the cold mechanism outright, which no other zone here has: bud injury below -10 F and wood injury at -18 to -20 F are 'the major limiting factors in growing peaches in northern Illinois'. That is a sourced FLOOR mechanism. [read]",
            "AND A READ SOURCE CONTRADICTS THE CEILING ANYWAY, which is why this field stays FLAGGED despite both ends being confirmed. UGA Extension Circular 1063, 'Home Garden Peaches', fieldreport.caes.uga.edu/publications/C1063/home-garden-peaches (read 2026-07-26) supports peach growing across SOUTH GEORGIA, which reaches USDA zone 9, on low-chill cultivars: it names Flordadawn, Gulfcrest, Flordacrest, Flordaking and Gulfking as varieties needing under 600 chill hours and 'mostly grown in South Georgia', with Flordaguard and Sharpe rootstocks for the same region. It nowhere says peaches cannot be grown in the warmest part of the state. [read]",
            "WHAT THE DISAGREEMENT MEANS, and it is the most useful thing on this field: Illinois and UGA are BOTH right, about different cultivars. UGA's own note says the low-chill varieties 'will bloom very early if grown in middle and north Georgia with a large percentage of crop loss due to freeze damage' - so the zone ceiling of a peach is a property of the CULTIVAR, not of the species. Chill requirement is published in HOURS and ranges from under 200 to over 1000 across peach varieties. It therefore cannot be expressed in hardiness_zone at species level at all, and the corpus's own cultivar_groups layer is where it would belong (CLAUDE.md: groups exist because a Cucurbita pepo is a 4 m vine or an 80 cm bush depending on group). NOT ACTED ON HERE - that is a design decision for ISSUES #13, not a citation. The number stands. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-25): the Fruit table gives 'Peach 6.0-7.5'. BOTH ENDS FROM ONE SOURCE, which is better provenance than this corpus's usual shape of a published floor and a ceiling of its own. It is a soil-testing lab's per-plant handout and states no methodology, so it is recorded as what it is. THE SAME TABLE GIVES BLUEBERRY 4.5-5.5, independently matching UMD - which is the main reason to trust its fruit rows at all. [read]",
            "UMD Extension, 'Starting a Home Fruit Garden', extension.umd.edu/resource/starting-home-fruit-garden (read 2026-07-25) DISAGREES, and blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range' - the exception it names being blueberry. That band contradicts UConn's apple (5.0-6.5) and its pear, plum and peach (6.0-7.5) at one end or the other. The field stays FLAGGED because two read sources disagree; the corpus takes the per-crop figures because a table with a row for this plant says more than a sentence about fruit in general. [read]"
          ],
          "root_spread_multiplier": [
            "Same two Illinois Extension posts read for malus_domestica on 2026-07-25 (Pankau, The Garden Scoop 2024-01-27; Swihart, Good Growing 2026-06-05), quoted in full there: 'up to 3 times the canopy spread' / 'up to four times (possibly more) as wide as the canopy', SOIL-DEPENDENT from 0.5x in heavy clay to 5x in sand. Genus-general, not peach-specific, neither states 2.0, flag stays. Last of the four trees to be sourced, and all four carry the identical 2.0 from the identical evidence - which is itself the finding: this is one claim about trees, not four measurements of four species. See malus_domestica's note. [read]"
          ],
          "mature_spread_cm": [
            "UGA Extension Circular 1063, 'Home Garden Peaches' (Chavez & Cook, reviewed May 2018), fieldreport.caes.uga.edu/publications/C1063/home-garden-peaches (read 2026-07-25): 'Peach trees on Sharpe and on MP-29 rootstocks (semi-dwarf) will spread 12-15 feet, while standard trees will be twice the size (such as in Guardian, Halford, and Nemaguard rootstocks)', with spacing 'about 18-20 ft apart'. 12-15 ft is 366-457 cm, so the corpus's 250-450 cm covers the semi-dwarf tree; it is a SPREAD figure, the only read one for this species. [read]",
            "USU Extension peach growing guidance (read 2026-07-25): a standard peach 'usually grow about 20 feet wide and 15 feet tall' - 6.1 m against the corpus's 4.5 m ceiling. Checked and DID NOT move the number: it describes an unpruned tree on a standard rootstock. NOTE A GAP IN THIS CITATION - docs/VERIFY-QUEUE.md records the sentence as read but does not say which USU page it came from, so the publication is not identified here and should be re-fetched before anyone leans on it. [read]",
            "MU Extension G6030 (read 2026-07-25): 'Keep the tree low and manageable by cutting back all branches that exceed 7 to 8 feet in height' - the pruned home-garden tree the 250-450 cm envelope is scaled to, and the reason a 20-foot unpruned figure was not adopted. The publication's title was not recorded with the read; only its G-number is certain. [read]"
          ],
          "cultivar_groups.genetic_dwarf.mature_height_cm": [
            "'Bonanza' at 5-6 ft and genetic dwarf peaches generally at 8-10 ft are where 150-300 cm came from. Both are search-engine summaries, they DISAGREE with each other, and the envelope was widened to span exactly that disagreement rather than pick a side. NOT citations - the recorded origin of the number. [search]",
            "USU Extension, 'Ask an Expert - Dwarf Fruit Trees Bring Fruit to Small Spaces' (read 2026-07-25): names 'Bonanza', 'Pix Zee' and 'Bonfire' as genetic dwarf peaches and gives NO height for any of them. A negative result, recorded so it is not re-read. [read]",
            "USU Extension, 'How to Grow Peaches in Your Garden' (Dec 2016) (read 2026-07-25): has no genetic dwarf section at all. Second negative. [read]",
            "UGA Extension Circular 1063, 'Home Garden Peaches' (Chavez & Cook, reviewed May 2018), fieldreport.caes.uga.edu/publications/C1063/home-garden-peaches (read 2026-07-25): does not mention genetic dwarf cultivars at all - its smallest class is the semi-dwarf rootstocks Sharpe and MP-29. Third land-grant publication read for a genetic dwarf peach height, third that does not carry one. What would settle it is a nursery-independent VARIETY table. [read]"
          ],
          "cultivar_groups.genetic_dwarf.support.requires": [
            "USU Extension, 'Ask an Expert - Dwarf Fruit Trees Bring Fruit to Small Spaces' (read 2026-07-25): 'Genetic dwarf fruit trees are generally sturdier and may not require staking.' The one call in this group made from a read source about the MECHANISM rather than from a derived number, and the reason this group needs no stake while the dwarf apple and plum do. [read]"
          ]
        }
      }
    },
    {
      "id": "prunus_cerasus",
      "common": [
        "sour cherry",
        "tart cherry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Sour_cherry_3426.JPG",
        "artist": "Pollinator",
        "licence": "CC BY-SA 3.0",
        "licence_url": "http://creativecommons.org/licenses/by-sa/3.0/",
        "alt": "Red sour cherries on the branch"
      },
      "family": "rosaceae",
      "category": "fruit",
      "verticillium_host": true,
      "lifespan": "perennial",
      "habit": "tree",
      "hardiness_zone": [
        4,
        8
      ],
      "mature_height_cm": [
        250,
        460
      ],
      "mature_spread_cm": [
        250,
        450
      ],
      "root_spread_multiplier": 2.0,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        7.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": [
        2,
        5
      ],
      "pollination": {
        "mode": "insect",
        "self_incompatible": false
      },
      "support": {
        "provides": "strong",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring"
      ],
      "ground_entity": "radial_rings",
      "verticillium_susceptible": true,
      "gates": [
        "R-076",
        "R-094"
      ],
      "note": "Sour cherry — added 2026-07-26, and it is the first perennial in the Axis B remainder whose COLD end a publication actually states. Blackberry was surveyed first and declined over exactly this field: seven land-grant publications, not one giving a USDA zone. The difference is not luck. Cold hardiness is the limiting factor for stone fruit, so tree-fruit publications print a zone, while bramble publications write for their own state and have no reason to. Expect that split to hold for the rest of the perennial candidates.\nTHE FIRST DRAFT OVERCLAIMED THIS, and the correction is the most useful thing in the entry. It said the zone was STATED, BOTH ENDS, unflagged — \"which no other perennial in this arc has managed\". Illinois does print \"4 - 9\", so that read as sourced. But its 9 is a nursery COLD-hardiness figure and this corpus gates the field two-sided, making the warm end a chill-hour ceiling as well. Taken literally it made sour cherry the only canopy tree R-076 would offer in HOUSTON. test_hardiness_zone_gates_perennials caught it immediately and the test was not touched. The zone is now [4, 8], flagged, half-sourced like every other zone here — see the citation, which also records that R-076 names no mechanism for the ceiling it enforces (ISSUES.md).\nTHREE FIELDS ARE UNFLAGGED BECAUSE READ SOURCES STATE THEM AND AGREE: years_to_bearing, full sun (three sources), and self-fruitfulness (two). That last one matters beyond this species — self_incompatible: false means R-080 correctly does NOT fire, and it is stated rather than assumed: a single sour cherry sets fruit. UMN adds that \"a second compatible variety will ensure even better pollination and fruit set\", which is the same shape as blueberry's self-fertility note — one plant works, two work better — and is recorded so nobody later reads the false flag as a claim that a second tree is pointless.\nTHE VERTICILLIUM FLAGS ARE NOT ANALOGY, which SPECIES-EXPANSION.md warned against for exactly this species. verticillium_host rests on Penn State's already-cited sentence naming \"stone fruits\" as a category to avoid planting after — the same source and the same basis that carries peach and plum, applied to another member of the category it names. verticillium_susceptible rests on a page about this species specifically: Illinois lists \"Verticillium wilt (Verticillium dahliae)\" among sour cherry's diseases, naming the exact pathogen R-094 models.\nNO CULTIVAR GROUPS, AND THE REASON IS A DISAGREEMENT RATHER THAN AN ABSENCE. A genetic_dwarf group is the obvious follow-up — peach already has one, and the sources name sized cultivars ('North Star' dwarf, 'Meteor' semi-dwarf, 'Montmorency' full size). But the two read sources give the SAME cultivar different heights: UMD calls North Star a \"Genetic dwarf, reaches 6-12 ft\" while Iowa State says it \"commonly grows 8 to 10 feet tall\". A group exists to carry a number, and there is no agreed number to carry. The species band spans both instead.\nTHE HEIGHT IS THE PRUNED TREE, deliberately, and this is the peach ruling applied again. Illinois gives \"12-15 Feet (When pruned. Unpruned up to 50 ft)\" — a 50 ft figure that would have the planner reserve ground for a tree no home garden contains. 250-460 cm is roughly 8-15 ft, which spans the home-garden cultivars every source describes. Do not \"correct\" it upward toward the unpruned figure later.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "ph_range",
          "root_depth",
          "feeder_class",
          "frost_tolerance",
          "pollinator_value",
          "bloom_window"
        ],
        "sources": {
          "hardiness_zone": [
            "HALF-SOURCED, LIKE EVERY OTHER ZONE IN THIS CORPUS, and the first draft got it wrong in a way worth recording. University of Illinois Extension, Hort Answers, 'Sour Cherry (Prunus cerasus)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?plantid=489&planttypeid=11 (read 2026-07-26) states USDA Hardiness Zone '4 - 9'. The COLD END, 4, is taken from it. THE WARM END IS THE CORPUS'S OWN and diverges from the published figure on purpose. [read]",
            "WHY THE PUBLISHED 9 WAS NOT ADOPTED, and it is a failure mode this corpus had not met before - not an unsourced number, but a SOURCED number that means something different in this schema than in the publication. Illinois's range is a nursery COLD-hardiness range: it says where the plant survives winter. This corpus gates hardiness_zone TWO-SIDED (compiler._ineligibility: hz[0] <= zone <= hz[-1]), so the warm end here is a ceiling that also carries the chill-hour requirement a stone fruit has - work a cold-hardiness range does not do. Adopting 9 literally made sour cherry the ONLY canopy tree R-076 would offer in Houston (9a), a city with nowhere near the winter chill a sour cherry needs. Caught by test_hardiness_zone_gates_perennials on the first run after the guild change; the test was NOT touched. 8 matches every other fruit tree in the corpus (apple 3-8, pear 4-8, plum 4-8, peach 5-8) and blueberry's 7. FLAGGED, because it is ours.",
            "NOTE THE RULE DOES NOT DESCRIBE ITS OWN WARM HALF. R-076's mechanism reads 'Zones encode average annual minimum winter temperature, which governs whether a woody perennial survives to spring' - cold survival only. Nothing in the rule names a mechanism for the ceiling the engine actually enforces, and the justification for it lives in a test docstring ('too warm for every chill-hour tree') rather than in the corpus. That is an invariant-1 gap of the same shape as R-099's one-sidedness (D-149), filed in ISSUES.md rather than fixed here. Until it is resolved, EVERY warm end in this corpus is a number without a stated mechanism, and this one is flagged accordingly.",
            "UMN Extension, 'Growing stone fruits in the home garden' (read 2026-07-26) is consistent but does not settle the cold end: it discusses tart cherry varieties in terms of zones 3 to 4 for Minnesota growers. That is a recommendation about CULTIVARS for a state, not a species range, so it was not used to widen the field to 3. Recorded because it is the only reading that would argue for a colder end. [read]"
          ],
          "years_to_bearing": [
            "UMN Extension, 'Growing stone fruits in the home garden' (read 2026-07-26): 'Expect to get fruit 2 to 5 years after planting if you plant a 1 or 2-year-old tree.' STATED, both ends, and note the condition it carries - the range is measured from a nursery tree of a given age, not from seed. UNFLAGGED. [read]",
            "UMD Extension, 'Growing Stone Fruits in a Home Garden' (read 2026-07-26) corroborates the fast end for one cultivar: North Star is a 'Heavy producer bears in 2nd year.' A single cultivar, so it supports the floor without narrowing the range. [read]"
          ],
          "light_min": [
            "THREE SOURCES, INDEPENDENTLY, which is why this is unflagged: Illinois Hort Answers gives 'Full Sun'; Iowa State, 'Growing Cherries in the Home Garden', yardandgarden.extension.iastate.edu/how-to/growing-cherries-home-garden (read 2026-07-26), gives 'Sites must receive at least 8 hours of sun each day'; UMN gives 'Stone fruit trees need full sun to produce the most fruit.' Iowa State's is the only one that quantifies it. [read]"
          ],
          "pollination.self_incompatible": [
            "Iowa State (read 2026-07-26): 'Sour or tart cherries are self-fruitful.' UMN (read 2026-07-26): 'Of all stone fruits, tart cherries are the most self-fruitful, but a second compatible variety will ensure even better pollination and fruit set.' TWO READ SOURCES AGREEING, so the field is unflagged and R-080 does not fire. The UMN clause is kept because it qualifies without contradicting: one tree fruits, two fruit better - the same shape as blueberry, and not a reason to mark the species self-incompatible. [read]"
          ],
          "verticillium_host": [
            "Penn State Extension, 'Bramble Disease - Verticillium Wilt' (Kathy Demchak), extension.psu.edu/bramble-disease-verticillium-wilt - ALREADY R-094's own cited source: 'Avoid land recently planted with tomatoes, potatoes, eggplants, peppers, strawberries, raspberries, or stone fruits.' Sour cherry is a stone fruit, so this is a STATED CATEGORY applied to a member of it - the identical basis on which prunus_persica and prunus_domestica carry the marker. SPECIES-EXPANSION.md warned that these flags must not be set by analogy to raspberry, and they are not: the source names the category directly. [read]"
          ],
          "verticillium_susceptible": [
            "University of Illinois Extension, Hort Answers, 'Sour Cherry (Prunus cerasus)' (read 2026-07-26) lists 'Verticillium wilt (Verticillium dahliae)' among the diseases of this species, naming the exact pathogen R-094 and R-095 model. RECORDED AS WHAT IT IS: a disease-list entry on the species' own page, not a susceptibility statement with a mechanism or a ranking. It establishes that sour cherry gets the disease; it says nothing about how badly, and no source read compares cherry with peach or plum. [read]"
          ],
          "ph_range": [
            "UConn Soil Nutrient Analysis Laboratory, 'Plant pH Preferences', soiltesting.cahnr.uconn.edu/wp-content/uploads/sites/3514/2023/05/Plant-pH-Preferences.pdf (read 2026-07-26): the Fruit table row reads 'Cherry 6.0-7.5'. BOTH ENDS FROM ONE SOURCE, and consistent with the same table's plum and peach (both 6.0-7.5). NOTE THE PROVENANCE IS BETTER THAN THE EXISTING CITATIONS OF THIS DOCUMENT: WebFetch could not extract the PDF, so it was pulled from the file directly and this row was read off the actual table rather than from a page summary. The table is a lab handout stating no methodology, which is what it is recorded as. Do not confuse the row with 'Jerusalem Cherry 5.5-6.5' elsewhere in the same document - a different plant entirely (Solanum pseudocapsicum). [read]",
            "UMD Extension, 'Starting a Home Fruit Garden' DISAGREES at the top, blanket-wise: 'All other fruit plants will grow well in a 6.0 to 7.0 soil pH range.' The field stays FLAGGED because two read sources disagree, and the corpus takes the per-crop row over the general sentence - the same call made for apple, plum, peach and raspberry. [read]"
          ],
          "mature_height_cm": [
            "FOUR SOURCES, ALL PRUNED OR PER-CULTIVAR, none giving a species figure for an unmanaged tree that a home garden would ever contain. Illinois Hort Answers: '12-15 Feet (When pruned. Unpruned up to 50 ft)'. Iowa State: 'Northstar' is 'a dwarf tree that commonly grows 8 to 10 feet tall', 'Meteor' is 'a semi-dwarf tree. Trees may eventually reach 10 to 14 feet tall.' UMN: most varieties 'to 15 feet', some 'to 10 feet'. UMD: Montmorency 'reaches 15 ft. with a spreading habit', North Star a 'Genetic dwarf, reaches 6-12 ft'. 250-460 cm is 8-15 ft and spans the home-garden cultivars. THE 50 FT FIGURE WAS DELIBERATELY NOT ADOPTED - it is the unpruned tree, and taking it would reserve ground for a tree nobody grows. Same ruling as peach's, where a 20 ft unpruned spread was refused for the same reason. FLAGGED because every figure here is a cultivar's or a pruning outcome, not the species'. [read]"
          ],
          "mature_spread_cm": [
            "NO SOURCE READ GIVES A SPREAD. Four publications, and the closest any comes is UMD's 'Montmorency reaches 15 ft. with a spreading habit' - a habit word with no number. 250-450 cm mirrors prunus_persica, whose own spread carries the same shape of evidence, and is the corpus's own. This is the pattern the mature_spread_cm pass established across 21 species: extension publishes spacing and height, rarely canopy width. Iowa State gives the closest usable proxy and it is a SPACING instruction, not a width: 'Spacing between trees should be equal to their approximate mature height.' [read]"
          ],
          "root_depth": [
            "Unstated by every source read. `medium` matches the other stone fruits and is the corpus's own call. [read]"
          ],
          "feeder_class": [
            "Unstated. `moderate` matches peach and plum and is the corpus's own call. No source read gives a fertility requirement in terms this corpus's vocabulary can take. [read]"
          ],
          "frost_tolerance": [
            "Not stated as a class. The sources speak of cold hardiness in zones and cultivars, not in this corpus's frost_tolerance vocabulary, and `hardy` is the corpus's own reading of a zone-4 tree. The hardiness_zone field carries the sourced version of this fact; this one is derived from it. [read]"
          ],
          "pollinator_value": [
            "Not stated. `high` is the corpus's own call, consistent with the other insect-pollinated fruit trees. No source read discusses what cherry bloom offers pollinators as opposed to what pollinators do for the crop. [read]"
          ],
          "bloom_window": [
            "NOT STATED BY ANY SOURCE READ, and Illinois explicitly gives a harvest window ('June to early August') and no bloom time at all. `early_spring` matches the other stone fruits and is the corpus's own. Flagged accordingly - this is exactly the kind of field that would otherwise be filled in by analogy and never questioned. [read]"
          ]
        }
      }
    },
    {
      "id": "symphytum_x_uplandicum",
      "common": [
        "Russian comfrey"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Russian_Comfrey_(Symphytum_x_uplandicum)_in_flower_-_geograph.org.uk_-_6477153.jpg",
        "artist": "Evelyn Simak",
        "licence": "CC BY-SA 2.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/2.0",
        "alt": "A stand of Russian comfrey foliage"
      },
      "family": "boraginaceae",
      "category": "cover_crop",
      "lifespan": "perennial",
      "habit": "rosette",
      "cultivar_required": "bocking_14",
      "cultivar_reason": "Sterile. Seeding comfrey is permanent and unwelcome.",
      "hardiness_zone": [
        3,
        9
      ],
      "mature_height_cm": [
        90,
        120
      ],
      "mature_spread_cm": [
        90,
        90
      ],
      "root_depth": "deep",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "midsummer"
      ],
      "biomass_k_content": "high",
      "dynamic_accumulator_claim": {
        "grade": "D",
        "rule": "R-074"
      },
      "note": "Russian comfrey, and THE HYBRID IS THE WHOLE POINT (sourced 2026-07-26). `cultivar_required: bocking_14` and its reason were written here before there was evidence for them; there is now. UMN Extension, on Bocking comfrey as an orchard understory cover: \"Bocking comfrey is sterile and does not produce seeds\", and it \"grows in a clumped fashion and only spreads vegetatively when its roots are disturbed through cultivation or intentional cuttings.\"\nTHAT IS WHY THIS SPECIES IS SAFE IN A GUILD AND COMMON COMFREY WOULD NOT BE. The same page contrasts Symphytum officinale, \"often avoided because of the number of seeds it disperses, making it an aggressive spreader in Minnesota\"; Wisconsin files that species under weed identification. This corpus does not model it, and should not: the sterile hybrid is the plant a garden can host. UMN recommends exactly the placement this corpus already gives it - understory under fruit trees.\nSO COMFREY IS NOT A CONTAINMENT CASE, and ISSUES #14 was corrected to say so. It spreads VEGETATIVELY but not UNBIDDEN - it moves when you cut or till it, not on its own - which is the distinction that issue now turns on. A rule that flagged \"spreads\" rather than \"spreads unbidden\" would evict this plant from the guild an extension service recommends it for.\nREAD AS OF 2026-07-26: the planner prints `cultivar_required` and `cultivar_reason` on the role line that names this plant, in both fruit-tree guilds, pinned by an e2e check that assembles the expected sentence out of these two fields. Was: the field shipped to the browser in app-bundle.json and no engine, validator or screen consumed it, so a gardener was never told to buy Bocking 14 - while this note recorded that seeding comfrey is \"permanent and unwelcome\". ISSUES #14 keeps only the containment question: naming the safe FORM of a species is not the same as saying a plant needs a barrier.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "biomass_k_content"
        ],
        "sources": {
          "hardiness_zone": [
            "NO SOURCE FOUND, recorded so the search is not repeated (2026-07-26). NC State's Extension Gardener Plant Toolbox - which carries an explicit two-sided USDA range for every other perennial checked in this pass - HAS NO PAGE FOR THE HYBRID. It has one for Symphytum officinale, which is a DIFFERENT PLANT this corpus deliberately does not model (it seeds freely and Wisconsin files it under weed identification; see this species' note). Taking officinale's zone would be an inference across the very distinction that makes this species safe in a guild. UMN Extension's Bocking comfrey page, already cited in the note above and re-read 2026-07-26, states NO zone and no cold-hardiness claim of any kind. So [3, 9] is entirely the corpus's own at both ends, which is why the field stays flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "trifolium_repens",
      "common": [
        "white clover"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Trifolium_repens_flowers.jpg",
        "artist": "MurielBendel",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "White clover in flower"
      },
      "family": "fabaceae",
      "category": "cover_crop",
      "lifespan": "perennial",
      "habit": "groundcover",
      "hardiness_zone": [
        3,
        10
      ],
      "mature_height_cm": [
        10,
        15
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "n_fixed_kg_ha_season": [
        70,
        150
      ],
      "n_available_to_neighbors_same_season": "negligible",
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "late_summer"
      ],
      "confidence": {
        "sources": {
          "n_available_to_neighbors_same_season": [
            "R-014's EVIDENCE DOES NOT REACH THIS SPECIES, recorded so the connection is not made carelessly. Its three pointers - the Arkansas Three Sisters page, Hupe et al. 2021, and PMC5648690 - are about ANNUAL GRAIN LEGUMES intercropped with cereals: beans with corn, peas with cereals, soybean with maize. White clover in this corpus is a PERENNIAL LIVING MULCH under a fruit tree, which is a different system: the stand is not harvested and removed, it persists, and transfer from a living perennial understory is studied separately from grain-legume intercropping. Borrowing those numbers here would be an inference across the system boundary - the same move that made Illinois' cold-hardiness range wrong for sour cherry. 'negligible' is the corpus's own for this species and stays `contested`. A source that studies clover understories specifically would settle it; none has been read. [read]"
          ],
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Trifolium repens', plants.ces.ncsu.edu/plants/trifolium-repens/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 3a, 3b, 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b, 10a, 10b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) [read]"
          ]
        },
        "estimated": [
          "n_fixed_kg_ha_season"
        ],
        "contested": [
          "n_available_to_neighbors_same_season"
        ]
      }
    },
    {
      "id": "trifolium_incarnatum",
      "common": [
        "crimson clover"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Trifolium_incarnatum_field.jpg",
        "artist": "Nefronus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A field of crimson clover in bloom"
      },
      "family": "fabaceae",
      "category": "cover_crop",
      "lifespan": "annual",
      "habit": "groundcover",
      "mature_height_cm": [
        30,
        60
      ],
      "mature_spread_cm": [
        20,
        20
      ],
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "dtm",
      "days_to_maturity": [
        70,
        90
      ],
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring"
      ],
      "note": "Winter-kills at zone 4 and below. That is a cover crop working.",
      "confidence": {
        "estimated": [
          "bloom_window"
        ],
        "sources": {
          "bloom_window": [
            "SARE, 'Managing Cover Crops Profitably' - Crimson Clover, sare.org/publications/managing-cover-crops-profitably/legume-cover-crops/crimson-clover (read 2026-08-01): crimson clover is sown in late summer to bloom the following SPRING, overwinters as a winter annual, and needs moisture 'at least throughout April' to produce seed. Cultivar spread is real and is NOT modelled: AU ROBIN and FLAME bloom about two weeks ahead of full-season standards, AU SUNRISE one to three weeks earlier. THE SEASON LABEL IS OURS - the source gives a sowing rule and an April moisture requirement, not a bloom month - so late_spring is this corpus's reading and is flagged. [read]"
          ]
        }
      }
    },
    {
      "id": "lupinus_perennis",
      "common": [
        "wild lupine"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Lupinus_perennis_in_flower.jpg",
        "artist": "cassi saari",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Wild lupine with blue flower spikes"
      },
      "family": "fabaceae",
      "category": "cover_crop",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        30,
        60
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring"
      ],
      "native_range": "eastern_north_america",
      "note": "Native alternative to the invasive woody fixers. Prefers sandy, acidic soil.",
      "confidence": {
        "sources": {
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Lupinus perennis', plants.ces.ncsu.edu/plants/lupinus-perennis/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 3a, 3b, 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) [read]"
          ]
        }
      }
    },
    {
      "id": "amorpha_fruticosa",
      "common": [
        "false indigo bush"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Amorpha_fruticosa_05.JPG",
        "artist": "Dalgial",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "False indigo bush with a purple flower spike",
        "caption": "On some state noxious-weed lists — check your state before planting."
      },
      "family": "fabaceae",
      "category": "cover_crop",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        4,
        9
      ],
      "mature_height_cm": [
        180,
        360
      ],
      "mature_spread_cm": [
        150,
        300
      ],
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "weak",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "early_summer"
      ],
      "native_range": "north_america",
      "invasive_status": {
        "regions": [
          "EU",
          "western_US"
        ],
        "note": "Invasive outside its native range."
      },
      "confidence": {
        "estimated": [
          "bloom_window"
        ],
        "sources": {
          "bloom_window": [
            "Lady Bird Johnson Wildflower Center, 'Amorpha fruticosa (Indigo bush)', wildflower.org/plants/result.php?id_plant=amfr (read 2026-08-01): bloom period April, May, June. Illinois Extension, 'False Indigo - A Native Shrub for the Home Landscape' (read 2026-08-01) adds the detail that matters for forage: new florets mature slowly to give 'a continuous supply of nectar and pollen for up to about 3 weeks'. April-June straddles this corpus's late_spring/early_summer boundary, so the span covers both; the MAPPING from months to these season labels is ours, which is why it is flagged rather than the bloom period being uncertain. NOTE R-082: this species is a woody nitrogen fixer and its noxious-weed status governs whether it may ever be RECOMMENDED - a bloom window does not change that gate. [read]"
          ],
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Amorpha fruticosa', plants.ces.ncsu.edu/plants/amorpha-fruticosa/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) [read]"
          ]
        }
      }
    },
    {
      "id": "elaeagnus_umbellata",
      "common": [
        "autumn olive"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Elaeagnus_umbellata_(fruits).jpg",
        "artist": "Alpsdake",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "Red speckled autumn olive berries on the branch",
        "caption": "A regulated invasive in much of the US — check your state before planting."
      },
      "family": "elaeagnaceae",
      "category": "cover_crop",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        4,
        9
      ],
      "mature_height_cm": [
        300,
        600
      ],
      "mature_spread_cm": [
        300,
        600
      ],
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "fixer",
      "n_fixing": true,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "weak",
        "requires": "none"
      },
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "moderate",
      "status": "BLACKLISTED",
      "blacklist_rule": "R-082",
      "blacklist_reason": "The most-recommended nitrogen fixer in the permaculture fruit-tree-guild literature, and an aggressive bird-dispersed invasive across much of the eastern and midwestern United States. Present so the engine can refuse it by name, not so it can be planted.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone"
        ],
        "sources": {
          "hardiness_zone": [
            "NO HARDINESS ZONE FOUND, and it matters less here than what was found instead. Illinois Extension, 'Invasive Autumn Olive', extension.illinois.edu/invasives/invasive-autumn-olive (read 2026-07-26) gives no USDA zone at all, so [4, 9] is the corpus's own at both ends and stays flagged. [read]",
            "WHAT THE PAGE DOES GIVE IS THE CITATION R-082 NEVER HAD. 'Autumn olive is listed as an invasive plant in Illinois through the Illinois Exotic Weed Act' - a named state regulation, which is exactly the check CLAUDE.md requires before recommending any woody nitrogen fixer. The corpus already excludes this species from temperate_fruit_tree_guild's fixer role with exclusion_reason R-082; until now that exclusion rested on no fetched source. [read]",
            "AND THE PART WORTH KEEPING: THE PRACTICE THIS RULE FORBIDS WAS ONCE THE RECOMMENDATION. The same page records that autumn olive was 'once recommended to plant... next to crop plants, such as black walnut, as it could increase nitrogen in the soil by fixing it from the air', and that it is now understood that 'Because autumn olive is a nitrogen-fixing species, in infested areas it can affect water quality by leaching nitrates'. A permaculture-style pairing that extension itself promoted and then reversed is the strongest available argument for R-082 existing as a hard check rather than a caution - and for CLAUDE.md's rule that the state noxious list is consulted BEFORE a woody fixer is offered. [read]"
          ]
        }
      }
    },
    {
      "id": "achillea_millefolium",
      "common": [
        "yarrow"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Yarrow_(Achillea_millefolium).jpg",
        "artist": "Petar Milošević",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A white yarrow flower cluster"
      },
      "family": "asteraceae",
      "category": "flower",
      "lifespan": "perennial",
      "habit": "rosette",
      "hardiness_zone": [
        3,
        9
      ],
      "mature_height_cm": [
        45,
        90
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring",
        "late_summer"
      ],
      "drought_tolerance": "high",
      "confidence": {
        "estimated": [
          "hardiness_zone"
        ],
        "sources": {
          "hardiness_zone": [
            "University of Illinois Extension, Hort Answers, 'Common Yarrow (Achillea millefolium)', web.extension.illinois.edu/hortanswers/plantdetail.cfm?PlantID=698&PlantTypeID=2 (read 2026-07-26): USDA Hardiness Zone '3 - 9'. BOTH ENDS CONFIRM THE CORPUS EXACTLY - only the second field in this whole arc to do so, after prunus_persica, and the only one in the guild-support group with a structured zone source at all. NOTHING CONTRADICTS IT, which is also unlike peach. The flag is left in place for now only because the ceiling still has no stated MECHANISM (ISSUES #13) - that is a separate defect from provenance, and whether a fully sourced zone should stay flagged is a maintainer call, not Claude's. [read]"
          ]
        }
      }
    },
    {
      "id": "narcissus_spp",
      "common": [
        "daffodil"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Narcissus_flowers.jpg",
        "artist": "Uberprutser",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Yellow daffodils in bloom"
      },
      "family": "amaryllidaceae",
      "category": "flower",
      "lifespan": "perennial",
      "habit": "bulb",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        30,
        45
      ],
      "mature_spread_cm": [
        15,
        15
      ],
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "bloom_window": [
        "early_spring"
      ],
      "rodent_deterrence": {
        "grade": "C",
        "mechanism": "lycorine and related alkaloids; toxic, avoidance reported"
      },
      "confidence": {
        "estimated": [
          "hardiness_zone"
        ],
        "sources": {
          "hardiness_zone": [
            "NO SOURCE FOUND, recorded so the search is not repeated. Illinois Hort Answers - which carries a USDA zone for every fruit species checked in this pass - HAS NO NARCISSUS ENTRY. Illinois Extension's own bulb guide, extension.illinois.edu/flowers/bulbs (read 2026-07-26), discusses daffodils as an example of a tunicate bulb and states NO zone, NO chilling requirement, and nothing about which zones are too warm. So [3, 8] is entirely the corpus's own at both ends, which is why the whole field is flagged. The ceiling here would have to mean 'too warm to receive the winter chilling a narcissus needs to flower' - a mechanism no source read states. [read]"
          ]
        }
      }
    },
    {
      "id": "origanum_vulgare",
      "common": [
        "oregano"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Origanum_vulgare_inflorescence_-_Keila.jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "An oregano plant in pink flower"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        4,
        9
      ],
      "mature_height_cm": [
        30,
        45
      ],
      "mature_spread_cm": [
        45,
        45
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "volatile_aromatic": true,
      "bloom_window": [
        "midsummer"
      ],
      "note": "Perennial. Do not rotate (R-072).",
      "confidence": {
        "estimated": [
          "hardiness_zone"
        ],
        "sources": {
          "hardiness_zone": [
            "HALF-SOURCED, and flagged for it (corrected 2026-07-26, same day it was wrongly narrowed). NC State Extension Gardener Plant Toolbox, 'Origanum vulgare', plants.ces.ncsu.edu/plants/origanum-vulgare/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b'. THAT SUPPORTS THE FLOOR AND DOES NOT SETTLE THE CEILING. The Toolbox is a NORTH CAROLINA resource and its range is a subset of where a plant grows, not its limit - proven by Fragaria x ananassa, where the Toolbox gives 5a while UMN Extension states strawberries are 'winter hardy in USDA Zone 4' and survive Zone 3 under cover. So its bounds are positive evidence of growth AT those zones and not evidence of failure beyond them. The ceiling was briefly cut 9 -> 8 on this source alone; that was wrong and is reverted. 9 is the corpus's own and no read source states a warm end. [read]"
          ]
        }
      }
    },
    {
      "id": "thymus_vulgaris",
      "common": [
        "thyme"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Thyme-Bundle.jpg",
        "artist": "Evan-Amos",
        "licence": "CC0",
        "licence_url": "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
        "alt": "A bundle of fresh thyme sprigs"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "groundcover",
      "hardiness_zone": [
        5,
        9
      ],
      "mature_height_cm": [
        15,
        25
      ],
      "mature_spread_cm": [
        40,
        40
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "volatile_aromatic": true,
      "bloom_window": [
        "early_summer"
      ],
      "confidence": {
        "sources": {
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Thymus vulgaris', plants.ces.ncsu.edu/plants/thymus-vulgaris/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) [read]"
          ]
        }
      }
    },
    {
      "id": "rosmarinus_officinalis",
      "common": [
        "rosemary"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Rosmarinus_officinalis133095382.jpg",
        "artist": "THOR",
        "licence": "CC BY 2.0",
        "licence_url": "https://creativecommons.org/licenses/by/2.0",
        "alt": "A rosemary plant with needle leaves and blue flowers"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        7,
        10
      ],
      "mature_height_cm": [
        60,
        180
      ],
      "mature_spread_cm": [
        60,
        90
      ],
      "spacing_in_row_cm": 60,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "half_hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring",
        "late_spring"
      ],
      "volatile_aromatic": true,
      "gates": [
        "R-076"
      ],
      "confidence": {
        "estimated": [
          "bloom_window",
          "hardiness_zone"
        ],
        "sources": {
          "bloom_window": [
            "University of Wisconsin Horticulture, 'Rosemary, Salvia rosmarinus (= Rosmarinus officinalis)', hort.extension.wisc.edu/articles/rosemary-rosemarinus-officinalis (read 2026-08-01): bloom is 'January to April' in winter-hardy plants and 'spring into summer' in potted plants overwintered indoors; described elsewhere on the page as extending 'from late winter into spring'. THIS IS THE WEAKEST ROW IN THE 2026-08-01 BLOOM PASS AND WAS FLAGGED TO THE MAINTAINER AS SUCH BEFORE APPROVAL. The window depends on HOW THE PLANT IS GROWN, which `bloom_window` cannot express: this corpus carries rosemary as `frost_tolerance: half_hardy`, so across most of this app's range it is overwintered indoors and the hardy-plant reading recorded here may not describe the user's plant. A consequence worth knowing: in cold zones rosemary may be close to useless as SUMMER forage despite `pollinator_value: high`. Kept on the maintainer's explicit approval rather than dropped. [read]"
          ],
          "hardiness_zone": [
            "Wisconsin Horticulture, 'Rosemary, Salvia rosmarinus (= Rosemarinus officinalis)', hort.extension.wisc.edu/articles/rosemary-rosemarinus-officinalis (read 2026-07-26): 'Because it is winter hardy only to zone 8a, rosemary is generally only grown as a potted plant in Wisconsin.' THE SPECIES FLOOR IS 8a AND THE CORPUS SAYS 7, so the corpus is the more permissive side. It is defensible only through NAMED CULTIVARS, which the same page supplies: 'Arp' is 'hardy to zone 7a (potentially to zone 6a with protection)' and 'Madeline Hill' 'can survive in zone 7a (or 6a in protected sites)'. THE FOURTH CROP IN THIS ARC WHOSE ZONE LIMIT IS A CULTIVAR PROPERTY, after peach's ceiling, raspberry's floor and garlic's whole range. The number stands at 7 because the cultivars exist and a gardener buys a named plant; it stays FLAGGED because a species-level floor cannot say which. [read]",
            "AND THE PAGE STATES NO WARM LIMIT AT ALL - it addresses only cold hardiness. So the corpus's ceiling of 10 has nothing behind it. That is the pattern for this whole group and not a gap in this page: no source read in the culinary-perennial pass states an upper zone for any of the nine species. See ISSUES #13. Note also the taxonomy: Wisconsin gives the name as Salvia rosmarinus, a revision this corpus's id rosmarinus_officinalis predates. Recorded, not acted on - renaming a species id is a separate decision. [read]"
          ]
        }
      }
    },
    {
      "id": "salvia_officinalis",
      "common": [
        "sage"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:20260614_Salvia_officinalis_02.jpg",
        "artist": "Flocci Nivis",
        "licence": "CC BY 4.0",
        "licence_url": "https://creativecommons.org/licenses/by/4.0",
        "alt": "A sage plant with purple flowers"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        4,
        8
      ],
      "mature_height_cm": [
        45,
        60
      ],
      "mature_spread_cm": [
        60,
        60
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "volatile_aromatic": true,
      "bloom_window": [
        "late_spring"
      ],
      "confidence": {
        "sources": {
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Salvia officinalis', plants.ces.ncsu.edu/plants/salvia-officinalis/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) [read]"
          ]
        }
      }
    },
    {
      "id": "artemisia_dracunculus",
      "common": [
        "French tarragon"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Artemisia_dracunculus_Bylica_estragon_2021-04-27_01.jpg",
        "artist": "Agnieszka Kwiecień, Nova",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A tarragon plant with slender green leaves"
      },
      "family": "asteraceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        45,
        60
      ],
      "mature_spread_cm": [
        30,
        30
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "medium",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "volatile_aromatic": true,
      "propagation": "division_only",
      "note": "True French tarragon does not come true from seed.",
      "confidence": {
        "sources": {
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Artemisia dracunculus', plants.ces.ncsu.edu/plants/artemisia-dracunculus/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 3a, 3b, 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b'. The Toolbox states a TWO-SIDED garden range - the zones the plant grows in - which is what this corpus gates on, so the semantics match. (That is the check sour cherry failed: Illinois' 4-9 was a nursery COLD-hardiness rating and put a chill-requiring tree in Houston.) THE COLD END MOVED 4 -> 3 to match: the old 4 had no source at all. [read]"
          ]
        }
      }
    },
    {
      "id": "mentha_spicata",
      "common": [
        "spearmint",
        "mint"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Mint_leaves_(Mentha_spicata).jpg",
        "artist": "Commonists",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "The lush green leaves of a spearmint plant"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "groundcover",
      "hardiness_zone": [
        3,
        9
      ],
      "mature_height_cm": [
        30,
        60
      ],
      "mature_spread_cm": [
        60,
        100
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "high",
      "pollinator_value": "high",
      "volatile_aromatic": true,
      "bloom_window": [
        "midsummer"
      ],
      "spreads_unbidden": true,
      "spreads_unbidden_reason": "Runs by rhizome on its own and takes the plot. Give it a buried pot or a bed of its own.",
      "note": "Perennial. Spreads aggressively by runners — mature_spread is a season's reach, not a limit; contain it in a buried pot or a dedicated bed or it takes the plot. Do not rotate (R-072).\nA READ SOURCE NOW BACKS THAT CAVEAT (2026-07-25), and it is blunter than the note was: Wisconsin Horticulture describes a mint clump as \"unlimited in width\". So 60-100 cm is not an envelope the plant respects and no citation will ever make it one - it is a season's fill, which is what the planner needs to reserve and what the note already said. This is the clearest case in the pass of a number that should stay ESTIMATED permanently, rather than one waiting for a document.\nIN NO GUILD, AND IT MEETS A ROLE'S PREDICATE EXACTLY (2026-07-26) - which is why this is written down rather than left to be inferred. brassica_aromatic.masking asks {volatile_aromatic: true, mature_height_cm: {max: 60}}, spearmint satisfies both clauses, and it is still not among that role's alternatives (thyme, oregano, sage, tarragon). Two reasons, and the first is decisive: brassica_aromatic is duration: annual, and R-072 - grade A, ruling BLOCK - forbids siting a perennial in ground that is annually turned or rotated. The predicate match is real and the siting is prohibited, so the role could never have used it.\nThe second reason is the paragraph above. A clump the source calls \"unlimited in width\", placed in a guild whose footprint_min_m2 is 1.0, is the guild after one season. Note that a predicate reading mature_height_cm cannot see this: the plant qualifies on HEIGHT and disqualifies on SPREAD, and the role states no spread clause. Do not read the match as an oversight later.\nAND THE OTHER ROLE IT MEETS - temperate_fruit_tree_guild.insectary - IS DECLINED ON A DIFFERENT ARGUMENT (2026-07-26, maintainer), because the two above do not reach it. R-072 does NOT block mint there: that guild is duration: perennial. And the size argument does not transfer either - the fruit-tree guild is 25 m2, so mint's 1.0 m2 is four percent of it rather than the whole bed. Both of the reasons written above are about the aromatic guild specifically.\nTHE ARGUMENT THAT DOES SURVIVE IS MECHANICAL, AND IT IS ABOUT RHIZOMES RATHER THAN AREA. melissa_officinalis is ALREADY an alternative in that role - same family, and Wisconsin says it \"may reseed somewhat aggressively\" - so a Lamiaceae spreader is not disqualifying in itself. The difference is HOW: lemon balm spreads by seed, which is pulled or hoed, and mint spreads by rhizome, which has to be dug out. A fruit-tree understory is precisely the place that cannot be done, because excavating rhizomes means tearing through the tree's feeder roots. Wisconsin's own remedy says as much - mint is \"best kept in containers to ensure it will remain confined\" - and a guild role has no way to say \"in a pot\".\nTHE MISSING CONCEPT IS CONTAINMENT, not a mint fact. The corpus has no field for a plant that is fine to grow and must not be let loose in shared ground, and it would serve horseradish and comfrey as well. Recorded here rather than invented, because inventing it for one species is how a schema acquires a field that means one thing.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_spread_cm"
        ],
        "sources": {
          "hardiness_zone": [
            "HALF-SOURCED, and flagged for it (corrected 2026-07-26, same day it was wrongly narrowed). NC State Extension Gardener Plant Toolbox, 'Mentha spicata', plants.ces.ncsu.edu/plants/mentha-spicata/ (fetched and read in-container 2026-07-26): 'USDA Plant Hardiness Zone: 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b'. THE CEILING MOVED 8 -> 9 ON THIS EVIDENCE AND STANDS - a widening. THE FLOOR DOES NOT: it was briefly raised 3 -> 4, which would have refused spearmint in zone 3 on a regional database's lower bound. UMN Extension, 'Growing herbs in home gardens', extension.umn.edu/vegetables/growing-herbs-home-gardens (read 2026-07-26), calls mints 'hardy perennials' and 'quite winter hardy' in Minnesota - zones 3-4 - but STATES NO ZONE NUMBER, so it restores confidence in the 3 without sourcing it. 3 remains the corpus's own. [read]"
          ],
          "mature_spread_cm": [
            "Illinois Extension, 'Mint' (Herbs), extension.illinois.edu/herbs/mint (read 2026-07-25): mints 'grow from 1-3 feet tall' and 'aggressively spread by underground rhizomes', and 'will become invasive in the garden'. It gives a HEIGHT and no width, and no spacing figure at all - consistent with a plant whose spread is managed rather than specified. [read]",
            "Wisconsin Horticulture, 'Pineapple Mint, Mentha suaveolens Variegata', hort.extension.wisc.edu/articles/pineapple-mint-mentha-suaveolens-variegata (read 2026-07-25): 'Clumps grow 2 to 3 feet tall, and unlimited in width', and 'Like most mints, pineapple mint is a creeping plant that spreads from shallow underground rhizomes', best kept 'in containers to ensure it will remain confined'. NOTE THE SPECIES: this is M. suaveolens, not M. spicata, and it is cited for the growth HABIT its own sentence generalises to 'most mints', not as a measurement of spearmint. 'Unlimited in width' is the finding - it says outright that a mature spread for a rhizomatous mint does not exist. [read]"
          ]
        }
      }
    },
    {
      "id": "allium_schoenoprasum",
      "common": [
        "chives"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Chives_(5822048347).jpg",
        "artist": "Ryan Snyder",
        "licence": "CC BY 2.0",
        "licence_url": "https://creativecommons.org/licenses/by/2.0",
        "alt": "A clump of chives in flower"
      },
      "family": "amaryllidaceae",
      "category": "allium",
      "lifespan": "perennial",
      "habit": "bulb",
      "hardiness_zone": [
        3,
        9
      ],
      "mature_height_cm": [
        20,
        30
      ],
      "mature_spread_cm": [
        20,
        30
      ],
      "spacing_in_row_cm": 15,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "late_spring"
      ],
      "note": "Perennial clumping allium grown for the leaves; the edible pom-pom flowers draw pollinators. Do not rotate (R-072). Amaryllidaceae, but a standing perennial clump is not part of the annual allium rotation the way onion or leek is.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone"
        ],
        "sources": {
          "hardiness_zone": [
            "Wisconsin Horticulture, 'Chives, Allium schoenoprasum', hort.extension.wisc.edu/articles/chives-allium-schoenoprasum (read 2026-07-26): chives are 'hardy to zone 4a'. A COLD FIGURE ONLY, with no upper zone anywhere on the page - so the corpus's ceiling of 9 has nothing behind it. The floor is also the permissive way: the corpus says 3 against this source's 4a, the same shape as rubus_idaeus. Both ends stay as they are and the field stays FLAGGED, because moving a floor on one source that gives a half-zone would be trading one unsourced number for another. [read]"
          ]
        }
      }
    },
    {
      "id": "melissa_officinalis",
      "common": [
        "lemon balm"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Melissa_officinalis_1.jpg",
        "artist": "Gideon Pisanty ( Gidip ) גדעון פיזנטי",
        "licence": "CC BY 3.0",
        "licence_url": "https://creativecommons.org/licenses/by/3.0",
        "alt": "A lemon balm plant with small white flowers"
      },
      "family": "lamiaceae",
      "category": "herb",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        3,
        9
      ],
      "mature_height_cm": [
        45,
        90
      ],
      "mature_spread_cm": [
        45,
        60
      ],
      "spacing_in_row_cm": 45,
      "root_depth": "medium",
      "light_min": "part_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "volatile_aromatic": true,
      "bloom_window": [
        "midsummer"
      ],
      "note": "Perennial mint-family herb; self-seeds readily and can spread if left to flower — less aggressive than mint's runners, but deadhead to keep it in bounds. Do not rotate (R-072).\nThe seed-not-rhizome distinction is CONFIRMED by a read source (2026-07-25) and it is the reason this species has a usable spread where mint does not: a clump that reseeds has a width, a clump that runs does not. The number itself is still estimated - Wisconsin states a height and a spacing, not a width, and its 16-18 in spacing (41-46 cm) sits just below the corpus's 45-60 cm.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_spread_cm"
        ],
        "sources": {
          "hardiness_zone": [
            "Wisconsin Horticulture, 'Lemon Balm, Melissa officinalis', hort.extension.wisc.edu/articles/lemon-balm-melissa-officinalis (read 2026-07-26): a 'hardy (zones 3a to 9b) perennial'. BOTH ENDS FROM ONE SOURCE. THE FLOOR CONFIRMED THE CORPUS EXACTLY; THE CEILING CONTRADICTED IT BY TWO AND A HALF ZONES, and unlike every other contradiction found in this arc the corpus was the STRICTER side - a ceiling of 7 refused lemon balm in zones 8 and 9 where this source calls it hardy. THE NUMBER WAS CHANGED, [3, 7] -> [3, 9], which makes it the only zone this investigation moved. Widening was safe here in a way it was not for the fruit trees: their ceilings stand in for a chill requirement, so widening would offer a tree that survives and never fruits, whereas here the only risk was continuing to refuse a plant a source says thrives. STILL FLAGGED, because 9 is a rounding of the source's 9b and the ceiling still has no stated mechanism (ISSUES #13). [read]"
          ],
          "mature_spread_cm": [
            "Wisconsin Horticulture, 'Lemon Balm, Melissa officinalis', hort.extension.wisc.edu/articles/lemon-balm-melissa-officinalis (read 2026-07-25): plants 'grow about two feet tall'; 'Space the plants 16 to 18 inches apart'; and on the spread mechanism, 'Plants may reseed somewhat aggressively in some sites', with deadheading after flowering advised 'to prevent nuisance seedlings'. NO clump width or spread figure. The 16-18 in spacing is 41-46 cm against the corpus's 45-60 cm, so the published figure is a little TIGHTER than the assumed spread - the usual direction, and not a contradiction. What it does settle by direct read is that this plant spreads by SEED, not by rhizome, which is why it carries a bounded spread at all where spearmint cannot. [read]"
          ]
        }
      }
    },
    {
      "id": "vaccinium_corymbosum",
      "common": [
        "blueberry",
        "highbush blueberry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Vaccinium_corymbosum_Beeren.jpg",
        "artist": "Darkone ( talk · contribs )",
        "licence": "CC BY-SA 2.5",
        "licence_url": "https://creativecommons.org/licenses/by-sa/2.5",
        "alt": "Blueberries ripening on the bush"
      },
      "family": "ericaceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        3,
        7
      ],
      "mature_height_cm": [
        90,
        180
      ],
      "mature_spread_cm": [
        90,
        150
      ],
      "spacing_in_row_cm": 120,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "light",
      "n_fixing": false,
      "ph_range": [
        4.5,
        5.5
      ],
      "acid_requiring": true,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "pollination": {
        "mode": "insect",
        "self_incompatible": false
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "high",
      "bloom_window": [
        "early_spring",
        "late_spring"
      ],
      "note": "Highbush blueberry — added 2026-07-25, and it is here for one reason: IT IS THE FIRST SPECIES IN THIS CORPUS WITH A PUBLISHED pH CEILING. D-149 recorded that no source read publishes a per-crop maximum for a vegetable, which is why R-099 gates only the low side. Blueberry is not a vegetable and the acid-loving literature does publish one, so this species is what gives that rule its other half.\n`acid_requiring: true` IS THE MARKER THAT DOES IT, and it exists because the obvious mechanism does not work. The plan was \"an unflagged ph_range means both ends are published, so gate both sides\" - the confidence flag doing double duty. But the two sources read DISAGREE on the ceiling (UMD 5.5, UNH 5.0), so the field must stay flagged, and the flag can no longer carry the gate. The marker separates the two questions honestly: the THRESHOLD is uncertain and flagged, while the EXISTENCE of a consequence above it is not. We do not know a tomato's ceiling; we know a blueberry has one, and what happens past it - iron becomes unavailable and an ericaceous plant goes chlorotic (the mechanism docs/SOIL.md already names, and UF/IFAS HS1207 puts iron deficiency at pH 7.3 and above).\nIT IS IN NO GUILD, AND THAT IS A PRODUCT FACT RATHER THAN A GAP. The only perennial guilds are the two fruit-tree ones, whose canopy role wants a tree. But the sharper reason is chemical: blueberry wants 4.5-5.5 and every other species in those guilds sits at 6.0-7.0. ONE BED CANNOT SATISFY BOTH. Acid-lovers are their own bed, not a guild member - which is exactly what the pH gate now tells a gardener who tries.\nTHE HARDINESS ZONE IS HALF-SOURCED, and the validator is why it exists at all. The first draft omitted it, on the same reasoning that keeps ph_range absent from 31 species: no publication this container fetched gives a range for northern highbush, and nursery pages are not citations. E-ZONE refused it - \"perennial with no hardiness_zone (R-076 cannot fire)\" - and the check is right, because an ungated perennial is offered in zone 2. So the field carries UMN's cold end and the corpus's own warm end, flagged, with the citation saying which half is which. That is the same shape as every ph_range here: one end published, one end ours.\nTHREE SOURCES, THREE pH RANGES. UMD 4.5-5.5, UNH 4.5-5.0, UMN 4.0-5.5 (and 4.0-5.0 lower down the same page). They agree on the shape and not on the numbers, which is exactly why this field is flagged and why acid_requiring is a separate marker rather than an inference from an unflagged range.\nAlso unrecorded for want of a field, but worth keeping: UNH says blueberries \"grow best in a well-drained sandy loam\" and that Bluecrop \"Will not tolerate wet soils\". The corpus has no per-species drainage tolerance; R-100 warns about standing water for everything, which covers this case without a new field.\n",
      "confidence": {
        "estimated": [
          "bloom_window",
          "ph_range",
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "frost_tolerance",
          "feeder_class",
          "pollinator_value"
        ],
        "sources": {
          "bloom_window": [
            "Oregon State University Extension, 'How blueberry plants develop and grow', extension.oregonstate.edu/crop-production/berries/how-blueberry-plants-develop-grow (read 2026-08-01): 'Flowering occurs in spring when floral buds swell and open', with northern highbush blooming LATER in spring than southern highbush, and timing varying by cultivar and weather. Cf. UGA C1293 on blueberry phenology. THE SEASON MAPPING IS OURS: the source says 'spring', and this corpus's vocabulary splits spring in two, so the span covers both rather than guessing which half. Flagged for that reason, not because the bloom period is in doubt. [read]"
          ],
          "ph_range": [
            "UMD Extension, 'Growing Blueberries in a Home Garden', extension.umd.edu/resource/growing-blueberries-home-garden (read 2026-07-25): 'Blueberry is an \"acid-loving\" plant requiring a soil pH in the 4.5-5.5 range.' A RANGE WITH BOTH ENDS STATED, which no vegetable in this corpus has (D-149) - and the reason this species can carry acid_requiring at all. [read]",
            "UMN Extension, 'Growing blueberries in the home garden', extension.umn.edu/fruit/growing-blueberries-home-garden (read 2026-07-25), a THIRD range, disagreeing with both: 'Blueberries require a pH between 4.0-5.5', while further down the SAME PAGE the soil is described as 'acidic soil (pH 4.0 to 5.0)'. A source that does not agree with itself on one page is the strongest argument available for leaving this field flagged. [read]",
            "UNH Extension, 'Growing Fruit: Highbush Blueberries', extension.unh.edu/resource/growing-fruit-highbush-blueberries-fact-sheet (read 2026-07-25): 'Blueberries require an acidic soil with a pH range of 4.5 to 5.0.' SAME FLOOR AS UMD, DIFFERENT CEILING - 5.0 against UMD's 5.5. Both are land-grant and neither is wrong; they are different recommendations. The corpus takes UMD's 5.5 because a gate should not fire on ground one source would call fine, and the field stays FLAGGED because two read sources disagree. The disagreement is the reason acid_requiring exists as a separate marker rather than being inferred from an unflagged range. [read]"
          ],
          "hardiness_zone": [
            "HALF-SOURCED, and flagged for it. UMN Extension, 'Growing blueberries in the home garden', extension.umn.edu/fruit/growing-blueberries-home-garden (read 2026-07-25), supports the COLD end: it recommends cultivars 'for USDA zone 3 or 4 in Minnesota'. NO SOURCE READ GIVES A WARM END. 7 is the corpus's own, chosen because this entry models NORTHERN highbush - the type that needs winter chill - and because southern highbush and rabbiteye, which UMD names as the warm-climate types, are not modelled here at all. The field exists rather than being omitted because E-ZONE refuses a perennial without one, and correctly: R-076 gates perennial survival on it, and an absent zone means an ungated plant offered in zone 2. [read]"
          ],
          "mature_height_cm": [
            "UMD (read 2026-07-25): 'Northern highbush grows 3–6 feet tall', against 6-7 ft for southern highbush and 6-12 ft for rabbiteye. 90-180 cm is the NORTHERN figure, taken because it is the type a temperate home garden plants. A band, not a figure, so it is flagged - and the corpus models one blueberry rather than three types, which this citation records as a simplification. [read]"
          ],
          "mature_spread_cm": [
            "NO SOURCE READ STATES A SPREAD for northern highbush. UMD gives heights only. 90-150 cm is the corpus's own figure for a shrub of this height, and is flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "UMD (read 2026-07-25): 'Plan for 4-5 feet between each blueberry in a row and 6-8 feet between rows.' 120 cm is 4 feet, the TIGHTER end of the stated pair, chosen because a home garden plants closer than a field. Picking one end of a band is a derivation, so it is flagged. THE THREE SOURCES SPREAD WIDELY here too: UNH says 'normally planted at least 5 feet apart in rows 8 to 10 feet apart' (a row-crop spacing) and UMN says to plant 'blueberry plants about 3 feet apart'. 4 feet sits between them without being any of their figures, which is what the flag records. [read]"
          ],
          "frost_tolerance": [
            "Unstated by either source read. `hardy` is the corpus's own call for a woody temperate perennial, and is flagged. UNH gives a cold limit in passing - plantings do well where 'winter temperatures rarely fall below -25oF' - which is a site statement rather than a frost-tolerance class, and is what the missing hardiness_zone would need. [read]"
          ],
          "feeder_class": [
            "Unstated. `light` is the corpus's own call and is flagged. Neither source read gives a fertility requirement in terms this corpus's vocabulary can take; UMD's guidance is about mulch and organic matter, not feeding rate. [read]"
          ],
          "pollinator_value": [
            "Not stated as such. UMD says only that blueberries 'are self-fertile but produce more and larger berries when two or more cultivars are planted' - a fact about the CROP's pollination, not about what the flowers offer pollinators. `high` is the corpus's own call and is flagged. Note self_incompatible is FALSE on the strength of that same sentence, so R-080 correctly does not fire: a single blueberry sets fruit, it simply sets less. [read]"
          ],
          "light_min": [
            "UMD (read 2026-07-25): 'Blueberries grow and fruit best in full sun (a minimum of 8 hours per day in summer).' Stated outright, so NOT flagged - and unusually specific, since most sources say 'full sun' without saying what that means in hours. [read]"
          ],
          "root_depth": [
            "UMD (read 2026-07-25): blueberry plants have 'a shallow, fibrous root system' and are 'shallow-rooted'. Stated twice on the page in its own words, so NOT flagged. It is also why UMD asks for 'A year-round organic (biodegradable) mulch' - a shallow root system dries out. [read]"
          ]
        }
      }
    },
    {
      "id": "asparagus_officinalis",
      "common": [
        "asparagus"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Asparagus-Bundle.jpg",
        "artist": "Evan-Amos",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "A bundle of green asparagus spears"
      },
      "family": "asparagaceae",
      "category": "perennial_vegetable",
      "lifespan": "perennial",
      "habit": "bush",
      "hardiness_zone": [
        2,
        9
      ],
      "mature_height_cm": [
        91,
        152
      ],
      "mature_spread_cm": [
        46,
        91
      ],
      "spacing_in_row_cm": 30,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.2,
        7.0
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": 2,
      "casts_shade": true,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "gates": [
        "R-076"
      ],
      "note": "Asparagus - added 2026-08-05, the first species in asparagaceae and one of two perennial vegetables that open the expansion's Axis C (rhubarb is the other). A NEW FAMILY, and its rotation ruling is SILENT, stated rather than defaulted: no rotation rule names asparagaceae (R-010/011/012/013 name solanaceae, cucurbitaceae, brassicaceae, alliums and apiaceae), and a perennial that holds one spot for 15+ years is not rotated at all. Penn State's \"Avoid planting asparagus in fields where it has been grown in previous years\" is a do-not-replant note, not a seasonal interval, and there is no field for it here. PERMANENCE NEEDS NO NEW MACHINERY, which is the finding that made this cheap. R-072 (grade A, fatal) already refuses a perennial in ground that is annually turned - \"Tillage destroys the crown\" is asparagus exactly - and a standing perennial's footprint is already carried as fixed occupancy. So asparagus enters as lifespan:perennial like raspberry and blueberry, and the 15-year lifespan is a note, not a schema change. IT IS IN NO GUILD, a product fact rather than a gap - the same reason blueberry is: a permanent-bed perennial cannot share rotating ground (R-072), so it belongs in a bed of its own, not on a guild roster. Iowa State and Clemson say the same horticulturally (\"place the row(s) along a side of the garden space\", \"a location at the end of the vegetable garden ... that doesn't interfere with annual garden tillage\"). THE CROWN IS VERY COLD-HARDY, THE EMERGED SPEARS ARE NOT (Iowa State: winter damage only below -30F without snow cover, but \"Late spring frosts can kill emerged spears\"). frost_tolerance is the dormant plant's class; the spring-spear risk is a scheduling caution the perennial model has no field for and is recorded here. DIOECIOUS, and modern plantings are all-male hybrids (Jersey series) - context, not a modelled field: asparagus is grown for spears, not fruit, so pollination is not a crop concern and pollinator_value is low. Juglone-sensitive per UW-Madison's black-walnut table; that membership is added to juglans_nigra in its own commit, as the walnut record's note pre-recorded.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "ph_range",
          "feeder_class",
          "frost_tolerance",
          "ground_coverage",
          "pollinator_value",
          "casts_shade",
          "years_to_bearing"
        ],
        "sources": {
          "hardiness_zone": [
            "NC State Extension Gardener Plant Toolbox, 'Asparagus officinalis', plants.ces.ncsu.edu/plants/asparagus-officinalis/ (read 2026-08-05): USDA Plant Hardiness Zone '2a, 2b, 3a, 3b, 4a, 4b, 5a, 5b, 6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b'. [2, 9] is that band. THE NINE EXTENSION GROWING GUIDES SURVEYED STATE NO ZONE - UMN, Iowa State, Penn State, UMD, USU, NC State (the guide, not the toolbox), Clemson, Illinois all omit it, the pattern D-146 predicts for a non-tree crop. The toolbox is a plant database, so this is a cultivation envelope rather than a regional survival claim; flagged for that, and for being one source. Promotable to verified only when a human reads it (invariant 4). [read]"
          ],
          "mature_height_cm": [
            "NC State Plant Toolbox (read 2026-08-05): 'Height: 3 ft. 0 in. - 5 ft. 0 in.' 3 ft = 91.44 cm, 5 ft = 152.4 cm, so [91, 152]. THE NINE GROWING GUIDES GIVE NO HEIGHT for Asparagus officinalis - Clemson speaks of 'tall ferns' without a figure. A SPECIES-CONFUSION TRAP was avoided: web results for 'asparagus fern height' return Asparagus densiflorus, an ORNAMENTAL houseplant ('Sprengeri grows 1.5 to 2 feet tall'), a different species whose numbers must never be imported here. Flagged as a database figure. [read]"
          ],
          "mature_spread_cm": [
            "NC State Plant Toolbox (read 2026-08-05): 'Width: 1 ft. 6 in. - 3 ft. 0 in.' 1.5 ft = 45.72 cm, 3 ft = 91.44 cm, so [46, 91]. This is the summer fern's spread; the crown is planted at 30 cm in the row and ferns out to fill. Flagged as a database figure. [read]"
          ],
          "spacing_in_row_cm": [
            "SOURCES DISAGREE, so this is flagged. 30 cm is 12 inches, the modal in-row figure: UMN 'the buds of the crowns are spaced about 12 inches apart', Penn State '12 inches between plants in the row', NC State 'Space plants 12 inches apart in the row'. The full spread across nine guides is 9-18 in (Illinois '9 to 12 inches', Iowa State '12 to 18 inches', Clemson '15 to 18 inches'). 12 in is taken because three sources converge on it; the disagreement is why it is flagged. Between-row spacing (3-6 ft) is not modelled - the corpus carries a single in-row figure. (read 2026-08-05) [read]"
          ],
          "ph_range": [
            "SOURCES DISAGREE. Penn State 'Soil pH should be between 6.2 and 7.0'; UMN 'a pH between 6.5 and 7.0'; Clemson 'a soil pH between 6.0 and 6.5'. [6.2, 7.0] takes Penn State's band, which brackets the others' floors and shares UMN's ceiling. NC State's '6.0 to 7.0' is a LIMING TARGET, not a stated optimum, and is not used as the source. Flagged for the disagreement. (read 2026-08-05) [read]"
          ],
          "feeder_class": [
            "NOT CLEANLY SOURCED, and flagged for it. The nine guides discuss fertilization but none states a fertility class this corpus's vocabulary can take. 'moderate' is the corpus's own conservative call; asparagus is commonly described as a heavy feeder but no read source says so in terms that settle it. (checked 2026-08-05) [read]"
          ],
          "frost_tolerance": [
            "Iowa State (read 2026-08-05): the dormant plant is very hardy - 'They can be damaged at -30 F if there is not enough snow cover' - while 'Late spring frosts can kill emerged spears'. Clemson: 'a hardy perennial'. `hardy` is the dormant crown's class; the spring-spear frost risk is recorded in the note, there being no field for it. Flagged because no source states a frost-tolerance CLASS in this corpus's vocabulary. [read]"
          ],
          "ground_coverage": [
            "Unstated by any source. 'moderate' is the corpus's own call for a ferny clump that fills its row but leaves open ground between plants early, and is flagged. (checked 2026-08-05) [read]"
          ],
          "pollinator_value": [
            "Not stated as such. Asparagus is dioecious and grown for spears, not fruit; its small flowers are insect-visited but of minor forage value. 'low' is the corpus's own call, flagged. (checked 2026-08-05) [read]"
          ],
          "casts_shade": [
            "Unstated as a measurement. The summer ferns reach 3-5 ft (toolbox height), tall enough to shade a neighbour, so casts_shade is true; flagged as a derivation from the height rather than a stated shade claim. It matters little here - asparagus is in no guild and no layout rule pairs it with another crop. (2026-08-05) [read]"
          ],
          "years_to_bearing": [
            "Iowa State (read 2026-08-05): 'Begin harvest two years after planting crowns, and three years after planting seeds'; UMN 'Do not harvest asparagus for the first two years after planting'; NC State 'Do not harvest asparagus until year 3'. 2 is the crown figure (the usual planting stock); flagged because the seed figure is 3 and NC State says 3 even for crowns. Productive lifespan is 15-20 years (UMN, Illinois, UMD 12-15+), the permanence this record is partly about. [read]"
          ]
        }
      }
    },
    {
      "id": "rheum_rhabarbarum",
      "common": [
        "rhubarb"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Hanbury_Hall_Gardens_-_rhubarb_(Rheum_rhabarbarum).jpg",
        "artist": "DeFacto",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A rhubarb plant with large leaves and red stalks"
      },
      "family": "polygonaceae",
      "category": "perennial_vegetable",
      "lifespan": "perennial",
      "habit": "rosette",
      "hardiness_zone": [
        3,
        8
      ],
      "mature_height_cm": [
        61,
        122
      ],
      "mature_spread_cm": [
        60,
        91
      ],
      "spacing_in_row_cm": 91,
      "light_min": "full_sun",
      "feeder_class": "heavy",
      "n_fixing": false,
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": 2,
      "casts_shade": true,
      "ground_coverage": "high",
      "pollinator_value": "low",
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "gates": [
        "R-076"
      ],
      "note": "Rhubarb - added 2026-08-05, the first species in polygonaceae and the second perennial vegetable of Axis C (asparagus is the first). A NEW FAMILY, rotation ruling SILENT and stated: no rotation rule names polygonaceae, and this is a perennial held in one spot for many years. Permanence needs no new machinery - R-072 (fatal) already refuses a perennial in annually-turned ground - so it enters as lifespan:perennial like asparagus and blueberry. THE SOURCES DISAGREE ON WHETHER TO MOVE IT, and both are recorded because they are answering different questions. UW-Madison: \"Because this perennial will remain in the ground for several years, choose a site ... where it can remain undisturbed.\" UMN: \"Because rhubarb takes so many nutrients from the soil, move the plant to a new site every so often. Rotate another crop into the former rhubarb patch.\" UMN's move is FERTILITY-driven relocation over many years, not the seasonal disease rotation R-010/011/012 model, and it is the same fact feeder_class:heavy records - not a contradiction of the permanence R-072 enforces. IT IS IN NO GUILD, the blueberry/asparagus reason: a permanent-bed perennial cannot share rotating ground (R-072). THE TOXIC LEAVES ARE CARRIED BY A RULE, NOT A FIELD (maintainer, 2026-08-05). The leaf blades are poisonous (oxalic acid, and anthraquinone glycosides per NDSU) while the petioles are the edible part; that is a graded claim with a mechanism, so it is R-109, scoped to this species by applies_to.species the way R-108 is - the species record needs no toxicity field for it to fire. pH IS NOT A CONSTRAINT, and its absence is sourced, not an omission: UMN \"Soil pH is not important. Any garden soil ... whether acidic, neutral or basic ... can support a good crop of rhubarb\"; Illinois \"tolerant of a wide range of soil pH levels.\" So ph_range is absent by evidence, like the 31 vegetables with no published range. root_depth is likewise absent - the sources give soil-prep depth (UMN \"at least two feet\") and planting depth (2 in), never a rooting depth - so it is left out rather than invented. HARDINESS ZONE WARM END IS THE CORPUS'S OWN. Cold end 3 is UMN (\"Rhubarb is hardy in USDA Zone 4, and worth trying in Zone 3\"); no source read gives a warm-end integer, but the warm LIMIT is a real horticultural fact (UF/IFAS: winters must fall below 40F, \"somewhat difficult\" in the South). 8 is declared as the corpus's own warm end, flagged, the blueberry precedent - a flag makes the number honest about its provenance; a human reading a warm-end source can promote it.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "feeder_class",
          "frost_tolerance",
          "ground_coverage",
          "pollinator_value",
          "casts_shade",
          "years_to_bearing"
        ],
        "sources": {
          "hardiness_zone": [
            "HALF-SOURCED, flagged for it, and the WARM END is the corpus's own (the blueberry precedent, ruled by the maintainer 2026-08-05). COLD END: UMN Extension, 'Growing rhubarb in home gardens', extension.umn.edu/vegetables/growing-rhubarb (read 2026-08-05): 'Rhubarb is hardy in USDA Zone 4, and worth trying in Zone 3.' 3 is that floor. WARM END: NO SOURCE READ GIVES A ZONE INTEGER for the warm side, but the warm LIMIT is a stated horticultural fact - UF/IFAS Extension (Nassau County), blogs.ifas.ufl.edu/nassauco/2017/07/15/q-can-grow-rhubarb-northeast-florida/ (read 2026-08-05): 'Rhubarb prefers summer temperatures to not exceed 75 degrees and winters temperatures to be below 40 degrees Fahrenheit', and 'Rhubarb can be grown here but it is somewhat difficult to do so successfully.' 8 is the corpus's own warm end, chosen so R-076 gates the deep South where rhubarb fails to chill; promotable when a human reads a warm-end zone source. NOTE (flagged by the survey): UMN's Zone-4/Zone-3 phrasing matches the Old Farmer's Almanac word-for-word, so a human should eyeball the live UMN page before this cold end is promoted to verified. [read]"
          ],
          "mature_height_cm": [
            "UW-Madison / Wisconsin Master Gardener (Susan Mahr), 'Rhubarb, Rheum rhabarbarum', mastergardener.extension.wisc.edu/files/2018/04/rhubarb.pdf (read 2026-08-05): 'This herbaceous perennial grows 2 to 4 feet tall with large, smooth, heart-shaped basal leaves.' 2 ft = 60.96 cm, 4 ft = 121.92 cm, so [61, 122]. Flagged as a single-source band. The NC State Plant Toolbox entry for this species carries no height field (checked 2026-08-05). [read]"
          ],
          "mature_spread_cm": [
            "NOT STATED AS A SPREAD, so flagged and derived. UMN (read 2026-08-05) allots 'a three-foot-by-three-foot area' per plant (91 cm), and UW-Madison describes leaf blades 'up to a foot or more in width' on petioles 'up to 18 inches long' - a plant roughly 2-3 ft across. [60, 91] brackets that; the low end is the leaf-span, the high end the planting allotment. No source states a canopy spread outright. [read]"
          ],
          "spacing_in_row_cm": [
            "UMN (read 2026-08-05): 'Give each plant a three-foot-by-three-foot area' (3 ft = 91 cm); UW-Madison: 'Plant purchased crown pieces or divisions ... about 3 feet apart.' 91 cm is 3 ft. Illinois says wider - 'planting rhubarb plants 36 to 48 inches apart in rows two to three feet apart' - so flagged for the 36-48 in disagreement. Between-row spacing is not modelled. [read]"
          ],
          "feeder_class": [
            "UMN (read 2026-08-05): 'Because rhubarb takes so many nutrients from the soil, move the plant to a new site every so often.' A heavy-feeder statement in the source's own terms, so `heavy` - the same class as corn. Flagged because it is inferred from a relocation instruction rather than a stated fertility class, though the inference is direct. [read]"
          ],
          "frost_tolerance": [
            "NDSU Extension, 'Dakota Gardener: Is Frost-Damaged Rhubarb Toxic?', ag.ndsu.edu/news/columns/dakota-gardener/dakota-gardener-is-frost-damaged-rhubarb-toxic (read 2026-08-05): 'rhubarb is a tough perennial and will recover from a late-spring freeze.' UW-Madison: 'The foliage dies back to the ground each winter' and re-emerges when temperatures 'exceed 40F'. `hardy` is the dormant crown's class; flagged because no source states a frost-tolerance CLASS in this corpus's vocabulary. [read]"
          ],
          "ground_coverage": [
            "Unstated as such. The large heart-shaped leaves (blades 'a foot or more in width', UW-Madison) cover their ground well, so `high`; flagged as a derivation from leaf size rather than a stated coverage. [read]"
          ],
          "pollinator_value": [
            "Not stated. Rhubarb is grown for its petioles and its flower stalks are removed to keep the plant productive, so its forage value is low. `low` is the corpus's own call, flagged. [read]"
          ],
          "casts_shade": [
            "Unstated as a measurement. The broad leaves on a 2-4 ft plant shade the ground beneath, so casts_shade is true; flagged as a derivation. It matters little - rhubarb is in no guild and no layout rule pairs it with a neighbour. [read]"
          ],
          "years_to_bearing": [
            "UMN (read 2026-08-05): 'Wait until the second season before harvesting. Wait until the third season if you started from seed.' UW-Madison: 'Don't harvest any stalks the first year; wait until the second or third year.' 2 is the crown/division figure; flagged because seed is 3 and UW-Madison offers 'second or third'. Planting longevity is stated 5+ (Illinois) to 15+ years (UMN) - a real source disagreement, both the permanence this record is partly about. [read]"
          ]
        }
      }
    },
    {
      "id": "vitis_spp",
      "common": [
        "grape"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Bunch_of_grapes_going_through_veraison_in_Okanagan.jpg",
        "artist": "Barry Fontaine",
        "licence": "CC BY 2.0",
        "licence_url": "https://creativecommons.org/licenses/by/2.0",
        "alt": "A bunch of dark grapes on the vine",
        "caption": "Vitis includes American and European types by cultivar group."
      },
      "family": "vitaceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "vine",
      "hardiness_zone": [
        4,
        8
      ],
      "mature_spread_cm": [
        180,
        240
      ],
      "spacing_in_row_cm": 240,
      "root_depth": "deep",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        5.5,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": 3,
      "casts_shade": true,
      "ground_coverage": "low",
      "pollinator_value": "low",
      "pollination": {
        "mode": "self",
        "self_incompatible": false
      },
      "support": {
        "provides": "none",
        "requires": "strong"
      },
      "gates": [
        "R-076"
      ],
      "cultivar_groups": [
        {
          "id": "american",
          "common": "American grape",
          "hardiness_zone": [
            4,
            8
          ]
        },
        {
          "id": "european",
          "common": "European grape",
          "hardiness_zone": [
            6,
            10
          ],
          "ph_range": [
            6.0,
            7.0
          ]
        }
      ],
      "note": "Grape - added 2026-08-05, the 20th family (vitaceae) and the third Axis C item after asparagus and rhubarb. Modelled as a GENUS with the two home-garden types as cultivar groups (maintainer's choice), because American and European grapes are different SPECIES rather than forms of one: the base id is genus-level `vitis_spp` (the narcissus_spp precedent, rendered \"Vitis spp.\"), each group carries its type's binomial here - `american` is Vitis labrusca, `european` is Vitis vinifera. A NEW FAMILY, rotation ruling SILENT and stated: no rotation rule names vitaceae, and a vine held on a trellis for the life of the planting is not rotated. THE SUPPORT-MODEL FEAR WAS UNFOUNDED, which is the finding. SPECIES-EXPANSION.md said grape \"needs a support model heavier than support.requires: strong\". It does not: `requires: strong` is exactly the signal, and it fires R-040 (\"must have an assigned support ... a trellis or cattle panel\"), which is what a grape needs. Because grape is NOT n_fixing, the hills/living- support predicate (n_fixing + vine + requires strong) correctly does not grab it - it is a trellised vine like a staked tomato, not a bean on corn. Permanence rides R-072 (fatal) as asparagus's does; the pruning-system geometry the doc also named is a note, not a field, the way raspberry's managed row is. So grape entered on the existing machinery, no new model. IN NO GUILD, the blueberry/asparagus reason. THE AMERICAN ZONE IS DECLARED (maintainer ruling, the blueberry precedent). No extension source gives Vitis labrusca a numeric zone - the NC State Toolbox has no labrusca page (a real 404) - only USU's \"American bunch grapes ... as a group are the hardiest\" and its American-cultivar tables spanning zones 3-7. [4, 8] is declared on that anchor, flagged; the EUROPEAN group's [6, 10] is sourced outright (NC State Toolbox). This is weaker than rhubarb (whose cold end was sourced) and stronger than blackberry was (nothing); the maintainer ruled to ship it declared. NO BOTANICAL HEIGHT OR SPREAD EXISTS for a trellis-trained vine, so mature_height_cm is omitted rather than invented from a cordon-training target, and mature_spread_cm carries the 6-8 ft trellis ALLOTMENT (the managed-row figure, raspberry's pattern) rather than a free-standing canopy. Self-fertile (OSU, Clemson): a single vine sets fruit, so R-080 does not apply.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "root_depth",
          "feeder_class",
          "ph_range",
          "frost_tolerance",
          "ground_coverage",
          "pollinator_value",
          "casts_shade",
          "years_to_bearing",
          "cultivar_groups.american.hardiness_zone",
          "cultivar_groups.european.hardiness_zone",
          "cultivar_groups.european.ph_range"
        ],
        "sources": {
          "hardiness_zone": [
            "The BASE zone is the American (default) group's, declared and flagged - see cultivar_groups.american.hardiness_zone. It exists on the base so E-ZONE passes (a perennial needs a hardiness_zone) and an unqualified grape resolves to the American type. (2026-08-05) [read]"
          ],
          "cultivar_groups.american.hardiness_zone": [
            "DECLARED, flagged, the blueberry precedent (maintainer ruling 2026-08-05). NO readable extension source states a numeric USDA zone for Vitis labrusca: the NC State Plant Toolbox has no labrusca page (plants.ces.ncsu.edu/plants/vitis-labrusca/ is a genuine 404), and USU Extension gives only a qualitative ranking - 'American bunch grapes (Vitis labrusca) as a group are the hardiest' (extension.usu.edu/yardandgarden/research/grapes-in-utah, read 2026-08-05) - with its American-cultivar tables spanning zones 3-7. [4, 8] is declared on that anchor: cold end 4 sits inside USU's 3-7 range (Concord-safe), warm end 8 the corpus's own. Web claims of 4-8/3b-9a traced to non-extension pages and were excluded (D-146). Promotable when a human reads a labrusca zone source. [read]"
          ],
          "cultivar_groups.european.hardiness_zone": [
            "SOURCED. NC State Extension Gardener Plant Toolbox, 'Vitis vinifera', plants.ces.ncsu.edu/plants/vitis-vinifera/ (read 2026-08-05): USDA Plant Hardiness Zone '6a, 6b, 7a, 7b, 8a, 8b, 9a, 9b, 10a, 10b', so [6, 10]. Corroborated as the LESS hardy type by UMD ('V. vinifera cultivars are generally less cold-hardy ... than V. labrusca'), Penn State ('Minimum low winter temperature for vinifera grapes is 0F'), and USU ('marginally cold-hardy'). Flagged pending a human read (invariant 4). [read]"
          ],
          "cultivar_groups.european.ph_range": [
            "Penn State Extension, 'Backyard grape growing', extension.psu.edu/backyard-grape-growing (read 2026-08-05): 'European varieties (Vitis vinifera) and many hybrids grow best when the soil pH is between 6.0 and 7.0, but Vitis labrusca varieties can tolerate a pH of 5.5 or slightly lower.' [6.0, 7.0] is the vinifera figure; the base [5.5, 6.5] covers the labrusca side. Flagged for the type split. [read]"
          ],
          "mature_spread_cm": [
            "NO BOTANICAL SPREAD is published for a trellis-trained vine; extension gives vine SPACING, which this records as the managed footprint (raspberry's pattern). UMN 'Each vine needs about 6 feet of space' (182.88 cm); UMD 'Space plants about 8 feet apart' (243.84 cm); Clemson 'Space vines 8 feet apart in the row' (243.84 cm). [180, 240] brackets 6-8 ft. Flagged, and noted as an allotment, not a canopy. mature_height_cm is omitted rather than taken from a cordon-training height (3-6.5 ft), which is a pruning target, not plant size. (read 2026-08-05) [read]"
          ],
          "spacing_in_row_cm": [
            "UMD (read 2026-08-05) 'Space plants about 8 feet apart' and Clemson 'Space vines 8 feet apart in the row' both give 8 ft (243.84 cm); UMN gives 6 ft ('about 6 feet of space'). 240 cm is 8 ft, the two-source figure; flagged for UMN's 6 ft. [read]"
          ],
          "root_depth": [
            "Oregon State EC 1639, 'Growing table grapes' (read 2026-08-05 via search extract; the direct catalog fetch 403'd as a bot-block, so this awaits a verbatim confirm before promotion): 'Grapes are long-lived woody perennial vines with a very deep root system.' `deep`, qualitative, flagged. [read]"
          ],
          "feeder_class": [
            "Not stated in this corpus's vocabulary by any source read. 'moderate' is the corpus's own conservative call, flagged. (checked 2026-08-05) [read]"
          ],
          "ph_range": [
            "SOURCES DISAGREE and it is partly type-specific. UMD 'a pH ... in the range of 5.5 to 6.5'; Clemson 'a soil pH of 5.8 to 6.5'; Penn State 'between 5.5 and 7.0'. The base [5.5, 6.5] takes UMD's band, which covers the labrusca side of Penn State's type split (labrusca tolerant to ~5.5); the european group overrides to [6.0, 7.0]. Flagged for the disagreement. (read 2026-08-05) [read]"
          ],
          "frost_tolerance": [
            "Unstated as a class. Grape is a woody deciduous perennial whose dormant vine is hardy within its zone; `hardy` is the corpus's own call, flagged. The vinifera cold floor (Penn State: 'Minimum low winter temperature ... is 0F') is a site limit, which the hardiness_zone carries, not a frost-tolerance class. [read]"
          ],
          "ground_coverage": [
            "Unstated. A vine trained up a trellis leaves the ground beneath largely open, so `low`; flagged as a derivation. [read]"
          ],
          "pollinator_value": [
            "Not stated as such. Grape is self-fertile and grown for fruit; its flowers are of minor forage value. `low` is the corpus's own call, flagged. Self_incompatible is FALSE on OSU's 'Grapes are self-fruitful' and Clemson's 'do not require cross-pollination', so R-080 correctly does not fire. [read]"
          ],
          "casts_shade": [
            "Unstated as a measurement. A mature vine on a trellis or arbor casts real shade, so casts_shade is true; flagged as a derivation. It matters little - grape is in no guild and no layout rule pairs it with a neighbour. [read]"
          ],
          "years_to_bearing": [
            "UMD Extension, 'Growing grapes in a home garden', extension.umd.edu/resource/growing-grapes-home-garden (read 2026-08-05): 'The first crop is usually harvested 3 years after planting.' 3 is that figure; flagged because UMN notes 'It is possible to get fruit one year after planting' - a possibility, against UMD's typical first crop. Grape-general, not type-specific. [read]"
          ]
        }
      }
    },
    {
      "id": "ribes_spp",
      "common": [
        "currant",
        "gooseberry"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Redcurrant,_berries.jpg",
        "artist": "Schnobby",
        "licence": "CC BY-SA 3.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/3.0",
        "alt": "Strings of red currants on the cane",
        "caption": "Ribes covers red currant, black currant and gooseberry."
      },
      "family": "grossulariaceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        3,
        7
      ],
      "mature_height_cm": [
        91,
        152
      ],
      "mature_spread_cm": [
        91,
        152
      ],
      "spacing_in_row_cm": 122,
      "root_depth": "shallow",
      "light_min": "part_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.5
      ],
      "frost_tolerance": "hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": 2,
      "casts_shade": false,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "pollination": {
        "mode": "self",
        "self_incompatible": false
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "gates": [
        "R-076"
      ],
      "cultivar_groups": [
        {
          "id": "red_currant",
          "common": "Red currant",
          "hardiness_zone": [
            3,
            7
          ],
          "mature_height_cm": [
            91,
            152
          ],
          "mature_spread_cm": [
            91,
            152
          ]
        },
        {
          "id": "black_currant",
          "common": "Black currant",
          "hardiness_zone": [
            3,
            7
          ],
          "mature_height_cm": [
            122,
            183
          ],
          "mature_spread_cm": [
            122,
            183
          ]
        },
        {
          "id": "gooseberry",
          "common": "Gooseberry",
          "hardiness_zone": [
            3,
            6
          ],
          "mature_height_cm": [
            91,
            152
          ],
          "mature_spread_cm": [
            91,
            152
          ]
        }
      ],
      "note": "Currant and gooseberry - added 2026-08-05, the 21st family (grossulariaceae) and the fourth Axis C item. Modelled as a GENUS (`ribes_spp`, the vitis_spp/narcissus_spp precedent) with the three home-garden types as cultivar groups (maintainer's choice): red_currant is Ribes rubrum (the default), black_currant is Ribes nigrum, gooseberry is Ribes uva-crispa / hirtellum. A NEW FAMILY, rotation ruling SILENT and stated: no rotation rule names grossulariaceae, and these are perennial shrubs held in dedicated ground. Permanence rides R-072 as the other perennials do; in no guild, the blueberry reason. THE BLISTER-RUST REGULATION IS CARRIED BY R-110, not a blacklist (maintainer ruling 2026-08-05). Ribes is an alternate host of white pine blister rust and some states regulate planting it, but it is a legal, widely grown crop - unlike autumn olive (BLACKLISTED under R-082 as a banned invasive). So the corpus advises rather than refuses: R-110 is a grade-A ADVISE rule scoped to this species. Black currant is the most susceptible and the most regulated, which R-110 names. UNUSUAL FOR A FRUIT CROP, RIBES TOLERATE PART SHADE - light_min is part_sun, sourced outright (Iowa State 'partial to full sun', UMN 'full sun to partial shade', USU 'morning sun, afternoon part-shade'), so it correctly does not trip the full-sun shade rules. SELF-FERTILE, so mode is `self` (out of the forage lens): red currant and gooseberry set fruit from one plant. BLACK CURRANT self-fertility VARIES BY CULTIVAR - 'Consort' is self-fertile, 'Crusader' and 'Coronet' need a pollinizer (UMN, Penn State) - which is a cultivar fact this record does not carry as `self_incompatible` (that would wrongly fire R-080 for every black currant); it is recorded here instead. ZONES: gooseberry [3, 6] is sourced outright (USU 'hardy to zone 3 ... perform well in zones 3 to 6'); the two currants carry a SOURCED cold end (USU red currant 'cold hardy to zone 3 or 4') and a DECLARED warm end 7 (the rhubarb precedent - Ribes are cool-climate and do poorly in heat, but no source gives a warm integer), flagged. The NC State Toolbox has no fruiting-Ribes page (all 404); it carries only the ornamental Ribes sanguineum.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "feeder_class",
          "frost_tolerance",
          "ground_coverage",
          "pollinator_value",
          "years_to_bearing",
          "cultivar_groups.red_currant.hardiness_zone",
          "cultivar_groups.black_currant.hardiness_zone",
          "cultivar_groups.gooseberry.hardiness_zone",
          "cultivar_groups.black_currant.mature_height_cm",
          "cultivar_groups.black_currant.mature_spread_cm"
        ],
        "sources": {
          "hardiness_zone": [
            "The BASE zone is the red-currant (default) group's - cold end sourced, warm end declared - so E-ZONE passes and an unqualified Ribes resolves to red currant. See cultivar_groups.red_currant.hardiness_zone. (2026-08-05) [read]"
          ],
          "cultivar_groups.red_currant.hardiness_zone": [
            "COLD END SOURCED, WARM END DECLARED (the rhubarb precedent, flagged). USU Extension, 'How to Grow Red Currants in Your Garden', extension.usu.edu/yardandgarden/research/red-currants-in-the-garden (read 2026-08-05): 'Most cultivars are cold hardy to zone 3 or 4.' 3 is that floor (the hardier end of USU's own range). No source read gives a warm-end integer for red currant; 7 is the corpus's own, chosen because Ribes are cool-climate and do poorly in summer heat. The NC State Toolbox has no ribes-rubrum page (a 404). Promotable when a human reads a warm-end source. [read]"
          ],
          "cultivar_groups.black_currant.hardiness_zone": [
            "COLD END SOURCED, WARM END DECLARED, flagged. UMN Extension, 'Growing currants and gooseberries in the home garden', extension.umn.edu/fruit/growing-currants-and-gooseberries-home-garden (read 2026-08-05), rates recommended cultivars (including black currants) 'zone 5 to zone 3' - a cold-hardy floor of 3. No warm integer is stated; 7 is the corpus's own, as for red currant. Black currant is the most rust-susceptible type (see R-110). [read]"
          ],
          "cultivar_groups.gooseberry.hardiness_zone": [
            "SOURCED OUTRIGHT. USU Extension, 'How to Grow Gooseberries in Your Garden', extension.usu.edu/yardandgarden/research/gooseberries-in-the-garden (read 2026-08-05): 'hardy to zone 3' and 'usually perform well in zones 3 to 6.' [3, 6] is that range. Flagged pending a human read (invariant 4). [read]"
          ],
          "cultivar_groups.black_currant.mature_height_cm": [
            "Iowa State Extension, 'Growing Currants and Gooseberries in the Home Garden', yardandgarden.extension.iastate.edu/how-to/growing-currants-and-gooseberries-home-garden (read 2026-08-05): black currants 'develop into 4 to 6-foot shrubs.' 4 ft = 121.92 cm, 6 ft = 182.88 cm, so [122, 183] - taller than red currant/gooseberry (USU '3 to 5 feet'). Flagged. [read]"
          ],
          "cultivar_groups.black_currant.mature_spread_cm": [
            "No spread stated for black currant; taken equal to its height band [122, 183] (a vigorous shrub 'about as wide as tall', the USU framing for red currant/gooseberry). Flagged as a derivation. [read]"
          ],
          "mature_height_cm": [
            "USU (red currant, read 2026-08-05): 'Currant bushes are usually about 3 to 5 feet tall and wide.' 3 ft = 91.44 cm, 5 ft = 152.4 cm, so [91, 152]. Same for gooseberry (USU 'usually 3 to 5 feet high and wide'). The base and the red_currant/gooseberry groups carry this; black currant is taller (its own group figure). Flagged as a band. [read]"
          ],
          "mature_spread_cm": [
            "USU (read 2026-08-05): currant and gooseberry bushes are '3 to 5 feet tall and WIDE', so spread equals height, [91, 152]. Flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "USU (red currant + gooseberry, read 2026-08-05): 'Space the plants 3 to 5 feet apart in a row.' 122 cm is 4 ft, the middle of 3-5 ft; flagged for the range. UMN notes black currants are 'more vigorous. Space them four to five feet apart.' Between-row spacing (8-10 ft) is not modelled. [read]"
          ],
          "feeder_class": [
            "Not stated in this corpus's vocabulary by any source read. 'moderate' is the corpus's own conservative call, flagged. (checked 2026-08-05) [read]"
          ],
          "frost_tolerance": [
            "Unstated as a class. Ribes are cold-hardy woody shrubs (USU: red currant 'cold hardy to zone 3 or 4'); `hardy` is the corpus's own call for the dormant plant, flagged. [read]"
          ],
          "ground_coverage": [
            "Unstated. A 3-5 ft shrub gives moderate ground coverage; `moderate` is the corpus's own call, flagged. [read]"
          ],
          "pollinator_value": [
            "Not stated as such. Ribes are self-fertile and grown for fruit; gooseberry flowers are 'pollinated by wind and insects' (USU) but the crop does not depend on a vector. `low` is the corpus's own call, flagged. [read]"
          ],
          "years_to_bearing": [
            "USU (red currant, read 2026-08-05): 'During the second year of growth, the plants should produce a light crop. Expect a full crop the third year.' UMN (genus): 'Expect to get fruit 1 to 3 years after planting.' 2 is the light-crop year; flagged for the 1-3 spread and because a full crop is year 3. [read]"
          ]
        }
      }
    },
    {
      "id": "ficus_carica",
      "common": [
        "fig"
      ],
      "image": {
        "source": "Wikimedia Commons",
        "url": "https://commons.wikimedia.org/wiki/File:Fig_(Ficus_carica)_fruit_halved.jpg",
        "artist": "Ivar Leidus",
        "licence": "CC BY-SA 4.0",
        "licence_url": "https://creativecommons.org/licenses/by-sa/4.0",
        "alt": "A fig cut in half, showing its red interior"
      },
      "family": "moraceae",
      "category": "fruit",
      "lifespan": "perennial",
      "habit": "shrub",
      "hardiness_zone": [
        7,
        10
      ],
      "mature_height_cm": [
        305,
        914
      ],
      "mature_spread_cm": [
        305,
        914
      ],
      "spacing_in_row_cm": 305,
      "root_depth": "shallow",
      "light_min": "full_sun",
      "feeder_class": "moderate",
      "n_fixing": false,
      "ph_range": [
        6.0,
        6.5
      ],
      "frost_tolerance": "half_hardy",
      "scheduling_model": "perennial",
      "years_to_bearing": 3,
      "casts_shade": true,
      "ground_coverage": "moderate",
      "pollinator_value": "low",
      "pollination": {
        "mode": "self",
        "self_incompatible": false
      },
      "support": {
        "provides": "none",
        "requires": "none"
      },
      "gates": [
        "R-076"
      ],
      "note": "Fig - added 2026-08-05, the 22nd family (moraceae) and the LAST Axis C item, completing the family expansion. A NEW FAMILY, rotation ruling SILENT and stated: no rotation rule names moraceae, and fig is a woody perennial held on a permanent site. Permanence rides R-072; in no guild, the blueberry reason. THE ZONE-MARGINAL BLOCKER RESOLVED THE ROSEMARY WAY, not with a new \"protection extends the zone\" concept (which would fabricate survival the plant does not have unprotected). The zone is the plant's HONEST unprotected range - [7, 10], sourced outright from the NC State Toolbox - and R-076 correctly gates it too-cold below 7. The overwintering PRACTICE, which is how fig is grown colder, is carried HERE in prose rather than as a rule: a species-scoped rule reads no field and would fire \"wrap your fig\" in zone 10 where it is pointless, so the zone-conditional advice stays a note, exactly as rosemary's \"grown as a potted plant\" does. The practice, all extension-sourced (Rutgers, NC State, Penn State): grow fig in a large CONTAINER and move it to an unheated garage when dormant; or WRAP the plant in burlap/tar paper; or build a chicken-wire CAGE filled with hay/mulch; or MOUND 1-2 ft of soil/mulch over the base. Fig fruits on the CURRENT SEASON'S new wood, so a plant killed to the ground by cold can resprout and still crop - the die-back-and-resprout mechanism NC State, UGA, Penn State and Arkansas all state, and the reason a marginal fig is still worth planting. NO CULTIVAR GROUPS, and that is a sourcing finding, not an omission. The cold-hardy cultivars ('Chicago Hardy', 'Celeste', 'Brown Turkey') are real, but NO extension source gives them a colder USDA zone INTEGER - extension states their hardiness as degF tolerance (~0-10F with protection) and the die-back/resprout habit, while the \"hardy cultivar = zone 6\" number is nursery/blog framing only (D-146 excludes it). Encoding a hardy/standard zone split would be the endive/blackberry error: a distinction no read source shares. The named hardy cultivars are in the note as a purchasing steer, not as groups. PARTHENOCARPIC, so mode is `self` (out of the forage lens): common/home-garden figs 'set fruit without cross-pollination' (Clemson, UGA, NC State) - the wasp-dependent Smyrna/caprifig types, which need a Blastophaga wasp not present in most of the US, are deliberately not modelled. SIZE IS ROUTINELY RESTRAINED: the toolbox 10-30 ft is the unpruned extent; Clemson notes 'severe pruning can restrict them to a manageable height', and container figs are smaller still.\n",
      "confidence": {
        "estimated": [
          "hardiness_zone",
          "mature_height_cm",
          "mature_spread_cm",
          "spacing_in_row_cm",
          "feeder_class",
          "ph_range",
          "frost_tolerance",
          "ground_coverage",
          "pollinator_value",
          "casts_shade",
          "years_to_bearing"
        ],
        "sources": {
          "hardiness_zone": [
            "SOURCED. NC State Extension Gardener Plant Toolbox, 'Ficus carica', plants.ces.ncsu.edu/plants/ficus-carica/ (read 2026-08-05): USDA Plant Hardiness Zone '7a, 7b, 8a, 8b, 9a, 9b, 10a, 10b', so [7, 10]. This is the SPECIES' honest unprotected range. NO extension source gives a colder zone integer for the hardy cultivars - they state degF tolerance and die-back/resprout instead (Penn State: 'Chicago Hardy ... Extremely cold hardy down to 10F'; Rutgers: 'Brown Turkey, Celeste, and Hardy Chicago (if properly protected outside) will survive winters when temperatures drop to 0F') - which is why no colder-zone group exists. The overwintering note carries the sub-zone-7 practice. Flagged pending a human read (invariant 4). [read]"
          ],
          "mature_height_cm": [
            "NC State Plant Toolbox (read 2026-08-05): Height '10 ft. 0 in. - 30 ft. 0 in.', so [305, 914] (10 ft = 304.8 cm, 30 ft = 914.4 cm). This is the UNPRUNED extent; Clemson (hgic.clemson.edu/factsheet/figs-how-to-grow-and-care-for-figs-in-south-carolina) notes 'severe pruning can restrict them to a manageable height, as they tend to grow wider than taller', and container figs are smaller. Flagged as a wide band routinely restrained in practice. [read]"
          ],
          "mature_spread_cm": [
            "NC State Plant Toolbox (read 2026-08-05): Width '10 ft. 0 in. - 30 ft. 0 in.', so [305, 914]. Same caveat as height - the unpruned spread, kept smaller by pruning or a container. Flagged. [read]"
          ],
          "spacing_in_row_cm": [
            "NC State, 'Fig Culture in North Carolina', content.ces.ncsu.edu/fig-culture-in-north-carolina (read 2026-08-05): 'those grown as bushes require a 10-foot spacing' (305 cm); trained as trees, '15 to 20 feet apart'. 305 cm is the bush figure (this record models fig as a shrub). Flagged. [read]"
          ],
          "feeder_class": [
            "Not stated in this corpus's vocabulary by any source read. 'moderate' is the corpus's own conservative call, flagged. (checked 2026-08-05) [read]"
          ],
          "ph_range": [
            "SOURCES AGREE ON THE TIGHT RANGE. NC State Fig Culture 'A soil pH of 6.0 to 6.5 is optimum'; Penn State 'a pH of 6.0 to 6.5' (extension.psu.edu/figs-in-the-home-garden). [6.0, 6.5] is that shared optimum. UGA gives 5.5-6.5 and Rutgers 6.0-7.5 (wider); the corpus takes the tightest most-repeated band. Flagged for the spread. (read 2026-08-05) [read]"
          ],
          "frost_tolerance": [
            "half_hardy, the rosemary class for a zone-marginal perennial, flagged. Penn State (read 2026-08-05): 'young fig trees can't tolerate temperatures below 20 to 30F'; the tops are cold-sensitive while 'Fig roots are usually much hardier than the top-growth' (U. Arkansas). No source states a frost-tolerance CLASS in this corpus's vocabulary; half_hardy is the corpus's call for a plant that survives its zone but needs protection at the margin. [read]"
          ],
          "ground_coverage": [
            "Unstated. A large multi-stemmed shrub gives moderate ground coverage; `moderate` is the corpus's own call, flagged. [read]"
          ],
          "pollinator_value": [
            "Not stated as such. Fig is parthenocarpic (sets fruit without pollination) and its tiny flowers are enclosed in the fruit (syconium); forage value is negligible. `low` is the corpus's own call, flagged. self_incompatible is FALSE - common figs 'set fruit without cross-pollination' (Clemson/UGA/NC State) - so R-080 correctly does not fire. [read]"
          ],
          "casts_shade": [
            "Unstated as a measurement. A 10-30 ft (unpruned) fig casts real shade; casts_shade is true, flagged as a derivation from the size. It matters little - fig is in no guild and no layout rule pairs it with a neighbour. [read]"
          ],
          "years_to_bearing": [
            "Clemson (read 2026-08-05): 'it may be three or four years before the plant matures a crop because most figs have a long juvenile period'; UGA C945 states the same near-verbatim. 3 is the near end; flagged for the 3-4 spread. [read]"
          ]
        }
      }
    }
  ],
  "entities": [
    {
      "id": "trellis_structure",
      "entity_class": "structure",
      "common": [
        "cattle panel",
        "bamboo tripod",
        "string trellis"
      ],
      "support": {
        "provides": "strong",
        "provides_load_vines": 999,
        "requires": "none"
      },
      "feeder_class": "none",
      "n_fixing": false,
      "casts_shade": true,
      "ground_coverage": "none",
      "footprint_cm": {
        "w": 5,
        "d": 5
      },
      "cost_usd": [
        10,
        40
      ],
      "lifespan_years": [
        5,
        20
      ],
      "substitution_note": "Fills the support role with zero nutrient competition, zero timing constraint, and effectively unbounded load. Loses biomass, ground cover, and the story.\n"
    },
    {
      "id": "bare_ground_mulch",
      "entity_class": "material",
      "feeder_class": "none",
      "n_fixing": false,
      "casts_shade": false,
      "ground_coverage": "high",
      "substitution_note": "Fills the cover role. Does not grow food. Sometimes correct."
    }
  ],
  "hazards": [
    {
      "id": "juglans_nigra",
      "common": [
        "black walnut"
      ],
      "family": "juglandaceae",
      "entity_class": "hazard",
      "hazard_type": "allelopathy",
      "compound": "juglone",
      "compound_precursor": "hydrojuglone",
      "mechanism": "respiration_inhibitor",
      "effect_radius_m": [
        15,
        25
      ],
      "sensitive_families": [
        "solanaceae"
      ],
      "sensitive_species": [
        "solanum_lycopersicum",
        "solanum_tuberosum",
        "solanum_melongena",
        "capsicum_annuum",
        "malus_domestica",
        "brassica_oleracea",
        "asparagus_officinalis",
        "rheum_rhabarbarum"
      ],
      "tolerant_species": [
        "zea_mays",
        "phaseolus_vulgaris",
        "allium_cepa",
        "daucus_carota",
        "beta_vulgaris",
        "cucumis_melo",
        "pastinaca_sativa",
        "cucurbita_pepo"
      ],
      "rule": "R-020",
      "note": "Also J. cinerea, J. regia (weaker), and Carya spp. (weaker).\nRASPBERRY IS DELIBERATELY NOT ON THE SENSITIVE LIST. UW-Madison's table names BLACKBERRY, and this corpus models rubus_idaeus, the red raspberry - a different species in the same genus. Adding it would be an inference from a genus, and this rule BLOCKS, which is the worst place in the corpus to guess. Recorded so the omission reads as a decision rather than an oversight.\nASPARAGUS and RHUBARB were added to this corpus 2026-08-05 (the perennial-vegetable expansion), and this note reserved their place: both are on UW-Madison's sensitive table, so both entered juglone-sensitive and are now on the sensitive_species list above. Like cabbage before them, that membership CHANGES what a gardener is told - R-020 blocks, and asparagus or rhubarb sited within a black walnut's juglone zone previously fired nothing.\n",
      "confidence": {
        "estimated": [
          "effect_radius_m",
          "tolerant_species"
        ],
        "sources": {
          "effect_radius_m": [
            "UW-Madison / Wisconsin Horticulture (Joy, Hudelson & Jull, rev. 2024-02-28), 'Black Walnut Toxicity', hort.extension.wisc.edu/articles/black-walnut-toxicity (re-read 2026-07-25): 'The toxic effects of a mature black walnut tree can extend 50 to 80 feet from the trunk of the tree, with the greatest toxicity occurring within the tree's dripline.' 50 ft is 15.24 m and 80 ft is 24.38 m, so [15, 25] is a metric rounding of a stated range - and BOTH BOUNDS ROUND OUTWARD, widening the hazard rather than narrowing it, which is the conservative direction for a rule that blocks. Flagged because a rounded conversion is not the figure the publication states (D-146). The sentence was already quoted in R-020's own evidence.pointers; it was never attached to the FIELD, so the number looked unsourced to anything reading the species entry. [read]",
            "NOTE WHAT THE SAME SENTENCE IMPLIES AND THIS FIELD CANNOT EXPRESS: 'the greatest toxicity occurring within the tree's dripline' makes this a graded effect, strongest near the trunk and fading outward, while effect_radius_m is a flat [15, 25] band that the rule treats as in-or-out. The corpus has no way to say 'worse nearer'. Recorded rather than modelled. [read]"
          ],
          "sensitive_species": [
            "UW-Madison, same page (re-read 2026-07-25). The prose names the four solanaceous vegetables - 'Vegetables such as tomato, potato, eggplant and pepper ... are particularly sensitive to juglone' - and the page's TABLE is wider. Its sensitive vegetables are 'asparagus, cabbage, eggplant, pepper, potato, rhubarb, tomato'; its sensitive trees include 'apple and crabapple'. brassica_oleracea (cabbage) was added on this table, and it is the one entry here that changes what a gardener is told: R-020 blocks, and cabbage under a walnut previously fired nothing. ASPARAGUS and RHUBARB, named in the same table sentence, were added to this corpus 2026-08-05 and are now on the sensitive list on the same UW-Madison authority. BLACKBERRY is on it and red raspberry is not - see the note. [read]"
          ],
          "tolerant_species": [
            "UW-Madison, same page (re-read 2026-07-25), tolerant table: vegetables are 'beans, beet, carrot, corn, melon, onion, parsnip, squash'. All eight are modelled here except that 'melon' and 'squash' are genus-level in the source - cucumis_melo and cucurbita_pepo are this corpus's nearest entries and are taken as the intended ones, which is why this field STAYS FLAGGED even though the list is now the source's. citrullus_lanatus (watermelon) is NOT added: 'melon' in a Wisconsin vegetable table is muskmelon, and stretching it to watermelon on a rule this strong is a guess. [read]"
          ]
        }
      }
    }
  ],
  "guilds": [
    {
      "id": "three_sisters",
      "common": [
        "Three Sisters",
        "Tres Hermanas"
      ],
      "guild_class": "polyculture",
      "surfaces_beliefs": [
        "B-002"
      ],
      "provenance": "Haudenosaunee and widespread Indigenous North American polyculture.",
      "footprint_min_m2": 4.0,
      "footprint_reason": "R-001",
      "duration": "annual",
      "planting_source": "Cornell Garden-Based Learning, How to Plant the Three Sisters (read 2026-07-14)",
      "roles": [
        {
          "id": "support",
          "predicate": {
            "support.provides": "strong",
            "mature_height_cm": {
              "min": 150
            }
          },
          "canonical": "zea_mays",
          "alternative": "helianthus_annuus",
          "alternative_cost": "Sunflower can carry the beans, but it is a heavy nitrogen feeder that competes with the fixer and casts shade (R-021), and it needs a ~30-day head start or the vines pull it down.\n",
          "cost_tags": [
            "nitrogen_competition",
            "head_start_30d",
            "load_2_vines"
          ],
          "planting_density_m2": 5.0
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true,
            "habit": "vine",
            "support.requires": "strong"
          },
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ],
          "planting_density_m2": 4.0
        },
        {
          "id": "cover",
          "predicate": {
            "habit": "vine",
            "casts_shade": false,
            "ground_coverage": "high"
          },
          "canonical": "cucurbita_pepo",
          "canonical_group": "vining",
          "alternatives": [
            "cucurbita_moschata",
            "cucurbita_maxima",
            "ipomoea_batatas",
            {
              "species": "cucumis_sativus",
              "group": "vining"
            }
          ],
          "planting_density_m2": 0.6
        }
      ],
      "mechanisms": [
        {
          "claim": "corn provides a living trellis",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "squash foliage suppresses weeds and retains soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "squash spines and sprawl deter some vertebrate pests",
          "grade": "C",
          "role": "cover"
        },
        {
          "claim": "beans fix nitrogen available to corn in-season",
          "grade": "C",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "poaceae": "full",
        "fabaceae": "full",
        "cucurbitaceae": "full"
      },
      "gates": [
        "R-001"
      ],
      "derived_harmony": {
        "score": 4,
        "band": "backed",
        "rules": [
          "R-001",
          "R-053"
        ]
      }
    },
    {
      "id": "four_sisters",
      "common": [
        "Four Sisters"
      ],
      "guild_class": "polyculture",
      "derived_from": "three_sisters",
      "provenance": "Contested and regional. The fourth sister is variously given as sunflower, Rocky Mountain bee plant, or amaranth, depending on nation and source. Do not present a canonical version.\n",
      "footprint_min_m2": 4.0,
      "footprint_reason": "R-001",
      "duration": "annual",
      "planting_source": "Cornell Garden-Based Learning, How to Plant the Three Sisters (read 2026-07-14); insectary density estimated (sparse accent)",
      "roles": [
        {
          "id": "support",
          "predicate": {
            "support.provides": "strong"
          },
          "canonical": "zea_mays",
          "planting_density_m2": 5.0
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true
          },
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ],
          "planting_density_m2": 4.0
        },
        {
          "id": "cover",
          "predicate": {
            "ground_coverage": "high"
          },
          "canonical": "cucurbita_pepo",
          "canonical_group": "vining",
          "alternatives": [
            "cucurbita_moschata",
            "cucurbita_maxima",
            "ipomoea_batatas",
            {
              "species": "cucumis_sativus",
              "group": "vining"
            }
          ],
          "planting_density_m2": 0.6
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ],
            "casts_shade": false
          },
          "canonical": "cleome_serrulata",
          "alternatives": [
            "helianthus_annuus",
            "amaranthus_cruentus",
            "borago_officinalis"
          ],
          "planting_density_m2": 0.5
        }
      ],
      "mechanisms": [
        {
          "claim": "insectary draws pollinators and predatory insects",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "sunflower as fourth sister competes for N and casts shade",
          "grade": "B",
          "rule": "R-021",
          "role": "insectary"
        }
      ],
      "rotation_load": {
        "poaceae": "full",
        "fabaceae": "full",
        "cucurbitaceae": "full"
      },
      "gates": [
        "R-001"
      ],
      "derived_harmony": {
        "score": 5,
        "band": "backed",
        "rules": [
          "R-001",
          "R-052",
          "R-053"
        ]
      }
    },
    {
      "id": "milpa",
      "guild_class": "polyculture",
      "provenance": "Mesoamerican. Three Sisters is the northern expression of this system.",
      "default_structure": "field",
      "footprint_min_m2": 50,
      "footprint_reason": "Milpa is a field system with a fallow cycle, not a bed. Below field scale you are growing Three Sisters and calling it something else.\n",
      "duration": "annual",
      "planting_source": "Ramírez-Vega et al., Maize Intercropping in the Traditional Milpa System, PMC9605515 (read 2026-07-14); chile/amaranth densities estimated (sparse, not in close association)",
      "roles": [
        {
          "id": "support",
          "canonical": "zea_mays",
          "alternative": "helianthus_annuus",
          "alternative_cost": "Sunflower can carry the beans, but it is a heavy nitrogen feeder that competes with the fixer and casts shade (R-021), and it needs a ~30-day head start or the vines pull it down.\n",
          "cost_tags": [
            "nitrogen_competition",
            "head_start_30d",
            "load_2_vines"
          ],
          "planting_density_m2": 8.0
        },
        {
          "id": "fixer",
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ],
          "planting_density_m2": 6.0
        },
        {
          "id": "cover",
          "canonical": "cucurbita_moschata",
          "alternatives": [
            "cucurbita_maxima",
            "cucurbita_pepo"
          ],
          "planting_density_m2": 2.0
        },
        {
          "id": "fruiting_understory",
          "canonical": "capsicum_annuum",
          "alternatives": [
            "physalis_philadelphica"
          ],
          "planting_density_m2": 1.0
        },
        {
          "id": "leaf_crop",
          "canonical": "amaranthus_cruentus",
          "optional": true,
          "planting_density_m2": 0.5
        }
      ],
      "mechanisms": [
        {
          "claim": "corn provides a living trellis",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "squash foliage suppresses weeds and retains soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "fallow cycle restores fertility at field scale",
          "grade": "B",
          "rule": "R-015"
        },
        {
          "claim": "beans fix nitrogen available to corn in-season",
          "grade": "C",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "poaceae": "full",
        "fabaceae": "full",
        "cucurbitaceae": "full",
        "solanaceae": "partial"
      },
      "gates": [
        "R-002",
        "R-071"
      ],
      "ruling_when_ineligible": "Milpa is a field system with a fallow rotation. At your scale you want Three Sisters, which is the same guild adapted to a garden.\n",
      "derived_harmony": {
        "score": 4,
        "band": "backed",
        "rules": [
          "R-001",
          "R-053"
        ]
      }
    },
    {
      "id": "three_sisters_small_bed",
      "common": [
        "Three Sisters (small bed)"
      ],
      "guild_class": "polyculture",
      "derived_from": "three_sisters",
      "footprint_min_m2": 1.5,
      "duration": "annual",
      "roles": [
        {
          "id": "support",
          "substitute": "trellis_structure",
          "cost": "No biomass, no romance. About $20. Reusable across seasons.",
          "alternative": "helianthus_annuus",
          "alternative_cost": "Heavy N feeder competing with the fixer; requires ~30 day head start or vines pull it down; supports about 2 vines per stalk.\n",
          "cost_tags": [
            "nitrogen_competition",
            "head_start_30d",
            "load_2_vines"
          ]
        },
        {
          "id": "fixer",
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ]
        },
        {
          "id": "cover",
          "canonical": "cucurbita_pepo",
          "canonical_group": "bush",
          "alternatives": [
            {
              "species": "cucurbita_pepo",
              "group": "zucchini"
            },
            {
              "species": "cucumis_sativus",
              "group": "bush"
            }
          ]
        }
      ],
      "mechanisms": [
        {
          "claim": "trellis provides vertical support",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "bush squash suppresses weeds",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "beans improve the ground for next season",
          "grade": "B",
          "rule": "R-015",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "fabaceae": "full",
        "cucurbitaceae": "full"
      },
      "honesty_note": "Label as an adaptation, not as Three Sisters. It preserves the mechanisms and drops the crop that made it a subsistence system. The beans climb a trellis instead of corn, so the corn block - and the pollination mechanism that needs it - is gone.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-053"
        ]
      }
    },
    {
      "id": "brassica_aromatic",
      "common": [
        "brassicas with aromatic herbs"
      ],
      "guild_class": "polyculture",
      "footprint_min_m2": 1.0,
      "duration": "mixed",
      "roles": [
        {
          "id": "primary",
          "predicate": {
            "family": "brassicaceae"
          },
          "canonical": "brassica_oleracea",
          "alternatives": [
            "brassica_rapa",
            "brassica_napus",
            "raphanus_sativus",
            "eruca_sativa",
            "brassica_juncea"
          ]
        },
        {
          "id": "masking",
          "predicate": {
            "volatile_aromatic": true,
            "mature_height_cm": {
              "max": 60
            }
          },
          "canonical": "thymus_vulgaris",
          "alternatives": [
            "origanum_vulgare",
            "salvia_officinalis",
            "artemisia_dracunculus"
          ]
        }
      ],
      "mechanisms": [
        {
          "claim": "reported reduction in cabbage-worm damage; mechanism unresolved",
          "grade": "C",
          "rule": "R-050",
          "role": "masking"
        }
      ],
      "effect_size": "Reported reductions vary widely; several trials show none. Promise nothing.",
      "rotation_load": {
        "brassicaceae": "full"
      },
      "gates": [
        "R-072"
      ],
      "note": "The weakest polyculture in the corpus and the one whose grade will move first. If the trials collapse, demote to D and say so in the commit.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-050"
        ]
      }
    },
    {
      "id": "sweet_potato_milpa",
      "common": [
        "sweet-potato milpa",
        "squash-free sisters"
      ],
      "guild_class": "polyculture",
      "provenance": "A derived composition (docs/PROPOSAL-35-combinations.md #1, adopted 2026-08-09): the Three Sisters role structure with sweet potato in the cover slot — a milpa for a gardener who does not want squash. Not a documented traditional planting.\n",
      "footprint_min_m2": 4.0,
      "footprint_reason": "R-001",
      "duration": "annual",
      "planting_source": "corn/bean densities from Cornell's Three Sisters hill method (see three_sisters, read 2026-07-14); sweet-potato cover density ESTIMATED — no interplanted rate read",
      "roles": [
        {
          "id": "support",
          "predicate": {
            "support.provides": "strong",
            "mature_height_cm": {
              "min": 150
            }
          },
          "canonical": "zea_mays",
          "planting_density_m2": 5.0
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true,
            "habit": "vine",
            "support.requires": "strong"
          },
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ],
          "planting_density_m2": 4.0
        },
        {
          "id": "cover",
          "predicate": {
            "habit": "vine",
            "casts_shade": false,
            "ground_coverage": "high"
          },
          "canonical": "ipomoea_batatas",
          "planting_density_m2": 1.0
        }
      ],
      "mechanisms": [
        {
          "claim": "corn provides a living trellis",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "sweet-potato foliage suppresses weeds and retains soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "beans fix nitrogen available to corn in-season",
          "grade": "C",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "poaceae": "full",
        "fabaceae": "full",
        "convolvulaceae": "full"
      },
      "gates": [
        "R-001"
      ],
      "derived_harmony": {
        "score": 4,
        "band": "backed",
        "rules": [
          "R-001",
          "R-053"
        ]
      }
    },
    {
      "id": "sweet_potato_milpa_small_bed",
      "common": [
        "Sweet-Potato Milpa (small bed)"
      ],
      "guild_class": "polyculture",
      "derived_from": "sweet_potato_milpa",
      "footprint_min_m2": 1.5,
      "duration": "annual",
      "roles": [
        {
          "id": "support",
          "substitute": "trellis_structure",
          "cost": "No biomass, no romance. About $20. Reusable across seasons.",
          "alternative": "helianthus_annuus",
          "alternative_cost": "Heavy N feeder competing with the fixer; requires ~30 day head start or vines pull it down; supports about 2 vines per stalk.\n",
          "cost_tags": [
            "nitrogen_competition",
            "head_start_30d",
            "load_2_vines"
          ]
        },
        {
          "id": "fixer",
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "pole",
          "alternatives": [
            "phaseolus_coccineus",
            "vigna_unguiculata",
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ]
        },
        {
          "id": "cover",
          "canonical": "ipomoea_batatas"
        }
      ],
      "mechanisms": [
        {
          "claim": "trellis provides vertical support",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "sweet-potato foliage suppresses weeds and retains soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "beans improve the ground for next season",
          "grade": "B",
          "rule": "R-015",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "fabaceae": "full",
        "convolvulaceae": "full"
      },
      "honesty_note": "Label as an adaptation, not as a milpa. The beans climb a trellis instead of corn, so the corn block - and the pollination mechanism that needs it - is gone. Sweet potato remains the ground layer it always was.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-053"
        ]
      }
    },
    {
      "id": "melon_sisters",
      "common": [
        "melon sisters",
        "corn cowpea and melon"
      ],
      "guild_class": "polyculture",
      "provenance": "A derived composition (docs/PROPOSAL-35-combinations.md #2, adopted 2026-08-09): the Sisters role structure with cowpea as the fixer and melon as the cover. Not a documented traditional planting — and deliberately NOT an alternative on three_sisters, whose 2026-07-26 ruling declined melons there on provenance grounds. A separate guild carries its own provenance.\n",
      "footprint_min_m2": 4.0,
      "footprint_reason": "R-001",
      "duration": "annual",
      "planting_source": "corn/bean densities from Cornell's Three Sisters hill method (see three_sisters, read 2026-07-14); melon cover density ESTIMATED — no interplanted rate read",
      "roles": [
        {
          "id": "support",
          "predicate": {
            "support.provides": "strong",
            "mature_height_cm": {
              "min": 150
            }
          },
          "canonical": "zea_mays",
          "planting_density_m2": 5.0
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true,
            "habit": "vine",
            "support.requires": "strong"
          },
          "canonical": "vigna_unguiculata",
          "alternatives": [
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ],
          "planting_density_m2": 4.0
        },
        {
          "id": "cover",
          "predicate": {
            "habit": "vine",
            "casts_shade": false,
            "ground_coverage": "high"
          },
          "canonical": "cucumis_melo",
          "alternatives": [
            "citrullus_lanatus"
          ],
          "planting_density_m2": 0.6
        }
      ],
      "mechanisms": [
        {
          "claim": "corn provides a living trellis",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "melon vines suppress weeds and retain soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "cowpeas fix nitrogen available to corn in-season",
          "grade": "C",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "poaceae": "full",
        "fabaceae": "full",
        "cucurbitaceae": "full"
      },
      "gates": [
        "R-001"
      ],
      "derived_harmony": {
        "score": 4,
        "band": "backed",
        "rules": [
          "R-001",
          "R-053"
        ]
      }
    },
    {
      "id": "melon_sisters_small_bed",
      "common": [
        "Melon Sisters (small bed)"
      ],
      "guild_class": "polyculture",
      "derived_from": "melon_sisters",
      "footprint_min_m2": 1.5,
      "duration": "annual",
      "roles": [
        {
          "id": "support",
          "substitute": "trellis_structure",
          "cost": "No biomass, no romance. About $20. Reusable across seasons.",
          "alternative": "helianthus_annuus",
          "alternative_cost": "Heavy N feeder competing with the fixer; requires ~30 day head start or vines pull it down; supports about 2 vines per stalk.\n",
          "cost_tags": [
            "nitrogen_competition",
            "head_start_30d",
            "load_2_vines"
          ]
        },
        {
          "id": "fixer",
          "canonical": "vigna_unguiculata",
          "alternatives": [
            {
              "species": "phaseolus_lunatus",
              "group": "pole"
            }
          ]
        },
        {
          "id": "cover",
          "canonical": "cucumis_melo",
          "alternatives": [
            "citrullus_lanatus"
          ]
        }
      ],
      "mechanisms": [
        {
          "claim": "trellis provides vertical support",
          "grade": "A",
          "role": "support"
        },
        {
          "claim": "melon vines suppress weeds and retain soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        },
        {
          "claim": "cowpeas improve the ground for next season",
          "grade": "B",
          "rule": "R-015",
          "role": "fixer"
        }
      ],
      "rotation_load": {
        "fabaceae": "full",
        "cucurbitaceae": "full"
      },
      "honesty_note": "Label as an adaptation, not as Melon Sisters. The cowpeas climb the trellis instead of corn, so the corn block - and the pollination mechanism that needs it - is gone. The melon stays the ground layer; on a bed this small, let its vines run over the edges rather than crowding the roots.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-053"
        ]
      }
    },
    {
      "id": "carrot_onion_dill",
      "common": [
        "carrot onion and dill",
        "rust-fly bed"
      ],
      "guild_class": "polyculture",
      "provenance": "A derived composition (docs/PROPOSAL-35-combinations.md #22, adopted 2026-08-09), built to give the carrot rust fly mechanism a role-based expression: before this arc no guild contained carrot at all.\n",
      "footprint_min_m2": 1.0,
      "duration": "annual",
      "roles": [
        {
          "id": "primary",
          "canonical": "daucus_carota",
          "canonical_group": "nantes"
        },
        {
          "id": "companion",
          "predicate": {
            "family": "amaryllidaceae"
          },
          "canonical": "allium_cepa",
          "alternatives": [
            "allium_ampeloprasum",
            "allium_fistulosum",
            "allium_sativum",
            "allium_schoenoprasum"
          ]
        },
        {
          "id": "border",
          "canonical": "anethum_graveolens",
          "optional": true
        }
      ],
      "mechanisms": [
        {
          "claim": "alliums interplanted with carrots reduce carrot rust fly damage",
          "grade": "C",
          "rule": "R-051",
          "role": "companion"
        }
      ],
      "rotation_load": {
        "apiaceae": "full",
        "amaryllidaceae": "partial"
      },
      "gates": [
        "R-071",
        "R-081"
      ],
      "note": "The proposal scored this 2 with an insectary point; the point was dropped as claim-unfaithful. Nothing in this bed fruits, so pollinator visitation has nothing to improve — dill stays as a border herb with no mechanism claimed. One mechanism, honestly stated, is the guild.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-051"
        ]
      }
    },
    {
      "id": "carrot_chive_lettuce",
      "common": [
        "carrot chive and lettuce"
      ],
      "guild_class": "polyculture",
      "provenance": "A derived composition (docs/PROPOSAL-35-combinations.md #23, adopted 2026-08-09): the carrot-allium pairing at salad scale, with a lettuce canopy on the soil between rows.\n",
      "footprint_min_m2": 1.0,
      "duration": "mixed",
      "roles": [
        {
          "id": "primary",
          "canonical": "daucus_carota",
          "canonical_group": "nantes"
        },
        {
          "id": "companion",
          "canonical": "allium_schoenoprasum"
        },
        {
          "id": "cover",
          "predicate": {
            "ground_coverage": [
              "moderate",
              "high"
            ]
          },
          "canonical": "lactuca_sativa",
          "canonical_group": "looseleaf"
        }
      ],
      "mechanisms": [
        {
          "claim": "alliums interplanted with carrots reduce carrot rust fly damage",
          "grade": "C",
          "rule": "R-051",
          "role": "companion"
        },
        {
          "claim": "a low lettuce canopy shades the soil between carrot rows",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        }
      ],
      "rotation_load": {
        "apiaceae": "full",
        "asteraceae": "partial",
        "amaryllidaceae": "partial"
      },
      "gates": [
        "R-071",
        "R-072"
      ],
      "derived_harmony": {
        "score": 2,
        "band": "partial",
        "rules": [
          "R-051",
          "R-053"
        ]
      }
    },
    {
      "id": "tomatillo_pair",
      "common": [
        "tomatillo pair",
        "husk-tomato bed"
      ],
      "guild_class": "polyculture",
      "provenance": "A derived composition (docs/PROPOSAL-35-combinations.md #28, adopted 2026-08-09), built around a hard structural fact most plans get wrong: tomatillo is self-incompatible and needs two plants to set fruit. The guild exists to make that requirement unmissable.\n",
      "footprint_min_m2": 3.0,
      "duration": "annual",
      "roles": [
        {
          "id": "primary",
          "canonical": "physalis_philadelphica"
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ]
          },
          "canonical": "cleome_serrulata",
          "alternatives": [
            "anethum_graveolens",
            "phacelia_tanacetifolia",
            "borago_officinalis"
          ]
        },
        {
          "id": "cover",
          "predicate": {
            "habit": "vine",
            "casts_shade": false,
            "ground_coverage": "high"
          },
          "canonical": "cucurbita_pepo",
          "canonical_group": "vining",
          "alternatives": [
            "cucurbita_moschata",
            "cucurbita_maxima",
            {
              "species": "cucumis_sativus",
              "group": "vining"
            }
          ],
          "optional": true
        }
      ],
      "mechanisms": [
        {
          "claim": "an insectary beside a fruiting crop improves predator presence",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "squash foliage suppresses weeds and retains soil moisture",
          "grade": "C",
          "rule": "R-053",
          "role": "cover"
        }
      ],
      "rotation_load": {
        "solanaceae": "full",
        "cucurbitaceae": "full",
        "cleomaceae": "partial"
      },
      "gates": [
        "R-071",
        "R-080"
      ],
      "derived_harmony": {
        "score": 2,
        "band": "partial",
        "rules": [
          "R-052",
          "R-053"
        ]
      }
    },
    {
      "id": "temperate_fruit_tree_guild",
      "common": [
        "apple guild",
        "fruit tree guild"
      ],
      "guild_class": "perennial_guild",
      "provenance": "Permaculture design literature. Long informal track record.",
      "duration": "perennial",
      "horizon_years": [
        10,
        40
      ],
      "footprint_min_m2": 25,
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "malus_domestica",
          "alternatives": [
            "prunus_persica",
            "pyrus_communis",
            "prunus_domestica",
            "prunus_cerasus"
          ],
          "gate": "R-076"
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true
          },
          "canonical": "trifolium_repens",
          "alternatives": [
            "lupinus_perennis"
          ],
          "excluded": [
            "elaeagnus_umbellata"
          ],
          "exclusion_reason": "R-082"
        },
        {
          "id": "mulch_producer",
          "canonical": "symphytum_x_uplandicum",
          "mechanism_grade": "C"
        },
        {
          "id": "bulb_ring",
          "canonical": "narcissus_spp",
          "alternatives": [
            "allium_sativum"
          ]
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ]
          },
          "canonical": "achillea_millefolium",
          "alternatives": [
            "anethum_graveolens",
            "phacelia_tanacetifolia",
            "borago_officinalis",
            "melissa_officinalis",
            "allium_schoenoprasum"
          ],
          "excluded": [
            "foeniculum_vulgare"
          ],
          "exclusion_reason": "R-022"
        }
      ],
      "mechanisms": [
        {
          "claim": "bulb ring suppresses turfgrass competition at the trunk",
          "grade": "A",
          "rule": "R-075",
          "role": "bulb_ring"
        },
        {
          "claim": "understory insectary improves predator presence",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "chop-and-drop mulch cycles K and builds soil organic matter",
          "grade": "C",
          "role": "mulch_producer"
        },
        {
          "claim": "fixer feeds the tree in-season",
          "grade": "F",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080"
      ],
      "derived_harmony": {
        "score": 5,
        "band": "backed",
        "rules": [
          "R-052",
          "R-075",
          "R-075b"
        ]
      }
    },
    {
      "id": "temperate_fruit_tree_guild_dwarf",
      "common": [
        "fruit tree guild (dwarf)",
        "small-space fruit guild"
      ],
      "guild_class": "perennial_guild",
      "derived_from": "temperate_fruit_tree_guild",
      "provenance": "The fruit-tree guild on a dwarfing rootstock — the standard small-yard adaptation.",
      "duration": "perennial",
      "horizon_years": [
        8,
        25
      ],
      "footprint_min_m2": 9,
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "malus_domestica",
          "canonical_group": "dwarf_rootstock",
          "alternatives": [
            {
              "species": "prunus_persica",
              "group": "genetic_dwarf"
            },
            "pyrus_communis",
            {
              "species": "prunus_domestica",
              "group": "dwarf_rootstock"
            }
          ],
          "gate": "R-076"
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true
          },
          "canonical": "trifolium_repens",
          "alternatives": [
            "lupinus_perennis"
          ],
          "excluded": [
            "elaeagnus_umbellata"
          ],
          "exclusion_reason": "R-082"
        },
        {
          "id": "mulch_producer",
          "canonical": "symphytum_x_uplandicum",
          "mechanism_grade": "C"
        },
        {
          "id": "bulb_ring",
          "canonical": "narcissus_spp",
          "alternatives": [
            "allium_sativum"
          ]
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ]
          },
          "canonical": "achillea_millefolium",
          "alternatives": [
            "anethum_graveolens",
            "phacelia_tanacetifolia",
            "borago_officinalis",
            "melissa_officinalis",
            "allium_schoenoprasum"
          ],
          "excluded": [
            "foeniculum_vulgare"
          ],
          "exclusion_reason": "R-022"
        }
      ],
      "mechanisms": [
        {
          "claim": "a dwarfing rootstock holds the tree to ~2-2.5 m, fitting the whole guild into a small yard",
          "grade": "A",
          "role": "canopy"
        },
        {
          "claim": "a dwarf rootstock is poorly anchored, so the tree needs permanent staking",
          "grade": "A",
          "role": "canopy"
        },
        {
          "claim": "bulb ring suppresses turfgrass competition at the trunk",
          "grade": "A",
          "rule": "R-075",
          "role": "bulb_ring"
        },
        {
          "claim": "understory insectary improves predator presence",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "chop-and-drop mulch cycles K and builds soil organic matter",
          "grade": "C",
          "role": "mulch_producer"
        },
        {
          "claim": "fixer feeds the tree in-season",
          "grade": "F",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080"
      ],
      "honesty_note": "A footprint adaptation, not a different guild: the mechanisms are the fruit-tree guild's, on a smaller tree. The dwarfing rootstock is what makes it fit — and what makes the tree dependent on permanent support.\n",
      "derived_harmony": {
        "score": 5,
        "band": "backed",
        "rules": [
          "R-052",
          "R-075",
          "R-075b"
        ]
      }
    },
    {
      "id": "currant_ring",
      "common": [
        "currant guild",
        "gooseberry ring"
      ],
      "guild_class": "perennial_guild",
      "provenance": "The fruit-tree guild's ring pattern, scaled to a berry shrub.",
      "duration": "perennial",
      "horizon_years": [
        8,
        20
      ],
      "footprint_min_m2": 4,
      "footprint_reason": "A single currant or gooseberry (spread ~1-1.5 m) with a narrow companion ring.",
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "ribes_spp",
          "gate": "R-076"
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true
          },
          "canonical": "trifolium_repens",
          "alternatives": [
            "lupinus_perennis"
          ],
          "excluded": [
            "elaeagnus_umbellata"
          ],
          "exclusion_reason": "R-082"
        },
        {
          "id": "mulch_producer",
          "canonical": "symphytum_x_uplandicum",
          "mechanism_grade": "C"
        },
        {
          "id": "bulb_ring",
          "canonical": "narcissus_spp",
          "alternatives": [
            "allium_sativum"
          ]
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ]
          },
          "canonical": "achillea_millefolium",
          "alternatives": [
            "anethum_graveolens",
            "phacelia_tanacetifolia",
            "borago_officinalis",
            "melissa_officinalis",
            "allium_schoenoprasum"
          ],
          "excluded": [
            "foeniculum_vulgare"
          ],
          "exclusion_reason": "R-022"
        }
      ],
      "mechanisms": [
        {
          "claim": "bulb ring suppresses turfgrass competition at the stem",
          "grade": "B",
          "rule": "R-075d",
          "role": "bulb_ring"
        },
        {
          "claim": "understory insectary improves predator presence",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "chop-and-drop mulch cycles K and builds soil organic matter",
          "grade": "C",
          "role": "mulch_producer"
        },
        {
          "claim": "fixer feeds the shrub in-season",
          "grade": "F",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080"
      ],
      "honesty_note": "Currants and gooseberries tolerate part shade and take the fruit-tree guild's companion ring at berry scale. Ribes hosts white pine blister rust — the planner flags this automatically; where the disease is regulated, black currant may be restricted, so check before planting.\n",
      "derived_harmony": {
        "score": 4,
        "band": "backed",
        "rules": [
          "R-052",
          "R-075b",
          "R-075d"
        ]
      }
    },
    {
      "id": "blueberry_ring",
      "common": [
        "blueberry guild"
      ],
      "guild_class": "perennial_guild",
      "provenance": "The ring pattern, reduced to what an acid bed can hold.",
      "duration": "perennial",
      "horizon_years": [
        8,
        20
      ],
      "footprint_min_m2": 3,
      "footprint_reason": "A single highbush blueberry (spread ~1-1.5 m) with a bulb ring only.",
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "vaccinium_corymbosum",
          "gate": "R-076"
        },
        {
          "id": "bulb_ring",
          "canonical": "narcissus_spp",
          "alternatives": [
            "allium_sativum"
          ]
        }
      ],
      "mechanisms": [
        {
          "claim": "bulb ring suppresses turfgrass competition at the stem",
          "grade": "B",
          "rule": "R-075d",
          "role": "bulb_ring"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080"
      ],
      "honesty_note": "Blueberry requires an acid bed (pH 4.5-5.5). The guild's usual neutral-soil companions — clover, yarrow, comfrey — cannot share it, so this ring carries only an acid-tolerant bulb ring. Site an insectary and a fixer in a separate neutral bed, not here. That constraint is why the ring bands partial where the currant bands backed: the acid soil, not the plant, is what the corpus is recording.\n",
      "derived_harmony": {
        "score": 3,
        "band": "partial",
        "rules": [
          "R-075b",
          "R-075d"
        ]
      }
    },
    {
      "id": "blackberry_edge",
      "common": [
        "blackberry hedge",
        "bramble edge"
      ],
      "guild_class": "perennial_guild",
      "provenance": "The ring pattern adapted to a cane fruit grown as an edge.",
      "duration": "perennial",
      "horizon_years": [
        8,
        15
      ],
      "footprint_min_m2": 3,
      "footprint_reason": "A short run of blackberry cane (spacing ~90 cm) with a companion strip.",
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "rubus_fruticosus",
          "gate": "R-076"
        },
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true
          },
          "canonical": "trifolium_repens",
          "alternatives": [
            "lupinus_perennis"
          ],
          "excluded": [
            "elaeagnus_umbellata"
          ],
          "exclusion_reason": "R-082"
        },
        {
          "id": "mulch_producer",
          "canonical": "symphytum_x_uplandicum",
          "mechanism_grade": "C"
        },
        {
          "id": "insectary",
          "predicate": {
            "pollinator_value": [
              "high",
              "very_high"
            ]
          },
          "canonical": "achillea_millefolium",
          "alternatives": [
            "anethum_graveolens",
            "phacelia_tanacetifolia",
            "borago_officinalis",
            "melissa_officinalis",
            "allium_schoenoprasum"
          ],
          "excluded": [
            "foeniculum_vulgare"
          ],
          "exclusion_reason": "R-022"
        }
      ],
      "mechanisms": [
        {
          "claim": "understory insectary improves predator presence",
          "grade": "C",
          "rule": "R-052",
          "role": "insectary"
        },
        {
          "claim": "chop-and-drop mulch cycles K and builds soil organic matter",
          "grade": "C",
          "role": "mulch_producer"
        },
        {
          "claim": "fixer feeds the canes in-season",
          "grade": "F",
          "rule": "R-014",
          "role": "fixer"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080",
        "R-094"
      ],
      "honesty_note": "Brambles grow from canes with no single trunk, so there is no bulb ring here — the turfgrass mechanism is scoped to a trunk or a shrub/vine stem, and a cane is neither. Blackberry is a Verticillium host: keep it out of any bed that has held tomatoes, potatoes, or other susceptible crops, and don't co-plant another host — the planner gates this. It bands partial on the insectary alone.\n",
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-052"
        ]
      }
    },
    {
      "id": "grape_arbour_understory",
      "common": [
        "grape arbour",
        "vine arbour guild"
      ],
      "guild_class": "perennial_guild",
      "provenance": "The ring pattern around a trellised vine — the centre is a structure.",
      "duration": "perennial",
      "horizon_years": [
        10,
        30
      ],
      "footprint_min_m2": 6,
      "footprint_reason": "A grapevine on an arbour (spacing ~2.4 m) with a bulb ring at the posts.",
      "ground_entity": "radial_rings",
      "roles": [
        {
          "id": "canopy",
          "canonical": "vitis_spp",
          "gate": "R-076"
        },
        {
          "id": "support",
          "predicate": {
            "support.provides": "strong"
          },
          "canonical": "trellis_structure"
        },
        {
          "id": "bulb_ring",
          "canonical": "narcissus_spp",
          "alternatives": [
            "allium_sativum"
          ]
        }
      ],
      "mechanisms": [
        {
          "claim": "bulb ring suppresses turfgrass competition at the stem",
          "grade": "B",
          "rule": "R-075d",
          "role": "bulb_ring"
        }
      ],
      "rotation_load": {},
      "gates": [
        "R-073",
        "R-020",
        "R-080"
      ],
      "honesty_note": "The grapevine needs a trellis or arbour, assigned here as its support, and casts shade once established, so the understory stays sparse — a bulb ring at the posts, not a full insectary. The arbour structure is the centre of this guild; the vine is trained onto it, which is what answers \"a ring with no tree at the middle\" without needing a woody trunk at all.\n",
      "derived_harmony": {
        "score": 3,
        "band": "partial",
        "rules": [
          "R-075b",
          "R-075d"
        ]
      }
    },
    {
      "id": "salsa_garden",
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 3.0,
      "duration": "annual",
      "members": [
        {
          "species": "solanum_lycopersicum",
          "group": "indeterminate"
        },
        {
          "species": "capsicum_annuum"
        },
        {
          "species": "physalis_philadelphica",
          "min_plants": 2
        },
        {
          "species": "allium_cepa"
        },
        {
          "species": "coriandrum_sativum"
        }
      ],
      "mechanisms": [],
      "honesty_note": "There is no interspecies mechanism here. These plants go in the same bowl.",
      "rotation_load": {
        "solanaceae": "full",
        "amaryllidaceae": "partial",
        "apiaceae": "partial"
      },
      "gates": [
        "R-070",
        "R-071",
        "R-080",
        "R-034",
        "R-081"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "salsa_garden_patio",
      "common": [
        "salsa garden (patio)",
        "container salsa"
      ],
      "guild_class": "culinary_bundle",
      "derived_from": "salsa_garden",
      "footprint_min_m2": 1.0,
      "duration": "annual",
      "members": [
        {
          "species": "solanum_lycopersicum",
          "group": "determinate"
        },
        {
          "species": "capsicum_annuum",
          "group": "hot"
        },
        {
          "species": "coriandrum_sativum"
        }
      ],
      "mechanisms": [],
      "honesty_note": "The salsa garden for a large pot or balcony: a determinate (bush) tomato and one hot pepper with cilantro. The cost is the tomatillo — it needs two plants to set fruit (R-080), which a single pot cannot host, so it is dropped. Everything else still goes in the same bowl.\n",
      "rotation_load": {
        "solanaceae": "full",
        "apiaceae": "partial"
      },
      "gates": [
        "R-070",
        "R-071",
        "R-034"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "pizza_garden",
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 2.5,
      "duration": "mixed",
      "members": [
        {
          "species": "solanum_lycopersicum",
          "group": "determinate",
          "lifespan": "annual"
        },
        {
          "species": "ocimum_basilicum",
          "lifespan": "annual"
        },
        {
          "species": "capsicum_annuum",
          "lifespan": "annual"
        },
        {
          "species": "origanum_vulgare",
          "lifespan": "perennial"
        },
        {
          "species": "thymus_vulgaris",
          "lifespan": "perennial"
        },
        {
          "species": "rosmarinus_officinalis",
          "lifespan": "perennial"
        }
      ],
      "mechanisms": [],
      "rotation_load": {
        "solanaceae": "full"
      },
      "gates": [
        "R-070",
        "R-072",
        "R-076"
      ],
      "surfaces_beliefs": [
        "B-001"
      ],
      "note": "Two rules fire and a belief surfaces (R-072, R-076). The single best demo in the corpus: the most clichéd request in gardening, and the user leaves knowing three true things. A guild GATES on rules and SURFACES beliefs. Beliefs never gate.\n",
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "pizza_garden_patio",
      "common": [
        "pizza garden (patio)",
        "windowsill pizza"
      ],
      "guild_class": "culinary_bundle",
      "derived_from": "pizza_garden",
      "footprint_min_m2": 1.0,
      "duration": "annual",
      "members": [
        {
          "species": "solanum_lycopersicum",
          "group": "determinate",
          "lifespan": "annual"
        },
        {
          "species": "ocimum_basilicum",
          "lifespan": "annual"
        },
        {
          "species": "capsicum_annuum",
          "lifespan": "annual"
        }
      ],
      "mechanisms": [],
      "honesty_note": "The pizza garden for a pot or sunny windowsill: a bush tomato, basil, and one pepper — all annuals. The cost is the perennial herbs (oregano, thyme, rosemary): they want permanent, unrotated ground (R-072) and rosemary a mild zone (R-076), neither of which a replanted annual pot gives, so they are dropped. Still no interspecies mechanism — same bowl.\n",
      "rotation_load": {
        "solanaceae": "full"
      },
      "gates": [
        "R-070"
      ],
      "surfaces_beliefs": [
        "B-001"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "salad_garden",
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 3.0,
      "duration": "annual",
      "members": [
        {
          "species": "lactuca_sativa",
          "group": "looseleaf"
        },
        {
          "species": "solanum_lycopersicum",
          "group": "indeterminate"
        },
        {
          "species": "cucumis_sativus",
          "group": "bush"
        },
        {
          "species": "raphanus_sativus"
        },
        {
          "species": "allium_fistulosum"
        },
        {
          "species": "eruca_sativa"
        },
        {
          "species": "cichorium_endivia"
        }
      ],
      "mechanisms": [],
      "honesty_note": "No interspecies mechanism — a co-harvest for the salad bowl. What it teaches is timing: the quick radish and cool-season lettuce come and go (both carry bolt risk, so succession fires) while the warm-season tomato and cucumber are still ripening (R-034). This bed is really two or three successions, not one planting.\n",
      "rotation_load": {
        "solanaceae": "full",
        "cucurbitaceae": "full",
        "brassicaceae": "partial",
        "amaryllidaceae": "partial"
      },
      "gates": [
        "R-070",
        "R-071",
        "R-034"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "pickling_bundle",
      "common": [
        "pickling garden",
        "pickle patch"
      ],
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 1.5,
      "duration": "annual",
      "members": [
        {
          "species": "cucumis_sativus",
          "group": "bush"
        },
        {
          "species": "anethum_graveolens"
        },
        {
          "species": "allium_sativum"
        },
        {
          "species": "allium_cepa"
        },
        {
          "species": "beta_vulgaris"
        }
      ],
      "mechanisms": [],
      "honesty_note": "No interspecies mechanism — a co-harvest for the pickling crock: cucumbers and dill with garlic and onion, and beets for a second jar. They share a bed because they share a recipe.\n",
      "rotation_load": {
        "cucurbitaceae": "full",
        "apiaceae": "partial",
        "amaryllidaceae": "partial",
        "amaranthaceae": "partial"
      },
      "gates": [
        "R-070",
        "R-071",
        "R-081"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "pesto_bundle",
      "common": [
        "pesto garden",
        "basil and garlic"
      ],
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 0.5,
      "duration": "annual",
      "members": [
        {
          "species": "ocimum_basilicum"
        },
        {
          "species": "allium_sativum"
        }
      ],
      "mechanisms": [],
      "honesty_note": "The two ingredients of pesto you can grow — sweet basil and garlic. The pine nuts and the cheese come from elsewhere; there is no interspecies mechanism, only a co-harvest for the mortar.\n",
      "rotation_load": {
        "lamiaceae": "full",
        "amaryllidaceae": "partial"
      },
      "gates": [
        "R-070"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "stir_fry_bundle",
      "common": [
        "stir-fry garden",
        "wok garden"
      ],
      "guild_class": "culinary_bundle",
      "footprint_min_m2": 1.5,
      "duration": "annual",
      "members": [
        {
          "species": "brassica_rapa",
          "group": "bok_choy"
        },
        {
          "species": "allium_fistulosum"
        },
        {
          "species": "capsicum_annuum"
        },
        {
          "species": "brassica_oleracea",
          "group": "italica"
        },
        {
          "species": "allium_sativum"
        },
        {
          "species": "daucus_carota",
          "group": "nantes"
        }
      ],
      "mechanisms": [],
      "honesty_note": "Grouped for the wok: bok choy, green onion, pepper, broccoli, garlic and carrot. No mechanism is declared here — but the corpus notices one anyway, so this bundle reads as partly backed rather than mechanism-free: the carrot and the onions in it reduce each other's carrot rust fly damage. It is the one bundle here that is more than a shared recipe.\n",
      "rotation_load": {
        "brassicaceae": "full",
        "amaryllidaceae": "partial",
        "solanaceae": "partial",
        "apiaceae": "partial"
      },
      "gates": [
        "R-070",
        "R-071",
        "R-081"
      ],
      "derived_harmony": {
        "score": 1,
        "band": "partial",
        "rules": [
          "R-051"
        ]
      }
    },
    {
      "id": "cutting_garden",
      "common": [
        "cutting garden",
        "cut-flower bed"
      ],
      "guild_class": "ornamental_bundle",
      "footprint_min_m2": 1.5,
      "duration": "mixed",
      "members": [
        {
          "species": "zinnia_elegans",
          "lifespan": "annual"
        },
        {
          "species": "cosmos_bipinnatus",
          "lifespan": "annual"
        },
        {
          "species": "cleome_serrulata",
          "lifespan": "annual"
        },
        {
          "species": "achillea_millefolium",
          "lifespan": "perennial"
        },
        {
          "species": "narcissus_spp",
          "lifespan": "perennial"
        }
      ],
      "mechanisms": [],
      "honesty_note": "Grown to be cut for the vase — zinnias and cosmos for the summer, cleome for height, yarrow as the filler, daffodils for spring. The corpus records no interaction between them; they share a bed because they share a purpose. One deliberate absence: sunflower, the corpus's tallest cut flower, is left out because its residue is recorded as suppressing the germination of small-seeded direct-sown neighbours, and zinnias and cosmos are exactly that.\n",
      "rotation_load": {
        "asteraceae": "full",
        "cleomaceae": "partial",
        "amaryllidaceae": "partial"
      },
      "gates": [
        "R-071",
        "R-072"
      ],
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "restorative_break",
      "common": [
        "rotation break",
        "rest year"
      ],
      "guild_class": "restorative",
      "footprint_min_m2": 0.3,
      "duration": "annual",
      "applicability": "ground carrying rotation load from solanaceae, cucurbitaceae, or brassicaceae",
      "roles": [
        {
          "id": "fixer",
          "predicate": {
            "n_fixing": true,
            "family": "fabaceae"
          },
          "canonical": "phaseolus_vulgaris",
          "canonical_group": "bush",
          "alternatives": [
            "pisum_sativum",
            "vicia_faba",
            "trifolium_incarnatum",
            "glycine_max"
          ]
        },
        {
          "id": "overwinter",
          "predicate": {
            "frost_tolerance": "hardy"
          },
          "canonical": "allium_sativum",
          "alternatives": [
            "allium_ampeloprasum",
            "spinacia_oleracea"
          ],
          "optional": true
        }
      ],
      "mechanisms": [
        {
          "claim": "residue mineralizes N for next season's crop",
          "grade": "B",
          "rule": "R-015",
          "role": "fixer"
        },
        {
          "claim": "low rotation pressure; occupies ground through the off-season",
          "grade": "C",
          "rule": "R-013"
        }
      ],
      "rotation_load": {
        "fabaceae": "full",
        "amaryllidaceae": "partial"
      },
      "note": "Not a compromise. The bed sheds inoculum and banks nitrogen. Present it as the correct move.\n",
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "rice_fish_duck",
      "guild_class": "out_of_scope",
      "provenance": "East Asian. Documented, ancient, genuinely mechanistic.",
      "reason": "Requires paddy hydrology and livestock. Real, and not a raised bed.",
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    },
    {
      "id": "chinampa",
      "guild_class": "out_of_scope",
      "provenance": "Mesoamerican raised-field wetland agriculture.",
      "reason": "Requires a lake.",
      "derived_harmony": {
        "score": 0,
        "band": "none",
        "rules": []
      }
    }
  ],
  "rules": [
    {
      "id": "R-001",
      "type": "pollination",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "applies_to": {
        "species": "zea_mays"
      },
      "trigger": {
        "kind": "count_in_block",
        "species": "zea_mays",
        "op": "lt",
        "field": "pollination.block_min_plants"
      },
      "claim": "Corn requires a block of at least 4 rows (roughly 12 plants) for adequate kernel set.",
      "mechanism": "Maize is wind-pollinated and protandrous. Tassels shed pollen that must land on silks of neighbouring plants. Below roughly 12 plants in a block of at least 4 rows, insufficient pollen reaches enough silks; each unfertilized silk is one missing kernel.\n",
      "remedy": "Plant in a block of at least 4 rows, or omit corn and substitute a trellis.",
      "effect_size": "Kernel set falls off sharply below threshold; single-row plantings routinely under 50%.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing sweet corn in home gardens', extension.umn.edu/vegetables/growing-sweet-corn (read 2026-07-11): 'Always plant corn in blocks of at least four rows. Corn planted in a single row will have much of its pollen blown out of the row, and will produce ears that have blank areas where kernels did not form.'",
          "NC State Extension, 'Organic Sweet Corn Production' (Horticulture Information Leaflets), content.ces.ncsu.edu/organic-sweet-corn-production (read 2026-07-11): 'Corn is wind-pollinated and should be planted in blocks of at least 4 rows for good pollination to occur.'",
          "UMD Extension, 'Growing Sweet Corn in a Home Garden', extension.umd.edu/resource/growing-sweet-corn-home-garden (read 2026-07-11): 'Plant in blocks of at least three to four short rows, rather than one or two long rows, to ensure good pollination; minimum of three rows side by side (preferably four rows).'",
          "Clemson HGIC 1308, 'Sweet Corn' (updated 2023-01-23), hgic.clemson.edu/factsheet/sweet-corn (read 2026-07-11): 'This crop is wind-pollinated; therefore, plant in blocks of several rows rather than 1 or 2 long rows to ensure full ears.'"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "corn-requires-block-least-4-rows-roughly"
    },
    {
      "id": "R-002",
      "type": "geometry",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "trigger": {
        "kind": "area_sum",
        "op": "gt",
        "lhs": "sum_mature_footprint",
        "rhs": "region_area"
      },
      "claim": "A plant's mature spread must fit its allocated area.",
      "mechanism": "Geometry.",
      "remedy": "Reduce plant count, or choose a bush cultivar group.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "arithmetic"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "plant-s-mature-spread-fit-allocated-area"
    },
    {
      "id": "R-003",
      "type": "geometry",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "height_ordering",
        "threshold_cm": 120,
        "axis": "polar"
      },
      "claim": "Plants over 120cm mature height belong on the polar side of a bed.",
      "mechanism": "Solar geometry. Shadow falls outside the bed rather than across shorter neighbours.",
      "remedy": "Move tall species to the polar edge; sort by descending height equatorward.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "solar geometry"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "plants-over-120cm-mature-height-belong-polar"
    },
    {
      "id": "R-004",
      "type": "geometry",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "shadow_intersection",
        "procedure": "engine.solar.shadow_polygons"
      },
      "claim": "Sun-requiring species must not sit in the computed shadow of a taller neighbour.",
      "mechanism": "Photosynthesis. Compute shadow polygons from latitude, date, and mature height.",
      "remedy": "Move the taller neighbour to the polar edge, or move this plant out of its shadow.",
      "note": "Procedural rule. The trigger is a code path, not a predicate.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "solar geometry"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "sun-requiring-species-not-sit-computed-shadow"
    },
    {
      "id": "R-005",
      "type": "geometry",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "declared_shade",
        "field": "site.sun"
      },
      "claim": "A full-sun species must not be placed in ground the gardener has marked as shaded.",
      "mechanism": "Photosynthesis. A crop whose light minimum is full sun is below that minimum in shade and underperforms. Declared exposure — a wall, fence, or building the engine cannot see — distinct from the computed neighbour-shadow (R-004).\n",
      "remedy": "Plant it somewhere you have not marked shaded, or use that ground for a species whose light minimum is part sun.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "photosynthesis"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "full-sun-species-not-be-placed-ground"
    },
    {
      "id": "R-006",
      "type": "geometry",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "bed_reach",
        "threshold_cm": 122,
        "axis": "min_width"
      },
      "claim": "A bed whose shorter side runs well past ~1.2 m has interior ground that can't be reached from its edges.",
      "mechanism": "A comfortable arm's reach is ~0.6 m, so ground more than twice that across can only be tended by standing on the bed — which compacts the soil and breaks the structure the bed exists to protect.\n",
      "remedy": "Make a wide area into several beds with a path between them, not one bed you step into. Beds are individual entities here — there is no sub-bed to carve, so add another bed instead.\n",
      "note": "Fires on the SHORTER bed dimension (a long, narrow bed is fine — you reach it from the long edges). Advisory, not a block: a gardener may have real access we can't see. Threshold is the extension \"no wider than 3-4 ft\" convention, which is why this is grade B, not the arithmetic A of R-002.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Iowa State Univ. Extension, Yard & Garden FAQ, raised bed size (read 2026-07-21; read by the maintainer 2026-07-25): 'Beds accessible on both sides can be 3 to 4 feet wide'; one-sided, 'the maximum width should be 1 1/2 to 2 feet (i.e., approximately arm's reach)'.",
          "Univ. of Minnesota Extension, Raised bed gardens (read 2026-07-21; read by the maintainer 2026-07-25): 'the reach of your arm is generally a good metric ... If you can access both sides, the bed can be up to five feet wide.'",
          "The two sources DISAGREE on the ceiling - Iowa State's 3-4 ft against Minnesota's 5 ft - and this rule takes the tighter one. Which source to take is a judgement, which is why this is recorded as promising rather than well established. AMENDED 2026-08-21: the threshold was first recorded as 120 cm, a metric rounding that fell 2 cm short of Iowa State's own 4-ft ceiling - so the single most common raised-bed size (a 4x4, 121.9 cm) tripped the reach warning and the R-098 strip split. The maintainer's 4x4 report caught it. Now 122 cm, exactly the tighter source's stated ceiling: a number the source does state."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "bed-whose-shorter-side-runs-well-past"
    },
    {
      "id": "R-040",
      "type": "geometry",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "trigger": {
        "kind": "role_unfilled",
        "role": "support",
        "requires": "strong"
      },
      "claim": "A plant that must climb needs an assigned support strong enough to carry it.",
      "mechanism": "Mechanical. Unsupported pole beans sprawl, rot, and yield poorly.",
      "remedy": "Assign a support that provides strong — a trellis or cattle panel — or choose a bush cultivar group.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "mechanics"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "plant-that-climb-needs-assigned-support-strong"
    },
    {
      "id": "R-041",
      "type": "geometry",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "load_exceeded",
        "field": "support.provides_load_vines"
      },
      "claim": "Living supports have finite load capacity.",
      "mechanism": "Mechanical load on a living stem.",
      "remedy": "Put fewer vines on the living support, or use a built support — a cattle panel is effectively unbounded.",
      "effect_size": "Sunflower approx 2 vines/stalk; corn 1-2; cattle panel effectively unbounded.",
      "note": "Moved from `unverified` to `verified_trivially` 2026-07-25 (maintainer's judgement, and it is a judgement, not a reading). The rule splits in two and only one half is a literature claim. The CLAIM - a living stem does not carry unlimited load - is mechanics, in the same way R-040 is; no extension service publishes it and none will, so waiting for a citation meant waiting forever, and the old pointer \"practice\" was an admission of that rather than a source. The NUMBERS it fires on are a different matter: sunflower 2 vines, corn 1-2, cattle panel 999 live on the species and every one of them carries `confidence: estimated` there. So this status says the claim needs no trial; it says nothing about the numbers, which are flagged where they live. That division - rules carry evidence, numeric fields carry confidence - is the corpus's, not an excuse invented here.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "mechanics"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "living-supports-have-finite-load-capacity"
    },
    {
      "id": "R-042",
      "type": "geometry",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "spread_exceeds_region",
        "cultivar_group": "vining"
      },
      "claim": "Vining cucurbits in beds under 2m escape the bed.",
      "mechanism": "C. pepo vining types run 2-4m. Bush cultivars run under 1m.",
      "remedy": "Specify bush habit for beds under 4 sq m, or accept sprawl.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "growth habit"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "vining-cucurbits-beds-under-2m-escape-bed"
    },
    {
      "id": "R-010",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "family": "solanaceae"
      },
      "trigger": {
        "kind": "rotation_interval",
        "family": "solanaceae",
        "years": 3
      },
      "claim": "Do not plant Solanaceae in ground that held Solanaceae within 3 years.",
      "mechanism": "Alternaria solani (early blight) and Septoria lycopersici overwinter on tomato debris and solanaceous weeds; a 2-3 year break plus debris removal starves this inoculum. Fusarium has a very narrow host range, so rotating away from the host is effective. Verticillium is the exception: microsclerotia persist ~10 years and it infects 300+ host families, so a garden-scale rotation does not control it.\n",
      "remedy": "Plant Solanaceae in different ground, or wait until 3 years have passed since this ground last held them. Clear and remove the old debris either way — the inoculum overwinters on it.",
      "effect_size": "3-year Solanaceae interval is the standard extension recommendation and targets the debris-borne diseases (early blight, Septoria). It does not control Verticillium, whose microsclerotia persist ~10 years across an extremely broad host range.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Clemson HGIC, 'Tomato Diseases & Disorders', hgic.clemson.edu/factsheet/tomato-diseases-disorders (read 2026-07-11): 'tomatoes and related vegetables, such as potatoes, peppers, and eggplants, should not be planted on the same land more than once in three years.'",
          "NC State Extension, 'Early Blight of Tomato', content.ces.ncsu.edu/early-blight-of-tomato (read 2026-07-11): 'Rotate every 2-3 years.'",
          "NC State Extension, 'Septoria Leaf Spot of Tomato', content.ces.ncsu.edu/septoria-leaf-spot-of-tomato (read 2026-07-11): 'The fungus is known to overwinter on infected tomato debris and solanaceous weed hosts'; 'Rotate away from tomato for 2 or more years.'",
          "NC State Extension, 'Verticillium Wilt of Tomato and Eggplant', content.ces.ncsu.edu/verticillium-wilt-of-tomato-and-eggplant (read 2026-07-11): 'The pathogen can survive in the soil without a host for up to 10 years in the form of structures called microsclerotia'; 'affects more than 300 host families.'",
          "UMass Extension, 'Solanaceous, Verticillium Wilt', umass.edu/agriculture-food-environment/vegetable/fact-sheets/solanaceous-verticillium-wilt (read 2026-07-11): 'Verticillium wilt tends to affect a wide range of hosts and can infect many unrelated plants. Fusarium spp., on the other hand, have very narrow host ranges.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "do-not-plant-nightshades-ground-that-held"
    },
    {
      "id": "R-011",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "family": "cucurbitaceae"
      },
      "trigger": {
        "kind": "rotation_interval",
        "family": "cucurbitaceae",
        "years": 3
      },
      "claim": "Do not plant Cucurbitaceae in ground that held Cucurbitaceae within 2-3 years.",
      "mechanism": "Melittia cucurbitae overwinters as a pupa in the soil where its host grew and emerges the next summer; Anasa tristis overwinters as an adult in sheltered sites (plant debris, under boards or rocks) and flies to cucurbits in spring. A host-free break cuts local carryover, but both are strong fliers that re-invade from a distance, so rotation is only partial and works best paired with fall sanitation (destroy spent vines).\n",
      "remedy": "Plant cucurbits in different ground, or wait 3 years. Destroy the spent vines in autumn and clear debris and boards nearby — the pupae overwinter in the soil where the crop grew, the adults in the shelter around it. Rotation is only partial; both pests fly in from a distance.",
      "effect_size": "Extension guidance is to alternate seasons / rotate away and destroy crop residue; rotation alone is partial because adults fly in (SVB from as far as several miles). The 2-3 year interval is a conservative garden heuristic, not a stated pest threshold.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Squash vine borers', extension.umn.edu/yard-and-garden-insects/squash-vine-borers (read 2026-07-11): 'squash vine borers spend the winter in the soil near their host plants ... Practice rotation ... planting cucurbits in different areas of your garden if possible, or alternate seasons'; 'rotate away from the area and destroy crop residue.'",
          "Ohioline (Ohio State Univ.), 'Squash Vine Borer', ohioline.osu.edu/factsheet/ent-0106 (read 2026-07-11): 'Crop rotation away from previously infested fields helps reduce local populations, as overwintering pupae remain in the soil. However ... fields often need to be rotated more than 5 miles away as SVB can fly into fields from long distances.'",
          "UMN Extension, 'Squash bugs', extension.umn.edu/yard-and-garden-insects/squash-bugs (read 2026-07-11): 'Squash bugs can live through the winter as adults in sheltered places, such as under plant debris, around buildings, or under rocks. When adults come out in the spring, they fly to growing cucurbit plants.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "do-not-plant-cucurbits-ground-that-held"
    },
    {
      "id": "R-012",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "family": "brassicaceae"
      },
      "trigger": {
        "kind": "rotation_interval",
        "family": "brassicaceae",
        "years": 4
      },
      "claim": "Do not plant Brassicaceae in ground that held Brassicaceae within 4 years (extension recommends 4-7, and even that is not a cure).",
      "mechanism": "Plasmodiophora brassicae forms thick-walled resting spores that survive in soil more than 10 years. They germinate in wet, acidic soil (pH < 7); liming above ~7.2 suppresses infection. Spores outlast any garden rotation, so a host-free break reduces but does not clear inoculum.\n",
      "remedy": "Plant brassicas in different ground, or wait at least 4 years — extension recommends 4 to 7. Rotation alone is not a cure: the resting spores outlast it, and raising soil pH above ~7.2 suppresses infection.\n",
      "effect_size": "Extension recommends long rotations away from brassicas — 4-7 years (NC State), 5-7 (UMass), \"at least 7 years\" (Cornell) — but notes this is \"not guaranteed to prevent disease.\" The realistic levers are soil pH (lime to >7.2) and resistant cultivars; rotation is complementary.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "NC State Extension, 'Clubroot of Brassicas', content.ces.ncsu.edu/clubroot-of-brassicas (read 2026-07-11): 'Plasmodiophora brassicae is capable of surviving in the soil for more than 10 years by producing thick-walled, resting spores'; 'Infested fields should be rotated away from brassica for a minimum of 4-7 years, but this is not guaranteed to prevent disease'; 'Liming to raise soil pH to 7.[2]'.",
          "Cornell Vegetables, 'Clubroot of Crucifers', vegetables.cornell.edu/pest-management/disease-factsheets/clubroot-of-crucifers (read 2026-07-11): 'the pathogen survives for many years even in the absence of host crops'; 'rotation of at least 7 years out of susceptible crucifers may be effective.'",
          "UMass Extension, 'Brassicas, Clubroot', ag.umass.edu/vegetable/fact-sheets/brassicas-clubroot (read 2026-07-11): 'Long (5-7 years) rotations between brassica crops'; 'Maintain a high pH by regular applications of lime.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "do-not-plant-brassicas-ground-that-held"
    },
    {
      "id": "R-013",
      "type": "rotation",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "family": [
          "amaryllidaceae",
          "apiaceae"
        ]
      },
      "trigger": {
        "kind": "eligibility_thin",
        "suggests": [
          "amaryllidaceae",
          "apiaceae"
        ]
      },
      "claim": "Alliums and Apiaceae are unrelated to Solanaceae/Cucurbitaceae/Brassicaceae and can break those families' rotation cycles — but they are not \"low-pressure\" and need their own rotation.",
      "mechanism": "They host none of the big-three families' soilborne pathogens, so following those crops with an allium or apiaceous crop breaks the host cycle. But they are not inherently low-pressure: allium white rot (Sclerotium cepivorum) is allium-specific, its sclerotia persist 15+ years, and it cannot be eradicated once established; apiaceous crops carry their own soilborne diseases.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMass Extension, 'Alliums, White Rot', ag.umass.edu/vegetable/fact-sheets/alliums-white-rot (read 2026-07-11): 'Sclerotium cepivorum is specific to allium species'; sclerotia 'may remain viable in soil for 15 years or more without allium hosts'; 'Currently, there is no way to eradicate white rot from a field where it has become established.'"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "alliums-carrot-family-unrelated-nightshades-cucurbits-brassicas"
    },
    {
      "id": "R-071",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "guild_rotation_load",
        "op": "any_full"
      },
      "claim": "A guild deposits family history across its whole footprint.",
      "mechanism": "Soilborne inoculum and overwintering pest stages disperse across the bed. A guild dominated by one family forecloses that ground for that family's rotation interval.\n",
      "remedy": "Rotate the whole bed the guild occupied, not just the rows that family grew in.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Same soilborne-persistence basis as R-010/R-011 (read 2026-07-11): NC State Extension (Verticillium microsclerotia 'can survive in the soil without a host for up to 10 years'; Septoria/early blight 'overwinter on infected tomato debris and solanaceous weed hosts') and UMN/Ohioline (squash bug overwinters 'as adults in sheltered places ... they fly to growing cucurbit plants'; squash vine borer 'overwinters in the soil as a pupa').",
          "Those sources establish that inoculum and pest stages persist in the ground and are not confined to the exact spot a plant occupied; this rule applies that persistence across the whole guild footprint. The whole-footprint attribution is the corpus's rotation geometry (history attaches to ground, not to the individual plant — see the data model), not a claim from an external source."
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "guild-deposits-family-history-across-whole-footprint"
    },
    {
      "id": "R-094",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "verticillium_susceptible": true
      },
      "trigger": {
        "kind": "prior_season_family",
        "family": "solanaceae"
      },
      "claim": "Do not establish Verticillium-susceptible perennials (raspberries, strawberries, stone fruit) in ground that recently hosted Verticillium dahliae — either Solanaceae, or a logged planting of a Verticillium host (strawberry, raspberry or other bramble, or stone fruit).\n",
      "mechanism": "Verticillium dahliae persists in soil as microsclerotia and infects a wide host range spanning Solanaceae and Rosaceae. There is no in-ground cure once a susceptible perennial is planted, so it can wilt and die from inoculum an earlier host left behind — and because the reservoir family may differ from the victim's, the same-family rotation intervals (R-010/R-011/R-012) miss it.\n",
      "remedy": "Site the perennial on ground with no recent Solanaceae, or choose one that is not Verticillium-susceptible. Extension advises growing a non-host — corn or a small grain — for at least two years first, without claiming that clears the soil. Once the perennial is planted there is no in-ground cure.\n",
      "effect_size": "Extension guidance is to avoid planting brambles after tomatoes, potatoes, peppers, eggplant, or strawberries, and to grow a non-host (corn or a small grain) for at least 2 years first. The exact safe interval is uncertain: microsclerotia can persist for up to ~10 years, and the number of years required to eliminate the pathogen is described by extension as unknown.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Bramble Disease - Verticillium Wilt' (Kathy Demchak), extension.psu.edu/bramble-disease-verticillium-wilt (read 2026-07-12): 'Verticillium wilt is caused by two common soilborne fungi (Verticillium dahliae and Verticillium albo-atrum) that have a wide host range'; 'To minimize disease, choose a planting site with no known history of this problem. Avoid land recently planted with tomatoes, potatoes, eggplants, peppers, strawberries, raspberries, or stone fruits'; 'There are no effective fungicides for management once the plants are in the ground'; 'The number of years required to eliminate verticillium, especially the resting spores from the soil, is unknown.'",
          "UMass Extension, New England Small Fruit Management Guide, 'Brambles - Diseases', ag.umass.edu/fruit/ne-small-fruit-management-guide/brambles/diseases (read 2026-07-12): 'Verticillium attacks a wide range of plants, including potatoes, tomatoes, peppers, eggplant and strawberries. It overwinters in the soil and on plant debris. Do not plant [raspberries following these crops].'; 'Non-host crops such as corn or wheat can help eliminate the fungus if grown for at least 2 years before planting raspberries.'",
          "Host range / persistence corroborated by the source already cited on R-010: NC State Extension, 'Verticillium Wilt of Tomato and Eggplant' (read 2026-07-11): 'The pathogen can survive in the soil without a host for up to 10 years in the form of structures called microsclerotia'; 'affects more than 300 host families.'"
        ],
        "note": "The reservoir is recognised two ways. Coarsely by family: a prior Solanaceae (the trigger), which is also all a manual history checkbox can express. Precisely by the logged planting's own species, via the verticillium_host marker: a prior strawberry or raspberry (Rosaceae hosts) counts through the season log, while a non-host Rosaceae like apple correctly does not — precision the family signal alone cannot give. Extension names strawberry, bramble, and stone fruit alongside Solanaceae as reservoir crops, so this enforces what the sources already said. Most consumer tools miss the cross-family reservoir entirely because they only check same-family rotation. Promoted to `verified` after a human read the sources above (invariant 4).\n"
      },
      "derived_ruling": "warn",
      "page_slug": "do-not-establish-verticillium-susceptible-perennials-raspberries"
    },
    {
      "id": "R-095",
      "type": "rotation",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "verticillium_susceptible": true
      },
      "trigger": {
        "kind": "logged_verticillium_host"
      },
      "claim": "Do not establish Verticillium-susceptible perennials where the season log records that a Verticillium host (strawberry, raspberry or other bramble, or stone fruit) previously grew — a reservoir the coarse prior-Solanaceae family signal (R-094) structurally misses.\n",
      "mechanism": "The same reservoir as the family-level rule (R-094) — Verticillium dahliae persisting in soil as microsclerotia — but recognised precisely instead of coarsely. The family-level rule (R-094) fires on a prior Solanaceae family, which is all a manual history checkbox can express; this rule (R-095) fires on the logged planting's own species carrying the verticillium_host marker, so a prior Rosaceae host (strawberry, raspberry, stone fruit) counts while a non-host Rosaceae like apple correctly does not — precision the family signal cannot give.\n",
      "remedy": "Site the perennial where the log shows no previous Verticillium host, or choose one that is not susceptible. Extension advises growing a non-host — corn or a small grain — for at least two years first, without claiming that clears the soil. Once the perennial is planted there is no in-ground cure.\n",
      "effect_size": "Same guidance as R-094: avoid establishing brambles or strawberries after a Verticillium host, and grow a non-host (corn or a small grain) for at least 2 years first. Microsclerotia can persist for up to ~10 years, and the number of years required to eliminate the pathogen is described by extension as unknown.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Bramble Disease - Verticillium Wilt' (Kathy Demchak), extension.psu.edu/bramble-disease-verticillium-wilt (read 2026-07-12): 'To minimize disease, choose a planting site with no known history of this problem. Avoid land recently planted with tomatoes, potatoes, eggplants, peppers, strawberries, raspberries, or stone fruits'; 'There are no effective fungicides for management once the plants are in the ground.'",
          "UMass Extension, New England Small Fruit Management Guide, 'Brambles - Diseases', ag.umass.edu/fruit/ne-small-fruit-management-guide/brambles/diseases (read 2026-07-12): 'Verticillium attacks a wide range of plants, including potatoes, tomatoes, peppers, eggplant and strawberries.'; 'Non-host crops such as corn or wheat can help eliminate the fungus if grown for at least 2 years before planting raspberries.'",
          "Host range / persistence corroborated by NC State Extension, 'Verticillium Wilt of Tomato and Eggplant' (read 2026-07-11): microsclerotia survive 'up to 10 years' and the pathogen 'affects more than 300 host families.'"
        ],
        "note": "Split from R-094 (D-043) to name the two evidence paths as distinct triggers instead of folding both into one rule: R-094 = prior Solanaceae family (coarse — all a manual history checkbox can express); R-095 = a logged Verticillium-host planting (precise — via the season log's verticillium_host marker, catching Rosaceae hosts R-094's Solanaceae trigger cannot). Same mechanism, same enforcement (grade B, warn), same sources — different trigger and precision. The two never double-fire: when the family signal already covers the ground, R-094 alone fires. status: verified — the pointers are the sources a human read to verify R-094 (PR #88), which name strawberry, raspberry, and stone fruit as reservoir crops; the maintainer confirmed that same read backs R-095's marker-precise claim and promoted it (2026-07-14).\n"
      },
      "derived_ruling": "warn",
      "page_slug": "do-not-establish-verticillium-susceptible-perennials-where"
    },
    {
      "id": "R-015",
      "type": "nutrient",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "prior_season_family",
        "family": "fabaceae"
      },
      "claim": "Legume green manure raises available N for the subsequent crop.",
      "mechanism": "A legume fixes atmospheric nitrogen into its tissue as it grows. When the crop is killed and its residue decomposes, soil microbes mineralize that organic nitrogen — converting a form plants can't use into one they can — and release it for the next crop. How much depends on how well the legume grew, and it is lower on sandy soils.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Growing Cover Crops for Nitrogen on Vegetable Farms', extension.psu.edu/growing-cover-crops-for-nitrogen-on-vegetable-farms (read 2026-07-11): 'When cover crops are killed and begin to decompose, nitrogen can be released from the residues back into the soil where it can feed the next crop'; 'Mineralization is the process where organic nitrogen, which is largely not available to plants, is converted by soil microorganisms' into a plant-available form.",
          "Univ. of Wisconsin-Madison Extension (Crops & Soils), 'Late Summer Planting Legumes to Produce Nitrogen Credits for Next Year', cropsandsoils.extension.wisc.edu/articles/late-summer-planting-legumes-to-produce-nitrogen-credits-for-next-year (read 2026-07-11): 'The nitrogen credit depends on the amount of crop growth and when the legume was planted. Nitrogen credits are 50 lb N/a lower on sandy, coarse-textured soils.'"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "legume-green-manure-raises-available-n-subsequent"
    },
    {
      "id": "R-016",
      "type": "nutrient",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "habit": "root"
      },
      "trigger": {
        "kind": "fertilizer_class",
        "applied": "high_n",
        "to_habit": "root"
      },
      "claim": "Do not apply fresh high-N fertilizer to root crops.",
      "mechanism": "Excess N drives foliage at the expense of root bulking. (Forking is a separate problem — caused by rocks, compaction, or coarse/fresh organic matter in the root path, not by nitrogen.)\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing carrots and parsnips in home gardens', extension.umn.edu/vegetables/growing-carrots-and-parsnips (read 2026-07-11): 'Excessive nitrogen fertilization can also contribute to lots of leaf growth at the expense of root growth'; 'Forked, or split, roots may result from rocky, heavy, or compacted soil.'",
          "Univ. of Illinois Extension, 'Carrots', extension.illinois.edu/gardening/carrots (read 2026-07-11): 'excess organic debris such as woodchips worked into the soil just before planting also may affect root penetration, causing forked and twisted roots'; hairy roots 'are caused by a viral disease known as \"aster yellows.\"'"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "do-not-apply-fresh-high-n-fertilizer"
    },
    {
      "id": "R-017",
      "type": "nutrient",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "Fertilizer recommendations without a soil test are guesswork. Say so.",
      "mechanism": "N-P-K sufficiency is site-specific and unknowable a priori.",
      "remedy": "We will not invent an NPK number. Your county extension office will test this soil for about $15. Until then, feed heavy feeders, do not feed root crops, and add compost.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "epistemics"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "fertilizer-recommendations-without-soil-test-guesswork-say"
    },
    {
      "id": "R-099",
      "type": "nutrient",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "soil_ph_below_floor",
        "reads": "ph_range"
      },
      "claim": "A measured soil pH below a plant's sourced floor is worth saying out loud, with the shortfall and the direction of the fix. Above the ceiling too, but only for a plant that is documented to require acid soil — for everything else the ceiling is this corpus's own and fires nothing.\n",
      "mechanism": "Nutrient bioavailability is pH-dependent, so below the crop's optimum band phosphorus and molybdenum become less available; below about 5.5 the effect turns acute as aluminium and manganese dissolve fast enough to damage roots directly. Above an acid-requiring plant's range the same curve runs the other way: iron becomes unavailable and the plant goes chlorotic.\n",
      "response": "This bed's measured pH sits below what this plant wants. Near the floor that is a question of yield, not survival — the floor is the pH at which extension says to lime, not the pH at which the plant dies, and it is an estimated figure. Below about 5.5 it becomes a harder problem: aluminium and manganese dissolve and damage roots. Lime raises pH and sulfur lowers it, but we will not tell you how much of either, because the amount depends on your soil's buffering capacity and only a lab report's buffer pH measures that. Your extension soil lab is linked on the soil card.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UF/IFAS Extension HS1207, Liu & Hanlon, 'Soil pH Range for Optimum Commercial Vegetable Production', edis.ifas.ufl.edu/publication/HS1207 (fetched and read in-container 2026-07-25). The ACUTE half of the mechanism: 'At pH 5.5 or lower, the solubility of Al increases 1000-fold for every pH unit decrease. For example, at pH 5.0, Al solubility is only 0.05 ppm, but at pH 4.0, Al solubility increases to a toxic level of 51 ppm.' On phosphorus: 'Aluminum and phosphate precipitate in low-pH soil'; 'Because of the Al concentration increase, the bioavailability of P at pH 4.0 reduces to one thousandth of the concentration present at pH 5.0'. On roots: 'In the presence of toxic concentrations of elements such as Al at low pH, root growth and water uptake are inhibited'. WHAT THIS SOURCE DOES NOT SUPPORT, AND IT IS WHY THIS RULE IS ONLY A GOOD HUNCH: all of the above is stated for pH 5.5 and below, and 'metal toxicity occurs at soil pH lower than 5.0' — while the floors this rule fires on run 5.5 to 6.2. Over most of its firing range the same page says the opposite: 'in the pH range from 5.5 to 7.0, all the nutrients have favorable solubility for use by vegetable plants.' The two are reconcilable (UMD's threshold is about optimum yield, this one about nutrient failure) but not as a single promising claim. Its Figure 2 is the nutrient-bioavailability-versus-pH curve that WOULD support the mild half of the mechanism; it is an image and could not be read.",
          "UMD Extension, Table B-1 'Target Soil pH Values for Vegetable Crops', extension.umd.edu/sites/extension.umd.edu/files/2021-03/B-1.pdf (fetched and read in-container 2026-07-25): the source of every per-crop floor this rule reads. Its second column is headed 'Target lime when pH falls below', which is why the ruling_text says the floor is an intervention point rather than a lethal limit — the table itself frames it that way.",
          "FIGURE 2 IS A DEAD END, AND THIS CLOSES IT (2026-07-26). Earlier notes recorded that HS1207's Figure 2 - a nutrient-bioavailability-versus-pH curve - was the evidence that would restore this rule to promising, and that it could not be read because it is an image. The figure does not need to be seen. Its caption and alt text are recoverable from the page: 'Figure 2. The pH and bioavailability (%) of listed nutrients in soil solution. Credit: Finck (1976).' TWO THINGS FOLLOW. First, the publication states its OWN reading of the figure, and that reading is the objection rather than the rescue: the sentence that forced the B-to-C downgrade - 'in the pH range from 5.5 to 7.0, all the nutrients have favorable solubility for use by vegetable plants' - is explicitly cited to Figure 2. The figure is what the contradiction rests on. Second, it is not UF/IFAS data: it is credited to Finck (1976), a reproduced availability curve of the widely-copied schematic kind. SO NOBODY SHOULD CHASE THIS IMAGE AGAIN. The good-hunch tier is not waiting on it. [read]"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "measured-soil-ph-below-plant-s-sourced"
    },
    {
      "id": "R-100",
      "type": "nutrient",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "soil_drainage_waterlogged",
        "reads": "drainage"
      },
      "claim": "Ground the gardener has observed to stand water after rain is a site problem to fix before planting, not a plant problem to select around.\n",
      "mechanism": "Saturated soil has no air in it, so roots suffocate; and standing water lets Phytophthora release swimming zoospores, which need free water to reach a root or crown at all.\n",
      "remedy": "You told us this ground stands water after rain. Fix the site rather than the planting list: plant on a mound or berm, or build the bed up. UC IPM puts the mound at 8 to 10 inches for annuals and up to two feet, with a gradual slope, for trees and perennials; WSU asks for at least 12 inches for raspberries. Fruit trees and brambles have the most to lose, and tomatoes, peppers and eggplant are named as susceptible too. Never bury the root crown or graft union when you mound. We are not naming a drainage rate or a tile spacing - that is an engineering number and this is a garden app.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UC Statewide IPM Program (UC IPM), 'Phytophthora Root and Crown Rot', Home and Landscape, ipm.ucanr.edu/home-and-landscape/phytophthora-root-and-crown-rot/ (fetched and read in-container 2026-07-25). The one written for gardens rather than orchards, and the source of this rule's scope: 'Almost all fruit and nut trees, as well as many ornamental trees and shrubs (including many California natives), can develop Phytophthora root or crown rot'; 'Tomatoes, peppers, eggplant and other vegetable plants can also be affected.' On the threshold: 'Phytophthora diseases can develop in as little to 4 to 8 hours of soil saturation.' On the remedy: 'Avoid prolonged saturation of the soil or standing water around the base of trees or other susceptible plants'; 'Raised beds can improve drainage in a vegetable garden'; 'Consider planting trees and shrubs on mounds. The mounds should be 8 to 10 inches high for annuals and up to 2 feet high with a gradual slope for trees and perennials.' And the warning the ruling_text repeats: 'Never cover the root crown or graft union with soil or mulch.'",
          "UC IPM Pest Management Guidelines, 'Phytophthora Root and Crown Rot', PEACH, ipm.ucanr.edu/agriculture/peach/phytophthora-root-and-crown-rot/ (fetched and read in-container 2026-07-25): 'Periods of 24 hours or more of saturated soil favor Phytophthora infections. Conversely, good soil drainage and more frequent but shorter irrigations reduce the risk of root and crown rot.' 'The most effective ways to manage Phytophthora root and crown rot are to select a good planting site, select an appropriate rootstock, and properly manage irrigation water.' 'Planting on raised berms can also help with disease management.' NOTE THE THRESHOLD DISAGREES WITH THE HOME PAGE ABOVE - 24 hours here, 4 to 8 hours there. This rule quotes neither as a threshold and fires on the gardener's own observation of standing water instead, which is why the disagreement does not reach the ruling.",
          "UC IPM Pest Management Guidelines, 'Phytophthora Root and Crown Rot', PLUM, ipm.ucanr.edu/agriculture/plum/phytophthora-root-and-crown-rot/ (fetched and read in-container 2026-07-25). Read specifically to test whether the corpus's four fruit trees differ, and they do: 'Plum rootstocks are less susceptible to Phytophthora infections than peach rootstocks, so plums grown on plum rootstock seldom have this disease'; 'In general, plum rootstocks are more resistant than are peach or apricot.' But also 'Rootstocks vary in susceptibility to the different Phytophthora species; none are resistant to all pathogenic species of the fungus.' THIS DIFFERENCE IS NOT MODELLED and the rule does not act on it: susceptibility here is a property of the ROOTSTOCK, which this corpus does not carry for plum, and 'less susceptible' is not 'safe in standing water' - the anoxia half of the mechanism does not care about rootstock at all. Recorded because it is the obvious next refinement and because a reader will otherwise wonder why plum is treated like peach.",
          "WSU Hortsense, 'Raspberry: Phytophthora root rot', hortsense.cahnrs.wsu.edu/fact-sheet/raspberry-phytophthora-root-rot/ (fetched and read in-container 2026-07-25): 'Phytophthora root rot can be a problem in the Pacific Northwest when raspberries are planted in areas with poor drainage'; 'Do not plant in waterlogged, poorly drained, or frequently flooded areas'; 'Improve soil drainage by planting raspberries in raised beds (soil level at least 12 inches above the surrounding soil.)' The 12-inch figure in the ruling_text is this one. Also 'The fungus attacks the fine roots, which rot and die.'",
          "Ohio State University Extension, 'Phytophthora Root and Crown Rot of Fruit Trees', Ohioline PLPATH-FRU-06, ohioline.osu.edu/factsheet/plpath-fru-06 (read 2026-07-26). PREVIOUSLY RECORDED HERE AS 403-ING FROM THIS CONTAINER AND CITED ONLY FROM A SEARCH SUMMARY; it was a 404, not a 403 - the URL carried in this pointer was wrong by one character (plpath-fru-6 for plpath-fru-06). The page fetches fine. THE MECHANISM SENTENCE THIS RULE NEEDED: 'Zoospores are released from sporangia only when soil is completely saturated with water (standing water).' That is the zoospore half of the mechanism stated outright, and it is also the justification for the TRIGGER: the rule fires on observed standing water because standing water is the condition the source names. AND IT RESOLVES THE THRESHOLD DISAGREEMENT rather than adjudicating it: 'The longer the period or periods of soil saturation, the greater the risk of infection.' Risk rises CONTINUOUSLY with duration, so UC IPM's 4-to-8 hours and 24 hours are not competing cut-offs but two points on a dose-response - there is no threshold to pick, and quoting neither was correct modelling rather than an evasion. On scope: 'In Ohio, apple, cherry, and peach trees are usually attacked'; 'Pear and plum trees appear to be relatively resistant'; 'Among stone fruits, plums are relatively resistant, whereas the remainder are susceptible to very susceptible'; 'Pears are the most resistant tree fruit crop'. This independently corroborates the UC IPM plum finding in the pointer above, from a second institution. STILL NOT MODELLED, for the same reason recorded there: the page ties resistance to ROOTSTOCK ('Among dwarfing-apple rootstocks, M-9, M-2, and M-4 are relatively resistant'; 'Mahaleb is the most susceptible cherry rootstock'), which this corpus does not carry, and the anoxia half of the mechanism does not care about rootstock at all. [read]"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "ground-gardener-has-observed-stand-water-after"
    },
    {
      "id": "R-101",
      "type": "nutrient",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "soil_lime_rate_without_buffer",
        "reads": "buffer_ph"
      },
      "claim": "A lime or sulfur RATE requires a buffer-pH measurement. Direction is free; the amount is not, and it is the lab's to give, never ours.\n",
      "mechanism": "Buffering capacity, which is set by clay and organic matter, decides how much lime moves pH at all, so the same target takes very different amounts in sand and in clay.\n",
      "remedy": "We will not tell you how much lime or sulfur to add, and neither should anything that has not measured your soil's buffering capacity. If your report carries a buffer pH, the rate printed on it is a real one for your ground - use that. If it does not, ask your lab for a lime requirement test; it is usually part of a routine soil test and costs nothing extra. Which direction to go is free: lime raises pH, sulfur lowers it.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UF/IFAS Extension HS1207, Liu & Hanlon, 'Soil pH Range for Optimum Commercial Vegetable Production', edis.ifas.ufl.edu/publication/HS1207 (read 2026-07-25). The mechanism, stated outright: 'The amount of lime required to increase soil pH is determined by the size of the limestone particles being used and, most importantly, the buffering capacity of the soil.' What buffering IS: 'The buffering capacity refers to the soil's capacity to minimize change in the acidity of a solution when an acid or base is added into the solution.' What sets it: 'Buffering capacity is controlled by the soil's clay content and the amount of organic matter present.' And the consequence this rule turns into a refusal: 'Soils with large buffering capacity need more agricultural lime to adjust soil pH than those with lower buffering capacity for the same incremental change in soil pH. However, sandy soils have lower buffering capacity and need less lime for the same incremental change in pH than clay soils.' The page also names the remedy the ruling_text points at: 'The UF/IFAS Extension soil testing lab offers a Lime Requirement test as a component of a routine soil test, which provides a liming recommendation based on the buffer capacity of the soil sample.'",
          "WHAT THE SOURCE DOES NOT SAY, and it is why this rule is promising rather than well established: it states that buffering capacity determines the amount, and it does not quantify how wrong an unbuffered estimate would be. The claim that the error is large enough to WARN a home gardener about is a judgement this corpus is making on top of the mechanism, not a sentence anyone published. Promising + suboptimal derives `advise`, which is the mildest non-inert ruling, and the ruling_text is phrased as a refusal to guess rather than as a prediction of harm."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "lime-sulfur-rate-requires-buffer-ph-measurement"
    },
    {
      "id": "R-020",
      "type": "allelopathy",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "applies_to": {
        "family": "solanaceae"
      },
      "trigger": {
        "kind": "hazard_radius",
        "hazard": "juglans_nigra",
        "field": "sensitive_species"
      },
      "claim": "Do not plant a juglone-sensitive species within the root zone of Juglans. The sensitive list is the hazard's own, and it is wider than the Solanaceae - it also carries apple and cabbage.\n",
      "mechanism": "Juglans roots exude hydrojuglone, oxidized to juglone, a respiration inhibitor. Solanaceae are highly sensitive: wilt and death.\n",
      "remedy": "Plant it outside the walnut's root zone — the whole drip line and beyond. There is no soil treatment for juglone.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UW-Madison / Wisconsin Horticulture (Joy, Hudelson & Jull, rev. 2024-02-28), 'Black Walnut Toxicity', hort.extension.wisc.edu/articles/black-walnut-toxicity (read 2026-07-13): 'Vegetables such as tomato, potato, eggplant and pepper ... are particularly sensitive to juglone'; 'The toxic effects of a mature black walnut tree can extend 50 to 80 feet from the trunk of the tree, with the greatest toxicity occurring within the tree's dripline.'",
          "Iowa State Univ. Extension & Outreach, Yard and Garden FAQ, 'What plants are sensitive to the juglone produced by black walnuts?', yardandgarden.extension.iastate.edu (read 2026-07-13): juglone-sensitive plants include 'members of the tomato family (tomato, potato, eggplant, pepper).'"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "do-not-plant-juglone-sensitive-species-within"
    },
    {
      "id": "R-021",
      "type": "allelopathy",
      "grade": "B",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "species": "helianthus_annuus"
      },
      "trigger": {
        "kind": "neighbour_class",
        "of": "helianthus_annuus",
        "target": "small_seeded_direct_sown"
      },
      "claim": "Sunflower residue suppresses germination of some small-seeded species.",
      "mechanism": "Sunflower tissue and roots release allelochemicals that persist in the soil and inhibit the germination and early growth of sensitive plants. Small-seeded, direct-sown neighbours are the ones at risk: a small seed has little reserve to push through the inhibition, whereas a transplant is already past the germination window and largely escapes.\n",
      "remedy": "Keep small-seeded direct sowings out of last year's sunflower ground, or set transplants into it instead of sowing seed.",
      "effect_size": "Modest; matters for direct-sown neighbours, not transplants.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "'The Allelopathic Activity of Aqueous Extracts of Helianthus annuus L. ... on Germination, Development, and Physiological Indices of Pisum sativum L.', PMC10180669, pmc.ncbi.nlm.nih.gov/articles/PMC10180669 (read 2026-07-11): 'If a sensitive test plant is exposed to allelopathic compounds, its seed germination and seedling growth are reduced'; 'Aqueous extracts of various organs of sunflower significantly suppress the growth of weeds ... and agricultural plants.' Effect was concentration-dependent (stimulatory at low concentration, inhibitory at 75%), consistent with the 'modest' effect_size. NOTE: this study used pea (large-seeded); the small-seeded/direct-sown scoping is the corpus's operationalization (small seeds have less reserve to overcome inhibition; transplants bypass the germination window), not a claim from this source."
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "sunflower-residue-suppresses-germination-some-small-seeded"
    },
    {
      "id": "R-022",
      "type": "allelopathy",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": "foeniculum_vulgare"
      },
      "trigger": {
        "kind": "neighbour_class",
        "of": "foeniculum_vulgare",
        "target": "any_vegetable"
      },
      "claim": "Fennel is allelopathic; a suppressive effect on neighbouring vegetables is plausible but poorly characterized (evidence is weed-directed, in vitro).\n",
      "mechanism": "Reported allelopathic exudates. Effect size poorly characterized.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Nourimand, Mohsenzadeh, Teixeira da Silva & Saharkhiz (2011), 'Allelopathic Potential of Fennel (Foeniculum vulgare Mill.)', Medicinal and Aromatic Plant Science and Biotechnology 5(1):54-57 (read 2026-07-13): fennel-seed ethanolic extract inhibited germination and seedling growth of FOUR WEEDS (perennial ryegrass, wild barley, oat, dandelion) in vitro at 2.5-10%; no crop or vegetable was tested.",
          "Tanase, Istrate & Stoleru (2026), 'Allelopathic Interactions in Vegetable Production Systems', Horticulturae 12(4):438, doi:10.3390/horticulturae12040438 (read 2026-07-13): lists fennel among aromatic vegetables (with dill, parsley, carrot, onion) whose extracts can have 'both inhibitory and stimulatory effects on plant germination and growth, depending on the species, concentration, and application conditions'; no fennel-specific suppression of a neighbouring vegetable is reported.",
          "Gap: no study tests fennel suppressing a neighbouring VEGETABLE in situ; documented activity is weed-directed and in vitro. The claim was reworded 2026-07-13 to say exactly that, and the maintainer read both papers 2026-07-25 and promoted it. What is verified here is the HEDGE - that the effect is plausible and poorly characterized - not a suppression effect. A field trial of fennel against a neighbouring vegetable would change this rule whichever way it came out."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "fennel-allelopathic-suppressive-effect-neighbouring-vegetables-plausible"
    },
    {
      "id": "R-030",
      "type": "thermal",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "applies_to": {
        "species": "solanum_lycopersicum"
      },
      "trigger": {
        "kind": "night_temp_exceeds",
        "field": "night_temp_max_c"
      },
      "claim": "Tomato fruit set fails when night temperatures persistently exceed ~21C (70F); high day temperatures (>29-32C) compound it.",
      "mechanism": "Sustained high day (>29-32C / 85-90F) and night (>21C / 70F) temperatures make pollen non-viable (\"tacky\") and impair its release; flowers go unfertilized within their ~50-hour window and abscise.\n",
      "remedy": "Wait it out — fruit set resumes on its own once nights cool, and the plants make up the gap. Do not reach for shade cloth: it cools the day, and this failure is driven by the night temperature, which Missouri IPM says shading will not touch. If hot nights are normal where you garden, buy a heat-set cultivar next season.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Missouri IPM, 'Understanding Tomato Fruit Set' (Missouri Produce Growers Bulletin), ipm.missouri.edu/MPG/2013/4/Understanding-Tomato-Fruit-Set (read 2026-07-11): 'When daytime temperatures exceed 85 degrees F or nighttime temperatures exceed 70 degrees F, pollination suffers due to pollen becoming \"tacky\" and non-viable.'",
          "UMD Extension (J. Brust), 'Expect Poor Fruit Set in Tomatoes This Week', extension.umd.edu/resource/expect-poor-fruit-set-tomatoes-week (read 2026-07-11): 'Daytime highs of 90° F and above and nighttime lows only getting down to 70° F ... will cause blossom drop and fruit abortion in tomatoes.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "tomato-fruit-set-fails-when-night-temperatures"
    },
    {
      "id": "R-031",
      "type": "timing",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "applies_to": {
        "frost_tolerance": "tender"
      },
      "trigger": {
        "kind": "before_last_frost",
        "probability": 0.5
      },
      "claim": "Tender species must not be scheduled before the site's last frost date.",
      "mechanism": "Ice nucleation in leaf tissue.",
      "remedy": "Sow or set out after the last frost date, or start indoors and transplant once it has passed.",
      "data_source": "NOAA NCEI 1991-2020 Climate Normals. See docs/CLIMATE.md.",
      "data_source_note": "NCEI publishes probability dates of last 32F occurrence at 10/20/30/40/50 percent, not 10/50/90. The original spec said 10/50/90 and was wrong.\n",
      "note": "Show the probability, not a date. Show the provenance tier alongside it (R-090).",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "climatology"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "tender-species-not-be-scheduled-before-site"
    },
    {
      "id": "R-032",
      "type": "timing",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "trigger": {
        "kind": "maturity_window",
        "reads": "scheduling_model"
      },
      "claim": "A species must reach maturity within the site's frost-free window.",
      "mechanism": "Accumulated GDD vs gdd_to_maturity, or DTM vs frost-free days.",
      "remedy": "Transplant, choose a shorter-DTM cultivar, or refuse the species for this site.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "GDD models"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "species-reach-maturity-within-site-s-frost"
    },
    {
      "id": "R-033",
      "type": "timing",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "living_support_lead_days",
        "days": 21
      },
      "claim": "A vine assigned to a living support must be sown after the support is established — corn ~6 in (~15 cm) tall, roughly 2-3 weeks — not at the same time.",
      "mechanism": "Load. A bean vine on an immature, poorly-anchored stalk pulls it over; extension guides key the delay to the support's height (corn ~6 in) as a proxy for it being rooted enough to bear the climbing load.\n",
      "remedy": "Sow the vine 2-3 weeks after the support, once it is about 15 cm tall.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Cornell Garden-Based Learning, 'How to Plant the Three Sisters', gardening.cals.cornell.edu/lessons/curriculum-classics/the-three-sisters-exploring-an-iroquois-garden/how-to-plant-the-three-sisters (read 2026-07-11): 'When the corn plants are about 6 inches high, pole beans and pumpkins can be planted around the corn plants.'",
          "USDA National Agricultural Library, 'The Three Sisters of Indigenous American Agriculture', nal.usda.gov/collections/stories/three-sisters (read 2026-07-11): 'Two or three weeks after the corn was planted, the women returned to plant bean seeds in the same hills.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "vine-assigned-living-support-be-sown-after"
    },
    {
      "id": "R-034",
      "type": "timing",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "bolt_risk_present"
      },
      "claim": "Succession sowing at 2-3 week intervals extends harvest for short-DTM crops.",
      "mechanism": "Sowing the same crop in batches two to three weeks apart staggers when each batch matures, so the harvest arrives as a continual succession instead of one glut. It pays off only for short-DTM crops, whose quick turnaround lets several sowings ripen within a single season.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension Master Gardener (Lancaster Co.), 'Succession Planting', extension.psu.edu/programs/master-gardener/counties/lancaster/idea-gardens/the-raised-bed-garden/succession-planting (read 2026-07-11): 'Succession planting extends the vegetable harvest'; 'Plant one crop, then approximately 2 weeks (or more) later, plant the same crop in another area to have a continual harvest.'"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "succession-sowing-2-3-week-intervals-extends"
    },
    {
      "id": "R-076",
      "type": "thermal",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "lifespan": "perennial"
      },
      "trigger": {
        "kind": "zone_out_of_range",
        "field": "hardiness_zone"
      },
      "claim": "Hardiness zone is the correct variable for perennials, and only for perennials.",
      "mechanism": "Zones encode average annual minimum winter temperature, which governs whether a woody perennial survives to spring. It is the wrong quantity for an annual, which never sees winter.\nTHE CEILING IS A SECOND AND DIFFERENT MECHANISM, and until 2026-07-26 this rule enforced it without naming it. A zone too WARM does not kill a perennial; it fails to chill it. Deciduous fruit crops need a winter dormancy period to break bud and set fruit, so in a zone milder than a plant is adapted to it may survive and never crop. Until ISSUES #13 was decided the band was enforced at both ends; now (option E) only the cold end gates — it alone follows from the definition of the zone system — and the warm end is carried as an ADVISORY, not a refusal.\nAND THE WARM END IS A CULTIVAR'S ANSWER, NOT A SPECIES', which is the honest limit of what this rule can do. Chill requirement is published per variety and varies enormously within a species, so a species-level ceiling says \"the modelled range does not reach your zone\", never \"no plant of this kind will crop for you\". So the engine offers the plant above its band and advises choosing a cultivar rated for the zone rather than refusing it — the same move invariant 3 makes for soil, applied to chill.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "THE FLOOR IS TRUE BY DEFINITION and needs no citation: the USDA system defines a zone AS a band of average annual minimum winter temperature, so 'a plant colder-hardy than your zone survives your winter' is the definition restated. This rule was `verified_trivially` on that basis alone until 2026-07-26. THE CEILING WAS NEVER COVERED BY IT - a minimum-temperature definition says nothing about a plant failing for want of chill - and that gap is why ISSUES #13 exists. The pointer below closes it.",
          "OSU Extension EC 1303, 'Growing blackberries in your home garden' (Bernadine Strik), catalog.extension.oregonstate.edu/sites/catalog/files/project/pdf/ec1303.pdf (read 2026-07-26). THE CEILING'S MECHANISM, STATED: 'Winter cold-hardy cultivars adapted to the colder regions of Oregon (such as zones 5 to 7), may not grow normally in regions of the Willamette Valley (zone 8) where winters are warmer and plants receive less winter chill.' A plant failing in a WARMER zone for want of chill - which is what this rule's upper bound enforces and what no source said until now. THE SAME PAGE MAKES IT A CULTIVAR PROPERTY: 'Even cultivars within the same type (trailing, erect or semierect) differ in fruit quality and flavor, appearance, tolerance to pests, cold hardiness, and plant longevity', and the remedy it gives is the one this rule's rejection text now repeats: 'Minimize risk by choosing types and cultivars that are adapted to your hardiness zone.' The page then publishes a table of sixteen cultivars EACH WITH ITS OWN ZONE RANGE, which is the strongest available evidence that a species-level band is an approximation. [read]",
          "WHAT THIS DOES NOT SETTLE. The mechanism is now named, but the corpus still carries ONE band per species where the source carries one per cultivar, and 12 of 25 perennial zones have no citation at all. So the ceiling is explained without being precise. ISSUES #13 stays open on that, and the rejection text is deliberately phrased as 'the modelled range does not reach your zone' rather than as a prediction that nothing will crop."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "hardiness-zone-correct-variable-perennials-only-perennials"
    },
    {
      "id": "R-080",
      "type": "pollination",
      "grade": "A",
      "severity": "costly",
      "ruling": "warn",
      "trigger": {
        "kind": "self_incompatible_count",
        "field": "pollination.min_plants"
      },
      "claim": "Self-incompatible species require 2+ genetically distinct plants.",
      "mechanism": "Many fruit trees carry self-incompatibility alleles at a single locus: when a pollen grain shares an allele with the pistil it lands on, the pistil rejects it and no seed sets. A plant's own pollen always shares its alleles, so it cannot fertilize itself — and neither can a second tree of the identical variety, which is genetically the same. Fertilization needs pollen from a genetically distinct plant.\n",
      "remedy": "Plant at least two, and where the species needs a second cultivar make them different varieties — two of the same will not pollinate each other.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Pollination Requirements for Various Fruits and Nuts', extension.psu.edu/pollination-requirements-for-various-fruits-and-nuts (read 2026-07-11): 'Apple: Cross-pollination is always needed to produce adequate fruit crop'; 'Cherry: Sweet: Most varieties are self-unfruitful'; 'Those fruits listed as self-fertile will set fruit with their own pollen.'",
          "'Pollen-Pistil Interaction in Response to Pollination Variants in Subtropical Japanese Plum (Prunus salicina Lindl.) Varieties', PMC9692414, pmc.ncbi.nlm.nih.gov/articles/PMC9692414 (read 2026-07-11): 'Japanese plum exhibits gametophytic self-incompatibility (GSI), a prezygotic reproductive barrier where genetically related pollen is rejected by the pistil ... governed by a polymorphic locus (S) ... Self-incompatibility occurs when the same S-allele is expressed in the haploid pollen grain and the diploid pistil.'"
        ]
      },
      "derived_ruling": "warn",
      "page_slug": "self-incompatible-species-require-2-genetically-distinct"
    },
    {
      "id": "R-081",
      "type": "timing",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "applies_to": {
        "species": "allium_cepa"
      },
      "trigger": {
        "kind": "photoperiod_latitude_mismatch",
        "field": "photoperiod.groups"
      },
      "claim": "Onion cultivar group must match site latitude.",
      "mechanism": "Bulbing fires when daylength crosses a cultivar's critical threshold (short ~10-12h, intermediate ~12-14h, long ~14-16h). A short-day cultivar grown too far north crosses its low threshold early and bulbs prematurely on small plants, so bulbs stay small. A long-day cultivar grown too far south never reaches its high threshold and fails to bulb. Changeover is around the 35th-38th parallel.\n",
      "remedy": "Choose long-day onions in the north and short-day in the south; the planner picks the group from your plot's latitude.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "NC State Extension, 'Bulb Onions', content.ces.ncsu.edu/bulb-onions (read 2026-07-11): 'onions will not form bulbs until daylength reaches the cultivar's critical threshold. Short-day onions bulb at approximately 10-12 hours of daylength ... Intermediate-day onions bulb at approximately 12-14 hours ... Long-day onions bulb at 14-16 hours of daylength.'",
          "Univ. of Illinois Extension (The Humble Gardener), 'Growing Onions in Central Illinois', extension.illinois.edu/blogs/humble-gardener/2018-03-19-growing-onions-central-illinois (read 2026-07-11): 'Long day varieties are for northern growing areas (above the 35th latitude); short-day varieties are for southern. If short-day varieties are grown in our zone, they won't do well. They will not form bulbs of any decent size. And since the long day onions need more daylight, they will not do well' (in the south)."
        ]
      },
      "derived_ruling": "block",
      "page_slug": "onion-cultivar-group-match-site-latitude"
    },
    {
      "id": "R-102",
      "type": "pollination",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "insect_vector_forage_gap",
        "reads": "bloom_window"
      },
      "claim": "An insect-pollinated crop depends on an insect to move pollen between its flowers; no arrangement of plants substitutes for one.\n",
      "mechanism": "A monoecious cucurbit bears pollen and ovules in separate flowers, so fertilization requires a vector to carry pollen between them - neither wind nor self-fertility applies. Ovules that are not fertilized do not develop, and the fruit aborts or forms misshapen.\n",
      "remedy": "Nothing here can guarantee insects, and their absence cannot be diagnosed from a plant list. What you can change is whether anything in the garden is in flower while the crop is. Plants that feed insects near a fruiting crop are a reasonably supported suggestion, not a proven fix.\n",
      "effect_size": "Not quantified by any source read. Clemson states the outcome categorically (\"no fruit formation or either poorly formed fruit\") without a rate, and no source read gives a visits-per-flower threshold or a yield curve. Deliberately left unquantified rather than estimated.\n",
      "trigger_note": "THE TRIGGER IS WEAKER THAN THE CLAIM, ON PURPOSE. The claim is grade A. The condition that fires it - nothing in this garden is in flower while the crop is - guarantees nothing, because bees arrive from outside the garden. Hence severity `suboptimal` (deriving `advise`) rather than `costly` (deriving `warn`): it names a missed opportunity, never a defect. Every source read names WEATHER as the first cause of poor cucurbit set, and D-008 denies this app a weather feed, so weather can never be ruled out - which is the standing reason forage can never be ruled IN. No surface may present this rule as a diagnosis of a failed fruit.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Clemson HGIC 1321, 'Summer Squash', hgic.clemson.edu/factsheet/summer-squash (fetched in-container 2026-08-01, READ AND CONFIRMED BY THE MAINTAINER 2026-08-01): 'Squash have separate male and female flowers on the same plant, and pollen must be transferred from the male flowers to the female flowers by bees.' And the consequence, stated categorically: 'Poor pollination will result in no fruit formation or either poorly formed fruit.' Note the page discusses blossom-end rot SEPARATELY as a calcium disorder, so the malformation claim here is not that confusion. [read]",
          "UMN Extension, 'Growing summer squash and zucchini in home gardens', extension.umn.edu/vegetables/growing-summer-squash-and-zucchini (fetched in-container 2026-08-01, READ AND CONFIRMED BY THE MAINTAINER 2026-08-01): 'An insect must move the pollen from the male flowers to the female flowers. Bees are common squash pollinators.' And on the failure: 'Poor fruit set could be due to not enough pollination.' THE SAME PAGE IS WHY THIS RULE REFUSES TO DIAGNOSE: 'Cold, rainy or cloudy weather can reduce pollination', and 'It is also common that the first flush of fruit isn't adequately pollinated; time often solves this issue as bees find the planting.' [read]",
          "UMN Extension IPM, N. Hoidal, 'Limited fruit set and fruit abortion in winter squash and pumpkins', 2019-08-30, blog-fruit-vegetable-ipm.extension.umn.edu (fetched in-container 2026-08-01, READ AND CONFIRMED BY THE MAINTAINER 2026-08-01): 'Pumpkins and squash are dependent upon insect pollination.' On which insects, which is why the remedy speaks of forage rather than of honeybees: 'Bumblebees and squash bees (Peponapis pruinosa) are the best pollinators of pumpkins since they forage in the morning.' [read]",
          "UMD Extension, 'Vegetable Plant Pollination in a Changing Climate', extension.umd.edu/resource/vegetable-plant-pollination-changing-climate (fetched in-container 2026-08-01, READ AND CONFIRMED BY THE MAINTAINER 2026-08-01): 'Summer squash flowers require insect pollination and are only open in the morning', and on incomplete pollination, 'Fruits may also be small, malformed, and have few seeds.' WHAT THIS SOURCE DOES NOT BUY, recorded so the rule cannot grow into it: its recommendation is the unquantified 'Plant a variety of flowering plants in or around your vegetable garden to attract pollinators'. That is R-052's territory, held there at a weaker confidence than this rule. NOT ONE OF THESE FOUR SOURCES SAYS A GARDEN WITHOUT FORAGE SETS LESS FRUIT, which is precisely why the claim above is the REQUIREMENT and the forage gap is only the trigger. [read]"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "insect-pollinated-crop-depends-insect-move-pollen"
    },
    {
      "id": "R-103",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "How often to water is a weather question. This planner has no weather feed and will not invent a schedule.\n",
      "mechanism": "How fast ground dries is set by rainfall, temperature, wind and humidity - none of which this app observes. An interval computed without them is a guess wearing a schedule's clothes.\n",
      "remedy": "Check the soil, not the calendar: push a finger in to the second knuckle and water if it is dry at that depth. That is a method rather than a number, and it is the honest substitute for a frequency nobody can compute for your week. When you do water, put it on the soil rather than the leaves, and water long enough to reach the roots rather than only darkening the surface.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "epistemics"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "how-often-water-weather-question-this-planner"
    },
    {
      "id": "R-104",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "uneven_water_fruit_disorder",
        "reads": "ber_susceptible"
      },
      "claim": "Blossom-end rot is a calcium-transport failure driven by uneven soil moisture, not a shortage of calcium in the soil.\n",
      "mechanism": "Calcium reaches the fruit in the water the roots draw up: it is carried by the xylem along with that stream. When the supply of water is interrupted the supply of calcium is interrupted with it, and the enlarging fruit runs short at its tip - even where soil calcium is adequate.\n",
      "remedy": "Keep the soil evenly moist rather than letting it dry out and then soaking it, and mulch to hold that moisture steady. We are not naming a calcium amendment or a rate: the sources disagree on whether adding calcium helps at all, and any amendment number would need a soil test first.\n",
      "effect_size": "Not quantified by any source read. All three describe the disorder and its prevention without a rate, an incidence figure or a yield effect, and none states how much moisture variation is enough to cause it. Deliberately left unquantified rather than estimated.\n",
      "trigger_note": "THE TRIGGER IS WEAKER THAN THE CLAIM, the same shape as R-102's and for the same reason. The claim is grade A. What fires it is only that a susceptible fruit is being grown - this app cannot see how anyone waters, has no weather feed (D-008), and never learns whether a fruit actually rotted. So it names a RISK carried by the crop, never a diagnosis of a fruit, and severity stays `suboptimal` (deriving `advise`) rather than `costly` (deriving `warn`). No surface may present it as an explanation of damage the gardener is looking at.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Iowa State Univ. Extension, Yard & Garden, 'Blossom End Rot', yardandgarden.extension.iastate.edu/encyclopedia/blossom-end-rot (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'This is a problem born of calcium deficiency, most often the result of erratic watering.' On the amendment question, which is why this rule refuses to name one: 'Adding calcium to the soil is generally ineffective.' And the remedy: 'Mulch the area around tomato plants to conserve and maintain uniform soil moisture levels.' [read]",
          "Univ. of Maryland Extension, 'Blossom End Rot on Vegetables', extension.umd.edu/resource/blossom-end-rot-vegetables (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): THE SOURCE OF THE CROP LIST - 'tomato, pepper, eggplant, pumpkin, squash, and watermelon' - which is why `ber_susceptible` is a species field and not a family gate: that set spans two families and excludes potato. Cause: 'a shortage of calcium in enlarging fruits', linked to 'inconsistent watering, shallow watering or droughty conditions'. WHAT THIS SOURCE DOES NOT BUY, recorded so the rule cannot grow into it: it also says 'Mix in 1/4 cup of gypsum (calcium sulfate) with the soil from each planting hole' and that a calcium chloride spray 'may offer some temporary relief'. That is an amendment quantity with no soil test behind it, which invariant 3 forbids regardless of whether the agronomy is right - and the other two sources read contradict it outright. [read]",
          "Clemson HGIC, 'Gardening Myths: Fix Blossom End Rot with Calcium Sprays', hgic.clemson.edu/gardening-myths-fix-blossom-end-rot-with-calcium-sprays (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the mechanism this rule states, in the source's own words - 'Calcium is taken up from the soil through the plants' roots and is transported by the xylem, along with water.' On sprays: 'Foliar calcium sprays are not effective', because 'the skin of the fruit is not able to directly absorb foliar-applied calcium.' And it lands where R-017 already stood, independently: it recommends conducting a soil test before planting. [read]"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "blossom-end-rot-calcium-transport-failure-driven"
    },
    {
      "id": "R-105",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "Water the soil, not the leaves. A film of water on a leaf is what most fungal spores need in order to germinate.\n",
      "mechanism": "A spore landing on a leaf needs liquid water on that surface to germinate and enter it. Water delivered to the soil never puts a film there; water thrown over the plant does, and the longer it lasts the more of the spores already present can use it.\n",
      "remedy": "Put the water at the base - a soaker hose, a drip line, or a wand held low - so the foliage stays dry. If overhead is all you have, water when the leaves will dry quickly rather than staying wet into the night.\n",
      "effect_size": "Not quantified by any source read. The mechanism is stated categorically - spores require the water film - but no source read gives an infection rate, a wetness-hours threshold, or a difference in disease incidence between watering methods. Deliberately left unquantified.\n",
      "scope_note": "This rule is about where the water goes, not what time you go out. Of the sources read, one names early morning and another suggests mid-afternoon when overhead watering is unavoidable; both are reasoning about how fast the leaves dry, not about the clock. So the rule says what they agree on and leaves the hour alone. It also says nothing about how MUCH or how OFTEN to water - that is a weather question, and the answer to it is the refusal one rule up.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Wisconsin-Madison Div. of Extension, Wisconsin Horticulture, 'Water, Water, Everywhere, but Never on the Leaves', hort.extension.wisc.edu/2021/04/01/water-water-everywhere-but-never-on-the-leaves (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the mechanism, in the source's own words - overhead watering creates 'a \"leaf wetness period,\" a time when a thin layer of water coats the leaf', and 'This layer of water is exactly what most plant diseases-causing fungi require for their spores to germinate and infect.' The remedy: 'a soaker or drip hose that directs water into the soil rather than onto leaves.' NOTE FOR ANYONE TEMPTED TO ADD AN HOUR TO THIS RULE: this page names no time of day at all. [read]",
          "Iowa State Univ. Extension, Yard & Garden, 'Managing Diseases in the Vegetable Garden', yardandgarden.extension.iastate.edu/how-to/managing-diseases-vegetable-garden (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Soaker hoses, drip irrigation, or watering at the base of the plant all help keep the foliage dry.' And why it matters: 'Most disease-causing microorganisms, like fungi, require water to proliferate. Dry foliage helps slow or prevent their growth.' This page likewise names no watering hour. [read]",
          "Penn State Extension, 'Garden Myths: Watering', extension.psu.edu/garden-myths-watering (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'If possible, avoid watering at the foliage of the plant which can lead to disease.' THIS IS THE ONLY SOURCE READ THAT NAMES AN HOUR - 'The best time for watering plants is in the early morning to avoid evaporation and reduce the potential for disease' - and one source's hour, contradicted elsewhere in the same literature by a mid-afternoon recommendation for gardeners with only a sprinkler, is why the clock is in this rule's scope_note rather than in its claim. [read]"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "water-soil-not-leaves-film-water-leaf"
    },
    {
      "id": "R-106",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "A light sprinkle does not reach the roots. Water long enough to wet the soil to root depth, or the plant gets nothing.\n",
      "mechanism": "Water moves down only as far as the volume applied can wet it. A brief watering darkens the surface and stops there, while the roots that take up water sit well below it, so the water never arrives where it is needed.\n",
      "remedy": "Water until the soil is moist about a hand's depth down rather than until the surface looks wet. Push a finger in afterwards to find where the water actually got to - the difference between a plant watered and a plant dampened is invisible from above.\n",
      "effect_size": "Not quantified by any source read for a garden bed. The sources give target wetting depths and a feeder-root depth, not a relationship between water applied and depth reached - that depends on soil texture, which this rule does not model. Deliberately left unquantified.\n",
      "scope_note": "This is about how deep ONE watering goes, not how often to water - that is a weather question, and the refusal to answer it is a separate rule in this section. ALSO NOT CLAIMED HERE, and deliberately: that frequent light watering trains roots to stay shallow. Four extension sources say it, not one of them explains why, and this corpus does not carry a graded claim whose mechanism nobody states.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Iowa State Univ. Extension, Yard & Garden, 'Watering Tips for the Garden, Lawn, and Landscape', yardandgarden.extension.iastate.edu/how-to/watering-tips-garden-lawn-and-landscape (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Apply water until the soil is moist to at least 5 or 6 inches' - the source of this rule's hand's-depth target, ~15 cm. This is the one source read with a dedicated 'Tips for Watering Vegetable Gardens' section, which is what puts the claim in scope for a vegetable planner where the tree-and-shrub pages below are not. WHAT WE ARE NOT CITING IT FOR: the same page says 'Avoid a quick splash that can promote shallow rooting', an outcome it does not explain. This rule takes the depth figure and leaves that claim alone. [read]",
          "Univ. of Minnesota Extension, 'Watering established trees and shrubs', extension.umn.edu/planting-and-growing-guides/watering-established-trees-and-shrubs (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): 'Most of the small feeder roots responsible for water uptake are located in the top 12 to 18 inches of soil', and 'Apply a deep watering over the entire root zone area until the top 6 to 9 inches of soil are moist.' Cited for WHERE THE ROOTS ARE - the second half of this rule's mechanism. TWO SCOPE CAVEATS, both recorded so a later reader does not over-read the citation: the page is about trees and shrubs, not vegetables, so the depth figures are not transferred; and it too carries the unexplained shallow-rooting claim ('Avoid light watering as this promotes shallow root systems'), which this rule declines. [read]"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "light-sprinkle-does-not-reach-roots-water"
    },
    {
      "id": "R-107",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "container_water_demand",
        "reads": "structure"
      },
      "claim": "A container dries out faster than the same plant in the ground, and it is the one place where a day's inattention can cost you the plant.\n",
      "mechanism": "A container holds a small fixed volume of soil, its whole root zone sits above ground rather than connected to the soil below, and a porous pot loses water from its sides as well as its surface. The reservoir is smaller and it empties faster.\n",
      "remedy": "Check a container at least once a day, and twice when it is hot, dry or windy - in high summer it may genuinely need water more than once a day. A plastic pot holds moisture longer than an unglazed clay one, and a bigger pot longer than a small one.\n",
      "effect_size": "Not quantified as a ratio by any source read. The sources give a checking cadence and an upper bound on watering frequency in hot weather, not a drying rate or a comparison figure against open ground - that would depend on pot size, material, exposure and weather, none of which this rule models. Deliberately left unquantified.\n",
      "scope_note": "This says a container needs CHECKING more often, not how much water to give it - that is still a weather question and it is still refused. Nothing here is a watering schedule: the cadence is for looking at the soil, which is the same act the refusal in this section recommends, done more often because the reservoir is smaller.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Clemson HGIC, 'Container Vegetable Gardening', hgic.clemson.edu/factsheet/container-vegetable-gardening (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): the mechanism and the outcome in one sentence - 'Because the volume of soil is relatively small, containers can dry out very quickly, especially on a concrete patio in full sun.' The second mechanism, which is why the remedy names pot material: 'Clay pots and other porous containers allow additional evaporation from the sides of the pots and watering must be done more often.' The cadence: 'Check containers at least once a day and twice on hot, dry or windy days', and 'Daily or even twice-daily watering may be necessary.' [read]",
          "Univ. of Minnesota Extension, 'Fertilizing and watering container plants', extension.umn.edu/managing-soil-and-nutrients/fertilizing-and-watering-container-plants (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02): corroborates the size-and-material dependency - 'Depending upon the size and material of the container, you may need to water more than once per day during hot, dry weather.' [read]",
          "NOT CITED, AND RECORDED SO IT IS NOT RE-SOUGHT: a web search attributed the drying-rate claim to UMD Extension's 'Maintaining Container Grown Vegetables'. The page was opened and it makes NO comparison between containers and ground and offers NO mechanism - it says only that frequency 'will vary based on the plant type, the size of the plant, and size of the container'. This is the second misattributed quote in this arc (the first was a UC IPM page that did not contain the root-growth sentence credited to it). A quote is not a source until the page has been opened."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "container-dries-out-faster-than-same-plant"
    },
    {
      "id": "R-108",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "transplant_depth"
      },
      "applies_to": {
        "species": [
          "solanum_lycopersicum"
        ]
      },
      "claim": "A tomato transplant goes into the ground DEEPER than it grew in its pot - buried up to its first leaves - rather than at the soil line it came out of.\n",
      "mechanism": "A tomato's stem forms roots along whatever length of it is buried in moist soil. Setting the plant deep therefore converts stem into root, and the plant ends up with a larger root system than the one that came out of the pot.\n",
      "remedy": "When you set it out, bury the stem up to the first leaves - deeper still if the plant is leggy from being started indoors. This is the one seedling you plant lower than it was growing.\n",
      "effect_size": "Not quantified by the source read. It gives the depth and the reason, not a yield or root-mass difference against a plant set at its pot line - so no figure is stated here rather than one being estimated.\n",
      "scope_note": "TOMATO ONLY, and the two exclusions are deliberate rather than incomplete. The same page tells you to set a PEPPER so the soil reaches its cotyledons - a real published depth - but gives no reason for it, and rooting along a buried stem is a tomato trait rather than a general one. A rule at this confidence states its mechanism, so pepper waits for a source that gives it one rather than borrowing this one. EGGPLANT is named in the page's title and given no setting depth at all; reading the title as though it were the text is how a claim reaches a crop nobody wrote about.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Utah State Univ. Extension, 'Tomato, Pepper & Eggplant: Planting & Spacing', extension.usu.edu/vegetableguide/tomato-pepper-eggplant/planting-spacing (fetched in-container 2026-08-03, READ AND CONFIRMED BY THE MAINTAINER 2026-08-03): the instruction and its scope - 'The stem of a tomato transplant may be buried in soil up to the first leaves (or more if the plant is spindly)'. The same page's PEPPER sentence, quoted here so the exclusion above is auditable rather than asserted: 'Transplants should be set so the soil level reaches the cotyledon leaves or the first true leaf.' The page gives EGGPLANT no setting-depth sentence of any kind. [read]",
          "NOT A SOURCE FOR THE MECHANISM, and recorded so it is not re-sought: no page read for this rule states WHY a buried tomato stem roots. The mechanism above is the standard horticultural account of adventitious rooting, and it is asserted on the strength of the instruction it explains rather than on a page that states it outright; a source stating it directly would strengthen the pointer list rather than change the rule."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "tomato-transplant-goes-into-ground-deeper-than"
    },
    {
      "id": "R-109",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "toxic_part"
      },
      "applies_to": {
        "species": [
          "rheum_rhabarbarum"
        ]
      },
      "claim": "Rhubarb leaf blades are poisonous and must never be eaten - only the leafstalks (the petioles) are edible. Harvest the stalks and cut the leaves off.\n",
      "mechanism": "The leaf blades hold a toxic concentration of oxalic acid - and, per NDSU, anthraquinone glycosides - which the edible petioles carry only in trace amounts. Oxalic acid binds calcium and can damage kidney function; eating the blades causes cramping, nausea and, in quantity, can be fatal. The stalks are safe because the toxins concentrate in the leaf, not the petiole.\n",
      "remedy": "Cut the leaf blades off and discard them; eat only the stalks. Never cook or eat the leaves.\n",
      "effect_size": "Not quantified as a threshold dose. The sources give the hazard and the compound, and NDSU's plant-toolbox entry rates the severity \"Medium\" and notes it is \"TOXIC ONLY IF LARGE QUANTITIES EATEN\" - a qualitative caution, not a stated gram figure, so none is invented here.\n",
      "scope_note": "RHUBARB ONLY, scoped by applies_to.species like R-108 - it reads no species field, because \"the leaves are toxic\" is a fact about a named crop, not a property the corpus measures. It is the first toxicity rule in the corpus, and it exists because the alternative did not fit: the hazard entity (juglans_nigra) models SPATIAL allelopathy - an effect radius and a list of sensitive neighbours - while this is INGESTION harm to the gardener with no radius and no neighbour, so a rule with a mechanism is the honest home for it (maintainer ruling, 2026-08-05). THE SEVERITY AXIS MEASURES GARDEN OUTCOME (how bad for the planting if ignored); this is a USE-SAFETY advisory, so it sits at `advise` and carries its seriousness in the claim wording, never in a severity the app does not show (D-105). Two claims are DELIBERATELY NOT made: LIVESTOCK toxicity, asserted only by non-extension secondary sources, so it waits for an extension-grade source that names it; and the FROST->TOXIN belief that a hard freeze moves oxalic acid into the stalks - Illinois states it, NDSU says it is scientifically unconfirmed, so the corpus does not carry a contested claim as fact.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UW-Madison / Wisconsin Master Gardener (Susan Mahr), 'Rhubarb, Rheum rhabarbarum', mastergardener.extension.wisc.edu/files/2018/04/rhubarb.pdf (read 2026-08-05): 'The leaves, however, contain a toxic amount of oxalic acid and are poisonous. The ensuing cramps, nausea and sometimes death from ingestion suppressed interest in the plant for about two hundred years.'",
          "NDSU Extension, 'Dakota Gardener: Is Frost-Damaged Rhubarb Toxic?', ag.ndsu.edu/news/columns/dakota-gardener/dakota-gardener-is-frost-damaged-rhubarb-toxic (read 2026-08-05), names BOTH compounds and the edible/toxic split outright: 'The leaves contain oxalic acid which can damage kidney function'; 'recent scientific studies show the presence of other compounds such as anthraquinone glycosides that may contribute to the toxicity of the leaves'; 'Rhubarb stems (petioles) which resemble celery stalks are the edible portion of the plant because they contain only trace amounts of toxic compounds.' The SAME page is why the frost->toxin belief is excluded: 'A hard freeze is widely believed to cause the movement of toxic compounds from the leaves into the stems' ... 'I could not find any scientific studies to confirm or disprove this belief.'",
          "U. of Illinois Extension (Good Growing), 'To rhubarb or not to rhubarb?', extension.illinois.edu/blogs/good-growing/2023-06-08-rhubarb-or-not-rhubarb (read 2026-08-05): 'Do not consume leaf blades, they contain large amounts of oxalic acid which can limit the body's ability to take up calcium.'",
          "UMN Extension, 'Growing rhubarb in home gardens', extension.umn.edu/vegetables/growing-rhubarb (read 2026-08-05): 'Rhubarb leaves are toxic. Do not eat them.'",
          "NC State Extension Gardener Plant Toolbox, 'Rheum rhabarbarum', plants.ces.ncsu.edu/plants/rheum-rhabarbarum/ (read 2026-08-05): Poison Severity 'Medium'; Poison Parts 'Leaves'; Toxic Principle 'Anthraquinone glycosides and soluble oxalates'; Poison Symptoms 'TOXIC ONLY IF LARGE QUANTITIES EATEN. Abdominal cramps, burning of mouth and throat, headache, weakness, nausea and vomiting, coma; may be fatal'."
        ],
        "note": "Promoted to verified 2026-08-05 after the maintainer read the five sources above (invariant 4). It landed unverified the same day - the quotes were gathered by research, not yet confirmed against the live pages - and was the first unverified item since the backlog was last cleared; the maintainer's read closed it, the R-108/R-102 path. The five extension-grade sources agree verbatim on the toxic leaf / edible petiole split.\n"
      },
      "derived_ruling": "advise",
      "page_slug": "rhubarb-leaf-blades-poisonous-never-be-eaten"
    },
    {
      "id": "R-110",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "regulated_host"
      },
      "applies_to": {
        "species": [
          "ribes_spp"
        ]
      },
      "claim": "Currants and gooseberries (Ribes) are an alternate host of white pine blister rust, and some states regulate or ban planting them - especially black currant. Check your state's rules before planting, and where white pines are nearby choose a rust-resistant cultivar.\n",
      "mechanism": "White pine blister rust (Cronartium ribicola) needs BOTH a Ribes and a five-needle (white) pine to complete its life cycle. The rust is a minor nuisance on Ribes but can be lethal to white pines, which is why some states restrict Ribes planting - strictest for black currant (Ribes nigrum), the most susceptible type. A rust-immune cultivar breaks the cycle: it cannot host the rust, so it cannot pass it to a pine.\n",
      "remedy": "Check your state's Ribes regulations before planting - a 1900s federal ban was lifted in 1966, but some states still restrict planting, especially of black currant. Where white pines grow nearby, plant a rust-immune cultivar - 'Consort', 'Crusader' or 'Titania' black currant, or a resistant gooseberry - which cannot carry the rust to the pine.\n",
      "effect_size": "Not a garden-yield figure; the consequence is regulatory and to white pines, not to the Ribes crop (the rust is \"little more than a nuisance to the grower of currants\", UMN). No number is stated or invented.\n",
      "scope_note": "RIBES ONLY, scoped by applies_to.species like R-108/R-109. It is an ADVISE rule, not a block and not a blacklist (maintainer ruling 2026-08-05): currant and gooseberry are legal, widely grown crops that SOME states regulate, unlike autumn olive, which R-082 blacklists as a banned invasive weed. The severity axis measures garden outcome; this is a REGULATORY / off-site advisory, so it sits at advise and carries its weight in the claim wording (check your state's rules), not in a severity the app never shows (D-105). The state list is deliberately NOT enumerated in the corpus: regulations change and vary, so the rule tells the gardener to CHECK their own state rather than asserting a state list that would rot (UMass names CT/MA/ME/NH/RI/VT pointers, several of which say \"no regulations at present\").\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMass Extension, 'Currants and Gooseberries' (New England Small Fruit Management Guide), www.umass.edu/agriculture-food-environment/fruit/ne-small-fruit-management-guide/currants-gooseberries (read 2026-08-05, re-read live 2026-08-14): 'Some New England states regulate aspects of Ribes spp. production within their boundaries due to their role as alternate hosts of White Pine Blister Rust (Cronartium ribicola)'; 'This disease is the primary reason for limited commercial production of Ribes in North America'; 'Most black currants (Ribes nigrum) and white pines (Pinus strobus) are extremely susceptible'; resistant cultivars named include 'Consort', 'Crusader', 'Ben Sarek', and 'Titania'.",
          "USU Extension, 'How to Grow Red Currants in Your Garden', extension.usu.edu/yardandgarden/research/red-currants-in-the-garden (read 2026-08-05, re-read live 2026-08-14): 'In the early 1900s, currants were banned in the northern United States to prevent the spread of white pine blister rust. However for most states, including Utah, the ban was lifted in 1966'; 'Most red currant varieties are actually immune to the disease, with black currant being much more susceptible.' USU gooseberry page: 'White pine blister rust requires both a Ribes species and white pine to complete its life cycle.'",
          "Iowa State Univ. Extension, 'Growing Currants and Gooseberries in the Home Garden', yardandgarden.extension.iastate.edu/how-to/growing-currants-and-gooseberries-home-garden (read 2026-08-05; REMOVED AT SOURCE by 2026-08-14 - the recorded URL 404s and the page could not be relocated; its claims are carried verbatim by the four confirmed sources above, so it is kept for provenance, not re-confirmed): 'Several states, however, still ban the planting and cultivation of black currants'; 'Consort ... along with Crusader and Coronet, are resistant to white pine blister rust.'",
          "UMN Extension, 'Growing currants and gooseberries in the home garden', extension.umn.edu/fruit/growing-currants-and-gooseberries-home-garden (read 2026-08-05, re-read live 2026-08-14): 'Currants, gooseberries and other plants in the Ribes genus play a part in white pine blister rust'; 'Blister rust is little more than a nuisance to the grower of currants, but can be devastating to white pine trees'; 'Planting remains restricted in some areas of the U.S.'; 'Crusader ... Immune to blister rust'; 'Titania ... immune to blister rust.'",
          "Penn State Extension, 'Home Fruit Plantings: Gooseberry and Currant Variety Selection', extension.psu.edu/home-fruit-plantings-gooseberry-and-currant-variety-selection (read 2026-08-05, re-read live 2026-08-14): 'Black currant (Ribes nigrum) is the most susceptible, though resistant varieties are available'; 'Titania ... Has very high resistance to white pine blister rust.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-14 (invariant 4): the four surviving extension sources were re-fetched live in-container after the maintainer whitelisted their hosts, their verbatim lines surfaced, and the maintainer read and confirmed them 2026-08-14. They independently agree on the Ribes / white-pine-blister-rust alternate-host relationship, the state regulation (with the 1966 federal-ban lift), black currant as the most susceptible type, and the resistant-cultivar remedy. `verified` records the read, not the strength of the claim. This provenance sits in `note`, not in a pointer, because the Why page renders pointers and the maintainer's wording rule keeps WHO verified off that surface (e2e scenario 29). The Iowa State pointer was removed at source since the 2026-08-05 gathering and is not re-confirmed; its content is covered by the four.\n"
      },
      "derived_ruling": "advise",
      "page_slug": "currants-gooseberries-ribes-alternate-host-white-pine"
    },
    {
      "id": "R-111",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "family": [
          "solanaceae",
          "cucurbitaceae",
          "brassicaceae"
        ]
      },
      "trigger": {
        "kind": "same_family_neighbour"
      },
      "claim": "A specialist pest or pathogen finds and builds on a continuous single-family host patch more readily than one broken by non-host families.\n",
      "mechanism": "Resource concentration - a specialist locates and holds its host more efficiently at higher host density and continuity, so an unbroken run of one family across adjacent beds is an easier target than the same family separated by a non-host (associational resistance).\n",
      "remedy": "Where one family fills adjacent beds in a single season, breaking the run with a non-host family between them lengthens the distance the specialist must travel to the next host. Disclosed, never docked: a continuous single-family block can be the right call anyway - a wind-pollinated crop like corn sets better massed - so the app names the trade-off and leaves the choice to the gardener.\n",
      "effect_size": "No garden-yield figure is stated or invented. The resource-concentration effect is real for SPECIALIST herbivores and inconsistent for generalists, which is why it only advises rather than warns.\n",
      "scope_note": "THREE FAMILIES ONLY (solanaceae, cucurbitaceae, brassicaceae), scoped by applies_to.family - the same families the rotation rules R-010/011/012 already cover, because those are where this corpus records specialist pest and pathogen pressure. R-111 is the SPATIAL, same-season sibling of that temporal rotation: R-010/011/012 keep a family off ground it recently held; R-111 notes when one family runs unbroken across ADJACENT beds this season. It never docks a score (that would be the companion chart's diversity aesthetic smuggled in as arithmetic - the exact thing the bed-tools design refused); it surfaces as a composer disclosure beside R-052 and the rotation foreclosure.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Root 1973, 'Organization of a plant-arthropod association in simple and diverse habitats: the fauna of collards (Brassica oleracea)', Ecological Monographs 43:95-124 (abstract read by the maintainer 2026-08-21): proposes 'the resource concentration hypothesis, which states that herbivores are more likely to find and remain on hosts that are growing in dense or nearly pure stands; that the most specialized species frequently attain higher relative densities in simple environments.' This is R-111's claim and mechanism verbatim.",
          "Elmstrom, Andow & Barclay 1988, 'Flea beetle movement in a broccoli monoculture and diculture', Environmental Entomology 17(2):299-305 (read by the maintainer 2026-08-21): the empirical test on a brassica specialist (the flea beetle Phyllotreta cruciferae) - immigration ~1.3x faster into monocultures than into dicultures, emigration ~2x faster from dicultures - reported as 'strong, direct support for the hypothesis that host plants are harder to find and easier to lose in vegetationally diverse habitats than in monocultures.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): drafted unverified from the named mechanism, then the maintainer read the two sources above and confirmed them. Both sources are BRASSICA; R-111 also names solanaceae and cucurbitaceae, which rest on Root's general hypothesis rather than a per-family read - the reason it stays grade C ADVISORY (not a warn), and inconsistent for generalist pests. `verified` records the read, not the strength.\n"
      },
      "derived_ruling": "advise",
      "page_slug": "specialist-pest-pathogen-finds-builds-continuous-family"
    },
    {
      "id": "R-070",
      "type": "refutation",
      "grade": "A",
      "severity": "none",
      "ruling": "refute",
      "trigger": {
        "kind": "guild_class_display",
        "class": "culinary_bundle"
      },
      "claim_refuted": "Any co-planted set of vegetables is a guild.",
      "what_is_true": "A guild asserts a mechanism between its members. A culinary bundle asserts only that you will want these things in the same bowl. Both are legitimate. Only one is a polyculture.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "definition"
        ]
      },
      "derived_ruling": "refute",
      "page_slug": "any-co-planted-set-vegetables-guild"
    },
    {
      "id": "R-072",
      "type": "geometry",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "trigger": {
        "kind": "mixed_lifespan_in_rotating_bed"
      },
      "claim": "Perennial members must not be sited in ground that is annually turned or rotated.",
      "mechanism": "Tillage destroys the crown. Rotation moves the annuals; the perennial cannot move.",
      "remedy": "Split perennial members into a permanent border; rotate the annuals around it.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "mechanics"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "perennial-members-not-be-sited-ground-that"
    },
    {
      "id": "R-073",
      "type": "geometry",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "ground_entity_mismatch",
        "requires": "radial_rings"
      },
      "claim": "Perennial woody guilds are not bed-scoped. Their ground entity is the drip-line ring.",
      "mechanism": "A tree's root zone expands for a decade and extends well past the canopy edge.",
      "note": "v1 renders the guild as a perennial advisory: it is not bed-scoped, so it is planned as drip-line rings (radial_rings), not a rect bed.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "root architecture"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "perennial-woody-guilds-not-bed-scoped-their"
    },
    {
      "id": "R-075",
      "type": "advisory",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_present",
        "role": "bulb_ring"
      },
      "claim": "A bulb ring suppresses turfgrass competition at a fruit tree trunk.",
      "mechanism": "Resource competition and physical occupancy of the root collar zone.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "competition"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "bulb-ring-suppresses-turfgrass-competition-fruit-tree"
    },
    {
      "id": "R-075b",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_filled",
        "role": "bulb_ring",
        "species": "narcissus_spp"
      },
      "claim": "Narcissus deters voles and rodents.",
      "mechanism": "Narcissus bulbs and tissue contain lycorine and related alkaloids, which are toxic to eat. Rodents avoid them accordingly — field mice rarely touch daffodils even where they readily eat tulips and crocus — so a ring of narcissus tends to be left alone rather than gnawed. It is an avoidance effect, not a barrier: it discourages feeding on the bulbs, not a guarantee against every rodent.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Bulbs', extension.illinois.edu/flowers/bulbs (read 2026-07-11): field mice 'most often attack tulips, crocus and gladioli and rarely eat daffodils, alliums or colchicums.'",
          "Univ. of Illinois Extension, 'Knowing poisonous plants can save a life', extension.illinois.edu/blogs/know-how-know-more/2022-07-05-knowing-poisonous-plants-can-save-life (read 2026-07-11): 'Daffodil, hyacinth, and narcissus contain the toxin lycorine, which, if eaten, typically causes nausea.'",
          "Clemson HGIC, 'Planting Deer Resistant Bulbs', hgic.clemson.edu/planting-deer-resistant-fall-bulbs (read 2026-07-11): daffodils 'are also poisonous, so deer are not tempted to eat them.'"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "narcissus-deters-voles-rodents"
    },
    {
      "id": "R-075c",
      "type": "advisory",
      "grade": "D",
      "severity": "none",
      "ruling": "inert",
      "trigger": {
        "kind": "guild_role_filled",
        "role": "bulb_ring",
        "species": "allium_sativum"
      },
      "claim": "Allium deters borers.",
      "mechanism": null,
      "evidence": {
        "status": "no_evidence_exists",
        "pointers": []
      },
      "derived_ruling": "inert",
      "page_slug": "allium-deters-borers"
    },
    {
      "id": "R-075d",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_present",
        "role": "bulb_ring"
      },
      "claim": "A bulb ring suppresses turfgrass competition at the base of a woody perennial shrub or vine.",
      "mechanism": "Resource competition and physical occupancy of the root collar zone.",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "competition"
        ],
        "note": "ALIGNED TO R-075 2026-08-21. R-075d is the shrub/vine twin of R-075 (fruit-tree trunk) and asserts the identical mechanism - a ring of plants occupying the root collar competes with turfgrass for that ground. R-075 already carries this as verified_trivially (trivial mechanics, no source read: a ring DOES occupy that ground and compete there), and there is no physical reason the same is less true at a shrub stem than at a tree trunk - so R-075d takes the same basis rather than sitting unverified as a historical artifact of when the non-tree half was split off. It was never a claim a source read would settle; it is competition, like R-075. CAVEAT, and the reason it stays grade B rather than A like R-075: the occupancy is SEASONAL and PARTIAL. The canonical bulbs (narcissus, allium) are dormant through summer, exactly when turfgrass is most competitive, so the ring suppresses turf only partly and mostly early in the season - a real effect, not a strong one. The ring's OTHER, separately-sourced benefit is the bulbs' vole/rodent resistance (R-075b, lycorine). The corpus does not claim the ring replaces the extension remedy for vole girdling of a woody base (a physical trunk guard plus a collar kept clear of cover).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "bulb-ring-suppresses-turfgrass-competition-base-woody"
    },
    {
      "id": "R-014",
      "type": "refutation",
      "grade": "C",
      "severity": "none",
      "ruling": "refute",
      "trigger": {
        "kind": "guild_mechanism_declared",
        "rule": "R-014"
      },
      "trigger_note": "Fires when a guild card renders and declares this mechanism at grade F. Attached, not homeless.\n",
      "claim_refuted": "Beans fix nitrogen that feeds the corn growing beside them, that season.",
      "what_is_true": "Rhizobia in legume root nodules do fix atmospheric N. Most of it is incorporated into the legume's own tissue. Some does move to a neighbouring non-legume the same season via direct root contact and rhizodeposition, but the amount is small — a few percent of the neighbour's N uptake — and does not meet a heavy feeder's demand. The bulk of the benefit arrives the following season, after residues decompose.\n",
      "response": "Beans will improve this ground for next year. They will not feed your corn this year.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Arkansas Extension, 'Creating a Three Sisters Garden', uaex.uada.edu (read 2026-07-11): 'Most of the nitrogen converted by the beans will not be available to the corn and pumpkins the first year; the bean roots have to break down to release nitrogen. Corn is a heavy nitrogen [feeder].'",
          "Hupe et al. 2021, Sci Rep 11:11424, 'Evidence of considerable C and N transfer from peas to cereals via direct root contact but not via mycorrhiza', pmc.ncbi.nlm.nih.gov/articles/PMC8169652 (read 2026-07-11): reports 'a mean N transfer rate of 8.4%, with a range of 2.7 to 22.5%, ... from N2-fixing legumes to non-N2-fixing mycorrhizal cereals' and 'N transfer rates of between 3.1 and 6.0% ... from soybean to maize'.",
          "'Nitrogen uptake and transfer in a soybean/maize intercropping system in the karst region of southwest China', pmc.ncbi.nlm.nih.gov/articles/PMC5648690 (read 2026-07-11): 'N transferred from soybean to maize account for 2.4%–3.3% of the N uptake of maize.'"
        ],
        "note": "Demoted F→C on 2026-07-11 after reading the transfer literature: same-season legume→cereal N transfer is real but small (a few percent of the neighbour's uptake) via direct root contact and rhizodeposition — not zero, not next-season-only. The practical ruling stands (beans do not feed a heavy-feeding corn crop in-season), but a real-but-minor mechanism is a C, not an F. Promoted to `verified` at grade C after a human read these sources (invariant 4) — `verified` records the read, not the strength.\n"
      },
      "derived_ruling": "refute",
      "page_slug": "beans-fix-nitrogen-that-feeds-corn-growing"
    },
    {
      "id": "R-061",
      "type": "refutation",
      "grade": "F",
      "severity": "none",
      "ruling": "refute",
      "trigger": {
        "kind": "role_assignment",
        "role": "nematode_suppression",
        "species": "tagetes_patula",
        "planting": "interplant"
      },
      "trigger_note": "Fires on declared INTENT, not on species adjacency. Scattered marigolds among tomatoes are harmless; nothing in the plan is wrong. What is wrong is the belief that they are doing nematode control. Roles encode intent. That is why this is a rule and B-001 is not.\n",
      "scope_note": "THIS RULE HAS NO SURFACE. Its trigger reads plan.role_assignment, which nothing in the app populates, and nematode_suppression is not a role any guild defines — so it fires in conformance case C-015 and nowhere else. That is deliberate, not rot: firing on adjacency instead would scold a gardener whose plan is fine, which is the distinction the trigger_note above draws. B-011 carries the same correction, reachable, to anyone who asks about marigolds. See ISSUES #23.\n",
      "claim_refuted": "Marigolds interplanted among vegetables control root-knot nematodes.",
      "what_is_true": "Tagetes patula suppresses Meloidogyne spp. via alpha-terthienyl and related thiophenes. Suppression requires a dense sole-crop stand held for a full season, i.e. a biofumigant cover crop, not an interplant. Scattered marigolds among vegetables do approximately nothing.\n",
      "response": "Marigolds do suppress root-knot nematodes, but only as a solid stand grown for a full season as a cover crop. Dotting them between your tomatoes will not do it.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UF/IFAS EDIS ENY-056/NG045, 'Marigolds (Tagetes spp.) for Nematode Management', edis.ifas.ufl.edu/publication/NG045 (read 2026-07-11): intercropping — 'Can marigolds have an effect on plant-parasitic nematodes when grown in an intercropping setting? Probably not.'; 'marigold should be planted at least two months before the desired vegetable crop' at 'the same site in which the vegetable crop will be planted'; 'Planting should be dense to ensure the best nematode control'; 'Marigold produces a substance called alpha-terthienyl, which can aid in the reduction of root-knot nematodes'; 'Marigolds cannot eradicate nematodes ... it must be grown every season before the actual crop is planted.'"
        ]
      },
      "derived_ruling": "refute",
      "page_slug": "marigolds-interplanted-among-vegetables-control-root-knot"
    },
    {
      "id": "R-074",
      "type": "advisory",
      "grade": "D",
      "severity": "none",
      "ruling": "inert",
      "trigger": {
        "kind": "guild_role_filled",
        "role": "mulch_producer",
        "species": "symphytum_x_uplandicum"
      },
      "claim": "Comfrey is a dynamic accumulator that mines subsoil minerals and makes them available.",
      "what_is_true": "Symphytum has deep roots and produces large potassium-rich biomass that decomposes fast. That is a good mulch plant. The specific mineral-mining claim has very little behind it.\n",
      "response": "Comfrey makes excellent chop-and-drop mulch. The mineral-mining story is unsupported.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Cornell Small Farms Program (Cornell Coop. Extension), 'New Findings Further the Study of Dynamic Accumulators' (Tyler & Zarro, 2022), smallfarms.cornell.edu/2022/04/new-findings-further-the-study-of-dynamic-accumulators (read 2026-07-11): an on-farm study 'has shown Russian comfrey to be a dynamic accumulator of both potassium and silicon' (tissue concentrations above the set thresholds). NOTE: this establishes high nutrient CONCENTRATION in comfrey biomass (supporting the 'potassium-rich biomass / good mulch' point), not the deep-root subsoil-MINING mechanism the rule refutes — accumulation reflects uptake from available soil, not sourcing of otherwise-inaccessible subsoil."
        ]
      },
      "derived_ruling": "inert",
      "page_slug": "comfrey-dynamic-accumulator-that-mines-subsoil-minerals"
    },
    {
      "id": "R-082",
      "type": "refutation",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "applies_to": {
        "species": "elaeagnus_umbellata"
      },
      "trigger": {
        "kind": "species_blacklisted"
      },
      "claim_refuted": "Autumn olive is a good nitrogen fixer for a fruit tree guild.",
      "what_is_true": "It fixes nitrogen. It is also bird-dispersed, forms dense thickets, and is listed as invasive or noxious across much of the eastern and midwestern US.\n",
      "remedy": "Autumn olive will escape your yard. Use white clover, wild lupine, or a native fixer, and check your state noxious weed list before planting any woody nitrogen fixer.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "NC State Extension Gardener Plant Toolbox, 'Elaeagnus umbellata', plants.ces.ncsu.edu/plants/elaeagnus-umbellata (read 2026-07-11): 'This plant is an invasive species in North Carolina'; 'It becomes quite competitive even in poor soils by fixing nitrogen in its roots'; 'The fruits are taken by birds and small mammals, which disperse the seeds ... a large plant may produce hundreds or thousands of fruits. Autumn olive threatens native species by out-competing them'; 'Many states have banned its sale.'",
          "USDA Forest Service, Fire Effects Information System (Munger 2003), 'Elaeagnus umbellata', fs.usda.gov/database/feis/plants/shrub/elaumb/all.html (read 2026-07-11): symbiosis with soil actinomycetes 'permits the fixation and subsequent utilization of atmospheric nitrogen'; 'Seeds are dispersed by frugivorous birds'; listed 'as a noxious weed in several West Virginia counties'; USFS Region 8 lists it a 'category 1 weed' whose introduction 'is prohibited on National Forest System Lands.'"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "autumn-olive-good-nitrogen-fixer-fruit-tree"
    },
    {
      "id": "R-050",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_present",
        "role": "masking"
      },
      "claim": "Aromatic species interplanted with brassicas are reported to reduce cabbage-worm damage. The mechanism is unresolved and trial results are mixed.\n",
      "mechanism": "Unresolved, and the rule says so rather than picking one. Volatile masking of host-finding cues and disrupted landing are both proposed. The trials that report an effect measured DAMAGE, which cannot separate fewer eggs laid from fewer larvae surviving or more predators arriving - so no mechanism here is established, only candidates.\n",
      "effect_size": "Reported reductions vary widely; some trials show none. Do not promise a number.",
      "note": "The claim was reworded 2026-07-25, from \"reduce cabbage moth oviposition\" to reduced DAMAGE. Nothing new was learned about the plants; a source was finally read, and it measured damage while the claim asserted egg-laying. Narrowing the claim to what was measured is the same correction R-022 took. Grade C and ruling advise are unchanged - this was already the corpus's weakest enforced advisory, and it is now weakest AND accurate.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Minnesota Extension, 'Companion planting in home gardens', extension.umn.edu/planting-and-growing-guides/companion-planting-home-gardens (read 2026-07-25): 'In an Iowa study, thyme, onion and nasturtium helped to reduce cabbage looper and imported cabbageworm damage in broccoli' - citing Riesselman, Leah B. (2006), 'Companion Planting: A Method for Sustainable Pest Control', Iowa State Research Farm Progress Reports. Thyme is this guild's canonical masking species, so the one trial found is on the plant the corpus actually prescribes.",
          "Same page, on the wider claim base: 'While gardening charts online will provide you with long lists of plants that repel insects, these are not always accurate or backed by research', and of marigolds specifically, 'Sometimes yes and sometimes no.' That is the mixed picture this rule's effect_size asserts, now cited rather than claimed.",
          "PRIMARY READ: the maintainer read Riesselman (2006) itself on 2026-07-25, at dr.lib.iastate.edu/farms_reports/295, and promoted this rule on it - not on Minnesota's summary alone. The trial's own measurements are not transcribed into this pointer; what the corpus asserts is still the DAMAGE claim the summary reports, and the read did not overturn it.",
          "GAP that survives the read: the effect is measured as damage, and damage cannot separate fewer eggs laid from fewer larvae surviving or more predators arriving. That is why this claim does not mention egg-laying and why the mechanism is stated as unresolved. Verified means the source was read, not that the mechanism is known.",
          "NEGATIVE RESULT, recorded so it is not cited by its title: Morkeliune et al. (2024), 'Effect of White Cabbage Intercropping with Aromatic Plant on Yield, Mineral and Biochemical Composition', Plants 13(13):1870, intercrops cabbage with calendula, French marigold, thyme and sage across 2017-2019 and measures NO pests, eggs or oviposition at all - yield and biochemistry only. It cannot support this rule. Nor can the '42% fewer egg clusters under sage' figure circulating in search results, which traces to commercial content sites and to no study."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "aromatic-species-interplanted-brassicas-reported-reduce-cabbage"
    },
    {
      "id": "R-051",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "neighbour_pair",
        "a": "allium_cepa",
        "b": "daucus_carota"
      },
      "claim": "Alliums interplanted with carrots reduce carrot rust fly damage.",
      "mechanism": "The carrot rust fly finds its host by the smell of carrot foliage. Onion and other allium volatiles growing among the carrots mask that scent, so fewer flies locate the row to lay eggs. Because the protection is the smell, it lasts only while the alliums are in the ground — once they are pulled, the masking goes with them.\n",
      "effect_size": "Modest; protection collapses once alliums are harvested.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "New England Vegetable Management Guide (regional land-grant extension), 'Carrot and Parsnip - Insect Control' (Carrot Rust Fly, Psila rosae), nevegetable.org/crops/carrot-and-parsnip/insect-control (read 2026-07-11): 'Intercropping with onion has been shown to reduce damage by carrot rust flies.' Listed among partial/suppression measures (with row covers and staggered planting), consistent with the 'modest' effect_size. The Guide does not state the post-harvest collapse; that is the masking mechanism, not a claim from this source."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "alliums-interplanted-carrots-reduce-carrot-rust-fly"
    },
    {
      "id": "R-052",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_present",
        "role": "insectary",
        "requires": "fruiting_crop_nearby"
      },
      "trigger_note": "The claim says NEAR fruiting crops and the trigger now says so too (O71, approved 2026-08-12). `fruiting_crop_nearby` means a fruiting crop in the same bed, or in an adjacent one — adjacency being the engine's stated geometry judgment (beds whose edges sit within a walking path, ~0.6 m), because no read source quantifies an insectary's service radius and this corpus does not invent distances. The same-bed half is what the harmony scoring already enforces (claim-faithful since the bands shipped); the cross-bed half is credited by the plot layer, which is the only place bed adjacency exists. Dispatch fires this rule only where a guild DECLARES it as a mechanism, and every declaring guild carries a fruiting crop.\n",
      "claim": "Insectary plants near fruiting crops increase pollinator and predator visitation.",
      "mechanism": "The flowers supply nectar and pollen that adult predators and parasitoids feed on, so a patch of them near a fruiting crop keeps those beneficial insects fed and close by to work the crop. The effect is real but not guaranteed — an insectary patch does not always suppress pests.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UC Statewide IPM Program (UC IPM), 'Insectary Plants', ipm.ucanr.edu/environmental-protection-and-pesticide-stewardship/insectary-plants (read 2026-07-11): 'Insectary plants are those grown to attract, feed, and shelter insect parasites (parasitoids) and predators to enhance biological pest control. Insectary plants provide nectar and pollen, which the adults of many natural enemy species need to consume.' (UC IPM also notes 'insectary plants may not always help' suppress pests — consistent with the 'reasonably supported' framing.)"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "insectary-plants-near-fruiting-crops-increase-pollinator"
    },
    {
      "id": "R-053",
      "type": "advisory",
      "grade": "C",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "guild_role_present",
        "role": "cover"
      },
      "claim": "Living mulch suppresses weeds and conserves soil moisture.",
      "mechanism": "A living cover keeps a leaf canopy over the ground: it intercepts light at the soil surface, so weed seedlings are shaded out before they establish, and it slows surface evaporation, so the soil holds more water. In a Three Sisters planting this is the squash's role — its broad leaves shade the bed.\n",
      "note": "This and the trellis are why Three Sisters works. Cf. R-014.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Mulching for soil and garden health', extension.umn.edu/managing-soil-and-nutrients/mulching-soil-and-garden-health (read 2026-07-11): mulch 'Suppresses weeds'; 'Studies show that mulch reduces evaporation from the soil surface and helps soil hold water.'",
          "Cornell Cooperative Extension (Warren Co. Master Gardener), 'Creating a Three Sisters Garden', warren.cce.cornell.edu/gardening-landscape/warren-county-master-gardener-articles/creating-a-three-sisters-garden (read 2026-07-11): 'The large, prickly squash leaves shade the soil, preventing weed growth' — the living-mulch role in Three Sisters."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "living-mulch-suppresses-weeds-conserves-soil-moisture"
    },
    {
      "id": "R-090",
      "audience": "engine",
      "type": "provenance",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "climate_value_resolved"
      },
      "claim": "Every derived climate value carries the tier, grade, station, and distance that produced it.",
      "mechanism": "Frost percentiles exist only at NCEI stations. Values elsewhere are offsets or model output. A bare date conceals the difference between a measurement and an inference.\n",
      "response": "Estimated from a station {distance_km} km away, adjusted for terrain. Expect error in complex terrain or cold-air drainage.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "definition"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "derived-climate-value-carries-tier-grade-station"
    },
    {
      "id": "R-091",
      "type": "provenance",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "climate_tier",
        "tier": 2
      },
      "claim": "PRISM offset from a nearby station assumes the spatial pattern of mean minimum temperature predicts the spatial pattern of last-frost date.\n",
      "mechanism": "PRISM models orography, temperature inversions, slope aspect, and coastal proximity at 800m. It provides monthly mean/min/max temperature. It does not provide frost exceedance probabilities; those exist only at stations. Combining them is an inference.\n",
      "effect_size": "Offset mean-absolute last-frost error ~4-7 days within 80 km; skill over a bare nearest-station lookup +1.4 days at 10-20 km rising to +4.0 days at 40-80 km (190-station leave-one-out held-out fit, engine/climate_calibrate.py, 2026-07-11).\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Daly et al. (2008), 'Physiographically Sensitive Mapping of Climatological Temperature and Precipitation across the Conterminous United States', Int. J. Climatol. 28: 2031-2064, prism.oregonstate.edu/pubs/link/2008_daly-etal_ijoc.pdf (read 2026-07-11): PRISM produces '1971-2000 mean monthly precipitation and minimum and maximum temperature ... 30-arcsec (~800-m) grids'; station weighting considers 'location, elevation, coastal proximity, topographic facet orientation, vertical atmospheric layer, topographic position, and orographic effectiveness of the terrain'; the western US, 'characterized by ... large elevation gradients, rain shadows, inversions, cold air drainage, and coastal effects, showed the greatest improvement.' Confirms PRISM provides mean monthly temperature fields, NOT frost-date exceedance probabilities -- so applying the offset to last-frost date remains an inference (below).",
          "engine/climate_calibrate.py (held-out-station leave-one-out fit, 2026-07-11, ISSUES#6): over 190 station pairs spanning flat plains and mountain terrain, predicting a station's last-frost date from its nearest neighbour via the PRISM offset reduces mean-absolute error vs a bare nearest-station lookup beyond ~10 km (skill +1.4 days at 10-20 km, +2.5 at 20-40 km, +4.0 at 40-80 km; offset MAE stays <= 7 days out to 80 km). Offset MAE ~doubles (7.6 -> 12.6 days) once local PRISM tmin std >= 1.0 C. Quantifies the assumption; the provenance distance threshold (80 km), terrain downgrade (1.0 C), and on-site cap (0.5 C) in docs/CLIMATE.md §4 fall out of it."
        ],
        "note": "Quantified against 190-station held-out leave-one-out residuals (engine/climate_calibrate.py, docs/CLIMATE.md §4): the offset beats a bare station lookup beyond ~10 km. Promoted to `verified` after a human read the fit output (invariant 4).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "prism-offset-from-nearby-station-assumes-spatial"
    },
    {
      "id": "R-092",
      "audience": "engine",
      "type": "provenance",
      "grade": "A",
      "severity": "fatal",
      "ruling": "block",
      "trigger": {
        "kind": "elevation_lapse_rate_applied"
      },
      "claim_refuted": "Frost dates can be downscaled by applying a standard lapse rate to elevation.",
      "what_is_true": "On clear still nights, which are exactly the nights that produce radiative frost, cold dense air drains downhill and pools. The valley floor is colder than the slope above it. A standard lapse rate predicts the opposite and makes frost dates worse in the terrain where accuracy matters most. PRISM exists because of this.\n",
      "response": "Do not implement elevation correction. Fall to ERA5 and grade down.",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Frost, Critical Temperatures, and Frost Protection', extension.psu.edu/frost-critical-temperatures-and-frost-protection (read 2026-07-11): 'Radiation frosts occur when the heat that has been stored in the upper soil surfaces is radiated back into the atmosphere at night. Wind speeds are generally low, and an inversion usually develops with temperatures near the ground surface falling to, or below' freezing; 'Cold air is heavier than warm air; therefore, it will naturally flow down to lower elevations. Orchards or orchard pockets located at lower elevations will see more damage due to the collection of this cold air. This is the reason that site selection is critical to avoid low-lying land.'"
        ]
      },
      "derived_ruling": "block",
      "page_slug": "frost-dates-can-be-downscaled-applying-standard"
    },
    {
      "id": "R-093",
      "type": "provenance",
      "grade": "A",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "plot_calibration_available",
        "min_seasons": 3
      },
      "claim": "An observed per-plot frost offset, fitted from 3+ seasons of logged outcomes on that ground, supersedes all modelled climatology for that plot.\n",
      "mechanism": "Garden-scale microclimate (south wall, frost pocket, raised-bed drainage, urban heat island) lives below 800m resolution and below 80m. No gridded product resolves it. The season log is a direct measurement on the exact ground in question.\n",
      "note": "This is the year-two payoff. The log is the highest-resolution climate sensor in the system.\n",
      "evidence": {
        "status": "verified_trivially",
        "pointers": [
          "measurement beats model on the measured point"
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "observed-per-plot-frost-offset-fitted-from"
    },
    {
      "id": "R-096",
      "type": "timing",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "lifespan": [
          "annual",
          "biennial"
        ]
      },
      "trigger": {
        "kind": "cold_hardy_sow_window",
        "reads": "frost_tolerance"
      },
      "claim": "Cold-hardy annuals can be sown or transplanted before the last spring frost — hardy crops about three weeks before, half-hardy about two weeks before. Tender crops wait for the frost itself (R-031).\n",
      "mechanism": "Cold hardiness. Hardy crops tolerate hard frost and half-hardy crops tolerate light frost, so they can occupy the ground weeks before frost-tender crops are allowed in (R-031). The offset is measured from the last spring frost.\n",
      "offset_days_before_last_frost": {
        "hardy": 21,
        "half_hardy": 14,
        "tender": 0
      },
      "scope_note": "Spring-planted crops only. A crop marked sow_season: fall (garlic) is planted in autumn and is not described by a spring-frost offset, so it is excluded; perennials and woody herbs are excluded by applies_to. The offset numbers (21 / 14 days) are the values chosen within the extension range in the pointer below and stay UNVERIFIED until a human reads a planting-date table against them.\n",
      "note": "Surfaced on the calendar as an early sow-window reminder (last frost minus the offset), the same render pattern as the R-031 / R-093 climate markers — not a plan-dispatch rule.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "University of Illinois Extension, 'Time Your Vegetable Plantings by Cold Hardiness' (2018-03-26), extension.illinois.edu/blogs/ilriverhort/2018-03-26-time-your-vegetable-plantings-cold-hardiness: very hardy vegetables 'withstand freezing temperatures and hard frosts without injury' (planted earliest in spring); frost-tolerant vegetables 'can withstand light frosts, but not freezing temperatures' (planted a couple of weeks later). LLM-summarised from a read of the page; it establishes the CATEGORIES but states no week offsets.",
          "Colorado State Univ. Extension, GardenNotes #720, 'Vegetable Planting Guide', extension.colostate.edu/resource/vegetable-planting-guide (read 2026-07-25): hardy vegetables go in 'As early as 2-4 weeks before the date of the average last spring frost'; semi-hardy 'As early as 0-2 weeks before the date of the average last spring frost'; tender from seed 'around the date of the average last spring frost'; very tender 'Typically 2+ weeks after'. This is the source that states the offsets in weeks.",
          "Where this rule sits in that range: hardy at 3 weeks is mid-range of CSU's 2-4. Half-hardy at 2 weeks is the EARLIEST EDGE of CSU's 0-2 - the most aggressive planting CSU sanctions, not the middle of it. The rule is inside published guidance at both ends, but it leans early on the half-hardy side and a gardener following it in a cold spring is taking that boundary.",
          "Do not import an offset from another publication's hardiness scheme without checking the category names: CSU has no 'very hardy' tier, so a '4-6 weeks before frost' figure written against a four-tier scheme does not describe CSU's 'hardy'. Categories are not comparable across sources."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "cold-hardy-annuals-can-be-sown-transplanted"
    },
    {
      "id": "R-097",
      "type": "timing",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "frost_tolerance": "tender"
      },
      "trigger": {
        "kind": "start_indoors_lead",
        "reads": "start_indoors_weeks"
      },
      "claim": "Long-season warm crops are started indoors several weeks before the last frost and set out after it — tomato and tomatillo about six weeks ahead, pepper and eggplant about eight. Basil, six.\n",
      "mechanism": "A frost-tender crop with a long days-to-maturity cannot mature if it is only direct-sown after the last frost — the frost-free window is too short. A head start under cover buys the weeks the season lacks; the seedling is set out only once frost has passed — the transplant date is still frost-gated (R-031).\n",
      "note": "The per-crop lead is the species' own start_indoors_weeks (tomato/tomatillo/basil 6, pepper/ eggplant 8). This rule marks WARM-SEASON transplants only — cool-season transplants (brassicas, onions, celery) are also started indoors but set out BEFORE the last frost, a different anchor, and are out of scope here. Surfaced on the calendar as a \"start seeds indoors\" reminder (last frost minus the lead), the same render pattern as R-031 / R-096 — not a plan-dispatch rule.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "University of Minnesota Extension, 'Starting seeds indoors', extension.umn.edu/planting-and-growing-guides/starting-seeds-indoors: seed-starting chart gives tomato '5-6 weeks' and pepper and eggplant '9 weeks' before the outdoor planting date (warm crops set out after the last frost). Read 2026-07-19 (LLM-summarised); read by the maintainer 2026-07-25, which is the read that promoted this rule. Note what the corpus's per-crop values do with the sources: tomato 6 sits at the top of Minnesota's '5-6 weeks' and inside Illinois's '6-8'; pepper and eggplant 8 sit BELOW Minnesota's '9 weeks' and at the top of Illinois's '6-8'. They are a reconciliation of two published ranges, not a figure either source prints.",
          "University of Illinois Extension, 'When should I start my seeds?' (2023-02-10), extension.illinois.edu/blogs/good-growing/2023-02-10-when-should-i-start-my-seeds: peppers, tomatoes, and eggplant started '6-8 weeks before the last frost'. Read 2026-07-19."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "long-season-warm-crops-started-indoors-several"
    },
    {
      "id": "R-098",
      "type": "geometry",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "fill_access",
        "reads": "bed.structure"
      },
      "claim": "A planted bed keeps every plant within arm's reach of a path, edge, or walkable row.",
      "mechanism": "A comfortable arm's reach is ~0.6 m (the same basis the draw-time reach nudge uses). Ground past that from any access line can only be tended by standing on the soil, compacting it. So a reach-from-edge bed wider than reach-from-both-sides (~1.2 m) is laid out as <=1.2 m planting strips separated by ~0.5 m paths; a field is worked from walkable rows ~0.75 m apart, not one solid block. Which model applies is read from the bed's declared structure: raised / in_ground / container are edge-reached (strips), field is walked (rows).\n",
      "params": {
        "reach_cm": 61,
        "strip_max_width_cm": 122,
        "path_width_cm": 50,
        "container_max_span_cm": 75
      },
      "note": "Widths are best-practice defaults, adjustable per bed by the gardener. Procedural: the trigger is the placement code path (the fill reserves the access structure), not a predicate. The draw-time reach nudge stays the separate check on a hand-traced outline; this rule governs the constructive fill. A bed declared `container` past container_max_span_cm is ADVISED (not blocked/reshaped) to be a raised or in-ground bed - a container is reached from all sides and never needs a lane.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Iowa State Univ. Extension, Yard & Garden FAQ, raised bed size (read 2026-07-21): 'Beds accessible on both sides can be 3 to 4 feet wide'; one-sided 'the maximum width should be 1 1/2 to 2 feet (i.e., approximately arm's reach)'; equipment pathways '~3' wide'.",
          "Univ. of Minnesota Extension, Raised bed gardens (read 2026-07-21): 'the reach of your arm is generally a good metric ... If you can access both sides, the bed can be up to five feet wide.'",
          "Field/row model: sweet-corn row spacing '30 to 36 inches ... so you can hoe, mulch, and harvest without breaking brace roots' (Univ. of Maryland / UMN / Illinois Extension, read 2026-07-21). Path 18-24 in foot-traffic minimum (garden extension consensus).",
          "Container upper bound: the largest common vegetable container is a half-whiskey-barrel / 15-20 gal grow bag ~0.66 m across (Harvest to Table, harvesttotable.com, and the Old Farmer's Almanac container-size chart; read 2026-07-21). 75 cm is that with a small margin; past it the ground is a raised or in-ground bed."
        ]
      },
      "derived_ruling": "advise",
      "page_slug": "planted-bed-keeps-plant-within-arm-s"
    },
    {
      "id": "R-112",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "family": [
          "fabaceae"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "A legume fixes atmospheric nitrogen only in symbiosis with rhizobia specific to its cross-inoculation group; ground with no recent history of that group may carry too few of them to nodulate well.\n",
      "mechanism": "Nitrogen fixation happens in root nodules formed by Rhizobium or Bradyrhizobium bacteria specific to each legume group. On ground that has not grown that legume group before - a new bed, a soil-less mix, a long gap in the rotation, a fumigated or strongly acid soil - the matching strain can be absent or sparse, so nodulation and fixation are reduced until a population builds.\n",
      "remedy": "On first-time legume ground, coat the seed at sowing with the inoculant matched to the crop's group (garden peas and beans, soybean, and clover each take a different one). Ground that has grown that legume recently usually needs none. It is a cheap one-time step - advised where the history is absent, never required.\n",
      "effect_size": "No yield figure is stated or invented. The benefit is largest where the specific rhizobia are absent (new or long-rested ground) and negligible where the crop has grown before; because soils carry these bacteria unevenly, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CROP ADVISORY, scoped by applies_to.family fabaceae, so it surfaces on every legume's species page and can be cited by the legume guides. Like the watering advisories it does not gate placement or dock a score - the app has no way to know a bed's rhizobia history, and inoculant is cheap insurance, not a requirement. It is the corpus's first graded thing to say about GROWING a legume, beside R-014's refutation of the neighbour-feeding claim.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Inoculation of Forage and Grain Legumes', extension.psu.edu/inoculation-of-forage-and-grain-legumes (read 2026-08-14): 'Rhizobia bacteria are fairly specific as to which legumes they will infect, form nodules on the roots of, and for which they will fix nitrogen'; 'Legumes effectively nodulated by the same Rhizobia species are termed cross-inoculation groups'; 'Inoculation is recommended when the legume being planted has not been grown in that field in the past three years or with every planting of a high-value crop'; 'Inside the nodule, an enzyme called nitrogenase drives the N fixation reaction.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-14 (invariant 4): the Penn State extension page was fetched live in-container, its verbatim lines surfaced, and the maintainer read and confirmed them 2026-08-14. It states the strain specificity (the rule's own term, cross-inoculation groups), the first-time / not-in-three-years inoculation trigger, and the nodule-and-nitrogenase mechanism the rule asserts. `verified` records the read, not the strength of the claim. This provenance sits in `note`, not in a pointer, because the Why page renders pointers and the maintainer's wording rule keeps WHO verified off that surface (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "legume-fixes-atmospheric-nitrogen-only-symbiosis-rhizobia"
    },
    {
      "id": "R-113",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "family": [
          "fabaceae"
        ],
        "frost_tolerance": "tender"
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "A warm-season bean germinates from warm soil, not from a calendar date; sown into cold ground it rots or emerges weak, even after the frost has passed.\n",
      "mechanism": "Warm-season legumes take up water fast at sowing (imbibition), and in cold soil that first rush of cold water injures the seed tissue before the seedling can establish - imbibitional chilling - so the seed rots or comes up damaged. Soil below about 15 C (60 F) at sowing depth is where this bites, and the frost-free date can arrive weeks before the soil is that warm.\n",
      "remedy": "Wait for the soil to warm - about 15 C (60 F) at sowing depth, which a soil thermometer reads in a minute - or start the beans in warm cells and set them out. Peas are the opposite and are out of scope here: half-hardy, they germinate in cold soil and are sown early on purpose.\n",
      "effect_size": "No date or yield figure is invented - soil warms on its own schedule at each site, which is the point. The rule advises checking the soil rather than the calendar; it never blocks, because a gardener with warm ground or warm cells is right to sow.\n",
      "scope_note": "Scoped to the TENDER legumes (family fabaceae plus frost_tolerance tender): the warm-season beans - common, lima, runner, cowpea, soybean. It sits ABOVE R-031's frost floor, not against it: R-031 blocks any tender crop before the last frost (fatal); R-113 adds that a frost-free date is not yet warm soil for a direct-sown bean. Surfaces on the bean species pages by applies_to, like R-112, and gates nothing - the app has no soil-temperature feed, the same honesty as the watering rules.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "USU Extension, 'How to Grow Beans in Your Garden', extension.usu.edu/yardandgarden/research/beans-in-the-garden (read 2026-08-14): 'Beans are warm weather vegetables that require soil and air temperatures above 60°F for best germination and plant growth'; 'If you plant when soils are below 60°F, germination is greatly reduced'; 'Seedlings will emerge in 7-10 days when planted in soil that has warmed to 65-85°F.'",
          "UMN Extension, 'Growing beans in home gardens', extension.umn.edu/vegetables/growing-beans (read 2026-08-14): 'Bean seed planted in cold soil may rot rather than germinate, and plant growth will be very slow in cooler weather'; 'Plant beans once the soil has warmed.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-14 (invariant 4): both extension pages were fetched live in-container, their verbatim lines surfaced, and the maintainer read and confirmed them 2026-08-14. USU gives the ~60°F soil floor below which germination is greatly reduced; UMN states cold-soil seed rot directly and the wait-for-warm-soil remedy - the claim and remedy R-113 makes. The rule names the underlying injury (imbibitional chilling) as the mechanism; that term is textbook agronomy, while the extension pages carry the practical floor and the rot outcome. `verified` records the read, not the strength. Provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "warm-season-bean-germinates-from-warm-soil"
    },
    {
      "id": "R-114",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "Seedlings raised in cool, wet, or reused growing medium can collapse from damping-off - soil-borne fungi that rot the seed or girdle the young stem at the soil line before the plant establishes.\n",
      "mechanism": "Damping-off is caused by soil-borne fungi - chiefly Rhizoctonia and Fusarium species and the water mould Pythium - that infect the germinating seed or the young stem at the soil surface, rotting it so the seedling fails to emerge or topples at the base. The pathogens thrive in cool, wet medium with poor drainage, and anything that slows the seedling's own growth (low light, overwatering, cool soil, high fertiliser salts) widens the window in which they attack.\n",
      "remedy": "Start seed in fresh sterile or soilless mix - not reused mix or garden soil - in clean containers with drainage holes; keep the medium moist but never soggy; give the tray warmth (about 70 F) and air movement; and sow at the recommended density rather than thickly. Damping-off spreads once it appears in a tray and there is no cure for an infected seedling, so the whole defence is preventive.\n",
      "effect_size": "No incidence figure is stated or invented. The risk is highest for seed started in cool, overwatered, or reused medium and lowest in fresh sterile mix kept just moist and warm; because the outcome depends on the medium and watering the gardener controls, the rule advises rather than warns.\n",
      "scope_note": "A STANDING SEED-STARTING ADVISORY (trigger.kind always, universal like the watering rules R-105-107), so it surfaces on the species pages and can be cited by the seed-starting guides. It does not gate placement or dock a score - the app cannot know a tray's medium or watering - it is preventive practice, and it is the corpus's first graded thing to say about raising a seedling from seed.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'How to prevent seedling damping off', extension.umn.edu/solve-problem/how-prevent-seedling-damping (read 2026-08-21): 'The fungi, Rhizoctonia spp. and Fusarium spp., along with the water mold Pythium spp. are the most common pathogens responsible for damping off'; 'The damping off pathogens thrive in cool wet conditions'; 'Any condition that slows plant growth will increase damping off. Low light, overwatering, high salts from over fertilizing and cool soil temperatures are all associated with increased damping off'; 'Use new potting mix to fill trays. Don't reuse potting mix and don't use garden soil or compost'; 'Water to keep it moist but not soggy.'",
          "NC State Extension, 'Damping-off in Flower and Vegetable Seedlings', content.ces.ncsu.edu/damping-off-in-flower-and-vegetable-seedlings (read 2026-08-21): 'The fungi include species of Rhizoctonia, Pythium, Fusarium, Phytophthora, Sclerotinia, Sclerotium, Botrytis, and others'; 'Species of Pythium, Sclerotinia, and Phytophthora are more likely to cause damping-off in cool, wet soils; whereas species of Rhizoctonia, Fusarium and Sclerotium rolfsii may cause damping-off under warmer and drier conditions'; 'its spread may be reduced by providing drier conditions for better seedling growth ... increasing air circulation and ventilation, reducing the frequency of watering, providing better water drainage.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMN, NC State) were fetched live in-container, their verbatim lines surfaced above, and the maintainer read and confirmed them 2026-08-21. The mechanism both sources state is the one the rule asserts: soil-borne Rhizoctonia / Fusarium / Pythium rotting the seed or stem at the soil line, favored by cool wet medium, overwatering, and poor drainage/airflow. `verified` records the read, not the strength of the claim. This provenance sits in `note`, not a pointer, so the maintainer's wording rule keeps WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "seedlings-raised-cool-wet-reused-growing-medium"
    },
    {
      "id": "R-115",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "A seedling raised indoors is set out gradually, not all at once: moved straight from a windowsill or grow-light into full sun and wind it suffers sunscald, windburn, or transplant shock, because its soft indoor growth has not hardened to outdoor conditions.\n",
      "mechanism": "Indoor-raised seedlings grow soft - a thin cuticle and waxy layer, unlignified stems, and high tissue water - because the light, wind, and temperature swings that toughen a plant are absent indoors. Exposed abruptly to direct sun the thin leaves scald, in wind the soft stems break or desiccate, and the whole plant stalls from the shock. Hardening off - a week or two of increasing daily outdoor exposure - thickens the cuticle and waxy layers, develops lignin in the cell walls, builds carbohydrate reserves, and lowers freeze-prone cell water, so the plant can take the move.\n",
      "remedy": "Begin about one to two weeks before setting out. Put the seedlings outside in a sheltered, part-shade spot during the mild middle of the day, a few hours at first, and lengthen the time and the sun each day, bringing them in at night; keep them off exposed spots on windy days and when nights fall below about 45 F, and ease off watering (without letting them wilt) to slow the soft growth. Then transplant.\n",
      "effect_size": "No figure is stated or invented. The stress is worst for a tender, fast-grown seedling moved straight into full sun and wind and least for one eased out over one to two weeks; because timing and exposure are the gardener's to control and vary by crop and weather, the rule advises rather than warns.\n",
      "scope_note": "A STANDING SET-OUT ADVISORY (trigger.kind always, universal like the watering rules), so it surfaces on the species pages and can be cited by the seed-starting guides. It sits after R-097 (start indoors) and before R-031's frost floor and R-108's transplant depth: those schedule and place the transplant; this one conditions it. It gates nothing - the app cannot know whether a plant was raised indoors - and never docks a score.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMD Extension, 'Hardening Off Vegetable Seedlings for the Home Garden', extension.umd.edu/resource/hardening-vegetable-seedlings-home-garden (read 2026-08-21): 'Hardening is the process of exposing transplants (seedlings) gradually to outdoor conditions. It enables your transplants to withstand the changes in environmental conditions they will face when planted outside in the garden'; 'Begin hardening transplants 1-2 weeks prior to setting out plants in your garden'; 'place them outside in a shaded, protected spot on warm days, bringing them in at night. Each day, increase the amount of sunlight the transplants receive'; 'Don''t put tender seedlings outdoors on windy days or when temperatures are below 45 F'; 'Reduce the frequency of watering to slow plant growth, but don''t allow plants to wilt.'",
          "Illinois Extension, 'Starting a Garden: Hardening Off Indoor Seedlings' (Good Growing), extension.illinois.edu/blogs/good-growing/2020-04-06-starting-garden-hardening-indoor-seedlings (read 2026-08-21): 'Plant stems can snap due to strong winds, or leaves can become sunburned from being exposed to direct sunlight'; 'Hardening off reduces the growth rate and thickens the cuticle and waxy layers'; 'It also stimulates root development, increases the amount of carbohydrates in tissues for food reserves, reduces the amount of freeze prone water in cells, and develops lignin in the cell walls'; 'gradually reduce how often you water; however, don''t allow the plants to wilt.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMD, Illinois) were fetched live in-container, their verbatim lines surfaced above, and the maintainer read and confirmed them 2026-08-21. The mechanism the rule names (soft indoor growth - thin cuticle, unlignified tissue, high cell water - scalds/breaks/shocks when exposed abruptly, and hardening thickens the cuticle and develops lignin) is stated almost verbatim by the Illinois page; UMD carries the method and the 45 F / windy-day cautions. `verified` records the read, not the strength of the claim; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "seedling-raised-indoors-set-out-gradually-not"
    },
    {
      "id": "R-116",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "brassica_oleracea",
          "brassica_rapa"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "A cole crop set out too early can bolt or \"button\": a long spell of cold on a young plant vernalizes it, and instead of a full head it runs to a premature flower stalk or forms a small, misshapen head.\n",
      "mechanism": "Cabbage, broccoli, cauliflower and their kin are biennials, so cold is their signal that a winter has passed and it is time to flower. A young plant that accumulates enough cold - a stretch of weather in the 40s F - is vernalized and switches from building leaves and a head to running up a flower stalk and setting seed. Set out before the weather has settled, a small transplant crosses that cold threshold before it has grown the leafy bulk a head needs, so it buttons (a tiny premature head) or bolts (runs to seed) rather than heading properly.\n",
      "remedy": "Aim for cool-but-moderate weather - roughly the 50s and 60s F - through the plant's first weeks rather than rushing an early set-out; a stout transplant with several true leaves shrugs off a cold snap that would vernalize a tiny one, and a row cover holds the cold off if a spell threatens. This is the opposite failure from over-tender growth: harden the plant (R-115), but do not set it out into a cold that will check it.\n",
      "effect_size": "No threshold or figure is invented - the sources give a range (settled weather in the 50s-60s F for the first weeks), not a single number. The risk is highest for a small transplant set out into a cold spell and lowest for a well-grown one set out into settled weather, so the rule advises rather than warns.\n",
      "scope_note": "Scoped to the cole crops (brassica_oleracea, brassica_rapa), where the buttoning/bolting-from-early-cold outcome is documented. The same biennial vernalization drives early bolting in beet, carrot and celery, and in onion - but onion is already handled by R-081 (latitude and photoperiod), so it is left out here. This is the COLD counterpart to the corpus's existing heat/daylength bolt model (the species `bolt_risk` field and R-034): same symptom, opposite trigger. It gates nothing - the app has no forward-weather feed - and surfaces on the cole-crop species pages.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing cool-season crops - non-pest issues', extension.umn.edu/planting-and-growing-guides/non-pest-issues-cool-season-crops (read 2026-08-21): 'Bolting refers to premature flowering. It occurs at any point after a plant has shifted into its reproductive stage'; 'Since bolting is partially triggered by the accumulation of cold, these strategies can reduce exposure to cold temperatures for young plants'; 'the ideal situation for cool-season vegetables is cool but moderate temperatures (50s and 60s) for the first month of growth'; 'when spring weather is quite cool, plants can experience vernalization early, and the result is buttoning up, or the formation of small, often misshapen heads.'",
          "UMD Extension, 'Flower Stalks Form or Bolting of Vegetables', extension.umd.edu/resource/flower-stalks-form-or-bolting-vegetables (read 2026-08-21): 'Biennial vegetable crops complete their life cycle in 2 years. But many will produce flower stalks in response to cool or hot temperatures and long days'; 'Onion-biennial seed stalks form if weather is cool early in its growth cycle.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMN, UMD) were fetched live in-container, their verbatim lines surfaced above, and the maintainer read and confirmed them 2026-08-21. UMN names the vernalization/buttoning mechanism for cool-season brassicas and the settled-weather remedy; UMD states the biennial-bolts-from-cool-temperatures generalisation. The rule stays scoped to the two cole-crop species those sources actually cover, and defers onion to R-081. `verified` records the read, not the strength of the claim; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "cole-crop-set-out-too-early-can"
    },
    {
      "id": "R-117",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "daucus_carota",
          "pastinaca_sativa"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "A direct-sown root crop left unthinned grows crowded roots that stay small - the seedlings stand far denser than they can mature, compete for the same soil, and the roots twist and intertwine instead of sizing up.\n",
      "mechanism": "Root crops are sown as seed in place and germinate much denser than they can mature. Where the seedlings stand too close, their swelling roots run out of room and compete for space, water, and nutrients, so they stay undersized and are deformed - twisting and intertwining against their neighbours. Thinning the stand while the seedlings are young leaves each remaining root the room to develop. (Distinct from FORKING, which the sources attribute to rocky or compacted soil and root-knot nematodes, not crowding - so this rule claims small-and-intertwined, not forked.)\n",
      "remedy": "Thin while the seedlings are young - about 2.5 cm (one inch) tall - to the crop's spacing, pulling or snipping the extras rather than leaving the row solid: roughly one seedling every 2.5-5 cm for a full-size carrot, wider for parsnip and the larger varieties. The pulled thinnings of carrot are edible, tops and all.\n",
      "effect_size": "No yield figure is stated or invented. The penalty is smaller roots, not a failed crop; because the outcome depends on how thickly the gardener sows and whether they thin, the rule advises rather than warns.\n",
      "scope_note": "DIRECT-SOWN ROOTS, scoped by applies_to.species to the two the read sources cover - carrot (daucus_carota) and parsnip (pastinaca_sativa). The same crowding mechanism applies to beet and radish (and beet especially, whose multigerm seed cluster comes up as several seedlings), but those are not in these two sources, so they are left for a sourced extension rather than claimed here - the R-116 discipline. A standing cultural advisory (trigger.kind always): it surfaces on those species' pages and can be cited by the sowing guides; it gates nothing and docks no score - the app cannot see a row's sowing density - it is preventive practice, the direct-sow counterpart to R-114/115.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing carrots and parsnips in home gardens', extension.umn.edu/vegetables/growing-carrots-and-parsnips (read 2026-08-21): 'You must thin out both carrots and parsnips to allow room for the roots to develop properly'; 'When the largest seedlings are three to four inches tall, thin by pulling up extra seedlings so that the remaining plants are about two to four inches apart'; 'If the plants develop healthy green tops, but limited root growth, it is usually because the plants are crowded.'",
          "Univ. of Illinois Extension, Home Vegetable Gardening - 'Carrots', extension.illinois.edu/gardening/carrots (read 2026-08-21): 'Twisting and intertwining result from seeding too thickly and inadequate thinning of seedlings'; 'Thin the seedlings when they are about one inch tall to no more than three seedlings per inch for finger carrots ... and one seedling per 1 to 2 inches for larger varieties.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMN, Illinois) were fetched live in-container, their verbatim lines surfaced above, and the maintainer read and confirmed them 2026-08-21. UMN gives the crowding->limited-root-growth mechanism and the thinning remedy; Illinois names the twisting-and-intertwining outcome of seeding too thickly. Kept scoped to the two species the sources cover; the UMN diagnostic page separately attributes FORKING to soil and nematodes, which is why this rule claims small-and-intertwined rather than forked. `verified` records the read, not the strength; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "direct-sown-root-crop-left-unthinned-grows"
    },
    {
      "id": "R-118",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "A young transplant can be cut off at the soil line overnight by a cutworm - a caterpillar that curls around the tender stem and severs it just above the ground. A collar around the stem blocks it.\n",
      "mechanism": "Cutworms are the soil-dwelling caterpillars of several night-flying moths. They feed after dark, curling the body around a seedling's stem and chewing through it at or just above the soil surface, which topples the whole plant. A young transplant is vulnerable because its stem is small and tender; as the plant grows the stem thickens past what a cutworm can encircle and cut, so the risk is an early-season one. A collar - cardboard, stiff paper, or foil - set around the stem and pushed into the soil is a physical barrier the cutworm can neither climb over nor tunnel under to reach the stem.\n",
      "remedy": "Around each new transplant, set a collar of cardboard, folded paper, or foil a few centimetres tall, with one edge pushed a few centimetres into the soil and the rest standing above it, so the cutworm cannot get over the top or under the bottom to reach the stem. Once the stem thickens the collar can come off.\n",
      "effect_size": "No incidence figure is stated or invented. Cutworm pressure is local and episodic, and the collar is a cheap preventive for the early-transplant window, which is why the rule advises rather than warns.\n",
      "scope_note": "A STANDING EARLY-SEASON TRANSPLANT ADVISORY (trigger.kind always, like R-114/115), so it surfaces on the species pages and can be cited by the transplanting guides. It gates nothing and docks no score - the app cannot know a garden's cutworm pressure - it is preventive practice. The risk is specific to YOUNG transplants with tender stems; both sources note that older, thicker-stemmed plants are safe.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Cutworms', extension.umn.edu/yard-and-garden-insects/cutworms (read 2026-08-21): 'Cutworms curl their bodies around the stem and feed on it. This feeding causes the plant to be cut off just above the soil surface'; 'New transplants or young plants have more chances of injury because their stems are smaller and more tender'; 'Place aluminum foil or cardboard collars around transplants. This creates a barrier that stops cutworm larvae from feeding on plants'; 'Place the collars around plants such that one end is pushed a few inches into the soil, and the other end extends several inches above ground.'",
          "Univ. of Illinois Extension, 'Cutworm', extension.illinois.edu/insects/cutworm (read 2026-08-21): 'older caterpillars eat through the stem of young plants about 1/2 inch above ground and then eat the plant'; 'Collars of cardboard, aluminum foil, or metal can be placed around transplants at planting to prevent feeding'; 'older plants with thicker stems are less susceptible to attack.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMN, Illinois) were fetched live in-container, their verbatim lines surfaced above, and the maintainer read and confirmed them 2026-08-21. Both name the mechanism (a cutworm curls around and severs the stem at the soil line) and the collar remedy, and both note the risk falls as stems thicken. `verified` records the read, not the strength; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "young-transplant-can-be-cut-off-soil"
    },
    {
      "id": "R-119",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "solanum_tuberosum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Potato tubers that catch light while growing - wherever soil settles or washes away and shallow tubers are left uncovered - turn green and become bitter and toxic, so the crop must be kept covered with soil rather than left exposed at the surface.\n",
      "mechanism": "Tuber tissue exposed to light produces chlorophyll and, in that same tissue, synthesises the toxic glycoalkaloids solanine and chaconine, so soil mounded over the developing tubers keeps light off them and prevents both the greening and the toxin from forming.\n",
      "remedy": "Hill the crop: once the stems are roughly 8-12 inches (20-30 cm) tall, draw loose soil up around the base of the plants to cover most of the stem and bury any shallow tubers, and repeat two or three times through the season so the tubers stay covered. Green tubers are bitter and should not be eaten; the green signals the toxin is present and is not reliably removed by peeling, so the defence is to keep light off the tubers in the first place - in the ground, and again in dark storage.\n",
      "effect_size": "No glycoalkaloid figure is stated or invented. Greening and toxin buildup rise with the light a tuber receives and are avoided by keeping the tubers covered; because the exposure is the gardener's to control through hilling and storage, the rule advises rather than warns.\n",
      "scope_note": "A STANDING POTATO ADVISORY (trigger.kind always, gated to solanum_tuberosum by applies_to), so it surfaces on the potato species page and can be cited by the growing guides. It gates nothing and docks no score - the app cannot see whether a tuber is covered - it is a cultural practice carried out over the season.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Penn State Extension, 'Potatoes in the Garden and the Kitchen', extension.psu.edu/potatoes-in-the-garden-and-the-kitchen (read 2026-08-21): 'Tubers exposed to sunlight (both before and after harvest) will turn green and should not be eaten'; 'Sun exposure causes the potato''s skin to produce chlorophyll and, along with it, two toxic compounds, solanine and chaconine. These cause the potato to have a bitter taste ...'; 'When the plant stems are 8 to 12 inches tall, gently hill or mound the soil around the base of the plant, covering most of the stem. You may repeat this mounding practice two or three times as the plants grow.'",
          "UMN Extension, 'Growing potatoes in home gardens', extension.umn.edu/vegetables/growing-potatoes (read 2026-08-21): 'Green skin occurs when potato tubers experience exposure to light'; 'Hilling also keeps any shallow tubers from exposure to light and turning green.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (Penn State, UMN) were fetched live in-container, their verbatim lines surfaced above and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-21. Penn State carries all three facts (greening from light, the named toxins solanine and chaconine, the hilling remedy); UMN corroborates greening-from-light and hilling. `verified` records the read, not the strength; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "potato-tubers-that-catch-light-while-growing"
    },
    {
      "id": "R-120",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "allium_cepa",
          "allium_sativum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Onions and garlic lifted for storage are cured first - dried down in a warm, airy, shaded place for about two to four weeks until the neck is tight and dry and the outer scales are papery. Bulbs stored uncured, or poorly cured, rot in storage instead of keeping.\n",
      "mechanism": "At harvest the bulb's neck and outer scales are still moist living tissue and the neck is an open channel into the bulb, so curing in warm moving air dries the neck shut and the outer scales to a papery protective skin, removing the wet tissue that storage rots colonise and sealing the neck they enter by; an uncured bulb goes into storage with a moist open neck and soft scales, and decays.\n",
      "remedy": "After lifting, spread the bulbs in a single layer or hang them in bundles in a warm, shaded, well-ventilated place out of direct sun and rain, and leave them until the neck is dry and tight and the outer skin is papery - roughly two to four weeks for onions (a warm 75-90 F speeds it), two to three weeks for garlic. Only then trim, and keep the cured bulbs in mesh bags or shallow boxes in a cool, dry, well-ventilated spot. Handle gently throughout, as bruising also seeds storage rot.\n",
      "effect_size": "No decay rate or shelf-life figure is invented. The sources give a curing window (about two to four weeks for onion, two to three for garlic) and warn that poor curing causes storage decay, without a quantified loss; the risk is highest for a bruised or uncured bulb stored straight off the ground and lowest for a well-cured one, and because curing is entirely the gardener's to do, the rule advises.\n",
      "scope_note": "Scoped to onion (allium_cepa, which also carries the bulb-onion and shallot cultivar groups) and garlic (allium_sativum), the two stored bulb alliums the sources document curing for. The corpus's FIRST post-harvest / storage advisory (trigger.kind always), so it surfaces on those species pages and can be cited by a harvest guide. Leek (grown fresh for its pseudostem) and bunching onion are out of scope. It gates nothing and docks no score - the app cannot know a bulb was cured.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing onions in home gardens', extension.umn.edu/vegetables/growing-onions (read 2026-08-21): 'Curing is essential if you plan to store your onions'; 'Keep the onions in a warm (75F - 90F), well-ventilated area for two to four weeks, until outer bulb scales are dry and the neck is tight'; 'Poor curing will result in decay during storage.'",
          "Clemson HGIC, 'Onion, Leek, Shallot, & Garlic', hgic.clemson.edu/factsheet/onion-leek-shallot-garlic (read 2026-08-21): onion - 'Thoroughly air-dry bulbs in a shaded area before storage', 'To avoid storage diseases, be sure onions are well-cured before storing'; garlic - 'Cure in a warm, shady place with good air movement', 'Allow bulbs to dry until the neck is dry and the outer skin is papery, approximately two to three weeks', 'Bulb rot can also occur in storage from bruising and insufficient drying.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (UMN, Clemson HGIC) were fetched live in-container, their verbatim lines surfaced above and the UMN lines re-confirmed against the live page, and the maintainer read and confirmed them 2026-08-21. UMN gives the warm airy curing window and decay-from-poor-curing; Clemson gives air-drying before storage, the garlic two-to-three-week dry-down, and bulb rot from bruising and insufficient drying. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "onions-garlic-lifted-storage-cured-first-dried"
    },
    {
      "id": "R-121",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "trigger": {
        "kind": "always"
      },
      "claim": "A lightweight fabric floating row cover laid over a bed at planting keeps flying and egg-laying pests off the crop through its vulnerable early stage - flea beetles, cabbage moths and loopers, cucumber beetles and squash bugs, and the root-maggot flies of cabbage, onion, and carrot - but it must come off at flowering for any crop that needs an insect to set fruit, or it excludes the pollinator too.\n",
      "mechanism": "Floating row cover is a gauze-like spun sheet laid loosely over the crop and sealed at its edges to the soil, and it stops damage by physical exclusion - the adult insect cannot reach the plant to feed or lay eggs - so the barrier must be continuous from planting, before the pests arrive, with its edges buried against a walking insect; because the same closed barrier also shuts out the bee, a crop whose fruit depends on insect pollination has to be uncovered once its flowers open.\n",
      "remedy": "Cover the bed at planting with the crop still small, drape the fabric loosely with slack to grow into rather than tight, and bury or weight every edge so the perimeter is sealed. Leave it on through the early weeks when the pest is active. For a crop that needs insect pollination to fruit - squash, cucumber, melon, pumpkin - remove the cover once female flowers begin to bloom so pollinators can reach them; leafy greens, roots, brassicas grown for heads, and self- or wind-pollinated crops can stay covered to harvest. Where the target pest overwinters in the soil under the bed (root maggots, flea beetles, Colorado potato beetle), cover a bed that did NOT grow the same crop, or the pest emerges trapped inside.\n",
      "effect_size": "No exclusion percentage is stated or invented. The protection is near-total while the barrier is intact and sealed and nil wherever there is a gap or once it is removed at flowering; because the outcome depends on timing and edge-sealing, both the gardener's to control, the rule advises.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, a physical-barrier sibling to the collar R-118 and the seed-starting rules R-114/115), so it surfaces on the species pages and can be cited by the pest and planting guides. It gates nothing and docks no score - the app cannot know whether a bed is covered - and it carries its own limit in-rule: for an insect-pollinated crop the advice to cover is conditional on uncovering at flowering, stated rather than advising a cover that would prevent fruit set.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UNH Extension, 'Using Row Covers in the Garden', extension.unh.edu/blog/2020/10/using-row-covers-garden (read 2026-08-21): 'row cover can create a barrier around your plants to exclude insects, as well as some animals like rabbits, birds and deer'; brassicas - 'cabbage maggots, cutworms, flea beetles, cabbage loopers, cabbage worms'; cucurbits - 'cucumber beetles, squash bugs, squash vine borer'; 'For insect pollinated vegetables, like the nightshades ... and cucurbits ..., row cover should be removed when female flowers bloom so as to allow pollination to occur.'",
          "UMD Extension, 'Row Covers', extension.umd.edu/resource/row-covers (read 2026-08-21): floating row cover is used to 'exclude large and small animals, especially insect pests, making it an exceptional organic pest management tool'; 'Some pests overwinter in the soil near host plants, emerging the following spring under a cover. (Examples include the adult flies of root maggots, flea beetles, and Colorado potato beetles.)'; 'Crops that don''t need their flowers pollinated by insects, like spring leafy greens and green beans, can be kept covered until harvest.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-21 (invariant 4): both land-grant extension pages (Univ. of New Hampshire, Univ. of Maryland) were fetched live in-container, their verbatim lines surfaced above and the UNH lines re-confirmed against the live page, and the maintainer read and confirmed them 2026-08-21. The mechanism the rule asserts - physical exclusion of the adult pest, defeated by any gap and ended when the cover is removed for pollination - and both caveats (overwintering-under- cover, remove-at-flowering) each rest on an exact quoted line, not inference. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "lightweight-fabric-floating-row-cover-laid-over"
    },
    {
      "id": "R-122",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "allium_sativum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Garlic is planted in autumn, not spring - the cloves go in the ground several weeks before it freezes, root, and overwinter. The weeks of winter cold below about 40 F vernalize the clove, and that cold is what triggers it to form a bulb the following spring as the days lengthen. Planted in spring, garlic misses the cold and bulbs poorly.\n",
      "mechanism": "A garlic clove will not form a bulb until it has been vernalized - held for roughly six to eight weeks below about 40 F. The bulb itself does not develop during that cold; it is only induced by it, and forms in spring as days lengthen and temperatures rise. Fall planting delivers the cold naturally over winter with the clove already rooted, so growth resumes early and a full bulb sizes up by early summer. It is the same biennial vernalization that prematurely bolts a spring-sown cool-season crop, but with the sign reversed: there the accumulated cold buttons the plant into an early flower and ruins it; here, in a crop sown in autumn to be harvested as a bulb, that same cold is the intended trigger.\n",
      "remedy": "Plant cloves in the fall - roughly late September through November in most regions, several weeks before the ground freezes so they root before winter - pointed end up, about 1 to 3 inches deep and 4 to 6 inches apart, using the largest cloves for the largest bulbs. Once the ground has chilled, mulch with a few inches of weed-free straw to blunt winter heaving and injury. Match the type to the winter: hard-necked garlics prefer cold-winter regions, soft-necked are better adapted to mild-winter areas.\n",
      "effect_size": "No yield figure is stated or invented. The sources give the vernalization window (about six to eight weeks below 40 F) and report that the highest yields come from large cloves planted in fall; the penalty for spring planting is poor bulbing, not a failed crop, and because the timing is entirely the gardener's, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to allium_sativum by applies_to), the planting-time sibling to the seed-starting rules R-114/115. It surfaces on the garlic species page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see when a clove went in. It reconciles the garlic species record (scheduling_model: perennial, vernalization_required: true, sow_season: fall) with a stated mechanism, and complements R-116, which already exempts fall-sown garlic from the bolting harm. The hard-neck/soft-neck winter preference is the horticultural basis for the allium_sativum cultivar_groups.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UGA Extension, 'Garlic Production for the Gardener' (C854), fieldreport.caes.uga.edu/publications/C854 (read 2026-08-22): 'Late September through November is the time to plant garlic in Georgia'; 'Garlic cloves require a period of 6-8 weeks of cool weather after planting (below 40 F) to undergo vernalization ... by low winter temperatures'; 'Although vernalized, no inflorescence or lateral buds (that later form the bulb) are developed until early spring with the onset of lengthening days and suitable temperatures'; 'Hard-necked garlics may grow in Georgia but generally prefer the cold winters and long, cool springs of more northern climates. Soft-necked garlics are well-adapted to the more temperate climate of the South.'",
          "Iowa State Univ. Extension, 'Growing Garlic in the Home Garden', yardandgarden.extension.iastate.edu/how-to/growing-garlic-home-garden (read 2026-08-22): 'Plant cloves ... in the fall (October to early November)'; 'The highest yields are obtained from the largest cloves planted in the fall'; 'Plant large cloves 1 to 1.5 inches deep with the pointed side up, 3 to 5 inches apart within rows spaced 18 to 24 inches apart'; 'Fall-planted garlic should be mulched in November with a 4- to 6-inch layer of weed-seed-free straw to help prevent winter injury.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UGA C854, Iowa State) were fetched live in-container, their verbatim lines surfaced, and the maintainer read and confirmed them 2026-08-22. UGA carries the full mechanism (the 6-8 week sub-40 F vernalization requirement and that the bulb forms only in spring on lengthening days) plus the hard-neck/soft-neck winter preference; Iowa State corroborates fall planting (October-early November), that the best yields come from large fall-planted cloves, and the winter mulch. The claim that the cold is the INTENDED trigger (not the R-116 bolting harm) is the reconciliation the species record already encodes, not a new source claim. `verified` records the read, not the strength; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "garlic-planted-autumn-not-spring-cloves-go"
    },
    {
      "id": "R-123",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "solanum_tuberosum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Potatoes are grown from certified seed potatoes - disease-free seed tubers from a certified source - not from saved tubers or grocery-store potatoes. Large seed tubers are cut into blocky pieces, each with at least one eye, and the cut surfaces left to dry to a tough protective skin before planting. Grocery-store potatoes may be treated to stay dormant and can carry disease that persists in the soil.\n",
      "mechanism": "Potato is propagated vegetatively - the crop grows from a piece of tuber, not from true seed - so any virus or disease in the seed tuber is passed straight to the new plants and can remain in the soil for years; certified seed is inspected, disease-free stock, which is why saving one's own tubers or planting grocery potatoes risks introducing disease. Each planted piece must carry an eye, the bud the new shoot grows from. A freshly cut piece exposes moist flesh that storage and soil rots colonise; holding the cut pieces a few days until the surface dries and forms a corky protective layer (suberises) seals that wound before planting. Grocery tubers may additionally be treated with a sprout inhibitor, so they are slow to grow.\n",
      "remedy": "Buy certified seed potatoes. Cut large ones into blocky pieces of about two ounces, each with at least one or two eyes; leave small tubers whole. Spread the cut pieces at room temperature (about 60-70 F) for a few days until the cut surface has dried and formed a tough skin, then plant. Do not plant grocery-store potatoes (possible sprout inhibitor, and disease that lingers in the soil) and do not replant your own saved tubers year to year (virus and disease build up).\n",
      "effect_size": "No figure is stated or invented. The sources give a seed-piece size (at least about two ounces, one or more eyes) and a curing window (a few days at 60-70 F until the cut face toughens); the harm from uncertified, grocery, or saved seed is disease introduced into the soil where it can persist, stated without a quantified loss. Because the seed source and handling are entirely the gardener's to control, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to solanum_tuberosum by applies_to), the planting-time sibling to the potato hilling advisory R-119. It surfaces on the potato species page and can be cited by the growing guides; it gates nothing and docks no score - the app cannot see where a seed potato came from or whether it was cured. Scoped to potato, the vegetatively-propagated crop the sources document; it does not extend to the other tuber and root crops by analogy (the R-116/R-117 discipline).\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UMN Extension, 'Growing potatoes in home gardens', extension.umn.edu/vegetables/growing-potatoes (read 2026-08-22): 'Buy disease-free seed tubers from a certified grower or seed distributor'; 'Every piece must have at least one \"eye,\" an indentation that will produce the new shoot'; 'Place the cut pieces on a tray at room temperature (between 60 F and 70 F) for a few days until the cut surface has dried out and formed a tough protective layer'; 'Do not plant potatoes purchased at the grocery store, as the store may treat them with chemicals to keep tubers dormant, in which case they will be slow to grow. Diseases may also infect the potatoes, which can remain in the soil for a long time.'",
          "Utah State Univ. Extension, 'How to Grow Potatoes in Your Garden', extension.usu.edu/yardandgarden/research/potatoes-in-the-garden (read 2026-08-22): 'When buying seed tubers, ask for certified seed as this will help reduce the potential for introducing disease into the garden'; 'When cutting, make sure the seed piece weighs at least 2 ounces and has one or more \"eyes\"'; 'saving your own seed potatoes leads to a buildup of viruses and diseases that eventually will cause serious problems in the garden. Whenever possible, purchase and plant certified seed to help control many of the problem diseases potatoes experience.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UMN, Utah State) were fetched live in-container, their verbatim lines surfaced, and the maintainer read and confirmed them 2026-08-22. UMN carries the certified-seed sourcing, the eye-per-piece requirement, the cut-and-callus curing window, and the explicit grocery-store warning (sprout inhibitor plus soil-persistent disease); Utah State corroborates certified seed to reduce disease, the two-ounce/one-eye seed-piece spec, and the virus buildup that makes saving one's own tubers unwise. Each clause of the claim rests on a quoted line, not inference. `verified` records the read, not the strength; provenance sits in `note`, not a pointer, to keep WHO verified off the Why page (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "potatoes-grown-from-certified-seed-potatoes-disease"
    },
    {
      "id": "R-124",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "solanum_lycopersicum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Over-feeding a tomato with nitrogen grows a tall, dark-green, leafy plant that flowers late and sets little fruit. The plant pours its resources into vines and foliage instead of blossoms, so flowering is delayed or sparse and yield drops. This is a vegetative-versus-reproductive imbalance the gardener causes by fertilizing, not the heat that makes already-open flowers fail to hold - keep the two apart.\n",
      "mechanism": "High available nitrogen biases the plant toward vegetative growth: abundant nitrogen keeps it building leaves and stems, and that leaf-and-stem growth takes priority over the switch into flowering, so flower initiation is delayed and fewer flowers form. The visible result is lush dark foliage with reduced and later fruit set - growth spent on the plant rather than the crop.\n",
      "remedy": "Go easy on nitrogen, especially before fruit set; do not feed a tomato a nitrogen-heavy fertilizer at planting and hold off feeding again until flowers and small fruit have appeared. Let a soil test, not a guess, say what the bed actually needs - the engine does not invent NPK numbers.\n",
      "effect_size": "No figure is stated or invented. The penalty is delayed and reduced fruiting on an otherwise vigorous, healthy plant, not a dead or failing one; because how much nitrogen goes on is entirely the gardener's to control, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to solanum_lycopersicum by applies_to), a feeding sibling to the other tomato advisories. It surfaces on the tomato species page and can be cited by the growing and fruit-set guides; it gates nothing and docks no score - the app cannot see how a bed was fertilized. It is the VEGETATIVE-OVER-FRUIT mechanism (excess nitrogen favouring leaf and stem over flowering), DISTINCT from R-030's heat-driven fruit-set failure, where persistent night heat causes open blossoms to drop; the tomato fruit-set guide named this gap, which is what this rule fills.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "UGA Extension, 'Troubleshooting Cultural Problems in Tomatoes' (C1089), fieldreport.caes.uga.edu/publications/C1089 (read 2026-08-22): 'applying too much nitrogen can cause excessive growth and hinder flowering'; 'Too much nitrogen is also a common problem, and can be identified when the plant is tall and dark green, with excessive growth and no blooming.'",
          "Univ. of Missouri Extension, 'Watering and Fertilizing Tomatoes in a High Tunnel' (G6462), extension.missouri.edu/publications/g6462 (read 2026-08-22): 'Too much nitrogen creates excessive vine growth, twisted foliage, delayed flowering and lower yield.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UGA C1089, Missouri G6462) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Both frame the harm as EXCESSIVE vegetative/vine/foliage growth that hinders, delays, or suppresses flowering and lowers yield; neither attributes blossom DROP to nitrogen, which is why the claim stays cleanly separate from the heat rule. The gap this fills was named in content/guides/why-tomatoes-dont-set-fruit.md. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "over-feeding-tomato-nitrogen-grows-tall-dark"
    },
    {
      "id": "R-125",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "mentha_spicata"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Mint spreads aggressively by underground rhizomes and will colonize a bed, out-competing and crowding its neighbours if grown loose in open ground. Do not plant it directly in a shared bed. Contain it in a pot, or in a bottomless container sunk into the ground, and harvest and pull strays to keep it in bounds.\n",
      "mechanism": "Rhizomatous, and stoloniferous, spread. Mint's horizontal underground stems - rhizomes - and its surface runners root at their nodes and send up new shoots, so an unconfined plant expands outward from the crown each season and reappears wherever a node reaches soil. This vegetative creep is why a loose planting takes over a bed, and why a physical soil barrier, not a spacing rule, is the control.\n",
      "remedy": "Grow mint in a container above ground, or plant it in a large bottomless pot or buried edging sunk several inches into the bed - roughly 3-4 inches proud of the soil and 10-15 inches below - so escaping rhizomes are forced up over the lip where they show. Cut back and harvest through the season, and pull any runner that clears the barrier before it roots.\n",
      "effect_size": "No reliable magnitude is stated or invented. Left unconfined in open ground mint spreads through the bed over a season and crowds its neighbours; contained in a pot or a sunken barrier it stays put. Because keeping it contained is a cultural practice the gardener performs, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to mentha_spicata by applies_to). It surfaces on the mint species page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see whether the mint is potted or barriered - so it is preventive cultural practice, not an enforced footprint or scoring rule. The corpus scopes mint to mentha_spicata (spearmint); other Mentha species and hybrids behave similarly but are out of scope here until sourced independently.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Mint' (Herbs), extension.illinois.edu/herbs/mint (read 2026-08-22): 'They grow from 1-3 feet tall and aggressively spread by underground rhizomes'; 'Because mints have a prolific growth habit, they will become invasive in the garden'; 'It is highly suggested that mints be grown in containers above ground'; 'Other suggestions for containing mints include planting mints in large bottomless containers that are sunk into the garden.'",
          "Utah State Univ. Extension, 'How to Grow Mint in Your Garden', extension.usu.edu/yardandgarden/research/mint-in-the-garden (read 2026-08-22): 'Mint spreads quickly in open garden areas and will out-compete most garden plants'; 'Mint is a rapid growing perennial herb with many varieties that grow up to 3 feet tall and are quite invasive'; 'Consider separate beds or grow mint in buried containers to contain the spreading rhizomes'; 'Containers should extend 3-4 inches above and 10-15 inches below the soil surface to ensure containment.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, Utah State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Illinois gives the rhizomatous aggressive spread and the container / sunken-bottomless remedy; Utah State corroborates the out-competing spread and the buried-container containment with its sink depths. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "mint-spreads-aggressively-underground-rhizomes-will-colonize"
    },
    {
      "id": "R-126",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "ocimum_basilicum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Basil is grown for its leaves: pinch out the growing tips and remove flower buds as they form to keep the plant making tender leaves and growing bushy. Once basil flowers, it turns toward seed and the leaves fall off in quantity and quality. Harvest and pinch from the top regularly, and take the flower buds off as soon as they appear.\n",
      "mechanism": "Apical dominance and the leaf-to-seed switch. Pinching the terminal shoot releases the lateral buds below the cut, so the plant branches and grows bushier with more leaf-bearing stems; and because flowering redirects the plant from building leaves to setting seed, removing the buds before they open keeps it in leaf and the foliage tender.\n",
      "remedy": "Once the plant has several sets of true leaves, pinch or harvest from the top just above a leaf pair on a regular cadence rather than stripping the lower leaves. Watch for flower spikes and pinch or cut them off as soon as they emerge.\n",
      "effect_size": "No figure is stated or invented. Unpinched and left to flower, basil is not killed; it yields fewer and coarser leaves, an off flavour once it blooms, and an earlier end to useful harvest. Because pinching is entirely the gardener's to carry out, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to ocimum_basilicum by applies_to), a leaf-herb sibling to the mint containment advisory. It surfaces on the basil species page and can be cited by the herb guides; it gates nothing and docks no score - the app cannot see whether a plant was pinched - so it is preventive cultural guidance surfaced to the grower, not a scored constraint.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Basil' (Herbs), extension.illinois.edu/herbs/basil (read 2026-08-22): 'Pinching the tips of stems encourages a bushy plant and more leaf growth resulting in a round plant full of aromatic basil'; 'Basil flower buds should be removed by pinching as soon as you see them form. Leaving them on the plant will affect the flavor of the leaves.'",
          "Penn State Extension, 'Basil, A Summer Favorite', extension.psu.edu/basil-a-summer-favorite (read 2026-08-22): 'Continue to pick the leaves regularly to encourage growth throughout the summer'; 'This keeps the plant growing strong and bushy, providing for a continual harvest through the warm days of fall'; 'After six weeks, watch out for early flowering. If flower buds do emerge, just cut or pinch them off'; 'The flavor will be adversely affected if the plant is allowed to flower.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, Penn State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Illinois gives the pinch-for-bushy-growth and the remove-flower-buds-for-leaf-flavour halves; Penn State corroborates regular picking for continual bushy growth and pinching off the flower buds, and that flowering hurts the flavour. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "basil-grown-leaves-pinch-out-growing-tips"
    },
    {
      "id": "R-127",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "rosmarinus_officinalis",
          "salvia_officinalis",
          "thymus_vulgaris",
          "origanum_vulgare"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Rosemary, sage, thyme and oregano are Mediterranean plants that want full sun and sharp, well-drained soil and tolerate drought once established. They are intolerant of wet, heavy or poorly drained soil and are easily over-watered, which invites root and stem rot. They also do better in lean soil than rich - over-feeding grows lush, low-flavour foliage and encourages disease - so water sparingly and keep feeding light.\n",
      "mechanism": "These species are adapted to dry-climate Mediterranean conditions - gritty, fast-draining soils and low summer water. In wet or heavy, poorly drained soil the root zone stays waterlogged, starving the roots of oxygen and rotting them; excess water and rich fertility compound the rot risk and, in these aromatic herbs, thin the essential oils that carry the flavour.\n",
      "remedy": "Site in full sun with excellent drainage: plant in well-drained ground, a raised or gritty bed, or open up heavy clay with coarse material before planting. Let the soil dry between waterings and water sparingly once the plant is established, and keep the soil lean rather than feeding it heavily.\n",
      "effect_size": "No figure is stated or invented. Wet feet drive root and stem rot and decline; sharp drainage, restraint on water, and lean soil let the plant thrive. Because siting, watering and feeding are all the gardener's to control, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to the four Mediterranean culinary herbs the sources name - rosemary, sage, thyme, oregano. It surfaces on those species pages and can be cited by the herb guides; it gates nothing and docks no score - the app cannot see a bed's drainage or how it was watered. Moisture-loving herbs (lemon balm, mint, basil at higher water, parsley, cilantro) are deliberately NOT in this group and are left off until sourced on their own terms.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Clemson HGIC, 'Herbs', hgic.clemson.edu/factsheet/herbs (read 2026-08-22): 'Many common herbs are from the Mediterranean region. They grow well in full sun, well-drained soil, and dry summers'; rosemary - 'All grow best in dry, sunny areas in well-drained soil'; sage - 'The plants require excellent drainage and dry soil in full sun'; thyme - 'Plant thyme in full sun in very well drained soil that stays dry'; oregano - 'Plant oregano in full sun and well-drained soil'; 'Most herbs do not need a highly fertile soil. Very fertile soils tend to produce lush leaves that lack flavor.'",
          "Univ. of Maryland Extension, 'Care of Herbs and Starting Herbs from Seed', extension.umd.edu/resource/care-herbs-and-starting-herbs-seed (read 2026-08-22): 'Drainage is probably the most important single factor in successful herb growing'; 'Herbs will not grow in wet soils'; 'The \"Mediterranean\" herbs, such as basil, thyme, rosemary, oregano, and lavender, grow best on sunny, dry sites in light (sandy) soil'; 'Over-fertilizing herb plants can lower the plant's essential oil content and encourage root and stem rot diseases.'",
          "NC State Extension Gardener Plant Toolbox, 'Salvia officinalis', plants.ces.ncsu.edu/plants/salvia-officinalis (read 2026-08-22): 'Common sage prefers full sun and well-drained, medium to dry soils that mimic those of its Mediterranean homeland'; 'It is intolerant of wet or poorly drained soils'; 'It will tolerate drought and poor soils.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): three land-grant extension pages (Clemson HGIC, UMD, NC State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Every species in applies_to is named by at least two independent sources: Clemson names all four (rosemary, sage, thyme, oregano); UMD names thyme, rosemary and oregano in its Mediterranean group; NC State's own page covers sage. The lean-soil/essential-oil half rests on the Clemson and UMD lines. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "rosemary-sage-thyme-oregano-mediterranean-plants-that"
    },
    {
      "id": "R-128",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "tropaeolum_majus"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Nasturtiums bloom best in lean, poor-to-average, well-drained soil in full sun. Rich soil or heavy nitrogen feeding pushes the plant into lush leaf growth at the expense of flowers - the familiar 'all leaves, few blooms'. Go easy on feeding, and do not fertilise except on very poor ground.\n",
      "mechanism": "Rich soil and abundant nitrogen bias the plant toward vegetative leaf growth over flowering; lean, low-fertility soil shifts the same balance back toward bloom. It is the foliage-over-flower tradeoff that heavy feeding produces in many plants, here spending the plant on leaves instead of the flowers it was grown for.\n",
      "remedy": "Plant in average-to-poor, well-drained soil in full sun. Do not fertilise, and avoid nitrogen-rich feeding; reserve any feeding for genuinely poor ground. The engine does not invent fertiliser numbers.\n",
      "effect_size": "No figure is stated or invented. The penalty is foliage instead of flowers on an otherwise healthy, vigorous plant, not plant failure. Because feeding is the gardener's own choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to tropaeolum_majus by applies_to). It surfaces on the nasturtium species page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see how a bed was fed. It is the leaf-over-bloom parallel to the tomato feeding advisory, but for an ornamental/edible flower whose harvested output is the bloom itself.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Wisconsin-Madison Extension (Wisconsin Horticulture), 'Nasturtium, Tropaeolum majus', hort.extension.wisc.edu/articles/nasturtium-tropaeolum-majus (read 2026-08-22): 'Do not fertilize, except on extremely poor soil, as high rates of fertilization promotes leaf growth and reduces flowering.'",
          "NC State Extension Gardener Plant Toolbox, 'Tropaeolum majus', plants.ces.ncsu.edu/plants/tropaeolum-majus (read 2026-08-22): 'It grows best in poor to average, well-drained soil in full sun, but with some afternoon shade in hot summers'; 'Fertilizing will increase foliage, however, will also decrease flowering.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UW-Madison, NC State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Each independently carries both halves - lean/ poor-to-average soil AND fertilising producing leaves at the expense of flowers. The mechanism is the same vegetative-over-reproductive bias the tomato nitrogen advisory names, here expressed as bloom loss. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "nasturtiums-bloom-best-lean-poor-average-well"
    },
    {
      "id": "R-129",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "borago_officinalis"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Borage is an annual that self-seeds freely and returns on its own from dropped seed, so a single planting typically reappears as volunteer seedlings year after year. Expect volunteers in and around where it grew. If you would rather it did not come up, remove the spent flower and seed heads before the seed drops and pull unwanted seedlings while young; otherwise leave a few heads and let it reseed.\n",
      "mechanism": "An annual that sets abundant seed which drops and germinates in place, so one planting reappears and spreads by self-sown volunteers each season without being replanted. The control follows from the same mechanism: seed that is removed before it drops cannot volunteer.\n",
      "remedy": "To keep borage going, leave a few seed heads to ripen and drop. To limit where it comes up, cut or deadhead the flower heads before the seed sets and drops, and pull volunteer seedlings while they are young and shallow-rooted.\n",
      "effect_size": "No figure is stated or invented. Left unmanaged, borage reliably volunteers from dropped seed and returns year after year in the same area; with the seed heads removed before drop it stays where it was planted. The read sources describe it as a dependable self-sower, NOT as weedy or invasive. Because managing seed set is the gardener's choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to borago_officinalis by applies_to). It surfaces on the borage species page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see whether seed heads were removed. Honesty note: the two sources establish ONLY the self-seeding / returns-year-after-year behaviour and do NOT call borage invasive or weedy; the deadhead-to-limit-it step is not a separate empirical claim but the trivial mechanical corollary of the sourced mechanism (no dropped seed, no volunteers), which is why it is stated rather than separately cited.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Plant of the Week: Borage', extension.illinois.edu/blogs/hort-home-landscape/2016-06-24-plant-week-borage (read 2026-08-22): 'This annual self-seeds wherever it is planted, so in most years, an abundance of borage returns.'",
          "NC State Extension Gardener Plant Toolbox, 'Borago officinalis', plants.ces.ncsu.edu/plants/borago-officinalis (read 2026-08-22): 'the plant is also self-seeding and will remain in your garden year after year.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, NC State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Both establish the self-seeding / returns-yearly behaviour; NEITHER calls borage invasive or weedy, and neither states the deadhead-control step, so the claim is scoped to a dependable self-sower and the control is presented as the mechanical corollary of the sourced mechanism, not as a cited fact. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "borage-annual-that-self-seeds-freely-returns"
    },
    {
      "id": "R-130",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "artemisia_dracunculus"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Culinary French tarragon has sterile flowers and sets no viable seed, so it is grown only from division, cuttings, or a bought started plant - never from a seed packet. Seed sold as \"tarragon\" is Russian tarragon, a taller, coarser plant whose flavour is far inferior. Sow that seed and you get the near-flavourless plant, not the culinary herb.\n",
      "mechanism": "French tarragon's flowers are sterile and it seldom sets viable seed, so the only way to keep the true culinary plant is to propagate it vegetatively - by division or cuttings from an existing plant. The \"tarragon\" seed on the market is a different, seed-fertile type, Russian tarragon, which lacks the odour and flavour that make French tarragon worth growing.\n",
      "remedy": "Buy a started French tarragon plant, or propagate by division or cuttings taken from a known French tarragon plant. Do not sow a seed packet labelled \"tarragon\" expecting the culinary French herb.\n",
      "effect_size": "No figure is stated or invented. Sowing seed does not kill anything; it simply yields Russian tarragon, a coarse and near-flavourless herb rather than the prized culinary one. Because the propagation method is entirely the gardener's choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to artemisia_dracunculus by applies_to). It surfaces on the tarragon species page and can be cited by the herb and propagation guides; it gates nothing and docks no score. The corpus species is the culinary FRENCH tarragon; this rule separates it from the seed-grown Russian type sold under the same common name. The rule deliberately does not settle whether Russian tarragon is a separate species or a variety - the read sources disagree on that taxonomy - because the claim rests on the sterile-seed and flavour distinction, which both sources share.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Tarragon: French', extension.illinois.edu/herbs/tarragon-french (read 2026-08-22): 'True French tarragon is only available as plants grown from cuttings or root divisions'; 'Because French tarragon produces flowers that are sterile, it cannot be grown from seeds'; 'Seeds that are sold as tarragon at seed racks or in catalogs are seeds of Russian tarragon'; 'This is a much taller, coarser plant and its culinary use is considered to be inferior because it lacks the odor and flavor characteristics of French tarragon.'",
          "Utah State Univ. Extension, 'How to Grow French Tarragon in Your Garden', extension.usu.edu/yardandgarden/research/french-tarragon-in-the-garden (read 2026-08-22): 'French tarragon should be propagated through cuttings or root divisions from an existing plant. It does not produce viable seed, and growing from seed typically results in the less flavorful Russian tarragon'; 'Russian tarragon, while not classified as being a different species, has flavor vastly inferior to French tarragon.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, Utah State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Both carry the sterile-seed / propagate-by- division mechanism and the Russian-tarragon-is-inferior distinction. The one point they differ on - whether Russian tarragon is a distinct species (Illinois) or not (Utah State) - is left unclaimed on purpose. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "culinary-french-tarragon-has-sterile-flowers-sets"
    },
    {
      "id": "R-131",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "melissa_officinalis"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Lemon balm self-sows freely and, left to flower and set seed unchecked, spreads and can take over a bed. Cut back or deadhead the flowering stalks before they set seed to keep it in bounds, or grow it in a container. It is a strong self-seeder that can become weedy - though not a listed invasive.\n",
      "mechanism": "The spread is chiefly by self-sown seed: a plant left to flower sets abundant seed that drops and germinates in place, so it recurs and expands from year to year. Removing the flowering stalks before seed sets breaks that cycle. Its spread is by seed rather than by the running underground stems that carry its relative mint, though a soil-grown plant can also creep somewhat at its edges.\n",
      "remedy": "Prune or deadhead the flowering stalks before they set seed, and pull self-sown seedlings while young. Grow it in a container to contain it; for a soil-grown plant, cutting around the plant's edges checks the modest edge-creep. A sterile-flowered cultivar sets no viable seed and does not self-sow.\n",
      "effect_size": "No figure is stated or invented. Left to flower and seed, lemon balm reliably volunteers and can overtake a bed; with the flower stalks cut before seed set, it stays where it was planted. The read sources call it weedy but NOT invasive, and give no count or rate. Because managing seed set is the gardener's ongoing choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always, gated to melissa_officinalis by applies_to), a self-sower sibling to the borage advisory but a step stronger - one source calls lemon balm weedy. It surfaces on the lemon balm species page and can be cited by the planting guides; it gates nothing and docks no score. Honesty note on scope: the sources support self-sows-freely and can-overtake-a-bed, controlled by deadheading before seed set or by container growing; one source (Utah State) uses the word \"weedy\" and neither uses \"invasive\", so the rule says weedy-not-invasive. On spread mode the sources differ - Illinois attributes it to seed only, expressly contrasting mint's underground runners, while Utah State also notes some root-edge spread - so the rule claims seed as the primary mode and carries the edge-creep as the lesser, single-sourced note; it does NOT claim rhizomatous/runner spread.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Lemon Balm', extension.illinois.edu/herbs/lemon-balm (read 2026-08-22): 'While mint can spread rapidly by underground stems, lemon balm spreads by setting lots of seed and can, if allowed to go unchecked start to overtake the garden'; 'To prevent spreading, prune flowering stalks before they have a chance to set seed'; \"'Compacta' - A more compact form of lemon balm that is also sterile which means the flowers do not set viable seed.\"",
          "Utah State Univ. Extension, 'How to Grow Lemon Balm in Your Garden', extension.usu.edu/yardandgarden/research/lemon-balm-in-the-garden (read 2026-08-22): 'Lemon balm, like mint spreads rapidly (becomes weedy) and can take over an herb bed'; 'Growing plants in containers helps control this problem'; 'If planted in the soil, harvest the leaves regularly, remove the flowers before they set seed, and dig around the plant edges to reduce root spreading.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, Utah State) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Both establish the free self-seeding and the deadhead-before-seed control; Utah State adds the container remedy and the word \"weedy\"; neither uses \"invasive\". The two differ on spread mode (Illinois seed-only, contrasting mint's runners; Utah State seed plus some root-edge spread), so the claim is scoped to seed-primary with the edge-creep as a single-sourced note and no rhizome claim. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "lemon-balm-self-sows-freely-left-flower"
    },
    {
      "id": "R-132",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "vaccinium_corymbosum"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Blueberries need strongly acidic soil, about pH 4.0 to 5.5. Above about 5.5 the soil is not acidic enough and the plant cannot take up iron, so the new leaves yellow between the veins (iron chlorosis). Test the soil before planting; if it is too high, lower it with elemental sulfur applied several months ahead, then re-test. A foliar iron spray only greens the leaves for a while and does not fix the soil.\n",
      "mechanism": "Blueberries are acid-loving plants adapted to low-pH soils. At soil pH above about 5.5, iron is not available to the roots even when it is present in the soil, and the plant develops interveinal chlorosis - yellowing between the veins - on new growth. Lowering the pH with elemental sulfur makes iron available again; spraying the leaves with iron greens them only temporarily and leaves the soil, and so the plant's long-term health, uncorrected.\n",
      "remedy": "Test the soil pH before planting. If it is above about 5.5, lower it with elemental sulfur applied months - ideally the season or the year - before planting, and re-test before you plant. If the soil is near neutral (above about 6.0) and hard to acidify, choose a different site. Do not rely on foliar iron sprays as a cure; they mask the yellowing without correcting the soil.\n",
      "effect_size": "No figure is stated or invented. Above pH 5.5 the plants yellow, grow poorly and may die; within the 4.0 to 5.5 range they take up iron and thrive. Because siting, soil testing and acidifying are all the gardener's to do before planting, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to blueberry, the one strongly-acid-demanding fruit in the corpus. It surfaces on the blueberry species page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see a bed's pH. This is a pH advisory, NOT a fertilizer prescription: it tells the gardener to GET A SOIL TEST and invents no NPK number (invariant 3). The one nutrient named, iron, is named by both sources as the cause of the high-pH yellowing, and the remedy is pH correction with sulfur, not a feeding rate. Other fruit are deliberately left off - blueberry's pH demand is exceptional; blackberry, raspberry and the rest tolerate ordinary garden pH and are not covered here.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Minnesota Extension, 'Growing blueberries in the home garden', extension.umn.edu/fruit/growing-blueberries-home-garden (read 2026-08-22): 'Blueberries require a pH between 4.0-5.5'; 'If the pH of the soil is over 5.5, then the soil is not acidic enough for blueberries'; 'Blueberry plants in soil with a pH above 5.5 will struggle to absorb the nutrients they need from the soil'; 'Chlorosis, or yellow discoloring of the leaves, is usually the first sign of a soil pH problem'; figure caption 'iron chlorosis caused by high soil pH'; 'Spraying plants with a foliar chelated iron fertilizer ... will temporarily green up the leaves, but it will not improve plant health in the long term'; 'It is best to amend the pH with sulfur the fall before planting, because it takes several months for sulfur to change the soil pH.'",
          "Clemson HGIC, 'Blueberry', hgic.clemson.edu/factsheet/blueberry (read 2026-08-22): 'If the pH is above 6.0, select another planting site. If the soil pH is below 6.0 but above the 5.5 limit, apply wettable sulfur (90 percent sulfur)'; '... apply iron sulfate if needed to correct the yellowing of foliage'; 'Have a soil test taken in the fall before planting ... Any sulfur applications should be made at least three months prior to planting because it takes several months for sulfur to reduce the pH.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): two land-grant extension pages (Univ. of Minnesota, Clemson HGIC) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Both establish the acidic-pH requirement and the sulfur-before-planting correction; UMN names iron chlorosis as the high-pH failure and warns that foliar iron only masks it, and Clemson corroborates iron (iron sulfate to correct the yellowing) and the soil-test-first, above-6.0-pick-another-site thresholds. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "blueberries-need-strongly-acidic-soil-about-ph"
    },
    {
      "id": "R-133",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "rubus_idaeus",
          "rubus_fruticosus"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Raspberry and blackberry canes are biennial: a cane grows its first year (a primocane), fruits its second year (a floricane), then dies. On summer-bearing types, after harvest cut out only the spent floricanes, at ground level, and keep the current year's primocanes - they are next year's crop. Cutting every cane down on a summer-bearing plant removes next year's fruit. Ever-bearing (primocane-fruiting) types fruit on first-year canes and, grown for a single fall crop, can instead be cut wholesale close to the ground in winter.\n",
      "mechanism": "Each cane lives two years while the crown persists: a vegetative primocane in year one becomes the fruiting floricane in year two, and a floricane dies after fruiting - it will not fruit again or survive another winter. Next year's fruiting wood is therefore this year's primocanes, so removing them removes the crop. The spent floricanes are cut at ground level because dead stubs left standing can harbor canker-causing fungi.\n",
      "remedy": "After harvest, or while the plants are dormant, cut the canes that fruited out at ground level and leave the current primocanes standing; thin crowded primocanes so the keepers grow stout. On an ever-bearing type grown for one fall crop, cut all canes very close to the ground in winter instead.\n",
      "effect_size": "No figure is stated or invented. Keeping the primocanes preserves next year's crop outright; removing the dead floricanes flush with the ground also removes overwintering cane-disease harbor. Because which canes to cut is the gardener's annual choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to the two bramble species. It surfaces on the raspberry and blackberry pages and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see a cane's age or a cultivar's bearing type. The rule states the summer-bearing (floricane-fruiting) default and carries the primocane-fruiting exception honestly in prose; it does not try to detect which type a plant is. Both sources are raspberry-and- blackberry or raspberry-specific; UMD covers both species and the ground-level/canker point, Illinois independently confirms the cycle and the after-harvest cut for raspberry.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Maryland Extension, 'Growing Raspberries and Blackberries in a Home Garden', extension.umd.edu/resource/growing-raspberries-and-blackberries-home-garden (read 2026-08-22): 'In the second growing year, those one-year-old canes, now called floricanes, produce flowers and fruit on main stems and laterals (side branches)'; 'Floricanes die after fruiting and must eventually be removed because they will not produce another harvest or survive a second winter'; 'When plants are dormant, remove the dead floricanes that fruited the previous season'; 'When removing dead, fruited canes or excess primocanes, make the cuts at ground level so that the dead stubs do not protrude where they can harbor canker-causing fungi'; 'Primocane-bearing raspberry and blackberry cultivars produce fruit on first-year canes.'",
          "Univ. of Illinois Extension, 'Pruning and Training Raspberries', extension.illinois.edu/small-fruits/pruning-and-training-raspberries (read 2026-08-22): 'primocanes are first year growth and in second year they grow into floricanes which bear fruits'; 'Floricanes are cut after harvest'; 'Primocanes that will bear fruits the following year are thinned to avoid competition'; 'For a single late season crop harvest, canes are cut very close to the ground in December to February.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UMD, Illinois) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. UMD establishes the biennial cycle for both raspberry and blackberry, the die-after-fruiting fact, the ground-level cut and its canker rationale, and the primocane-bearing exception; Illinois independently confirms the primocane-to-floricane cycle, the after-harvest floricane cut and the winter mow-down alternative for a single late crop. The rule claims no numbers beyond the two-year cane life both sources state. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "raspberry-blackberry-canes-biennial-cane-grows-first"
    },
    {
      "id": "R-134",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "asparagus_officinalis"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Do not harvest asparagus at all the first year after planting crowns. When harvest begins - the second or third spring, depending on the source you follow - keep it short: about two weeks in the first harvest year, no more than a month, then let every later spear grow out. From the fourth year on, harvest can run eight to ten weeks. After harvest ends, let the spears grow into ferns and leave them standing: the ferns are what feed the crown for next year.\n",
      "mechanism": "Every spear is drawn from energy stored in the crown, and the ferns are what refill that store - the fern's photosynthesis is banked underground to produce the following year's spears. A young planting is still expanding its root storage system, so cutting its spears removes the shoots that would have become ferns, and excessive removal of spears weakens the plants. Restraint in the establishment years is what builds a crown strong enough to bear a full harvest for decades.\n",
      "remedy": "Year one after planting crowns: harvest nothing and let everything fern out. In the first year you do harvest, pick for about two weeks only - a month at most - then stop. From the fourth year on, harvest from first spears through May or June, about eight to ten weeks. Every year, once harvest ends, let the remaining spears develop into ferns and take care of them; they are next year's crop being banked.\n",
      "effect_size": "No figure is stated or invented beyond the durations the sources state (no harvest year one; about two weeks, at most a month, in the first harvest year; eight to ten weeks from year four). The sources say over-harvest of a young bed weakens the plants and give no yield numbers. Because the harvest calendar is entirely the gardener's choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to asparagus, the corpus's long-lived perennial vegetable. It surfaces on the asparagus page and can be cited by the planting guides; it gates nothing and docks no score - the app does not track a planting's age today (if occupancy history later makes bed-age computable, this rule could gain a real trigger; that is a possibility, not a plan). Honesty notes: the two sources differ on when harvest begins - UMN allows a light harvest the second spring after planting if the plants grew strong, Illinois starts the third year - so the claim says \"second or third spring, depending on the source\" rather than picking a winner. Both sources describe crown-planted beds; a seed-started bed runs about a year behind and is not claimed.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Minnesota Extension, 'Growing asparagus in home gardens', extension.umn.edu/vegetables/growing-asparagus (read 2026-08-22): 'In the first spring, a year after planting the crowns, do not harvest any spears'; 'The second spring after planting crowns, if the plants were strong and healthy during the previous growing season, begin to harvest when the spears are six to eight inches long'; 'In the first year of harvest, only pick asparagus for two weeks'; 'The fern creates energy that will be stored in the underground portion of the plant to produce the following year's spears'; 'It is important to take care of the ferns even after harvesting to ensure good future harvests.'",
          "Univ. of Illinois Extension, 'Asparagus' (Home Vegetable Gardening), extension.illinois.edu/gardening/asparagus (read 2026-08-22): 'Asparagus can be harvested the third year after planting crowns, but for no more than one month the first season'; 'The plant is still expanding its root storage system and excessive removal of spears weakens the plants'; 'During the fourth year and thereafter, the spears may be harvested from their first appearance in the spring through May or June (as long as 8 to 10 weeks).'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (UMN, Illinois) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. UMN carries the no-first-year-harvest line, the two-week first harvest and the fern-banks-energy mechanism; Illinois carries the root-storage-still-expanding mechanism, the one-month cap and the 8-10-week mature-bed window. The two differ on when harvest begins (UMN second spring conditional on vigor, Illinois third year), so the claim carries both rather than picking one. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "do-not-harvest-asparagus-all-first-year"
    },
    {
      "id": "R-135",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "fragaria_x_ananassa"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "On a new June-bearing strawberry planting, remove every blossom for the whole first season - check weekly and pinch or cut them off; flowering stops by early July. Letting first-year flowers set fruit reduces plant growth, runner production, and the size of next year's crop. Everbearing and day-neutral types are handled differently: remove blossoms only for the first stretch after planting - about four to six weeks, or until early July - then let them fruit, with first berries from August until frost.\n",
      "mechanism": "A first-year plant that ripens fruit spends its resources on berries instead of on the root system, leaf canopy and runners (daughter plants) that make up next year's bed; letting the flowers develop into berries reduces plant growth, runner production and the size of next year's crop, while removing them directs the plant's resources into a large root system and a healthy plant. June-bearers crop once a year, so the whole first season is given to establishment; everbearing and day-neutral types keep flowering, so only the establishment window is sacrificed and later flowers are allowed to fruit.\n",
      "remedy": "June-bearing: pinch or cut off all blossoms weekly through the first growing season. Everbearing or day-neutral: remove blossoms for the first four to six weeks after planting, or until early July, then allow the plants to fruit.\n",
      "effect_size": "No figure is stated or invented. The sources give direction, not magnitude: first-year fruiting means a smaller next-year crop, fewer runners and weaker plants; removal builds the root system and canopy. Because deblossoming a young planting is the gardener's weekly choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to strawberry. It surfaces on the strawberry page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see a planting's age or its bearing type. The June-bearing versus everbearing/day-neutral fork is carried honestly in prose, not detected; the two sources' day-neutral windows differ slightly (UMD four to six weeks, Iowa State until early July) and the claim carries both. It pairs with the asparagus establishment advisory as the \"first-year patience\" pair. A possible follow-up is a cultivar_groups split (june_bearing vs day_neutral) on the species so the bearing type could gate the fork; that is a possibility, not part of this rule.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Iowa State Univ. Extension, 'I planted strawberries this spring. Do I need to remove this year's blossoms?', yardandgarden.extension.iastate.edu/faq/i-planted-strawberries-spring-do-i-need-remove-years-blossoms (read 2026-08-22): 'During the first growing season, all the blossoms should be removed from June-bearing strawberries'; 'If the flowers are allowed to develop into berries, their development will reduce plant growth, runner production, and the size of next year's crop'; 'Check the strawberry plants once a week and remove the blossoms by pinching or cutting. Flower production on June-bearing strawberries should stop by early July'; 'With everbearing and day-neutral strawberries, remove all blossoms until early July. Any flowers which bloom after this period may be allowed to develop into fruit. The first berries should ripen in August and continue until frost.'",
          "Univ. of Maryland Extension, 'Growing Strawberries in a Home Garden', extension.umd.edu/resource/growing-strawberries-home-garden (read 2026-08-22): 'For June-bearers, remove the flowers for the entire first season to direct the plant's resources into developing a large root system and healthy plant'; day-neutral - 'Remove flowers for the first 4-6 weeks after planting, and then allow plants to fruit.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Iowa State, UMD) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22. Iowa State carries the whole-first- season removal for June-bearers, the reduce-growth-runners-next-crop mechanism, the weekly pinch/cut method and the everbearing/day-neutral until-early-July window; UMD independently confirms the entire-first-season June-bearer removal, the root-system rationale and a four-to-six- week day-neutral window. The two day-neutral windows differ slightly, so the claim carries both. UMN's strawberry page was also checked but its blossom instruction is a weaker general \"first few weeks\" line, so it is not cited. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "new-june-bearing-strawberry-planting-remove-blossom"
    },
    {
      "id": "R-136",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "vitis_spp"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Grapes fruit on new shoots that grow from last season's canes, and only a few well-placed canes are kept. Prune hard every dormant season - late winter, after the coldest weather but before the buds swell: removing about 80 to 90 percent of the previous year's growth is normal and necessary. Under-pruning is the common mistake and leaves a tangled vine with fewer flower buds and small, poor-quality fruit.\n",
      "mechanism": "Fruit forms only on shoots arising from last season's canes, so a vine left unpruned piles up old wood that no longer fruits while the crop crowds onto too many buds. Cutting back 80 to 90 percent of last year's growth concentrates the vine into a small number of well-placed, productive canes; prune too little and too many buds remain, so the vine over-produces small, poor fruit and becomes a tangled mass.\n",
      "remedy": "Prune while the vine is fully dormant - after the coldest part of winter, before the buds begin to swell, around February to March. Remove roughly 80 to 90 percent of the previous year's wood, keeping a few strong, well-placed canes (and renewal spurs) according to your training system. Do not under-prune.\n",
      "effect_size": "The one figure - about 80 to 90 percent of last year's wood removed at dormant pruning - is stated by both sources (Illinois \"80 to 90%\", Maryland \"90 percent\"), not invented. The direction of the consequence - fewer flower buds, small poor-quality fruit, and a biennial bearing pattern - is sourced; no other magnitude is claimed. Because pruning is the gardener's annual dormant-season choice, the rule advises rather than warns.\n",
      "scope_note": "A STANDING CULTURAL ADVISORY (trigger.kind always), gated by applies_to to grape. It surfaces on the grape page and can be cited by the planting guides; it gates nothing and docks no score - the app cannot see a vine's structure or how it was pruned. HONESTY NOTE on the fruiting wood's age: the two sources word it differently - Illinois calls it \"one-year-old canes\", Maryland \"second-year wood\" and \"canes that are two years old\". These describe the same thing counted from different points (a new, current-season shoot borne on a cane that grew last season), so the claim states it as \"new shoots from last season's canes\" and does NOT assert a single contested age-count. The load-bearing content - the 80 to 90 percent dormant removal and the under-pruning consequence - is stated plainly by both sources.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Pruning and Training of Grape Vines', extension.illinois.edu/small-fruits/pruning-and-training-grape-vines (read 2026-08-22): 'Grapes flower and produce fruit only on one-year-old canes'; 'Proper pruning often results in the removal of 80 to 90% of the wood'; 'Prune after the coldest part of the winter is past, but before the buds begin to swell. February and early March are usually the best times in Illinois'; 'Most gardeners do not prune severely enough'; 'most home arbors soon become a tangled mass of vines because of failure to prune heavily enough.'",
          "Univ. of Maryland Extension, 'Training and Pruning Grapes', extension.umd.edu/resource/training-and-pruning-grapes (read 2026-08-22): 'Typically, 90 percent of the previous year's growth is removed during dormant pruning'; 'Failure to prune hard leads to fewer flower buds and small, poor-quality fruit. Insufficient pruning can also trigger a biennial bearing pattern, where plants skip a year between harvests'; 'Prune in March so you can determine the amount of winter damage'; 'Fruits form on second-year wood ...'; 'Grapes produce fruit clusters on canes that are two years old.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): both land-grant extension pages (Illinois, UMD) were fetched live in-container, their verbatim lines surfaced and re-confirmed against the live pages, and the maintainer read and confirmed them 2026-08-22, including the age-wording honesty note. Both state the roughly 80-90 percent dormant removal and the under-pruning consequence (fewer flower buds, small poor fruit); Illinois adds the timing window and the most-gardeners-under-prune line, UMD adds the biennial-bearing consequence. The sources word the fruiting wood's age differently (Illinois one-year-old canes, UMD second-year/two-year wood), so the claim states \"new shoots from last season's canes\" and carries no single contested age-count. Ohio State's HYG-1428 factsheet was also sought but returned HTTP 403 and is not cited. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "grapes-fruit-new-shoots-that-grow-from"
    },
    {
      "id": "R-137",
      "type": "advisory",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "species": [
          "malus_domestica",
          "pyrus_communis",
          "prunus_domestica",
          "prunus_persica",
          "prunus_cerasus"
        ]
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "Tree fruits differ in whether a lone tree can set a crop. Apples and most European pears are self-unfruitful: one cultivar alone will not set a normal crop, so plant at least two different cultivars whose bloom periods overlap - for apple, a flowering crabapple in bloom at the same time also works. European plums are partially to entirely self-fruitful, and a second European plum cultivar makes fruit set reliable - Japanese and hybrid plums will not cross-pollinate them. Peaches and sour cherries are self-fruitful and may be planted alone. Partner trees must stand near each other: the published distances are within 50 to 100 feet, and 300 feet at most.\n",
      "mechanism": "A self-unfruitful tree will not set a normal crop from its own pollen or the pollen of another tree of the same cultivar; it needs pollen from a genetically different, compatible cultivar, carried by bees while both trees are in bloom. That is why the partner must be a different cultivar, must bloom at the same time, and must stand within a bee's working range - and why a self-fruitful species like peach or sour cherry, whose own pollen sets fruit, bears alone.\n",
      "remedy": "Check the pollination requirement before buying. For apple and pear, plant two different cultivars with overlapping bloom - early- and late-blooming cultivars may miss each other, and for apple a flowering crabapple that blooms at the same time also serves. For European plum, pair with a second European plum cultivar, not a Japanese or hybrid plum. Site partner trees close together - within 50 to 100 feet where you can, within 300 feet at most. A peach or sour cherry needs no partner.\n",
      "effect_size": "No figure is invented. The magnitude is the sources': a self-unfruitful tree alone 'will not set a normal crop' - apples set at most a small crop on their own pollen - and the two planting distances (within 50 to 100 feet; within 300 feet) are both published figures, both carried, neither chosen. Because cultivar choice at planting is the gardener's own decision and the app cannot see what grows in neighbouring yards, the rule advises rather than warns.\n",
      "scope_note": "A STANDING PLANTING ADVISORY (trigger.kind always), gated by applies_to to the corpus's five rosaceae tree fruits - apple, European pear, European plum, peach, sour cherry. It surfaces on those species pages and can be cited by the fruit guides; it gates nothing and docks no score - the engine cannot see cultivar identity in a plan, or the crabapple in a neighbour's yard, so a hard gate would be dishonest. HONESTY NOTES: (1) sour cherry was expected to need a pollinizer and the sources REVERSED that - all three call sour/tart cherry self-fruitful, so it stands with peach in the plant-alone group. (2) Iowa says apples 'will set a small crop with their own pollen' while Penn State says cross-pollination is always needed for an adequate crop - a small crop is not an adequate one, so the claim says a lone tree will not set a NORMAL crop. (3) The two planting distances differ (50-100 ft Iowa, 300 ft Illinois); both are carried, neither is chosen. (4) For plum the per-crop line wins over the blanket one: Penn State's half-and-half covers plums at large, Iowa's partially-to-entirely-self-fruitful is specifically EUROPEAN plum, which is the corpus species. Sweet cherry and Japanese plum are not in the corpus; their requirements are recorded only as the warning that they cannot pollinate European plums. Fig is deliberately LEFT OUT: none of these sources covers it and its pollination biology is a different mechanism entirely - it stays rule-silent until sourced on its own terms. This rule is about the POLLEN SOURCE (a compatible partner cultivar); attracting the bees that carry it is the separate insectary mechanism.\n",
      "evidence": {
        "status": "verified",
        "pointers": [
          "Univ. of Illinois Extension, 'Fruitfulness and Pollination' (Fruit Trees for Home Gardens), extension.illinois.edu/fruit-trees/fruitfulness-and-pollination (read 2026-08-22): 'Self-fruitful trees may be planted alone or in solid blocks of one variety. Most peach, nectarine, and sour cherry varieties are self-fruitful'; 'A self-unfruitful tree will not set a normal crop of fruits when pollinated by its own pollen or by pollen of another tree of the same variety'; 'Self-unfruitful trees require pollination by pollen from a tree of a different variety'; 'A tree of a self un- fruitful variety should have a pollinator tree planted within 300 feet'; 'European-type plums will not cross pollinate most Japanese type plums'; 'Honey bees are the most important means of transferring pollen between blossoms.'",
          "Iowa State Univ. Extension, 'Pollination Requirements for Tree and Small Fruits', yardandgarden.extension.iastate.edu/how-to/pollination-requirements-tree-and-small-fruits (read 2026-08-22): 'Fruit trees that require two different varieties for pollination should be planted within 50 to 100 feet of one another to ensure a good fruit set'; 'Apples are considered self-unfruitful. Most apple varieties will set a small crop with their own pollen. For maximum production, however, plant at least two different varieties with overlapping bloom periods to ensure cross-pollination and fruit set'; 'Most flowering crabapples will pollinate nearby apple trees if they bloom at the same time'; 'Most European pears are self-unfruitful. Plant at least two different cultivars for maximum fruit production'; 'European plums are partially to entirely self-fruitful'; 'European plums will not pollinate hybrid plums and vice versa'; 'Tart (also called sour or pie) cherries are self-fruitful'; 'Most peach cultivars are self-fruitful.'",
          "Penn State Extension, 'Pollination Requirements for Various Fruits and Nuts', extension.psu.edu/pollination-requirements-for-various-fruits-and-nuts (read 2026-08-22): 'Apple: Cross-pollination is always needed to produce adequate fruit crop'; 'Pear: A few varieties are self-fruitful, but a pollinizer will improve the crop'; 'Plum: A wide diversity occurs in the plums. About half of the varieties are self-fruitful and half are not. To be on the safe side, pollinizers should be provided'; 'Red tart: The commercial varieties are self-fruitful'; 'Peach: All commercial varieties, except J. H. Hale, are self-fruitful.'"
        ],
        "note": "PROMOTED TO VERIFIED 2026-08-22 (invariant 4): three land-grant extension pages (Illinois, Iowa State, Penn State) were fetched live in-container as raw HTML, every quoted line re-confirmed verbatim against the raw pages, and the maintainer read and confirmed them 2026-08-22, including the sour-cherry reversal and the two-distance fork. UMD's fruit-tree pollination page was also sought but returned HTTP 403 and is not cited. `verified` records the read, not the strength; provenance sits in `note`, not a pointer (e2e scenario 29).\n"
      },
      "derived_ruling": "advise",
      "page_slug": "tree-fruits-differ-whether-lone-tree-can"
    },
    {
      "id": "R-138",
      "type": "timing",
      "grade": "B",
      "severity": "suboptimal",
      "ruling": "advise",
      "applies_to": {
        "family": [
          "fabaceae"
        ],
        "frost_tolerance": "tender"
      },
      "trigger": {
        "kind": "always"
      },
      "claim": "A warm-season bean needs warm soil to germinate, not just a passed frost date — sown into cold, frost-free soil the seed rots before it sprouts.\n",
      "mechanism": "A bean seed takes up water within hours of sowing. In cold soil that fast, cold-water uptake injures the seed's rehydrating cell membranes, and the damaged membranes leak sugars that feed soil fungi (Pythium, Rhizoctonia), so the seed rots in the ground instead of germinating. Peas and fava tolerate cold soil and are exempt. The last-frost date is a floor for the seedling, not the seed: the soil can be frost-free and still too cold for a bean, so this bar sits above the frost floor another rule already sets for tender crops.\n",
      "remedy": "Wait for the soil to warm, which in a cold spring is a week or more after the last frost, not on it. A cheap soil thermometer pushed to seed depth in the morning is the honest check; sow when it reads reliably warm. A cold-soil sowing that rots is simply re-sown into warm soil, at the cost of the lost time.\n",
      "effect_size": "No degree figure is stated — the corpus carries no sourced soil-temperature minimum for these species and inventing one would be a fabricated number. The direction is well established: cold-soil bean sowings rot and grow slowly, warm-soil sowings emerge fast and even. It advises rather than gates, because the soil-warmth bar is regional and the app cannot read a bed's soil.\n",
      "scope_note": "A STANDING sowing advisory scoped to warm-season legumes (applies_to family fabaceae + frost_tolerance tender: common, lima and runner bean, cowpea, soybean). It COMPLEMENTS the tender-crop frost floor rather than duplicating it — that rule gates on the frost date, this names the higher soil-warmth bar the frost date misses. Like the inoculant rule it does not gate placement or dock a score: the app has no soil-temperature signal, so it advises on the species page and can be cited by the bean guides. It is the corpus's first soil-temperature sowing rule.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "UMN Extension, 'Growing beans', extension.umn.edu/vegetables/growing-beans (fetched 2026-08-30): 'Plant beans once the soil has warmed. In much of Minnesota, this is not until late May or even early June'; 'Bean seed planted in cold soil may rot rather than germinate, and plant growth will be very slow in cooler weather.'"
        ],
        "note": "DRAFTED by Claude 2026-08-30 from a live in-container fetch of the UMN page; status stays unverified per invariant 4 until a human reads the source and promotes. The UMN page supports the OUTCOME the rule advises on (cold soil rots bean seed; wait for warmth past the frost date). The imbibitional-chilling / membrane-leakage MECHANISM is standard seed physiology (large-seeded warm-season legumes are the textbook case) but is asserted here from general knowledge, not from this pointer, and should be confirmed against a seed-physiology source before promotion.\n"
      },
      "derived_ruling": "advise",
      "page_slug": "warm-season-bean-needs-warm-soil-germinate"
    }
  ],
  "beliefs": [
    {
      "id": "B-001",
      "former_id": "R-060",
      "belief": "Basil improves the flavour of adjacent tomatoes.",
      "keys": [
        "basil",
        "tomato",
        "companion planting",
        "flavour",
        "flavor"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "No proposed mechanism. No trials. Extremely widely believed.\n",
      "response": "There's no evidence for this and no mechanism anyone has proposed. Plant basil next to tomatoes anyway — you'll want them at the same time in the kitchen.\n",
      "evidence": {
        "status": "no_evidence_exists",
        "pointers": []
      }
    },
    {
      "id": "B-002",
      "former_id": "R-062",
      "belief": "Companion planting charts encode real relationships.",
      "keys": [
        "companion planting",
        "companion chart",
        "carrots love tomatoes",
        "good neighbours",
        "bad neighbours"
      ],
      "grade": "F",
      "what_is_true": "The bulk of the modern companion-planting canon descends from early-20th-century biodynamic and anthroposophical writing, propagated through mid-century popular gardening literature. Individual pairings are rarely trialled. A minority have real named mechanisms — volatile masking, living mulch, insectary provisioning — and are recorded here as a good hunch. Most have nothing.\n",
      "response": "Most companion planting advice you'll find online is folklore. Here's what we can actually defend, and why.\n",
      "see_also": [
        "R-050",
        "R-051",
        "R-052",
        "R-053"
      ],
      "evidence": {
        "status": "unverified",
        "pointers": [
          "history of the companion planting literature"
        ]
      },
      "note": "The flagship. No plan state implies it, which is exactly why it could never have been a rule.\n"
    },
    {
      "id": "B-003",
      "former_id": "R-063",
      "belief": "Planting by lunar phase improves germination and yield.",
      "keys": [
        "moon",
        "lunar",
        "biodynamic",
        "planting calendar"
      ],
      "grade": "D",
      "mechanism": null,
      "response": "No mechanism, no trials. Plant when the soil is warm and the frost risk has passed.\n",
      "evidence": {
        "status": "no_evidence_exists",
        "pointers": []
      }
    },
    {
      "id": "B-004",
      "belief": "Epsom salts prevent blossom end rot.",
      "keys": [
        "epsom salts",
        "blossom end rot",
        "blossom-end rot",
        "magnesium for tomatoes"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "Blossom end rot is a localized calcium shortage in the fruit, driven by uneven water uptake — calcium rides the transpiration stream, so erratic watering starves the fruit tip even when soil calcium is adequate. It is not a magnesium deficiency. Epsom salts add magnesium, and magnesium competes with calcium for uptake, so they do nothing for BER and can make it slightly worse. The levers are even watering and mulch; get a soil test before adding any nutrient.\n",
      "response": "Epsom salts won't stop blossom end rot. BER is a calcium-transport problem caused by uneven watering, not a magnesium shortage — and added magnesium competes with calcium uptake. Water evenly, mulch to buffer soil moisture, and soil-test before adding anything.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "Iowa State University Extension, Yard & Garden, 'Blossom End Rot' (yardandgarden.extension.iastate.edu/encyclopedia/blossom-end-rot, read 2026-07-14): 'This is a problem born of calcium deficiency, most often the result of erratic watering'; 'Adding calcium to the soil is generally ineffective.' Confirms BER is a calcium-transport / water-management disorder, not a magnesium shortage — so Epsom salts (magnesium) cannot address it."
        ]
      }
    },
    {
      "id": "B-005",
      "belief": "Crushed eggshells deter slugs.",
      "keys": [
        "eggshells",
        "slugs",
        "slug barrier",
        "snails",
        "sharp barrier"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "The claim is that sharp edges form a barrier slugs won't cross. Slugs glide on a mucus layer and cross genuinely sharp surfaces; crushed eggshell weathers to blunt fragments quickly and does not reliably stop them. The shells do add a little calcium as they break down — that is their real contribution, in the compost, not as a barrier.\n",
      "response": "Eggshells don't reliably deter slugs — they cross far sharper surfaces on their mucus layer, and the \"barrier\" weathers away fast. Use beer traps, night hand-picking, or iron-phosphate bait; put the shells in the compost for the calcium.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "slug locomotion on mucus; barrier trials do not support"
        ]
      }
    },
    {
      "id": "B-006",
      "belief": "Coffee grounds acidify soil.",
      "keys": [
        "coffee grounds",
        "acidify soil",
        "lower soil pH",
        "coffee grounds blueberries",
        "used coffee grounds"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Fresh grounds are mildly acidic, but brewing extracts most of the acids, so used (spent) grounds are near neutral and their effect on soil pH is small and inconsistent. They will not durably acidify soil to blueberry range. As a thin mulch or compost input they are fine — a modest slow-release nitrogen source. To actually lower pH, use elemental sulfur guided by a soil test.\n",
      "response": "Used coffee grounds are close to pH-neutral — brewing washes the acid out — so they won't durably acidify your soil or make it blueberry-friendly. Compost them or use a thin mulch for the organic matter; to lower pH, use elemental sulfur guided by a soil test.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "University of Minnesota Extension, 'Do common soil health home remedies work?' (extension.umn.edu/manage-soil-nutrients/coffee-grounds-eggshells-epsom-salts, read 2026-07-14): 'Coffee grounds have not been shown to consistently lower soil pH.' Used (spent) grounds are near-neutral, so whatever pH change they bring is small and short-lived."
        ]
      }
    },
    {
      "id": "B-007",
      "belief": "You must rotate every crop to new ground every single year.",
      "keys": [
        "rotate every year",
        "crop rotation yearly",
        "must rotate annually",
        "annual rotation",
        "rotate everything"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Rotation intervals are pathogen- and family-specific, not a blanket yearly rule. This corpus encodes the ones with named mechanisms: Solanaceae ~3 years (R-010), Cucurbitaceae 2-3 (R-011), Brassicaceae 4-7 (R-012), with an allium/apiaceae break that needs its own rotation (R-013). A yearly shuffle of a crop under no soilborne pressure buys nothing, and perennials must not be rotated at all — tillage destroys the crown (R-072). Rotate against the specific pathogen, on its interval.\n",
      "response": "You don't have to rotate everything every year — intervals are family- and pathogen-specific. This corpus keeps the ones with real mechanisms (tomatoes ~3 yr, cucurbits 2-3, brassicas 4-7); a yearly shuffle of a low-pressure crop buys nothing, and perennials must never be rotated.\n",
      "see_also": [
        "R-010",
        "R-011",
        "R-012",
        "R-013",
        "R-072"
      ],
      "evidence": {
        "status": "unverified",
        "pointers": [
          "rotation intervals are family- and pathogen-specific; see rules R-010 through R-013 and R-072"
        ]
      }
    },
    {
      "id": "B-008",
      "belief": "Adding sugar or molasses to the soil makes tomatoes and other fruit sweeter.",
      "keys": [
        "sugar in soil",
        "molasses tomatoes",
        "sweeter tomatoes",
        "sweeten fruit",
        "sugar water plants"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "Roots do not absorb sucrose and carry it to the fruit — the molecule is far too large to enter a root intact, and soil microbes consume it long before a root could. The sugars in a ripe fruit are made in the leaves by photosynthesis and loaded into the fruit; how sweet it gets is set by the cultivar, by sunlight and healthy leaf area, and by ripening fully on the plant, with measured late-season water restriction concentrating flavour in some crops. Sugar or molasses in the soil feeds microbes, not the fruit.\n",
      "response": "Sugar in the soil won't sweeten your tomatoes — roots can't take up sucrose, and fruit sugar is made in the leaves by sunlight. For sweeter fruit: full sun, healthy foliage, a sweet cultivar, and letting it ripen on the plant (a little less water late in the season helps concentrate it).\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "roots do not take up sucrose; fruit sugars are photosynthate; extension horticulture consensus"
        ]
      }
    },
    {
      "id": "B-009",
      "belief": "A layer of gravel or pot shards at the bottom of a container improves drainage.",
      "keys": [
        "gravel in pots",
        "drainage layer",
        "pot shards",
        "crocks",
        "rocks bottom of pot",
        "container drainage"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "This one is genuinely unsettled, and the popular \"it's a myth, gravel makes drainage worse\" answer overstates the case. The theory behind that answer is the perched water table: water is held in the fine mix by capillarity and does not cross freely into a coarse layer, so a gravel bottom was predicted to push the saturated zone up into the root ball. But a 2025 controlled experiment on real containers found the opposite of the prediction — a coarse bottom layer almost always reduced or did not change water retention, and essentially never increased it, with a coarse-sand layer draining best. So a drainage layer does not reliably harm drainage and may modestly help. It is also not the fix it is sometimes sold as: a well-drained potting mix and an open drainage hole matter far more than anything layered at the bottom.\n",
      "response": "The old \"never put gravel in the bottom of a pot\" rule turns out to be overstated — a recent controlled test found a coarse bottom layer usually helps drainage a little or does nothing, not that it hurts. It's also no cure: a good potting mix and a real drainage hole matter far more. Layer or don't; just don't count on it to fix a soggy mix.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "PLoS ONE (2025), 'Effect of drainage layers on water retention of potting media in containers' (read 2026-07-14 via PMC PMC11856292): 'Drainage layers were almost universally found to either decrease or have no effect on the water-holding capacity of containers'; 'any drainage layer was likely to reduce water retention of any medium, and almost never increased it' — a controlled result that contradicts the perched-water-table prediction that a coarse bottom layer worsens drainage. Grade demoted F -> D 2026-07-14 on this evidence."
        ]
      }
    },
    {
      "id": "B-010",
      "belief": "Burying banana peels feeds plants potassium (roses in particular).",
      "keys": [
        "banana peels",
        "banana peel fertilizer",
        "potassium for roses",
        "bury banana peel",
        "kitchen scraps garden"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "A banana peel does contain potassium, but it is locked in undecomposed tissue. Buried whole and fresh it releases almost nothing on any useful timescale — it has to rot down first, which takes months — and meanwhile a shallow-buried peel can attract flies, rodents, and mould. The potassium is real; the \"instant fertiliser\" delivery is not. Composting it first turns the peel into a genuine slow contribution to organic matter.\n",
      "response": "Banana peels do hold some potassium, but a buried fresh peel releases next to nothing until it rots — months away — and can draw pests in the meantime. Compost them instead; if a plant needs potassium, a soil test tells you, and a balanced amendment delivers it now.\n",
      "see_also": [
        "R-017"
      ],
      "evidence": {
        "status": "unverified",
        "pointers": [
          "nutrients in undecomposed peel are not plant-available on a useful timescale; extension consensus"
        ]
      }
    },
    {
      "id": "B-011",
      "belief": "Marigolds repel most garden pests and protect the whole garden.",
      "keys": [
        "marigolds",
        "marigold pest repellent",
        "marigolds repel bugs",
        "tagetes",
        "marigolds protect garden"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Marigolds have one real, narrow effect: some Tagetes suppress root-knot nematodes in the soil when grown as a dense preceding stand, via the root compound alpha-terthienyl — a soil biofumigant effect on a specific soilborne pest, handled as a role in this corpus (R-061), not a scent that wards off insects. The broad folk claim — that a few marigolds dotted among the vegetables repel aphids, whiteflies, cabbage moths, or rabbits by smell — has no reliable field support.\n",
      "response": "Marigolds don't repel pests in general. Their one real effect is narrow: a dense planting of the right Tagetes, grown before a crop, suppresses root-knot nematodes in the soil (not a scent that wards off flying insects). Enjoy them for colour and pollinators; use the nematode trick on purpose if you need it.\n",
      "see_also": [
        "R-061"
      ],
      "evidence": {
        "status": "unverified",
        "pointers": [
          "University of Florida IFAS Extension, ENY-056 'Marigolds (Tagetes spp.) for Nematode Management' (read 2026-07-14): the effect is a dense preceding cover crop, not a scent repellent — 'alpha-terthienyl inhibits the hatching of nematode eggs'; 'Planting should be dense to ensure the best nematode control'; 'Marigolds cannot eradicate nematodes.' Backs the narrow root-knot-nematode mechanism (R-061); the general pest-repellent claim is unsupported."
        ]
      }
    },
    {
      "id": "B-012",
      "belief": "Watering plants in the midday sun scorches the leaves (water droplets focus sunlight like lenses).",
      "keys": [
        "watering midday",
        "water droplets burn leaves",
        "leaf scorch",
        "watering in sun",
        "magnifying glass leaves"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "Water droplets on a leaf do not focus sunlight into a burn. A droplet's focal point sits below the leaf surface, not on it, and on a flat leaf the droplet evaporates long before it could do damage — controlled trials find no scorching on smooth leaves. (Densely hairy leaves that hold a droplet above the surface are a rare theoretical exception, not the everyday lawn-and-veg case.) The real reason to prefer morning or evening watering is that far less is lost to evaporation in the heat of the day — an efficiency point, not a scorch risk. There is a second real reason, and it is about WHERE the water goes rather than when: a film of water on a leaf is what a fungal spore needs to germinate, which is why the soil is a better target than the foliage whatever the hour.\n",
      "response": "Watering in the midday sun won't scorch your leaves — droplets don't focus light onto the leaf, and they evaporate before they could. Water whenever the plant needs it — but aim at the soil rather than the leaves, because wet foliage invites fungal disease. Morning or evening just wastes less to evaporation.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "droplet focal point is below the leaf and evaporation precedes damage",
          "controlled leaf-scorch trials",
          "horticulture-myth literature",
          "Penn State Extension, 'Garden Myths: Watering', extension.psu.edu/garden-myths-watering (fetched in-container 2026-08-02, READ AND CONFIRMED BY THE MAINTAINER 2026-08-02 as R-105's third pointer): 'Leaf damage can occur due to many causes: too much or too little moisture, insect damage, disease, over-fertilization, and weather conditions such as wind or frost, not sun scorching.' WHAT THIS BACKS AND WHAT IT DOES NOT: it backs the REFUTATION only. It says nothing about a droplet's focal point and cites no controlled trial, so the first two pointers above remain general knowledge and this belief stays `unverified` — the status describes the whole claim, not its best-supported part. It is also the source behind the wet-foliage clause added to what_is_true, via the same page's 'avoid watering at the foliage of the plant which can lead to disease'. [read]"
        ]
      }
    },
    {
      "id": "B-013",
      "belief": "Talking to your plants, or playing them music, makes them grow better.",
      "keys": [
        "talking to plants",
        "music for plants",
        "sing to plants",
        "plants respond to voice",
        "sound plant growth"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "There is no reliable, reproducible effect. The occasional positive result is explained by the attention that comes with it — someone who talks to their plants tends to notice thirst, pests, and light problems sooner. The proposed physical mechanisms (a trace of exhaled CO2, sound vibration) are far too small to matter against normal air and wind. Harmless, and the extra attention is genuinely good for the plants.\n",
      "response": "Talking to or playing music for your plants won't grow them faster on its own — but the attention that comes with it will, because you'll spot thirst, pests, and shade sooner. Do it if you enjoy it; then act on what you notice.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "no reproducible sound/speech growth effect; apparent benefit is attention/observation; horticulture-myth literature"
        ]
      }
    },
    {
      "id": "B-014",
      "belief": "Sprinkling human hair, soap shavings, or urine around the garden reliably keeps deer and rabbits out.",
      "keys": [
        "human hair deer",
        "soap deer repellent",
        "urine repel rabbits",
        "deer deterrent",
        "rabbit deterrent home remedy"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "These smell-based home remedies give at best a brief, partial effect and then fail: the scent weathers away in days, and hungry deer and rabbits habituate quickly once nothing bad follows the smell. They are inconsistent from garden to garden and season to season. What actually keeps deer and rabbits out is a physical barrier of the right height (a fence), rotated commercial repellents, or resistant plant choices — not a one-time sprinkle.\n",
      "response": "Hair, soap, and urine \"deterrents\" fade fast and animals get used to them — they're not a reliable defence. If deer or rabbits are a real problem, a fence of the right height is the only dependable fix; rotate a commercial repellent and choose resistant plants to help.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "Colorado State University Extension, 'Preventing Deer Damage' (extension.colostate.edu/resource/preventing-deer-damage, read 2026-07-14): 'Home-remedy repellents are questionable at best'; 'Deer have been reported to eat the soap bars'; 'Materials that work in one area or for one person may not work at all in an area more highly frequented by deer'; 'Adequate fencing to exclude deer is the only sure way to control deer damage.'"
        ]
      }
    },
    {
      "id": "B-015",
      "belief": "Mixing sand into clay soil improves its drainage.",
      "keys": [
        "sand in clay soil",
        "improve clay drainage",
        "add sand to clay",
        "break up clay",
        "sandy loam clay"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "A modest amount of sand in clay does the opposite of what is intended. The fine clay fills the gaps between the sand grains, giving a dense, poorly-draining mix closer to concrete than to loam — to actually shift the texture you would need sand in huge volumes (over half by volume), which is impractical for a bed. The thing that genuinely opens clay is organic matter: compost and mulch build aggregate structure and the pore space that drains. (The container drainage-layer question, B-009, is a separate and more equivocal case; here the mechanism — sand filling clay's pore space — is well established.)\n",
      "response": "Don't add sand to clay to \"loosen\" it — in the amounts anyone actually adds, the clay fills the gaps and you get a denser, worse-draining mix. Work in compost and mulch instead; organic matter is what builds the structure that drains.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "University of Arkansas Cooperative Extension, 'Will adding sand help my clay soil?' (uaex.uada.edu, read 2026-07-14): 'If you mix sand into clay, the clay particles will fill in all the open spaces between the sand particles and often the clay will act as a glue sticking all particles together, ultimately resulting in a more dense soil'; 'The volume of sand that would need to be added to change the soil texture and characteristics of a clay soil is very high; 50% or more by volume in most cases'; organic matter 'can help improve soil structure resulting in improved drainage properties of all soils.'"
        ]
      }
    },
    {
      "id": "B-016",
      "belief": "Household vinegar is an effective weed killer.",
      "keys": [
        "vinegar weed killer",
        "vinegar herbicide",
        "kill weeds vinegar",
        "natural weed killer",
        "horticultural vinegar"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Household vinegar (about 5% acetic acid) is a contact desiccant: sprayed on a sunny day it burns the top growth of young, small annual weeds. It does not move into the roots, so anything established or perennial regrows from the crown within a week or two, and it is not selective — it burns whatever it lands on, crop included. The stronger \"horticultural\" vinegar (20%+) is not a gentle alternative: it is a corrosive that can burn skin and eyes and needs real protective gear. For seedlings in cracks it is a fine spot treatment; for a real weed problem it is not the tool it is sold as.\n",
      "response": "Vinegar only burns the tops of small, young weeds — it doesn't reach the roots, so established and perennial weeds grow right back, and it kills whatever it touches, including your crops. The stronger \"horticultural\" vinegar is caustic, not gentle. Use it for seedlings in pavement cracks, not as a lawn-and-bed weed killer.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "acetic acid is a non-selective contact desiccant that does not translocate to roots; horticultural vinegar is corrosive; extension weed-management guidance"
        ]
      }
    },
    {
      "id": "B-017",
      "belief": "Dish soap makes a safe, effective homemade insecticide, the same as insecticidal soap.",
      "keys": [
        "dish soap insecticide",
        "soap spray bugs",
        "homemade insecticidal soap",
        "dish soap plants",
        "soap spray aphids"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "A soap spray can kill soft-bodied insects (aphids, mites) on contact, but dish detergents are not insecticidal soaps. Detergents are degreasers: they dissolve the waxy cuticle that protects the leaf, so repeated or strong sprays cause phytotoxic burn, especially in heat or sun — the \"safe homemade version\" framing is exactly backwards. True insecticidal soaps are specific potassium-salt fatty-acid formulations tested not to damage foliage. If you use a dish-soap spray at all, it is a weak, dilute, rinse-after last resort, not an equivalent.\n",
      "response": "Dish soap isn't the same as insecticidal soap — detergents strip the leaf's protective wax and can burn foliage, so the \"safe homemade spray\" idea backfires. It does kill some soft-bodied pests, but if you want a soap spray, use a real insecticidal soap made not to harm the plant.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "University of Connecticut Home & Garden Education Center, 'Insecticidal Soaps' (homegarden.cahnr.uconn.edu/factsheets/insecticidal-soaps, read 2026-07-14): 'Dishwashing soaps and detergents are designed to remove grease from dishes and may cause plant damage by dissolving the waxy cuticle on plant leaf surfaces'; 'Insecticidal soaps are potassium salts of fatty acids' — so dish detergent is neither the same as nor a safe substitute for a formulated insecticidal soap."
        ]
      }
    },
    {
      "id": "B-018",
      "belief": "Crushed eggshells in the planting hole prevent blossom end rot.",
      "keys": [
        "eggshells blossom end rot",
        "eggshells tomatoes",
        "calcium planting hole",
        "eggshell calcium BER",
        "crushed eggshells"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "Blossom end rot is not a soil-calcium shortage — it is a calcium-transport failure inside the plant, driven by uneven watering (calcium rides the water stream, so erratic moisture starves the fruit tip even when soil calcium is fine; see the Epsom-salts belief, B-004). On top of that, eggshell calcium is locked in slow-dissolving calcium carbonate that takes seasons to break down, so it is not available to this year's fruit anyway. Two independent reasons the eggshell-in-the- hole trick can't work. The real levers are even watering and mulch, and a soil test before adding any amendment.\n",
      "response": "Eggshells in the planting hole won't stop blossom end rot. BER is a calcium-transport problem caused by uneven watering, not a soil-calcium shortage — and eggshell calcium takes seasons to break down, so it isn't available this year regardless. Water evenly, mulch to steady the moisture, and soil-test before adding anything.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "Iowa State University Extension, Yard & Garden, 'Blossom End Rot' (read 2026-07-14): 'This is a problem born of calcium deficiency, most often the result of erratic watering'; 'Adding calcium to the soil is generally ineffective' — so adding eggshell calcium to the planting hole does not address it (and eggshell CaCO3 is slow to become plant-available besides)."
        ]
      }
    },
    {
      "id": "B-019",
      "belief": "Compost tea (or manure tea) greatly boosts growth and suppresses plant disease.",
      "keys": [
        "compost tea",
        "manure tea",
        "compost tea disease",
        "aerated compost tea",
        "foliar compost tea"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Steeping compost in water extracts a little soluble nutrient, so a mild fertiliser effect is real — but no larger than just using the compost itself, which also builds the soil structure the tea does not. The bigger claim, that spraying compost tea protects plants from disease, is not reliably supported: trials are inconsistent and the effect, where seen at all, is small. There is a real downside, too: a poorly-aerated (anaerobic) brew, or one made with manure, can multiply human pathogens like E. coli and Salmonella, which is why food-safety guidance warns against spraying it on edible parts. Compost tea is a minor supplement at best, not a tonic or a fungicide.\n",
      "response": "Compost tea is a weak liquid feed at best — no better than using the compost itself, which also improves the soil the tea can't. The \"cures disease\" claims don't hold up in trials, and a badly brewed or manure-based tea can grow harmful bacteria you don't want on food crops. Put your compost on the beds; skip the tea as a disease cure.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "University of Connecticut, 'Compost, Compost Tea, and Manure: Food Safety Implications in the Vegetable Garden' (soiltesting.cahnr.uconn.edu/compost_compost_tea_and_manure, read 2026-07-14): 'ingredients commonly added to compost tea may promote growth of bacteria that can cause illness in humans, including Salmonella and E. coli'; unless methods minimize pathogens, 'it would be wise to save them ... for nonedible plants.' Backs the food-safety caveat; the disease-suppression benefit is inconsistent in trials."
        ]
      }
    },
    {
      "id": "B-020",
      "belief": "Radishes deter flea beetles.",
      "keys": [
        "radish",
        "flea beetle",
        "trap crop",
        "deter",
        "brassica pest",
        "holes in leaves"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Radish does not repel flea beetles; if anything it draws them. Flea beetles feed readily on radish foliage, which is exactly why radish is sometimes planted as a deliberate TRAP crop - the beetles concentrate on the sacrificial radish and you accept its holed leaves to spare the main crop. That is the opposite of a deterrent, and it works only if you are willing to lose the radish and pull it before the beetles move on. The same claim is made for radish \"protecting\" cucumbers or squash, with the same correction.\n",
      "response": "Radishes don't repel flea beetles - flea beetles like radish, which is why some gardeners use it as a trap crop and sacrifice it. If your radish leaves are riddled with tiny holes, that's flea beetles doing exactly what they do; it isn't protecting your other brassicas by scent.\n",
      "evidence": {
        "status": "unverified",
        "pointers": []
      }
    },
    {
      "id": "B-021",
      "belief": "Chives or garlic planted under a fruit tree prevent apple scab.",
      "keys": [
        "chives",
        "garlic",
        "apple scab",
        "fruit tree guild",
        "allium",
        "disease",
        "permaculture"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "A widely repeated permaculture-guild claim with no trial behind it and no proposed mechanism for how an allium's roots or scent would reach a leaf fungus. Apple scab (Venturia inaequalis) overwinters in fallen leaves and infects in wet spring weather; it is managed by resistant cultivars, raking up and removing the leaf litter, and where needed spray timing. An allium ring at the trunk does none of those things. It is the same shape as the garlic-deters-borers claim this corpus already records as having no evidence.\n",
      "response": "There's no evidence that chives or garlic under an apple tree prevent scab, and no mechanism for it - scab lives in last year's fallen leaves and infects in wet spring weather. Choose a scab-resistant variety, rake up and bin the dropped leaves, and you've done the things that actually work.\n",
      "see_also": [
        "R-075c"
      ],
      "evidence": {
        "status": "no_evidence_exists",
        "pointers": []
      }
    },
    {
      "id": "B-022",
      "belief": "Cinnamon or chamomile tea prevents damping-off in seedlings.",
      "keys": [
        "cinnamon",
        "chamomile",
        "damping off",
        "seedling",
        "fungus",
        "home remedy",
        "seed starting"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Cinnamon contains compounds with antifungal activity in a lab dish, which is where this remedy comes from, but there is no reliable evidence that dusting cinnamon - or watering with chamomile tea - prevents damping-off on a seed tray. What prevents damping-off is not a topical additive but the setup: fresh sterile mix, clean containers with drainage, warmth and airflow, and not overwatering. A remedy sprinkled on top does not fix a cold, wet, overwatered tray, which is where damping-off comes from.\n",
      "response": "Cinnamon and chamomile tea are popular anti-damping-off remedies because cinnamon is antifungal in a lab dish - but there's no good evidence either one saves a seed tray. What prevents damping-off is the setup, not a topping: fresh sterile mix, clean pots with drainage, warmth and airflow, and going easy on the water.\n",
      "see_also": [
        "R-114"
      ],
      "evidence": {
        "status": "unverified",
        "pointers": []
      }
    },
    {
      "id": "B-023",
      "belief": "Bone meal helps transplants and bulbs put down roots.",
      "keys": [
        "bone meal",
        "bulb fertilizer",
        "root booster",
        "phosphorus for roots",
        "bone meal transplants",
        "rooting"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Bone meal is mostly phosphorus, and phosphorus genuinely is involved in root development — that is where the belief comes from. But it rests on two shaky steps. First, most established garden soils already hold plenty of phosphorus; unless a soil test shows a real deficiency, adding more does nothing for rooting. Second, phosphorus barely moves in soil and bone meal only releases it as it slowly breaks down, mainly in acidic soil — so scattered in a planting hole at neutral or alkaline pH it is largely locked up and unavailable this season anyway. Excess phosphorus is not harmless either: it can suppress the mycorrhizal fungi that actually help roots forage. The levers for strong roots are the right planting depth, even moisture, and not overfeeding — and a soil test before adding any phosphorus, because you cannot tell by looking.\n",
      "response": "Bone meal isn't a rooting tonic. It's phosphorus, and unless a soil test shows your soil is short of it, adding more won't grow better roots — phosphorus hardly moves in soil and stays locked up in neutral or alkaline ground anyway. Plant at the right depth, water evenly, and soil-test before adding phosphorus; too much can even set back the fungi that help roots.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "phosphorus is immobile in soil and rarely limiting in established garden beds; excess P can suppress mycorrhizae; soil-test before adding phosphorus — extension consensus"
        ]
      }
    },
    {
      "id": "B-024",
      "belief": "Sprinkling baking soda around tomato plants makes the fruit sweeter.",
      "keys": [
        "baking soda tomatoes",
        "sweeter tomatoes",
        "sodium bicarbonate soil",
        "reduce tomato acidity",
        "baking soda garden"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "How sweet or tart a tomato tastes is set by the sugars and acids the plant makes in its leaves and loads into the fruit — driven by the cultivar, by sunlight and healthy foliage, and by ripening fully on the plant. Soil pH does not titrate the fruit's acidity, and a sprinkle of baking soda barely moves soil pH anyway, and only briefly. Worse, baking soda is sodium bicarbonate: the sodium it leaves behind damages soil structure and is taken up by the plant, so repeated use does harm rather than good. There is no path from baking soda in the ground to a sweeter tomato. (It is the same physiology as the sugar-in-the-soil belief, B-008: fruit sugar is made in the leaves, not delivered from the ground.)\n",
      "response": "Baking soda won't sweeten your tomatoes. Sweetness is sugar the plant makes in its leaves from sunlight, not something soil pH controls — and baking soda's sodium actually harms soil and roots. For sweeter fruit: a sweet cultivar, full sun, healthy leaves, and letting it ripen on the plant.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "fruit sugars and acids are set by photosynthesis and cultivar",
          "not by soil pH; sodium from sodium bicarbonate harms soil structure and plant uptake; extension horticulture consensus"
        ]
      }
    },
    {
      "id": "B-025",
      "belief": "Coffee grounds scattered around plants repel slugs, snails, and other pests.",
      "keys": [
        "coffee grounds slugs",
        "coffee grounds pests",
        "caffeine slugs",
        "coffee grounds snails",
        "coffee grounds repel"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "This comes from a real finding — caffeine at high concentration is toxic to slugs and snails, and a caffeine spray suppressed them in one study. But used coffee grounds are not a caffeine barrier: brewing removes much of the caffeine, a scatter of grounds delivers nowhere near the concentration that study used, and field trials do not find grounds reliably deter slugs. The grounds can also dry into a water-repellent crust that does more for the myth than for the plant. As a thin mulch or a compost input the grounds are fine — a modest slow nitrogen source — but as a pest barrier they are not the tool they are sold as. (The separate claim that grounds acidify soil is its own belief, B-006; the eggshell version of the sharp-barrier idea is B-005.)\n",
      "response": "Coffee grounds don't reliably repel slugs or other pests — the idea comes from caffeine being toxic to slugs in the lab, but used grounds carry far too little to work as a barrier, and trials don't back it. Use beer traps, night hand-picking, or iron-phosphate bait for slugs; compost the grounds or spread a thin mulch for the organic matter.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "caffeine is toxic to slugs at high concentration but used grounds deliver far less; field trials do not support grounds as a slug or pest barrier; extension consensus"
        ]
      }
    },
    {
      "id": "B-026",
      "belief": "Spraying diluted milk on the leaves prevents or cures powdery mildew.",
      "keys": [
        "milk spray",
        "powdery mildew",
        "milk fungicide",
        "diluted milk leaves",
        "milk powdery mildew squash"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Unusually for a home remedy, this one has real trials behind it: diluted milk sprayed on cucurbits reduced powdery mildew severity in controlled field studies, in some cases comparably to a conventional fungicide. But it is not the settled cure the enthusiasm suggests. Results vary a lot by crop, dilution and climate; the mechanism is not pinned down (proposed routes include milk salts and proteins generating reactive oxygen in sunlight); and too strong or too frequent a spray can leave its own residue and odour. It works best as a preventive on a susceptible crop, applied alongside — not instead of — the things that reliably matter: resistant varieties, spacing and airflow, and removing infected leaves.\n",
      "response": "Milk spray for powdery mildew is the rare home remedy with real trials behind it — diluted milk cut mildew on squash and cucumbers in field studies, sometimes as well as a fungicide. But it isn't a guaranteed cure: results swing with crop and weather, and it's a preventive, not a rescue. Use it if you like, but lean first on resistant varieties, good spacing and airflow, and pulling infected leaves.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "controlled field trials on cucurbits report diluted milk sprays reduced powdery mildew severity",
          "sometimes comparably to fungicide; results inconsistent across crops and the mechanism is unresolved; general knowledge",
          "not verified here"
        ]
      }
    },
    {
      "id": "B-027",
      "belief": "Burying rusty nails adds iron that greens up plants and turns hydrangeas blue.",
      "keys": [
        "rusty nails",
        "iron for plants",
        "nails in soil",
        "blue hydrangeas",
        "hydrangea colour",
        "iron chlorosis",
        "greening plants"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Two separate claims ride on this, and both miss. Yellowing leaves (chlorosis) are usually not a shortage of iron in the soil — most soils hold plenty — but iron that is *locked up* and unavailable because the pH is too high; a rusty nail adds a trace of slowly-oxidising metallic iron that is itself not plant-available, so it does nothing for the yellowing. And hydrangea colour is not an iron effect at all: blue flowers come from *aluminium* the plant takes up in acidic soil, pink from aluminium being unavailable in alkaline soil — iron is not the lever. The real fixes are set by a soil test: to free up iron, lower the pH (elemental sulfur) or use a chelated-iron foliar feed; to blue a hydrangea, acidify the soil (often with aluminium sulfate), which is about pH and aluminium, not nails.\n",
      "response": "Rusty nails won't green up your plants or turn hydrangeas blue. Yellow leaves usually mean iron is locked up by high pH, not missing — and a nail's iron isn't available anyway; hydrangea blue is an aluminium-and-pH effect, nothing to do with iron. Soil-test first, then lower pH (elemental sulfur) or use a chelated-iron feed for yellowing, and acidify the soil to blue a hydrangea.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "iron chlorosis is usually pH-induced unavailability",
          "not a soil iron shortage",
          "and metallic iron from nails is not plant-available; hydrangea sepal colour is controlled by aluminium uptake under acidic pH",
          "not iron; extension consensus"
        ]
      }
    },
    {
      "id": "B-028",
      "belief": "Spraying plants with dissolved aspirin boosts their immune system and health.",
      "keys": [
        "aspirin spray",
        "aspirin plants",
        "salicylic acid plants",
        "aspirin tomatoes",
        "plant immunity spray",
        "aspirin fungicide"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "There is a real phenomenon underneath this: salicylic acid — chemically close to the acetylsalicylic acid in aspirin — is a signalling molecule plants use to switch on systemic acquired resistance, a genuine defence response, and lab and greenhouse studies have primed that response with salicylates. But that is a long way from \"dissolve an aspirin and spray.\" Home dosing is guesswork, garden-scale results are inconsistent, and too strong a solution burns foliage (spotting, scorch) — the opposite of health. It is not a substitute for the things that reliably prevent disease: resistant varieties, spacing and airflow, clean tools, and removing infected tissue. An interesting real mechanism, not a garden tonic to count on.\n",
      "response": "Aspirin spray isn't a proven plant tonic. There's a real kernel — salicylic acid does trigger a plant defence response in the lab — but home dosing is guesswork, results in the garden are inconsistent, and too strong a mix burns leaves. Lean on resistant varieties, airflow, clean tools, and pulling infected leaves; treat aspirin as a curiosity, not a routine.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "salicylic acid induces systemic acquired resistance in controlled studies",
          "but garden-scale aspirin-spray results are inconsistent and overdose is phytotoxic; extension consensus"
        ]
      }
    },
    {
      "id": "B-029",
      "belief": "Spreading cornmeal on soil or lawns cures fungal disease.",
      "keys": [
        "cornmeal fungicide",
        "cornmeal lawn",
        "cornmeal brown patch",
        "cornmeal soil fungus",
        "corn meal disease"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "This traces to a real observation — cornmeal worked into some field soils encouraged Trichoderma, a beneficial fungus that antagonises certain plant pathogens — but it has not held up as a reliable garden or lawn fungicide, and extension trials do not support treating brown patch, damping-off or root rot with it. (Don't confuse plain cornmeal with corn GLUTEN meal, a different product marketed as a pre-emergent weed suppressant, whose own evidence is weak and slow.) What actually manages soilborne fungal problems is the setup: drainage, not overwatering, good airflow, resistant varieties, and cleaning up infected debris.\n",
      "response": "Cornmeal isn't a reliable fungicide. The idea comes from a real finding that it can feed a beneficial soil fungus, but that hasn't panned out as a lawn or garden disease cure in trials. Manage fungal problems with drainage, airflow, resistant varieties, and clearing infected debris — and don't confuse it with corn gluten meal, a separate weed product.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "the cornmeal-Trichoderma observation does not reproduce as a reliable garden or lawn fungicide in extension trials; corn gluten meal is a distinct pre-emergent with weak evidence; extension consensus"
        ]
      }
    },
    {
      "id": "B-030",
      "belief": "Watering with hydrogen peroxide oxygenates the roots and cures root rot.",
      "keys": [
        "hydrogen peroxide plants",
        "peroxide root rot",
        "oxygenate roots",
        "h2o2 watering",
        "peroxide soil drench"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Hydrogen peroxide does release oxygen as it breaks down, which is where the idea comes from — but in soil it decomposes almost instantly on contact with organic matter and microbes, so any oxygen boost to the roots is fleeting and negligible, not a lasting supply. At concentrations strong enough to do anything it is indiscriminate: it harms beneficial soil life and fine root hairs along with any pathogen. Root rot is really a drainage-and-overwatering problem — the water-mould pathogens that cause it thrive in waterlogged soil — so the fix is a free-draining mix, a working drainage hole, and watering less, not a peroxide drench.\n",
      "response": "Hydrogen peroxide won't oxygenate your roots or cure root rot. It does give off oxygen, but in soil it fizzes away in seconds, and strong enough to matter it burns roots and soil life alike. Root rot comes from waterlogged soil — fix the drainage and ease off the watering; that's what actually saves the roots.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "hydrogen peroxide decomposes near-instantly in soil so any root oxygenation is transient and negligible",
          "and meaningful concentrations harm soil biota and roots; root rot is a drainage/overwatering (oomycete) problem; extension consensus"
        ]
      }
    },
    {
      "id": "B-031",
      "belief": "Fresh manure is a safe, ready-to-use fertiliser you can spread straight onto the garden.",
      "keys": [
        "fresh manure",
        "raw manure",
        "manure fertiliser",
        "manure burn",
        "aged manure",
        "hot manure",
        "manure food safety"
      ],
      "grade": "F",
      "mechanism": null,
      "what_is_true": "Manure is a genuinely good soil amendment — once it is composted or aged. Fresh (\"hot\") manure is not the same thing, and spreading it straight on is a real mistake for two separate reasons. It is high in ammonia and soluble salts, which burn roots and foliage. And raw manure can carry human pathogens — E. coli O157:H7, Salmonella, Listeria — which is a food-safety matter, not a preference: guidance for raw manure on food crops sets long intervals between application and harvest (commonly around 90 to 120 days depending on whether the edible part contacts the soil), or requires proper hot composting first. Compost it, age it, or keep it well away from the harvest window; do not treat fresh manure as a drop-in fertiliser.\n",
      "response": "Fresh manure isn't a ready-to-use fertiliser. It burns plants with ammonia and salts, and raw manure can carry harmful bacteria like E. coli and Salmonella — a real food-safety risk on vegetables. Compost or age it first, or keep raw manure well clear of the harvest (guidance sets months between spreading and picking). Well-rotted manure or finished compost is the safe version.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "fresh manure is high in ammonia and soluble salts that scorch plants; raw manure can carry human pathogens (E. coli O157:H7",
          "Salmonella)",
          "and food-safety guidance sets long pre-harvest intervals (roughly 90-120 days) or requires composting; extension and food-safety consensus"
        ]
      }
    },
    {
      "id": "B-032",
      "belief": "More fertiliser means bigger, healthier plants.",
      "keys": [
        "more fertilizer",
        "overfertilizing",
        "fertilizer burn",
        "feed heavily",
        "extra fertilizer",
        "too much fertilizer"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Fertiliser genuinely helps a plant that is short of a nutrient — that is the kernel of truth — but the relationship is not \"more is more.\" Past the point where a nutrient is limiting, extra does harm: soluble salts build up and scorch roots (\"fertiliser burn\"), excess nitrogen pushes soft leafy growth at the expense of flowers and fruit and makes plants more attractive to pests, and an oversupply of one nutrient can block the uptake of another. The surplus that the plant cannot use leaches into groundwater and waterways. The right amount is set by what the soil is actually short of — which a soil test tells you — not by generosity.\n",
      "response": "More fertiliser doesn't mean bigger, healthier plants. Past what a plant actually needs, the extra burns roots, pushes weak leafy growth over fruit, and runs off into waterways. Feed what the soil is short of, not more — and a soil test is what tells you the amount. When in doubt, less.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "nutrient response saturates and then reverses - excess soluble salts cause fertiliser burn",
          "surplus nitrogen favours foliage over fruit and invites pests",
          "and nutrient excess induces other deficiencies and leaching; the rate is set by a soil test; extension consensus"
        ]
      }
    },
    {
      "id": "B-033",
      "belief": "If you buy good compost or bagged soil, your native ground underneath doesn't matter.",
      "keys": [
        "bagged soil",
        "topsoil on top",
        "native soil",
        "compost over clay",
        "raised bed over clay",
        "don't need to improve soil"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "Good compost or a bagged mix helps, but a thin cap of it over unimproved ground is not a fix, and in-ground it can make things worse. Water moves poorly across the sharp interface between a fluffy imported layer and compacted native soil below, so it perches at the boundary; and roots reach the native soil within a season, so its drainage and structure still govern how the plant does. Raised beds are more forgiving because the rooting volume is deeper, but they still interact with the ground at their base. The durable answer is to improve the native soil with organic matter over time — and where drainage is genuinely bad, a tall raised bed or containers with a consistent mix, not a shallow layer of good soil over bad.\n",
      "response": "Buying good soil doesn't let you ignore the ground underneath. A thin layer over compacted native soil perches water at the boundary, and roots reach the native soil within a season anyway. Improve your own soil with organic matter over time; if drainage is truly bad, go with a tall raised bed or containers rather than a shallow cap of bagged mix.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "a texture interface between an imported layer and compacted native soil perches water and impedes root and water movement across the boundary; roots reach native soil within a season; extension consensus on soil improvement vs layering"
        ]
      }
    },
    {
      "id": "B-034",
      "belief": "Seeds saved from hybrid vegetables grow true to the parent plant.",
      "keys": [
        "save hybrid seeds",
        "F1 seeds",
        "hybrid seed saving",
        "seeds come true",
        "heirloom vs hybrid",
        "saving tomato seed"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "You can save and grow seed from an F1 hybrid — the kernel of truth — but it does not come true. An F1 hybrid is the first cross of two distinct parent lines, and its seed (the F2 generation) segregates: the offspring are a genetic lottery, a mix of the grandparents' traits, often less vigorous and rarely matching the plant you saved from. Open-pollinated and heirloom varieties are the ones that come true, because they are stabilised over generations to breed true. So save seed from open-pollinated varieties if you want next year's plants to match; from an F1 hybrid, expect variety, not a copy.\n",
      "response": "Seeds from a hybrid won't grow true to the parent. An F1 hybrid's seed scatters the traits — you get a mixed, often weaker crop, not a copy. If you want to save seed that comes true, grow open-pollinated or heirloom varieties; saving hybrid seed is a fun experiment, not a way to keep a variety.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "F1 hybrid seed segregates in the F2 generation so offspring do not come true and are often less vigorous; open-pollinated/heirloom varieties breed true; standard plant-genetics and seed-saving consensus"
        ]
      }
    },
    {
      "id": "B-035",
      "belief": "Watering a little every day is the best way to water a garden.",
      "keys": [
        "water every day",
        "daily watering",
        "deep watering",
        "watering frequency",
        "shallow watering",
        "how often to water"
      ],
      "grade": "D",
      "mechanism": null,
      "what_is_true": "For most established in-ground plants, a light daily sprinkle is the wrong default. It wets only the top of the soil, so roots stay shallow chasing that moisture — which leaves the plant less able to find water and more stressed the moment you miss a day or a heatwave hits. Deep, less frequent watering soaks the root zone and draws roots down, building a more resilient plant, and it loses less to evaporation. There are real exceptions the rule has to name: seedlings, new transplants, and containers dry out fast and often do need daily (or more) water. The honest guide isn't a fixed schedule at all — it's soaking deeply, then letting the top of the soil dry before the next deep water, adjusted to your soil, weather, and crop.\n",
      "response": "Watering a little every day usually isn't best — it keeps roots shallow and thirsty, so plants cope worse when it's hot. For established plants, water deeply and less often, and let the top of the soil dry between soakings. The exceptions are real: seedlings, new transplants, and containers dry out fast and may genuinely need water daily.\n",
      "evidence": {
        "status": "unverified",
        "pointers": [
          "frequent shallow watering keeps roots near the surface and reduces drought resilience",
          "while deep infrequent watering draws roots down and loses less to evaporation; seedlings/transplants/containers are genuine high-frequency exceptions; extension irrigation guidance"
        ]
      }
    }
  ],
  "climate": {
    "version": 1,
    "normals_period": "1991-2020",
    "attribution": "NOAA NCEI 1991-2020 U.S. Climate Normals (public domain)",
    "sites": [
      {
        "key": "houston",
        "lat": 29.76,
        "lon": -95.37,
        "last_frost_32f": {
          "p10": "03-05",
          "p20": "02-28",
          "p30": "02-18",
          "p40": "02-09",
          "p50": "02-02"
        },
        "first_freeze_32f_p50": "12-24",
        "growing_season_days_p50": 326,
        "summer_night_tmin_c": 24.5,
        "hardiness": {
          "zone": 9,
          "label": "9a",
          "extreme_min_c": -5.3,
          "grade": "B",
          "source": "USDA PHZM 2023 (1991-2020 annual extreme-minimum-temperature normals)",
          "caveat": "USDA hardiness zone, from the average annual extreme minimum temperature — a DIFFERENT quantity than the frost dates above. Zone gates perennial winter survival (R-076); frost schedules annuals (R-032); do not conflate them (D-005). Nearest PHZM grid cell."
        },
        "provenance": {
          "tier": 2,
          "grade": "B",
          "method": "nearest_ncei_station_plus_prism_offset",
          "station": {
            "id": "USC00414326",
            "name": "Houston-Port",
            "distance_km": 8.8
          },
          "offset_c": -0.01,
          "days_per_c": 7.2,
          "shift_days_p50": 0.1,
          "terrain_std_c": 0.111,
          "caveat": "Frost dates are the station's, shifted to the site by the PRISM terrain offset (offset_c) using the station's own days-per-degree. The shift assumes the spatial pattern of mean minimum temperature predicts the spatial pattern of last-frost date (R-091)."
        }
      },
      {
        "key": "monterey",
        "lat": 36.6,
        "lon": -121.89,
        "last_frost_32f": {
          "p10": "01-21",
          "p20": "01-14",
          "p30": "01-09",
          "p40": "01-04",
          "p50": "01-01"
        },
        "first_freeze_32f_p50": "12-30",
        "growing_season_days_p50": 365,
        "summer_night_tmin_c": 11.3,
        "hardiness": {
          "zone": 10,
          "label": "10b",
          "extreme_min_c": 3.1,
          "grade": "B",
          "source": "USDA PHZM 2023 (1991-2020 annual extreme-minimum-temperature normals)",
          "caveat": "USDA zone from the average annual extreme minimum temperature; nearest PHZM grid cell. Coastal — mild winters, no meaningful chill for pome/stone fruit."
        },
        "provenance": {
          "tier": 2,
          "grade": "B",
          "method": "nearest_ncei_station_plus_prism_offset",
          "station": {
            "id": "USC00045795",
            "name": "Monterey",
            "distance_km": 3.2
          },
          "offset_c": 0.0,
          "days_per_c": 8.1,
          "shift_days_p50": 0.0,
          "terrain_std_c": 0.569,
          "caveat": "Frost dates are the station's, shifted to the site by the PRISM terrain offset (offset_c) using the station's own days-per-degree. The shift assumes the spatial pattern of mean minimum temperature predicts the spatial pattern of last-frost date (R-091)."
        }
      },
      {
        "key": "minneapolis",
        "lat": 44.98,
        "lon": -93.26,
        "last_frost_32f": {
          "p10": "05-08",
          "p20": "05-03",
          "p30": "04-30",
          "p40": "04-26",
          "p50": "04-23"
        },
        "first_freeze_32f_p50": "10-15",
        "growing_season_days_p50": 174,
        "summer_night_tmin_c": 16.4,
        "hardiness": {
          "zone": 5,
          "label": "5a",
          "extreme_min_c": -27.5,
          "grade": "A",
          "source": "USDA PHZM 2023 (1991-2020 annual extreme-minimum-temperature normals)",
          "caveat": "USDA zone from the average annual extreme minimum temperature; PHZM grid cell at a 1 km station (matches this site's grade-A frost provenance)."
        },
        "provenance": {
          "tier": 2,
          "grade": "A",
          "method": "nearest_ncei_station_plus_prism_offset",
          "station": {
            "id": "USC00214884",
            "name": "Lower St Anthony Falls",
            "distance_km": 1.0
          },
          "offset_c": -0.11,
          "days_per_c": 4.5,
          "shift_days_p50": 0.5,
          "terrain_std_c": 0.22,
          "caveat": null
        }
      },
      {
        "key": "berlin",
        "lat": 52.52,
        "lon": 13.4,
        "last_frost_32f": {
          "p10": "04-23",
          "p20": "04-21",
          "p30": "04-19",
          "p40": "04-14",
          "p50": "04-12"
        },
        "first_freeze_32f_p50": "11-06",
        "growing_season_days_p50": 208,
        "summer_night_tmin_c": 14.2,
        "hardiness": {
          "zone": 7,
          "label": "7b",
          "extreme_min_c": -13.5,
          "grade": "C",
          "source": "Derived from ERA5 daily minima (Open-Meteo), 1991-2020 — USDA-equivalent band",
          "caveat": "USDA-equivalent zone from the average annual extreme minimum temperature, derived from the ~25 km ERA5 cell (no NCEI/PHZM coverage outside the US); grade C, matching this site's frost provenance."
        },
        "provenance": {
          "tier": 3,
          "grade": "C",
          "method": "era5_open_meteo_daily_min",
          "grid": {
            "lat": 52.548,
            "lon": 13.408
          },
          "source": "ERA5 reanalysis via Open-Meteo archive, 1991-2020 daily minima",
          "years": 30,
          "caveat": "Modelled from a ~25 km ERA5 reanalysis cell — no NCEI station within the calibrated range. Frost percentiles are the order statistics of 30 years of ERA5 daily minima, not station observations; expect error in complex terrain (R-092). No PRISM terrain offset (outside CONUS coverage)."
        }
      }
    ]
  },
  "scenes": {
    "garden-rows-field": {
      "file": "garden-rows-field-2.webp",
      "alt": "A vegetable garden of long planted rows in open ground, seen across the beds",
      "caption": "Rows in open ground — the kitchen garden at Eisenhower National Historic Site.",
      "artist": "Mary O'Neill",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Vegetable_garden_at_Eisenhower_National_Historic_Site._(b23c07a7-6122-44cf-941c-34fc8116cbb8).jpg"
    },
    "autumn-harvest-basket": {
      "file": "autumn-harvest-basket-1.webp",
      "alt": "A late-summer garden harvest arranged on a round wooden table — courgettes, ripe tomatoes, pale peppers, beetroot with its leaves, herbs and cut sunflower heads beside a white wicker basket",
      "caption": "A single day's harvest, late in the season.",
      "artist": "SA, The Green Ark- Bostanie",
      "licence": "CC BY 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:The_harvest_basket.jpg"
    },
    "watering-can-bed": {
      "file": "watering-can-bed-1.webp",
      "alt": "Square vegetable beds under low crop-protection cages in a walled kitchen garden, a Victorian brick water tower rising behind the wall",
      "caption": "A walled kitchen garden in early summer.",
      "artist": "Acabashi",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Vegetable_garden_Easton_Lodge_Gardens_walled_garden_Water_Tower_Little_Easton_Essex_England_01.jpg"
    },
    "tomatoes-on-vine": {
      "file": "tomatoes-on-vine-1.webp",
      "alt": "A staked tomato plant in a garden bed, clusters of small fruit ripening from green through orange to red among the leaves, the ground mulched with straw",
      "caption": "A tomato plant coming into fruit, tied to its stake.",
      "artist": "NPS",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Several_green_unripe_and_red_ripe_tomatoes_growing_on_the_vine._(086c449c-117b-44f6-a7c4-e2acbf284092).JPG"
    },
    "allotment-plots": {
      "file": "allotment-plots-1.webp",
      "alt": "Allotment vegetable plots in a public park, small mixed beds and a young tree behind a low wooden fence, apartment blocks rising beyond the trees under a bright summer sky",
      "caption": "Community allotment plots on the edge of a city.",
      "artist": "Ciara Ní Riain",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:City_gardening_community_garden_plots_Langen%C3%A6s_park_Aarhus_Denmark_01.jpg"
    },
    "pollinator-bee-flower": {
      "file": "pollinator-bee-flower-2.webp",
      "alt": "A bumblebee feeding at a dense cluster of pink swamp-milkweed flowers, its wings folded back, a small ant among the blooms",
      "caption": "A bumblebee working milkweed, the insectary at close range.",
      "artist": "U.S. Department of Agriculture Lance Cheung/Multimedia PhotoJournalist",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:20180803-AMS-LSC-0749_(28954598147).jpg"
    },
    "bean-teepee-trellis": {
      "file": "bean-teepee-trellis-1.webp",
      "alt": "A wooden teepee covered in flowering scarlet runner beans, hand-lettered plant markers and straw-mulched beds around it",
      "caption": "Pole beans on a teepee - vertical growing in a community plot.",
      "artist": "NPS",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Several_bean_vines_and_stalks_on_a_trellis_with_bright_orange_flowers._(98595657-8e75-44e9-8500-a2e1b5322931).JPG"
    },
    "cold-frame-cloche": {
      "file": "cold-frame-cloche-1.webp",
      "alt": "An open cold frame full of seedling trays beside a lean-to greenhouse and pots of tulips, against a stone garden wall",
      "caption": "The season starts under glass - a cold frame hardening off spring trays.",
      "artist": "Oliver Dixon",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Greenhouse_and_cold_frame_at_Sizergh_-_geograph.org.uk_-_7758275.jpg"
    },
    "compost-pile-garden": {
      "file": "compost-pile-garden-1.webp",
      "alt": "Fresh green garden waste - grass clippings, leaves and pruned stems - heaped inside a plastic compost bin, seen from above",
      "caption": "The compost bin mid-fill, greens on top.",
      "artist": "Ksd5",
      "licence": "CC0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Compost_pile.JPG"
    },
    "corn-field-rows": {
      "file": "corn-field-rows-1.webp",
      "alt": "A field of tall tasselling corn beside a country lane, mountain ridges rising behind under a summer sky",
      "caption": "Corn at full height, tassels out.",
      "artist": "Paranoid",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Field,_corn,_Liechtenstein,_Mountains,_Alps,_Vaduz,_sky,_clouds,_landscape.jpg"
    },
    "cover-crop-field": {
      "file": "cover-crop-field-1.webp",
      "alt": "A field sown to a green winter cover crop, seen over a bare hawthorn hedge under moving clouds",
      "caption": "Ground kept covered for winter - a cover crop doing quiet work.",
      "artist": "Jonathan Billinger",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Cover_crop_or_green_manure_-_geograph.org.uk_-_4826386.jpg"
    },
    "drip-irrigation-bed": {
      "file": "drip-irrigation-bed-1.webp",
      "alt": "Rows of young plants in a nursery, each row threaded with looping black drip-irrigation line",
      "caption": "Water delivered plant by plant - drip lines down every row.",
      "artist": "Borisshin",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Button_dripper.JPG"
    },
    "floating-vegetable-garden": {
      "file": "floating-vegetable-garden-1.webp",
      "alt": "Floating seedbed rafts on a river seen from above, a farmer bending to tend one and a wooden boat moored alongside",
      "caption": "Seedbed rafts on floodwater - a garden that floats.",
      "artist": "Azimronnie",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Traditional_floating_vegetable_garden_34.jpg"
    },
    "frost-covered-plants": {
      "file": "frost-covered-plants-1.webp",
      "alt": "A low green leaf completely crusted in white frost crystals, frosted grass and gravel around it",
      "caption": "What a radiative frost night leaves behind.",
      "artist": "Syrio",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Frost_on_plants_02.jpg"
    },
    "garden-beds-summer": {
      "file": "garden-beds-summer-1.webp",
      "alt": "Grey raised beds of flowers, beans and herbs on gravel paths in a community garden, a red shed and a painted mural fence behind",
      "caption": "Raised beds mid-season in a community garden.",
      "artist": "Mikepascoe",
      "licence": "CC0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Peak_to_Peak_Charter_School_educational_garden_with_raised_beds_and_shed,_Lafayette,_Colorado,_USA_-_2025.jpg"
    },
    "garden-fork-digging": {
      "file": "garden-fork-digging-1.webp",
      "alt": "A digging fork and a well-worn spade resting side by side on clover-studded grass",
      "caption": "The two tools that start every bed.",
      "artist": "Erich Ferdinand",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Fork_and_Spoon.jpg"
    },
    "garden-tools": {
      "file": "garden-tools-1.webp",
      "alt": "Old garden tools - a pitchfork, fan rakes, a scythe blade and hoes - hung in a row on a weathered wooden wall",
      "caption": "A working wall of hand tools.",
      "artist": "Dereckson",
      "licence": "CC BY 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Garden_tools_rack_(iii).jpg"
    },
    "greenhouse-garden": {
      "file": "greenhouse-garden-1.webp",
      "alt": "A small glasshouse packed with tomato and squash plants, a vine spilling out of the open roof vent",
      "caption": "A backyard greenhouse bursting at the vents by midsummer.",
      "artist": "W.carter",
      "licence": "CC0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Small_greenhouse_with_grapevines_escaping.jpg"
    },
    "hand-sowing": {
      "file": "hand-sowing-1.webp",
      "alt": "Two women bending to sow seed by hand across a red-earth field, a straw stack on the horizon",
      "caption": "Sowing by hand, row by row.",
      "artist": "Vraj Acharya, WELL Labs",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Women_Farmers_Sowing_in_Karnataka,_India.jpg"
    },
    "harvest-basket-vegetables": {
      "file": "harvest-basket-vegetables-1.webp",
      "alt": "Four tall woven baskets heaped with red and orange tomatoes at a market, produce sacks stacked behind",
      "caption": "Harvest by the basketful.",
      "artist": "Friday musa",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Baskets_of_freshly_harvested_tomatoes_at_Pambeguwa_perishable_market_01.jpg"
    },
    "kitchen-garden-potager": {
      "file": "kitchen-garden-potager-1.webp",
      "alt": "A monastery kitchen garden of edged vegetable and flower beds beneath a red fortress wall with a wooden-roofed tower",
      "caption": "The monastery potager - vegetables and flowers in one plan, as old as gardening.",
      "artist": "Perituss",
      "licence": "CC0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Vegetable_garden_of_Spaso-Yevfimiyev_Monastery.jpg"
    },
    "leafy-greens-bed": {
      "file": "leafy-greens-bed-1.webp",
      "alt": "A loose-leaf lettuce at full size, its crinkled leaves beaded with rain, more greens crowding in around it",
      "caption": "Salad still growing - a lettuce at picking size.",
      "artist": "GT1976",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:2018-06-18_(109)_Lactuca_sativa_(garden_lettuce)_at_Bichlh%C3%A4usl_in_Frankenfels,_Austria.jpg"
    },
    "marigold-field": {
      "file": "marigold-field-1.webp",
      "alt": "A field of yellow marigolds in full bloom beneath a stand of coconut palms under a clear blue sky",
      "caption": "Marigolds by the acre - the companion chart's favourite flower, grown as a crop.",
      "artist": "Ezhuttukari",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Intercropping_coconut_n_Tagetes_erecta.jpg"
    },
    "mulch-straw-bed": {
      "file": "mulch-straw-bed-1.webp",
      "alt": "A garden of straw-mulched beds and a row of leeks in open grass, a spare straw bale waiting at the edge",
      "caption": "Straw down before winter - beds tucked in, leeks standing.",
      "artist": "Final4one",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Rodale_Farm_Garden_Mulched_with_Straw.JPG"
    },
    "pepper-plants-fruiting": {
      "file": "pepper-plants-fruiting-1.webp",
      "alt": "A glossy red bell pepper and a green one ripening side by side among sunlit leaves",
      "caption": "Peppers colouring up - green first, red with patience.",
      "artist": "Rob Bertholf",
      "licence": "CC BY 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Bell_Peppers_From_The_Garden_(120856573).jpeg"
    },
    "pumpkin-patch": {
      "file": "pumpkin-patch-1.webp",
      "alt": "Orange and yellow pumpkins scattered across a picked-over field under a heavy storm sky, dry corn standing at the edge",
      "caption": "The patch in October, storm coming in.",
      "artist": "Michael Barera",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:2024_The_Elegant_Farmer_Autumn_Harvest_Fest_02_(Pumpkin_Patch).jpg"
    },
    "root-vegetables-harvest": {
      "file": "root-vegetables-harvest-1.webp",
      "alt": "A heap of freshly pulled carrots with their tops still on, harvesters working the green rows behind",
      "caption": "Carrots out of the ground, tops and all.",
      "artist": "Chad Skeers",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Carrot_harvest_with_subtle_rebellion_(5457912937).jpg"
    },
    "seedling-emerging": {
      "file": "seedling-emerging-1.webp",
      "alt": "A tiny seedling breaking the surface between grains of coarse grit, its stem still bent from the seed",
      "caption": "Germination at grit level.",
      "artist": "Frederick Depuydt",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Rebutia_albino_seedling.jpg"
    },
    "spring-planting-bed": {
      "file": "spring-planting-bed-1.webp",
      "alt": "A gardener in a bucket hat working the soil with a hoe inside a hooped raised bed, a leek marker at the rail and city buildings behind",
      "caption": "Spring work - a city bed getting its first turn of the year.",
      "artist": "USDAgov",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:2016_People%27s_Garden_Planting_(20160405-AMS-SLS-0273).jpg"
    },
    "straw-bale-garden": {
      "file": "straw-bale-garden-1.webp",
      "alt": "A fenced garden of planted straw bales - lettuces, kohlrabi and squash growing from pockets of compost in the bales - on wood-chip paths",
      "caption": "No soil needed - a straw-bale garden in its first summer.",
      "artist": "Colling-architektur",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Strohballengarten,_Strohballenkultur,_Straw_bale_b.jpg"
    },
    "wheelbarrow-garden": {
      "file": "wheelbarrow-garden-1.webp",
      "alt": "A weathered wheelbarrow heaped with fresh grass clippings, a mower and gardener crossing the lawn behind",
      "caption": "Clippings on the move - mulch in the making.",
      "artist": "Shixart1985",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Green_grass_in_wheelbarrow_in_a_garden_in_fall_closeup.jpg"
    },
    "berry-bushes-fruit": {
      "file": "berry-bushes-fruit-2.webp",
      "alt": "Ripening gooseberries hanging from the branch of a garden bush, translucent yellow-green fruit against the leaves",
      "artist": "Pavel Leman",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Gooseberries.JPG"
    },
    "gooseberry-bushes-field": {
      "file": "gooseberry-bushes-field-1.webp",
      "alt": "Gooseberry bushes heavy with red fruit growing in an open field under a blue sky",
      "caption": "A pick-your-own gooseberry field in July.",
      "artist": "Lis Burke",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Pick_your_own_gooseberries_-_geograph.org.uk_-_201486.jpg"
    },
    "gooseberry-harvest": {
      "file": "gooseberry-harvest-1.webp",
      "alt": "A heap of freshly picked yellow-green gooseberries, stems and blossom tails still attached",
      "artist": "neurovelho",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Gooseberries.jpg"
    },
    "currants-gooseberries": {
      "file": "currants-gooseberries-1.webp",
      "alt": "Red currants and pale gooseberries piled together on a plate in low sunlight",
      "artist": "dailyfood",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Red_currants_and_gooseberries_(5137393365).jpg"
    },
    "cabbage-brassica-bed": {
      "file": "cabbage-brassica-bed-1.webp",
      "alt": "Curly kale and heading cabbages filling a run of timber raised beds inside a split-rail fence",
      "artist": "Alabama Extension",
      "licence": "CC0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Kale_and_Cabbage_in_Raised_Garden_Beds_(49200262267).jpg"
    },
    "celery-cabbage-bed": {
      "file": "celery-cabbage-bed-1.webp",
      "alt": "A dense stand of cutting celery beside rows of savoy cabbage along a brick garden wall",
      "caption": "Heirloom beds at the Chicago Botanic Garden.",
      "artist": "cultivar413 from Fallbrook, California",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:CBG_Fruit_Veg_Island_-_Anniversary_Heirloom_Beds,_Apium_graveolens_var_secalinum_Cutting_Celery,_Brassica_oleracea_%27Perfection_Drumhead_Savoy%27_Savoy_Cabbage_150627_(20329897785).jpg"
    },
    "sunflower-veg-border": {
      "file": "sunflower-veg-border-1.webp",
      "alt": "An ornamental vegetable border of red cabbages, peppers, basil and herbs backed by a wall of sunflowers",
      "caption": "The entrance beds of the Chicago Botanic Garden's fruit and vegetable island.",
      "artist": "cultivar413",
      "licence": "CC BY 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Chicago_Botanic_Gdn,_Fruit_Veg_Island,_entrance_beds_180723_441_Brassica_oleracea_%27Ruby_Perfection%27_Red_Cabbage,_Capsicum_annuum_%27PInot_Noir%27_and_%27Calico%27_Peppers,_Ocimum_basilicum_%27Pesto_Party%27_Sweet_Basil.jpg"
    },
    "container-pots-vegetables": {
      "file": "container-pots-vegetables-1.webp",
      "alt": "Potato plants growing in a deep wooden planter box on a paved yard, pots and a small plastic greenhouse alongside",
      "artist": "Claire Pearcy",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Potatoes_growing.jpg"
    },
    "grow-box": {
      "file": "grow-box-1.webp",
      "alt": "A self-watering grow box planted with tomatoes, lettuce and herbs at the foot of wooden porch steps",
      "artist": "Bturner",
      "licence": "CC BY-SA 3.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Grow_box.jpg"
    },
    "garden-path-beds": {
      "file": "garden-path-beds-5.webp",
      "alt": "A straight path between box-edged vegetable beds in an old walled kitchen garden, a young tree at its centre",
      "caption": "The walled kitchen garden at Attingham Park, Shropshire.",
      "artist": "Christian David",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Path_through_the_walled_kitchen_garden,_Attingham_Park,_Shropshire.jpg"
    },
    "potager-arch-path": {
      "file": "potager-arch-path-1.webp",
      "alt": "A bark-mulch path running under a rusted iron arch between box-edged potager beds of young vegetables",
      "caption": "The potager at Glenwhan Gardens, Dumfries and Galloway.",
      "artist": "Billy McCrorie",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Potager_Garden,_Glenwhan_Gardens_-_geograph.org.uk_-_6842145.jpg"
    },
    "potager-obelisks": {
      "file": "potager-obelisks-1.webp",
      "alt": "Painted timber obelisks and terracotta pots flanking a mulched path through low box-edged beds",
      "caption": "The potager at Glenwhan Gardens in early spring.",
      "artist": "Billy McCrorie",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Potager,_Glenwhan_Gardens_-_geograph.org.uk_-_5757879.jpg"
    },
    "herb-garden": {
      "file": "herb-garden-2.webp",
      "alt": "Timber-edged raised herb beds with painted plant labels, purple sage in the foreground and lovage behind",
      "caption": "The herb growing area in the walled garden at Llanerchaeron.",
      "artist": "Michael Garlick",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Llanerchaeron_House_and_Garden,_Herb_growing_area_in_The_Walled_Garden_-_geograph.org.uk_-_6899476.jpg"
    },
    "herb-parterre": {
      "file": "herb-parterre-1.webp",
      "alt": "A parterre of herbs between clipped box hedges, twin ribbons of golden thyme beside chives in full purple flower",
      "caption": "Herbs in the walled garden at Riverhill Himalayan Gardens.",
      "artist": "Michael Garlick",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Riverhill_Himalayan_Garden,_Herbs_growing_in_the_Walled_Garden_-_geograph.org.uk_-_5392734.jpg"
    },
    "walled-herb-garden": {
      "file": "walled-herb-garden-1.webp",
      "alt": "Raised herb and vegetable beds along a gravel path in a brick-walled garden, visitors among the borders",
      "caption": "The walled garden at Llanerchaeron.",
      "artist": "Michael Garlick",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Llanerchaeron_House_and_Garden,_Herb_growing_area_in_The_Walled_Garden_-_geograph.org.uk_-_6899478.jpg"
    },
    "rain-barrel-garden": {
      "file": "rain-barrel-garden-1.webp",
      "alt": "An ornate lead rainwater cistern dated 1733 collecting from a downpipe against a brick and timber house, ferns at its foot",
      "caption": "A water butt with three centuries of service, at Vann Garden in Surrey.",
      "artist": "Michael Garlick",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Vann_Garden-_A_conveniently_dated_water_butt_(geograph_5807356).jpg"
    },
    "water-butt-greenhouse": {
      "file": "water-butt-greenhouse-1.webp",
      "alt": "A wooden barrel water butt by the greenhouse door of a hedged kitchen garden",
      "caption": "The kitchen garden at Charles Darwin's Down House, Kent.",
      "artist": "Rowan Adams",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Waterbutt_in_kitchen_garden_at_Charles_Darwin%27s_home,_Down_House,_Kent.JPG"
    },
    "seedlings-tray": {
      "file": "seedlings-tray-1.webp",
      "alt": "Cucumber seedlings at the seed-leaf stage crowding a plug tray, open ground behind them",
      "artist": "Pascal Kings",
      "licence": "CC BY 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Cucumber_seedlings_4.jpg"
    },
    "seed-tray-cells": {
      "file": "seed-tray-cells-1.webp",
      "alt": "Young seedlings with their first true leaves rising from the deep cells of a plug tray",
      "artist": "Pascal Kings",
      "licence": "CC BY 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Plants_in_seed_tray.jpg"
    },
    "seedling-trays-topdown": {
      "file": "seedling-trays-topdown-1.webp",
      "alt": "Plug trays of young seedlings seen from above, one seedling to a cell",
      "artist": "Pascal Kings",
      "licence": "CC BY 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Plants_in_seed_tray_2.jpg"
    },
    "squash-vines-sprawling": {
      "file": "squash-vines-sprawling-1.webp",
      "alt": "A squash vine sprawling across its raised bed and climbing the garden fence behind, leaves shading the whole corner",
      "artist": "Vdubs1",
      "licence": "CC BY-SA 4.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Squash_plant.jpg"
    },
    "squash-flower-mulch": {
      "file": "squash-flower-mulch-1.webp",
      "alt": "Yellow squash blossoms among spiny leaf stems over a straw mulch",
      "caption": "Squash in the vegetable garden at Eisenhower National Historic Site.",
      "artist": "Mary O'Neill",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Vegetable_garden_at_Eisenhower_National_Historic_Site._Squash_plants._(97dd437e-a8ff-4083-b8c0-38be293ad7c3).jpg"
    },
    "zucchini-plant": {
      "file": "zucchini-plant-1.webp",
      "alt": "A zucchini plant low to the ground, an orange flower open and a dark fruit swelling beneath the leaf stems",
      "caption": "Squash growing at Tree Grace Farms, Lubbock, Texas.",
      "artist": "USDA NRCS Texas",
      "licence": "Public domain",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Squash_plants_growing_in_garden_at_Tree_Grace_Farms,_Lubbock,_TX._(24998822942).jpg"
    },
    "winter-garden-frost": {
      "file": "winter-garden-frost-1.webp",
      "alt": "Allotment plots resting under a grey winter sky, wheelbarrows and pallet compost bins lined up by a copper beech hedge",
      "artist": "John Sutton",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Allotments_in_winter_-_geograph.org.uk_-_8216293.jpg"
    },
    "winter-allotment-scarecrow": {
      "file": "winter-allotment-scarecrow-1.webp",
      "alt": "A scarecrow keeping watch over winter allotment beds of young greens and leeks, a red shed behind",
      "artist": "Mary Gracie",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Allotments_in_winter_-_geograph.org.uk_-_692958.jpg"
    },
    "winter-allotment-plots": {
      "file": "winter-allotment-plots-1.webp",
      "alt": "Winter allotments in low sun, a small greenhouse and blue water barrel among bare fruit bushes, brick houses behind",
      "artist": "Sebastian Ballard",
      "licence": "CC BY-SA 2.0",
      "source": "Wikimedia Commons",
      "url": "https://commons.wikimedia.org/wiki/File:Allotments_in_winter_-_geograph.org.uk_-_1071265.jpg"
    }
  }
}
