{
 "about": {
  "method": "gibson-style (src/lib/seq/gibson.ts)",
  "oracle": "Fragments cut from a chosen product and extended by the chosen exact overlaps; the product is re-derived by an independent running concatenation; base accounting checked; each overlap confirmed as the longest shared terminal sequence and counted on both strands by testing every window; the 15 bp homology floor declared from Gibson et al. 2009 (doi 10.1038/nmeth.1318) and the commonly used 15 to 40 base working range; reverse complements by Biopython 1.88.",
  "recordedOn": "2026-10-10",
  "generatedBy": "pipeline/plasmid-map/gibson.py",
  "convention": "The overlap between two consecutive fragments is their exact shared terminal sequence, collapsed once. The TS engine's product is compared up to rotation and strand for a circle, and exactly for a linear plan; its reverse complement must equal revcompProduct. Material conserved: product = sum of fragment lengths - each overlap once. A missing/contradictory overlap, an overlap below the 15 bp homology floor, or an overlap occurring more than twice counted on both strands (the overlap and its reverse complement) withholds the product. The floor is a limit of applicability, not a recommendation: no overlap length is recommended and no Tm is used; a designed product is not evidence that the reaction occurred.",
  "ruling": "CSO, 10 October 2026 (docs/board/memos/2026-10-10-cso-wave2-cloning.md §2.1 M6), with the homology floor and both-strand homology count from the pre-merge defect list B1 and B2 (docs/board/memos/2026-10-10-cso-wave2-review-not-accepted.md)."
 },
 "positive": [
  {
   "id": "three-fragment-circular",
   "topology": "circular",
   "note": "Three fragments with distinct 20 bp overlaps, inside the working range, close into a circle; each overlap collapsed once.",
   "fragments": [
    {
     "id": "f1",
     "name": "backbone",
     "sequence": "GCAGGTGGGCCTTAGGTCCGGGAAAAGGTGATTCTATCCAGGTCTTAGATTGCAATCTTGCCTGGCAGGG"
    },
    {
     "id": "f2",
     "name": "part A",
     "sequence": "TGCAATCTTGCCTGGCAGGGAACCGAACCAACCTCCCAAATTAACCGACTATCTTTGACCTTCAGGTTAC"
    },
    {
     "id": "f3",
     "name": "part B",
     "sequence": "ATCTTTGACCTTCAGGTTACCTGTGACTGACTAACGCGGTAGCTATAGCGGCAGGTGGGCCTTAGGTCCG"
    }
   ],
   "overlaps": [
    20,
    20,
    20
   ],
   "product": "GCAGGTGGGCCTTAGGTCCGGGAAAAGGTGATTCTATCCAGGTCTTAGATTGCAATCTTGCCTGGCAGGGAACCGAACCAACCTCCCAAATTAACCGACTATCTTTGACCTTCAGGTTACCTGTGACTGACTAACGCGGTAGCTATAGCG",
   "revcompProduct": "CGCTATAGCTACCGCGTTAGTCAGTCACAGGTAACCTGAAGGTCAAAGATAGTCGGTTAATTTGGGAGGTTGGTTCGGTTCCCTGCCAGGCAAGATTGCAATCTAAGACCTGGATAGAATCACCTTTTCCCGGACCTAAGGCCCACCTGC"
  },
  {
   "id": "two-fragment-linear-at-floor",
   "topology": "linear",
   "note": "Two fragments with one 15 bp overlap, exactly the floor, join into a linear product.",
   "fragments": [
    {
     "id": "f1",
     "name": "left",
     "sequence": "GTAACTAGTAATAAAAATTGTAATACTGTGCCAACGACACGCCTTCAGGCCGCCC"
    },
    {
     "id": "f2",
     "name": "right",
     "sequence": "GCCTTCAGGCCGCCCGATATCGTTACCTCTGCTCATTTTT"
    }
   ],
   "overlaps": [
    15
   ],
   "product": "GTAACTAGTAATAAAAATTGTAATACTGTGCCAACGACACGCCTTCAGGCCGCCCGATATCGTTACCTCTGCTCATTTTT",
   "revcompProduct": "AAAAATGAGCAGAGGTAACGATATCGGGCGGCCTGAAGGCGTGTCGTTGGCACAGTATTACAATTTTTATTACTAGTTAC"
  }
 ],
 "refusals": [
  {
   "id": "missing-overlap",
   "topology": "linear",
   "reason": "no-overlap",
   "note": "The two fragments share no exact terminal overlap; the plan is withheld.",
   "fragments": [
    {
     "id": "f1",
     "name": "left",
     "sequence": "AAAACCCCGGGGTTTT"
    },
    {
     "id": "f2",
     "name": "right",
     "sequence": "GGCCAATTGGCCAACC"
    }
   ]
  },
  {
   "id": "below-floor-circular",
   "topology": "circular",
   "reason": "short-overlap",
   "note": "Three fragments with exact, unique 8 bp overlaps: below the 15 bp floor, so no closed circle is shown.",
   "fragments": [
    {
     "id": "f1",
     "name": "backbone",
     "sequence": "ATGGCACGTTTACCCGGGAATTCCAGTC"
    },
    {
     "id": "f2",
     "name": "part A",
     "sequence": "TTCCAGTCATGCAGTACTGACGATCAG"
    },
    {
     "id": "f3",
     "name": "part B",
     "sequence": "ACGATCAGTTCAGGTACCTTATGGCACG"
    }
   ]
  },
  {
   "id": "one-below-floor-linear",
   "topology": "linear",
   "reason": "short-overlap",
   "note": "Two fragments sharing a 14 bp overlap, one base below the floor: withheld.",
   "fragments": [
    {
     "id": "f1",
     "name": "left",
     "sequence": "ACGGTCTCGCTTGACCTTGTGCCGAGTTATCACGTAGACGCTATTTTCCACAGG"
    },
    {
     "id": "f2",
     "name": "right",
     "sequence": "CTATTTTCCACAGGCTAGAATCCAGGACAAGTTATATATG"
    }
   ]
  },
  {
   "id": "repeated-homology",
   "topology": "linear",
   "reason": "repeated-homology",
   "note": "The 20 bp overlap occurs three times in the supplied strands, so an alternative assembly is possible; withheld.",
   "fragments": [
    {
     "id": "f1",
     "name": "backbone",
     "sequence": "GGAGGGCGGGACCATAGTTGTTCTTACATATGCCATGTCCACCAAGACAT"
    },
    {
     "id": "f2",
     "name": "part",
     "sequence": "TGCCATGTCCACCAAGACATGCGAAGTAATGGTGCCATGTCCACCAAGACATAAGGACTCCGCC"
    }
   ]
  },
  {
   "id": "repeated-homology-other-strand",
   "topology": "linear",
   "reason": "repeated-homology",
   "note": "The 20 bp overlap occurs twice in the supplied strands but its reverse complement also sits inside the backbone, so on double-stranded DNA it occurs three times and an inverted assembly is possible; withheld.",
   "fragments": [
    {
     "id": "f1",
     "name": "backbone",
     "sequence": "GGCACAAACCCTGGGTCAACTCACGTCAATTCCCACGCAGCTCCCGATGGTGGGAATTGACGTGAGTTGA"
    },
    {
     "id": "f2",
     "name": "part",
     "sequence": "TGGGAATTGACGTGAGTTGACCTCTGTGTTTTGCAGCCTATGGGATTCGGCGAGACATTC"
    }
   ]
  }
 ]
}
