#!/usr/bin/env python3
"""Classify 230 proverbs from folksy_idioms.txt into meta-template families."""

import csv
import os

# Each entry: (proverb, valid, meta_template, notes)
# Being strict about the swappability test: most folk proverbs are about human behavior
# using metaphor, which breaks on noun-swap.

classifications = [
    # 1
    ("A big wife and a big barn, will never do a man any harm.",
     "FALSE", "NONE",
     "Primary nouns are people/roles (wife, man). About social roles and marriage."),
    # 2
    ("A merry companion is music on a journey.",
     "FALSE", "NONE",
     "Primary noun is a person/role (companion). About social relationships."),
    # 3
    ("A false friend and a shadow stay only while the sun shines.",
     "FALSE", "NONE",
     "Primary noun is a person/role (friend). About human character/loyalty."),
    # 4
    ("All is fair in love and war, but friendship there is truth.",
     "FALSE", "NONE",
     "About abstract concepts (love, war, friendship, truth). No concrete swappable nouns."),
    # 5
    ("A clock will run without watching it.",
     "FALSE", "NONE",
     "Only one concrete noun (clock). Meaning is about autonomy/trust, not object relationships."),
    # 6
    ("A good neighbor, a found treasure!",
     "FALSE", "NONE",
     "Primary noun is a person/role (neighbor). About social relationships."),
    # 7
    ("A friend to everyone is a friend to nobody.",
     "FALSE", "NONE",
     "Primary nouns are people/roles (friend). About human social behavior."),
    # 8
    ("A small leak will sink a great ship.",
     "TRUE", "causal_chain",
     "Small defect (leak) cascades to big consequence (ship sinking). Nouns swappable: a small crack will collapse a great wall. A=leak, B=ship."),
    # 9
    ("A living dog is better than a dead lion.",
     "FALSE", "NONE",
     "Meaning depends on the cultural symbolism of dog (lowly) vs lion (noble). Swapping nouns breaks the metaphor about humility vs pride."),
    # 10
    ("A good wife is the best household furniture.",
     "FALSE", "NONE",
     "Primary noun is a person/role (wife). About social roles."),
    # 11
    ("A pebble and a diamond are alike to a blind man.",
     "FALSE", "NONE",
     "Primary actor is a person (blind man). About human perception/disability. Nouns aren't freely swappable without the specific blindness context."),
    # 12
    ("An arrogant bug is a cocky roach.",
     "TRUE", "false_equivalence",
     "A=arrogant bug, B=cocky roach. Both insects, differ in specificity. A {A} is just a {B} with {P}. Nouns swappable: a fancy hat is a decorated cap."),
    # 13
    ("Better an hour early and stand and wait than a moment behind time.",
     "FALSE", "NONE",
     "About abstract concepts (time, punctuality). No concrete swappable nouns."),
    # 14
    ("Better a dollar earned than ten inherited.",
     "FALSE", "NONE",
     "About abstract concepts (earning vs inheriting). Only one concrete noun type (dollar). About human work ethic."),
    # 15
    ("Better to ask twice than lose your way once.",
     "FALSE", "NONE",
     "About human behavior (asking, navigation). No concrete nouns to swap."),
    # 16
    ("Better bowlegs than no legs at all.",
     "FALSE", "NONE",
     "About human body parts. Not about object relationships. Only one noun (legs)."),
    # 17
    ("Better to heaven in rags than to hell in embroidery.",
     "FALSE", "NONE",
     "About morality and abstract concepts (heaven, hell). Religious/moral teaching."),
    # 18
    ("Curses, like chickens, come home to roost.",
     "FALSE", "NONE",
     "Core meaning is about abstract concept (curses/karma). Chickens are a simile vehicle, not a swappable structural noun."),
    # 19
    ("Don't dare kiss an ugly girl, she'll tell the world about it.",
     "FALSE", "NONE",
     "Primary nouns are people (girl). About human social behavior."),
    # 20
    ("Don't taste every man's  soup, you'll burn your mouth.",
     "FALSE", "NONE",
     "About human behavior (minding others' business). The soup is metaphor for other people's affairs."),
    # 21
    ("Even a fish wouldn't get caught if he kept his mouth shut.",
     "FALSE", "NONE",
     "Meaning depends on wordplay (mouth=talking). About human behavior (keeping quiet). Swapping fish breaks the pun."),
    # 22
    ("Every donkey thinks itself worthy of standing with the king's horses.",
     "FALSE", "NONE",
     "About human pride/arrogance. King is a social role. The animals represent social hierarchy."),
    # 23
    ("Every path has a puddle.",
     "FALSE", "NONE",
     "Only two nouns but meaning is about life's difficulties. Metaphorical, not about physical path-puddle relationship."),
    # 24
    ("Early ripe, early rotten.",
     "TRUE", "causal_chain",
     "Quick ripening leads to quick rotting. Swappable: early bloom, early wilt. A=ripeness, B=rottenness. Physical process chain."),
    # 25
    ("Every field looks green from a distance, even a cemetery.",
     "FALSE", "NONE",
     "Meaning is about human perception and illusion (grass-is-greener). Cemetery adds dark humor that breaks on swap."),
    # 26
    ("Everybody lays his load on the willing horse.",
     "FALSE", "NONE",
     "About human behavior (exploiting willing people). Horse represents a person. Primary subject is people."),
    # 27
    ("Fools use bets for arguments.",
     "FALSE", "NONE",
     "Primary noun is people/role (fools). About human behavior."),
    # 28
    ("He who holds the ladder is as bad as the thief.",
     "FALSE", "NONE",
     "Primary nouns are people/roles (thief, accomplice). About morality and complicity."),
    # 29
    ("If you come to the end of your rope -- tie a knot in it and hang on.",
     "FALSE", "NONE",
     "Rope is metaphor for endurance/patience. About human perseverance, not rope mechanics."),
    # 30
    ("If you are always dwelling in trouble, change your address.",
     "FALSE", "NONE",
     "Wordplay on dwelling/address. About human behavior and attitude."),
    # 31
    ("If wishes were horses, then beggars would ride.",
     "FALSE", "NONE",
     "Primary nouns include people/roles (beggars). About abstract concept (wishing). Depends on specific wish-horse wordplay."),
    # 32
    ('"IF\'s" and "But\'s" butter no bread.',
     "FALSE", "NONE",
     "Depends on wordplay (ifs and buts as abstract concepts). Only one concrete noun (bread)."),
    # 33
    ("It takes a good many shovelfuls to bury the truth.",
     "FALSE", "NONE",
     "Core meaning is about abstract concept (truth). Shovelfuls are metaphorical."),
    # 34
    ("It is better to have a hen tomorrow than an egg today.",
     "TRUE", "proportional_mismatch",
     "Compares small-now vs big-later using concrete nouns. Swappable: better a tree tomorrow than a seed today. A=hen (big), B=egg (small). Time/value mismatch."),
    # 35
    ("Living is like licking honey off a thorn.",
     "FALSE", "NONE",
     "About abstract concept (living/life). The honey-thorn image is metaphor for life's bittersweet nature."),
    # 36
    ("Listen at the keyhole and you'll hear news of yourself.",
     "FALSE", "NONE",
     "About human behavior (eavesdropping). Primary subject is a person."),
    # 37
    ("Lend your money and lose your friend.",
     "FALSE", "NONE",
     "Primary nouns are people/roles (friend) and abstract (money). About social relationships."),
    # 38
    ("Man is the only animal that can be skinned more than once.",
     "FALSE", "NONE",
     "Primary noun is a person (man). About human gullibility."),
    # 39
    ("Must is a hard nut to crack.",
     "FALSE", "NONE",
     "Depends on wordplay: 'must' (obligation) as a nut. Breaks on noun swap."),
    # 40
    ("No matter how high a bird flies, it has to come down for water.",
     "FALSE", "NONE",
     "About human pride/ambition. Bird represents a person. Meaning is about humility."),
    # 41
    ("Nothing dries faster than a tear.",
     "FALSE", "NONE",
     "Only one concrete noun (tear). About human emotions and their transience."),
    # 42
    ("Nothing is gained by having one donkey call another \"Long Ears!\"",
     "FALSE", "NONE",
     "About human hypocrisy (pot calling kettle). Animals represent people."),
    # 43
    ("Never stop the plough to catch a mouse.",
     "TRUE", "proportional_mismatch",
     "Big important task (ploughing) vs tiny distraction (mouse). Swappable: never halt the ship to chase a gull. A=plough (big task), B=mouse (small distraction)."),
    # 44
    ("No piper ever suited all ears.",
     "FALSE", "NONE",
     "Primary noun is a person/role (piper). About inability to please everyone."),
    # 45
    ("One who thinks he can live without others is mistaken but he who thinks others cannot live without him are more mistaken.",
     "FALSE", "NONE",
     "Entirely about people and social relationships. No concrete nouns."),
    # 46
    ("One eyewitness is better than ten hearsays.",
     "FALSE", "NONE",
     "About abstract concepts (testimony, evidence). Primary noun is a person/role (eyewitness)."),
    # 47
    ("One does not put beauty in a kettle.",
     "FALSE", "NONE",
     "About abstract concept (beauty). Only one concrete noun (kettle)."),
    # 48
    ("Promises won't butter any bread.",
     "FALSE", "NONE",
     "About abstract concept (promises). Only one concrete noun (bread). About human unreliability."),
    # 49
    ("Pleasant hours fly fast.",
     "FALSE", "NONE",
     "About abstract concepts (time, pleasure). No concrete nouns."),
    # 50
    ("Sickness comes in haste and goes at leisure.",
     "FALSE", "NONE",
     "About abstract concept (sickness). No concrete swappable nouns."),
    # 51
    ("Swallows and sparrows cannot understand the ambitions of swans.",
     "FALSE", "NONE",
     "Animals represent social classes of people. About human ambition and hierarchy."),
    # 52
    ("The sun doesn't shine on the same dog's back every day.",
     "FALSE", "NONE",
     "About fortune/luck changing. Dog represents a person. Metaphorical."),
    # 53
    ("The best patch is of the same cloth.",
     "TRUE", "material_transformation",
     "Repair material should match original material. Swappable: the best weld is of the same metal. A=patch, B=cloth. About matching materials."),
    # 54
    ("The stable wears out a horse more than a road.",
     "FALSE", "NONE",
     "About inactivity being worse than activity. Horse represents a person. Metaphorical lesson about human laziness."),
    # 55
    ("When the well is dry, you know the worth of water.",
     "TRUE", "tautological_wisdom",
     "Absence reveals value. Swappable: when the pantry is bare, you know the worth of bread. A=well (container), B=water (resource)."),
    # 56
    ("When one has seen the bear in the woods, he hears his growl in every bush.",
     "FALSE", "NONE",
     "About human psychology (fear, paranoia). The person is the primary subject."),
    # 57
    ("Weeds need no sowing.",
     "TRUE", "tautological_wisdom",
     "Unwanted things propagate without effort. Swappable: rust needs no invitation. States an obvious property of weeds as wisdom. A=weeds, B=sowing."),
    # 58
    ("You can't anymore give away something you ain't got than you can come back from someplace you haven't been.",
     "FALSE", "NONE",
     "About abstract concept (possession, presence). No concrete swappable nouns. Philosophical truism."),
    # 59
    ("You never know the length of a snake until it is dead.",
     "FALSE", "NONE",
     "About judging things (people) only in hindsight. Snake metaphorically represents a threat/person. Meaning is about human judgment."),
    # 60
    ("You can't tell the depth of the well by the length of the handle on the pump.",
     "TRUE", "uncategorized",
     "Surface measurement doesn't reveal hidden depth. Swappable: can't tell the weight of a chest by the size of its lock. Concrete nouns: well, handle, pump."),
    # 61
    ("You can't put out old heads on young shoulders.",
     "FALSE", "NONE",
     "Primary nouns are people/body parts (heads, shoulders). About human wisdom and youth."),
    # 62
    ("Do a little well and you do much.",
     "FALSE", "NONE",
     "About abstract concept (quality vs quantity of effort). No concrete nouns."),
    # 63
    ("A bad broom leaves a dirty room.",
     "TRUE", "causal_chain",
     "Defective tool leads to poor result. Swappable: a dull axe leaves a ragged log. A=bad broom, B=dirty room. Concrete cause-effect."),
    # 64
    ("They must hunger in frost who will not work in heat.",
     "FALSE", "NONE",
     "About human behavior (work ethic). Primary subject is people. About consequences of laziness."),
    # 65
    ("A cracked plate will last as long as a sound one.",
     "TRUE", "uncategorized",
     "Imperfect object still functions. Swappable: a dented bucket holds as much as a new one. Concrete nouns: plate. About physical durability."),
    # 66
    ("Water run by will does not turn a mill.",
     "TRUE", "tautological_wisdom",
     "Resource past the mechanism can't power it. Swappable: steam vented out does not drive a piston. A=water, B=mill. Physical cause-effect."),
    # 67
    ("Every pea helps to fill the pod.",
     "TRUE", "tautological_wisdom",
     "Small contributions add up to fill the container. Swappable: every brick helps to build the wall. A=pea, B=pod."),
    # 68
    ("One watch set right will do to set many by.",
     "TRUE", "uncategorized",
     "One correct reference calibrates others. Swappable: one true plumb line will straighten many walls. Concrete nouns: watch."),
    # 69
    ("Children and fools tell the truth.",
     "FALSE", "NONE",
     "Primary nouns are people/roles (children, fools). About human behavior."),
    # 70
    ("Little children step on one's lap; tall ones tread on one's heart.",
     "FALSE", "NONE",
     "Primary nouns are people (children). About parenting and emotional pain."),
    # 71
    ("He who rides slowly gets just as far, only it akes a little longer.",
     "FALSE", "NONE",
     "About human behavior (patience). Primary subject is a person."),
    # 72
    ("Bad breath is better than no breath at all.",
     "FALSE", "NONE",
     "Wordplay on breath (breathing vs bad breath). About being alive. Depends on pun."),
    # 73
    ("Too many square meals make too many round people.",
     "FALSE", "NONE",
     "Wordplay on square (meals) and round (people/overweight). Depends on pun. About human behavior."),
    # 74
    ("When you feel all steamed up, remember the tea kettle -- it is always up to its neck in hot water and it still sings.",
     "FALSE", "NONE",
     "Wordplay on steamed up and hot water. About human emotions (anger). Metaphorical."),
    # 75
    ("You can't make cookies when you haven't got the dough.",
     "FALSE", "NONE",
     "Wordplay on dough (money vs baking ingredient). Meaning depends on pun."),
    # 76
    ("A bad penny always turns up",
     "FALSE", "NONE",
     "Penny represents an unwanted person. About human social dynamics. Metaphorical."),
    # 77
    ("A bird in the hand is worth two in the bush",
     "TRUE", "proportional_mismatch",
     "Certain small possession vs uncertain larger quantity. Swappable: a fish on the hook is worth five in the stream. A=bird in hand, B=two in bush."),
    # 78
    ("A dog is a man's best friend",
     "FALSE", "NONE",
     "Primary noun is a person (man). About human-animal social bond. Not swappable structurally."),
    # 79
    ("A mill cannot grind with the water that is past",
     "TRUE", "tautological_wisdom",
     "Missed resource can't power the mechanism. Swappable: an oven can't bake with the heat already gone. A=mill, B=water. Same as #66 variant."),
    # 80
    ("A miss is as good as a mile",
     "FALSE", "NONE",
     "Wordplay on miss/mile. About abstract concept (near-misses). Depends on pun."),
    # 81
    ("A rolling stone gathers no moss",
     "TRUE", "conditional_animal_wisdom",
     "Actually not animal - reclassifying. Object behavior encodes lesson. Swappable: a spinning wheel collects no dust. A=stone, B=moss, condition=rolling. Physical process."),
    # re-classify 81
    # 82
    ("A watched man never plays",
     "FALSE", "NONE",
     "Primary noun is a person (man). About human behavior under surveillance."),
    # 83
    ("A watched pot/kettle never boils",
     "TRUE", "tautological_wisdom",
     "Observation seems to delay the process. Swappable: a watched oven never heats. A=pot/kettle, B=boiling. Concrete object-process relationship."),
    # 84
    ("All hands on deck/to the pump",
     "FALSE", "NONE",
     "Primary nouns are people (hands=crew). About human collective effort."),
    # 85
    ("All is grist that comes to the mill",
     "TRUE", "tautological_wisdom",
     "Everything entering the mechanism gets processed. Swappable: all is fuel that enters the furnace. A=grist, B=mill."),
    # 86
    ("An apple a day keeps the doctor away",
     "FALSE", "NONE",
     "Primary noun includes a person/role (doctor). About health advice. Culturally specific to apple."),
    # 87
    ("An army marches on its stomach",
     "FALSE", "NONE",
     "Primary noun is people/collective (army). About human logistics and morale."),
    # 88
    ("Any port in a storm",
     "TRUE", "uncategorized",
     "Desperate conditions reduce selectivity. Swappable: any shelter in a blizzard. A=port, B=storm. Concrete nouns with physical relationship."),
    # 89
    ("As you sow so shall you reap",
     "FALSE", "NONE",
     "About human behavior (actions and consequences). The sowing/reaping is metaphorical for moral behavior."),
    # 90
    ("Barking dogs seldom bite",
     "FALSE", "NONE",
     "Dogs represent threatening people. About human behavior (bluster vs action)."),
    # 91
    ("Before setting out on a mission of vengeance, dig two graves",
     "FALSE", "NONE",
     "About human behavior (revenge). Primary subject is a person. Abstract moral teaching."),
    # 92
    ("Beggars cannot be choosers",
     "FALSE", "NONE",
     "Primary noun is a person/role (beggars). About human social position."),
    # 93
    ("Big fish eat little fish",
     "FALSE", "NONE",
     "Fish represent people in power dynamics. About human hierarchy and exploitation."),
    # 94
    ("Birds of a feather (flock together)",
     "FALSE", "NONE",
     "Birds represent people. About human social grouping by similarity."),
    # 95
    ("Buy cheap, buy twice",
     "TRUE", "tautological_wisdom",
     "Low-quality purchase leads to replacement. Swappable in spirit though abstract: cheap nails need double the hammering. States obvious cost-quality relationship."),
    # Actually reconsidering 95 - no concrete nouns to swap
    # 96
    ("Calm seas never made a good sailor",
     "FALSE", "NONE",
     "Primary noun is a person/role (sailor). About human character development through adversity."),
    # 97
    ("Coffee and love taste best when hot (Ethiopian proverb)",
     "FALSE", "NONE",
     "Mixes concrete (coffee) with abstract (love). About human emotion. Not freely swappable."),
    # 98
    ("Cold hands, warm heart",
     "FALSE", "NONE",
     "About human body/character. Primary nouns are body parts. About personality."),
    # 99
    ("Criss-cross, applesauce",
     "FALSE", "NONE",
     "Children's rhyme, not a wisdom proverb. No meaningful structure to classify."),
    # 100
    ("Cross the stream where it is shallowest",
     "TRUE", "uncategorized",
     "Take the easiest path through an obstacle. Swappable: climb the wall where it is lowest. A=stream, property=shallowest. Concrete spatial relationship."),
    # 101
    ("Cut your coat according to your cloth",
     "TRUE", "material_transformation",
     "Output must match available input material. Swappable: shape your pot according to your clay. A=coat, B=cloth. Material constraint."),
    # 102
    ("Do not carry coals to Newcastle",
     "FALSE", "NONE",
     "Meaning depends on specific cultural knowledge (Newcastle = coal town). Breaks on noun swap without the cultural reference."),
    # 103
    ("Do not keep a dog and bark yourself",
     "FALSE", "NONE",
     "About human behavior (delegation). Dog represents a subordinate/servant. About social roles."),
    # 104
    ("Do not make a mountain out of a mole hill",
     "TRUE", "proportional_mismatch",
     "Inflating small thing (molehill) to large thing (mountain). Swappable: don't make an ocean out of a puddle. A=mountain, B=molehill."),
    # 105
    ("Do not put the cart before the horse",
     "TRUE", "uncategorized",
     "Sequence/order matters for physical function. Swappable: don't put the roof before the walls. A=cart, B=horse. Concrete ordering relationship."),
    # 106
    ("Do not put too many irons in the fire",
     "TRUE", "proportional_mismatch",
     "Too many items overwhelm the resource. Swappable: don't put too many pots on the stove. A=irons, B=fire. Concrete capacity limit."),
    # 107
    ("Do not put new wine into old bottles",
     "TRUE", "material_transformation",
     "New content incompatible with old container. Swappable: don't pour hot soup into a cold jar. A=new wine, B=old bottles. Material mismatch."),
    # 108
    ("Do not teach your Grandmother to suck eggs",
     "FALSE", "NONE",
     "Primary noun is a person/role (Grandmother). About human presumption and social roles."),
    # 109
    ("Do not throw the baby out with the bathwater",
     "FALSE", "NONE",
     "Primary noun is a person (baby). About discarding the valuable with the worthless. Baby is not a swappable object."),
    # 110
    ("Don't take any wooden nickels",
     "TRUE", "uncategorized",
     "Avoid counterfeit/worthless items. Swappable: don't accept any tin coins. A=wooden nickels. Concrete object with deceptive property."),
    # Actually reconsidering 110 - this is really about human deception/gullibility
    # 111
    ("East is east, and west is west (and never the twain shall meet)",
     "FALSE", "NONE",
     "About abstract concepts (cultural differences). Directions are not concrete swappable nouns in meaningful way."),
    # 112
    ("Even a worm will turn",
     "FALSE", "NONE",
     "Worm represents a downtrodden person. About human behavior (fighting back when pushed too far)."),
    # 113
    ("Every dog has his day",
     "FALSE", "NONE",
     "Dog represents a person. About human fortune and fairness. Abstract."),
    # 114
    ("Every stick has two ends",
     "TRUE", "tautological_wisdom",
     "Every tool/situation has two aspects. Swappable: every blade has two edges. A=stick, B=two ends. States obvious physical property as wisdom."),
    # 115
    ("Feed a cold, starve a fever",
     "FALSE", "NONE",
     "About abstract concepts (illness). Medical folk advice. Cold and fever aren't concrete swappable nouns."),
    # 116
    ("Fight fire with fire",
     "FALSE", "NONE",
     "Only one concrete noun repeated (fire). About strategy/approach. Metaphorical."),
    # 117
    ("Fine words butter no parsnips",
     "FALSE", "NONE",
     "About abstract concept (words/promises). Similar to #48. Only one concrete noun (parsnips)."),
    # 118
    ("First come, first served",
     "FALSE", "NONE",
     "About human behavior (queuing/priority). No concrete nouns."),
    # 119
    ("Fish and guests smell after three days",
     "FALSE", "NONE",
     "Primary noun includes people (guests). About human social behavior (overstaying welcome)."),
    # 120
    ("For want of a nail the shoe was lost; for want of a shoe the horse was lost; and for want of a horse the man was lost",
     "TRUE", "causal_chain",
     "Classic cascading loss. Small item (nail) -> shoe -> horse -> man. Swappable: for want of a rivet the plate was lost. A=nail, B=shoe, C=horse, D=man."),
    # 121
    ("Forewarned is forearmed",
     "FALSE", "NONE",
     "About abstract concepts (knowledge, preparation). No concrete nouns. Wordplay on fore-."),
    # 122
    ("Give a dog a bad name and hang him",
     "FALSE", "NONE",
     "Dog represents a person. About human reputation and social judgment."),
    # 123
    ("Give a man rope enough and he will hang himself",
     "FALSE", "NONE",
     "Primary noun is a person (man). About human self-destruction."),
    # 124
    ("Good fences make good neighbours",
     "FALSE", "NONE",
     "Primary noun includes people (neighbours). About human social boundaries."),
    # 125
    ("Half a loaf is better than no bread",
     "TRUE", "proportional_mismatch",
     "Partial resource better than none. Swappable: half a bucket is better than no water. A=half loaf, B=no bread."),
    # 126
    ("He that goes a-borrowing, goes a-sorrowing",
     "FALSE", "NONE",
     "Primary noun is a person (he). About human behavior (debt)."),
    # 127
    ("Horses for courses",
     "FALSE", "NONE",
     "About matching suitability. Depends on wordplay (horses/courses rhyme). Breaks on swap."),
    # 128
    ("If ifs and ands were pots and pans, there would be no work for tinkers",
     "FALSE", "NONE",
     "Depends on wordplay (ifs and ands/pots and pans). Primary noun includes person/role (tinkers)."),
    # 129
    ("If ifs and buts were candies and nuts, we'd all have a merry Christmas[13]",
     "FALSE", "NONE",
     "Depends on wordplay. About abstract concepts (excuses). Cultural reference (Christmas)."),
    # 130
    ("If it ain't broke, don't fix it",
     "TRUE", "tautological_wisdom",
     "Functioning things don't need repair. Swappable: if the wheel still turns, don't replace the axle. States obvious maintenance wisdom."),
    # Actually reconsidering 130 - 'it' is too generic, no concrete nouns
    # 131
    ("If it were a snake, it would have bit you",
     "FALSE", "NONE",
     "About human inattention. Snake is metaphor for something obvious. About behavior."),
    # 132
    ("If the shoe fits, wear it",
     "TRUE", "tautological_wisdom",
     "If something suits, use it. Swappable: if the hat fits, keep it on. A=shoe, B=wearing. Concrete object-action."),
    # 133
    ("If wishes were horses, beggars would ride",
     "FALSE", "NONE",
     "Primary noun includes people/roles (beggars). About abstract concept (wishing). Duplicate of #31."),
    # 134
    ("If you can't run with the horses, get off the track",
     "FALSE", "NONE",
     "Horses represent competitors/people. About human ability and knowing your limits."),
    # 135
    ("If you can't stand the heat, get out of the kitchen",
     "TRUE", "uncategorized",
     "Can't handle the environment's condition, leave it. Swappable: if you can't bear the cold, leave the cellar. A=heat, B=kitchen."),
    # Actually reconsidering 135 - this is really about human resilience/work pressure, kitchen is metaphorical
    # 136
    ("If you give a mouse a cookie, he'll always ask for a glass of milk",
     "TRUE", "causal_chain",
     "Small concession leads to escalating demands. Swappable: if you give a squirrel a nut, he'll want the whole tree. A=mouse+cookie, B=glass of milk. Concrete nouns."),
    # 137
    ("If you lie down with dogs, you will get up with fleas[a] (James Sandford, The Garden of Pleasure)",
     "TRUE", "conditional_animal_wisdom",
     "Association with X gives you X's problems. Swappable: if you sleep in the barn, you'll wake with hay. A=dogs, B=fleas. Animal behavior encodes consequence."),
    # 138
    ("If you pay peanuts, you get monkeys",
     "TRUE", "conditional_animal_wisdom",
     "Low-quality input attracts low-quality output. Swappable: if you bait with crumbs, you catch sparrows. A=peanuts, B=monkeys."),
    # 139
    ("If you play with fire, you will get burned",
     "FALSE", "NONE",
     "Only one concrete noun (fire). About human recklessness. Too metaphorical to swap meaningfully."),
    # 140
    ("In for a penny, in for a pound",
     "TRUE", "proportional_mismatch",
     "Once committed to small amount, committed to large. Swappable: in for a drop, in for a barrel. A=penny (small), B=pound (large)."),
    # 141
    ("(March comes) in like a lion, (and goes) out like a lamb",
     "FALSE", "NONE",
     "About weather/seasons. Animals are simile vehicles, not structural nouns. Culturally specific to March."),
    # 142
    ("It ain't over till the fat lady sings",
     "FALSE", "NONE",
     "Primary noun is a person (fat lady). Cultural reference (opera). About human patience."),
    # 143
    ("It is no use crying over spilt milk",
     "TRUE", "tautological_wisdom",
     "Can't undo a spillage. Swappable: no use sweeping up shattered glass. A=spilt milk. Irreversible physical event."),
    # 144
    ("It is the early bird that gets the worm",
     "TRUE", "conditional_animal_wisdom",
     "First arrival gets the resource. Swappable: the early cat catches the mouse. A=early bird, B=worm. Animal behavior encodes timing lesson."),
    # 145
    ("It is the squeaky wheel that gets the grease",
     "TRUE", "proportional_mismatch",
     "The one making noise gets attention/resources. Swappable: the leaky pipe gets the solder. A=squeaky wheel, B=grease. Concrete cause-effect."),
    # 146
    ("It never rains but it pours",
     "FALSE", "NONE",
     "About abstract concept (misfortune clustering). Rain is metaphorical. Only one type of noun."),
    # 147
    ("It takes a thief to catch a thief",
     "FALSE", "NONE",
     "Primary noun is a person/role (thief). About human knowledge/expertise."),
    # 148
    ("Islands depend on reeds, just as reeds depend on islands (Myanmar proverbs)[citation needed]",
     "TRUE", "uncategorized",
     "Mutual dependency between two physical things. Swappable: walls depend on mortar, just as mortar depends on walls. A=islands, B=reeds."),
    # 149
    ("Keep your powder dry (Valentine Blacker, 1834 from Oliver's Advice)[16]",
     "FALSE", "NONE",
     "Only one concrete noun (powder). About human preparedness. Military metaphor."),
    # 150
    ("Kill two birds with one stone.",
     "TRUE", "proportional_mismatch",
     "One resource accomplishes multiple tasks. Swappable: catch two fish with one net. A=two birds, B=one stone. Efficiency through concrete objects."),
    # 151
    ("The last drop makes the cup run over",
     "TRUE", "causal_chain",
     "Final small addition causes overflow. Swappable: the last straw breaks the beam. A=last drop, B=cup overflow."),
    # 152
    ("Laugh before breakfast, cry before supper",
     "FALSE", "NONE",
     "About human emotion and superstition. No concrete swappable nouns (laugh/cry are actions about people)."),
    # 153
    ("Learn a language, and you will avoid a war (Arab proverb)",
     "FALSE", "NONE",
     "About abstract concepts (language, war, communication). About human behavior."),
    # 154
    ("Let sleeping dogs lie",
     "FALSE", "NONE",
     "Dogs represent dormant problems/people. About human caution and social dynamics."),
    # 155
    ("Let well alone",
     "FALSE", "NONE",
     "About abstract concept. No concrete nouns at all."),
    # 156
    ("Little pitchers have big ears",
     "FALSE", "NONE",
     "Wordplay: pitchers have 'ears' (handles) = children eavesdrop. Depends on pun."),
    # 157
    ("Little strokes fell great oaks",
     "TRUE", "causal_chain",
     "Many small actions achieve a big result. Swappable: small drops fill great barrels. A=little strokes, B=great oaks."),
    # 158
    ("Make hay while the sun shines",
     "TRUE", "uncategorized",
     "Process resource while conditions allow. Swappable: dry the salt while the wind blows. A=hay, B=sun. Concrete time-dependent process."),
    # 159
    ("Many a mickle makes a muckle",
     "FALSE", "NONE",
     "Depends on wordplay (mickle/muckle are archaic words). About abstract accumulation."),
    # 160
    ("March comes in like a lion and goes out like a lamb",
     "FALSE", "NONE",
     "Duplicate of #141. About weather/seasons. Animals are simile vehicles."),
    # 161
    ("Milking the bull",
     "TRUE", "futile_preparation",
     "Attempting to extract product from wrong source. Swappable: shearing the pig. A=milking, B=bull. Wrong-source futility with concrete nouns."),
    # 162
    ("Money demands care, you abuse it and it disappears \u2013 Rashida Costa",
     "FALSE", "NONE",
     "About abstract concept (money management). About human behavior."),
    # 163
    ("Never cast a clout until May be out",
     "FALSE", "NONE",
     "Culturally specific (May=month or hawthorn). About human clothing choices. Breaks on swap."),
    # 164
    ("Never look a gift horse in the mouth",
     "TRUE", "uncategorized",
     "Don't inspect the quality of a free item. Swappable: never weigh a free sack of grain. A=gift horse, B=mouth (inspection point). Concrete object relationships."),
    # 165
    ("No friends but the mountains[24]",
     "FALSE", "NONE",
     "About human isolation and social relationships (Kurdish proverb). Friends are people."),
    # 166
    ("Oil and water do not mix",
     "TRUE", "tautological_wisdom",
     "Two incompatible substances won't combine. Swappable: sand and mercury do not blend. A=oil, B=water. Physical property stated as wisdom."),
    # 167
    ("One hand washes the other",
     "FALSE", "NONE",
     "Hands represent people. About human reciprocity and cooperation."),
    # 168
    ("One kind word can warm three winter months",
     "FALSE", "NONE",
     "About abstract concept (kindness). Primary subject is human speech/emotion."),
    # 169
    ("One man's meat is another man's poison",
     "FALSE", "NONE",
     "Primary nouns include people (man). About human subjective preference."),
    # 170
    ("One might as well be hanged for a sheep as a lamb",
     "FALSE", "NONE",
     "About human punishment/justice. Person is implied primary subject. Sheep/lamb represent the crime's magnitude."),
    # 171
    ("One swallow does not make a summer",
     "TRUE", "tautological_wisdom",
     "Single instance doesn't establish a pattern. Swappable: one raindrop does not make a flood. A=swallow, B=summer. Concrete sign vs full phenomenon."),
    # 172
    ("One year's seeding makes seven years weeding",
     "TRUE", "causal_chain",
     "Small initial neglect creates prolonged cleanup. Swappable: one season's rust makes seven seasons' sanding. A=seeding, B=weeding. Concrete agricultural cause-effect."),
    # 173
    ("Out of the frying pan and into the fire",
     "TRUE", "uncategorized",
     "Escape from one danger into a worse one. Swappable: out of the puddle and into the lake. A=frying pan, B=fire. Concrete escalation of same type."),
    # 174
    ("Penny wise and pound foolish",
     "TRUE", "proportional_mismatch",
     "Careful with small amount, wasteful with large. Swappable: thimble-wise and barrel-foolish. A=penny (small), B=pound (large)."),
    # 175
    ("Penny, Penny. Makes many.",
     "FALSE", "NONE",
     "About abstract concept (accumulation of money). Only one concrete noun. Too vague."),
    # 176
    ("Putting the cart before the horse",
     "FALSE", "NONE",
     "Duplicate of #105. Already classified there as TRUE. Marking this duplicate as FALSE to avoid double-counting."),
    # Actually, I should classify it the same way. Let me mark it valid.
    # 177
    ("Red sky at night shepherd's delight; red sky in the morning, shepherd's warning",
     "FALSE", "NONE",
     "Primary noun includes person/role (shepherd). Weather prediction based on culturally specific observation. Breaks on swap."),
    # 178
    ("Risk it for a biscuit.[27]",
     "FALSE", "NONE",
     "Depends on wordplay/rhyme (risk/biscuit). About human behavior (risk-taking). Only one concrete noun."),
    # 179
    ("See a pin and pick it up, all the day you will have good luck; See a pin and let it lay, bad luck you will have all day",
     "FALSE", "NONE",
     "About superstition. Only one concrete noun (pin). About human behavior and luck."),
    # 180
    ("Set a thief to catch a thief",
     "FALSE", "NONE",
     "Primary noun is person/role (thief). Duplicate concept of #147. About human expertise."),
    # 181
    ("Softly, softly, catchee monkey",
     "FALSE", "NONE",
     "About human behavior (patience, strategy). Monkey represents a goal/person. Colonial-era idiom."),
    # 182
    ("Speak as you find",
     "FALSE", "NONE",
     "About human behavior (honesty). No concrete nouns."),
    # 183
    ("Speak of the devil and he shall/is sure/will appear",
     "FALSE", "NONE",
     "About abstract/supernatural concept. About human social coincidence."),
    # 184
    ("Strike while the iron is hot",
     "TRUE", "uncategorized",
     "Act on material while conditions allow. Swappable: pour while the wax is soft. A=iron, condition=hot. Concrete time-dependent action. Similar to #158."),
    # 185
    ("(A) swarm in May is worth a load of hay; a swarm in June is worth a silver spoon; but a swarm in July is not worth a fly",
     "FALSE", "NONE",
     "Depends on specific month-value associations and rhyme scheme. Culturally specific beekeeping knowledge. Breaks on swap."),
    # 186
    ("Take care of the pennies, and the pounds will take care of themselves",
     "TRUE", "causal_chain",
     "Attention to small units accumulates to large result. Swappable: mind the drops and the barrels fill themselves. A=pennies, B=pounds."),
    # 187
    ("The apple does not fall/never falls far from the tree",
     "FALSE", "NONE",
     "About human heredity/behavior (children resemble parents). Apple/tree represent parent-child. About people."),
    # 188
    ("The best-laid schemes of mice and men often go awry",
     "FALSE", "NONE",
     "Primary noun includes people (men). About human planning and failure. Literary reference (Burns)."),
    # 189
    ("The bread never falls but on its buttered side",
     "TRUE", "tautological_wisdom",
     "Things go wrong in the worst way. Swappable: the toast always lands jam-side down. A=bread, B=buttered side. Physical (Murphy's law with concrete nouns)."),
    # 190
    ("The cobbler always wears the worst shoes",
     "TRUE", "ironic_deficiency",
     "Producer of X lacks X. Swappable: the baker's family eats stale bread. A=cobbler, X=shoes. Classic ironic deficiency."),
    # 191
    ("The early bird catches the worm",
     "FALSE", "NONE",
     "Duplicate of #144. Already counted there."),
    # Actually I should classify duplicates consistently. Let me mark as valid.
    # 192
    ("It is the last straw that breaks the camel's back",
     "TRUE", "causal_chain",
     "Final small addition causes collapse. Swappable: the last grain tips the scale. A=last straw, B=camel's back."),
    # 193
    ("The left hand doesn't know what the right hand is doing",
     "FALSE", "NONE",
     "Hands represent people/departments. About human organizational dysfunction."),
    # 194
    ("The Moon is made of green cheese",
     "FALSE", "NONE",
     "Deliberate absurdity/irony. About human gullibility. Not a wisdom structure."),
    # 195
    ("The more the merrier",
     "FALSE", "NONE",
     "About abstract concept. No concrete nouns. About human social preference."),
    # 196
    ("The nail that sticks out gets hammered down",
     "TRUE", "uncategorized",
     "Protruding element gets corrected. Swappable: the post that leans gets straightened. A=nail, B=hammer. Concrete physical correction."),
    # Actually reconsidering - this is really about human conformity (Japanese proverb about social pressure)
    # 197
    ("The old wooden spoon beats me down",
     "FALSE", "NONE",
     "Primary subject is a person (me). About human experience/punishment."),
    # 198
    ("The shoemaker's son always goes barefoot",
     "TRUE", "ironic_deficiency",
     "Producer of X's family lacks X. Swappable: the brewer's household drinks water. A=shoemaker, X=shoes. Classic ironic deficiency."),
    # 199
    ("The squeaky wheel gets the grease",
     "FALSE", "NONE",
     "Duplicate of #145. Already counted there."),
    # Classify consistently
    # 200
    ("The squeaky wheel gets the oil",
     "FALSE", "NONE",
     "Duplicate variant of #145/#199. Wheel represents a complaining person. About human behavior."),
    # 201
    ("The streets are paved with gold",
     "FALSE", "NONE",
     "About abstract concept (opportunity, wealth). Metaphorical. Not about physical streets."),
    # 202
    ("The stupid monkey knows not to eat the banana skin",
     "FALSE", "NONE",
     "About human behavior (common sense). Monkey represents a person. 'Even a fool knows X.'"),
    # 203
    ("There are more ways of killing a cat than choking it with cream",
     "FALSE", "NONE",
     "About human problem-solving (multiple approaches). Cat represents the problem. Violent metaphor."),
    # 204
    ("There are always more fish in the sea",
     "FALSE", "NONE",
     "Fish represent people (romantic partners). About human relationships and moving on."),
    # 205
    ("There is many a good tune played on an old fiddle",
     "TRUE", "uncategorized",
     "Old instrument still produces quality output. Swappable: many a fine pot shaped on an old wheel. A=tune, B=old fiddle."),
    # 206
    ("Too many cooks spoil the broth",
     "TRUE", "proportional_mismatch",
     "Excess agents ruin the product. Swappable: too many hands tangle the rope. A=cooks (but these are agent-nouns...). Actually: A=cooks, B=broth."),
    # Reconsidering 206: 'cooks' are people/roles. This is about human coordination failure.
    # 207
    ("Too much rain makes a flood",
     "TRUE", "tautological_wisdom",
     "Excess of input creates overflow. Swappable: too much heat makes a fire. A=rain, B=flood. Physical cause-effect."),
    # 208
    ("Two birds with one stone",
     "FALSE", "NONE",
     "Shortened duplicate of #150. Already counted."),
    # 209
    ("Use it or lose it",
     "FALSE", "NONE",
     "About abstract concept. No concrete nouns. About human behavior."),
    # 210
    ("United we bargain; divided we beg",
     "FALSE", "NONE",
     "About human collective behavior (labor/politics). No concrete nouns."),
    # 211
    ("Walk softly but carry a big stick (26th U.S. President Theodore Roosevelt, 1900 in letter relating an old African proverb)[36]",
     "FALSE", "NONE",
     "About human behavior (diplomacy, power). Stick is metaphor for military/political power."),
    # 212
    ("Walnuts and pears you plant for your heirs",
     "FALSE", "NONE",
     "Primary noun includes people (heirs). About human generational planning. Depends on specific slow-growing trees."),
    # 213
    ("What is sauce for the goose is sauce for the gander",
     "FALSE", "NONE",
     "Goose/gander represent people (often gendered). About human fairness and equal treatment."),
    # 214
    ("What the eye does not see (the heart does not grieve over)",
     "FALSE", "NONE",
     "About human psychology. Eye/heart are body parts representing perception/emotion."),
    # 215
    ("When it rains it pours",
     "FALSE", "NONE",
     "Duplicate of #146. About abstract concept (misfortune clustering)."),
    # 216
    ("When the cat is away, the mice will play",
     "TRUE", "conditional_animal_wisdom",
     "Absence of authority enables misbehavior. Swappable: when the hawk is gone, the sparrows dance. A=cat (authority), B=mice (subordinates). Animal behavior lesson."),
    # Actually reconsidering - cat/mice represent people (boss/workers). This is about human behavior.
    # 217
    ("Who will bell the cat?",
     "FALSE", "NONE",
     "About human courage and collective action. Cat represents danger. People are the implied subject."),
    # 218
    ("Why keep a dog and bark yourself?",
     "FALSE", "NONE",
     "Duplicate concept of #103. About human delegation. Dog represents subordinate."),
    # 219
    ("You can lead a horse to water, but you cannot make it drink",
     "FALSE", "NONE",
     "Horse represents a person. About human stubbornness and free will."),
    # 220
    ("You cannot burn a candle at both ends.",
     "TRUE", "proportional_mismatch",
     "Resource consumed from both sides depletes fast. Swappable: you cannot drain a barrel from both taps. A=candle, B=both ends."),
    # 221
    ("You cannot make a silk purse from a sow's ear",
     "TRUE", "material_transformation",
     "Can't make quality output from poor input. Swappable: can't make a gold ring from a lead slug. A=silk purse, B=sow's ear."),
    # 222
    ("You cannot make bricks without straw",
     "TRUE", "material_transformation",
     "Can't produce output without essential input material. Swappable: can't bake bread without flour. A=bricks, B=straw."),
    # 223
    ("You cannot run with the hare and hunt with the hounds",
     "FALSE", "NONE",
     "Hare/hounds represent opposing human factions. About human loyalty and picking sides."),
    # 224
    ("(You cannot) teach an old dog new tricks",
     "FALSE", "NONE",
     "Dog represents a person. About human adaptability and age. Metaphorical."),
    # 225
    ("You cannot unscramble eggs",
     "TRUE", "tautological_wisdom",
     "Irreversible transformation can't be undone. Swappable: you cannot unbake bread. A=eggs, B=scrambling. States irreversibility as wisdom."),
    # 226
    ("You catch more flies with honey than with vinegar",
     "TRUE", "conditional_animal_wisdom",
     "Attractive bait works better than repulsive one. Swappable: you trap more mice with cheese than with pepper. A=flies, B=honey, C=vinegar."),
    # 227
    ("You pay your dime and you takes your chances",
     "FALSE", "NONE",
     "About human behavior (gambling, risk). Only one concrete noun (dime). About accepting consequences."),
    # 228
    ("You scratch my back and I will scratch yours",
     "FALSE", "NONE",
     "About human reciprocity. Primary subjects are people. Back-scratching is metaphor for favors."),
    # 229
    ("You've got to separate the wheat from the chaff",
     "TRUE", "material_transformation",
     "Must sort valuable from worthless material. Swappable: sift the gold from the sand. A=wheat, B=chaff."),
    # 230
    ("You've made your bed and you must lie in/on it",
     "FALSE", "NONE",
     "About human behavior (accepting consequences). Bed-making is metaphor for choices. About personal responsibility."),
]

# Now let me go back and fix some inconsistencies in my reasoning.
# I need to reconsider several entries where I noted reconsideration:

# Fix #81: rolling stone - this IS a valid physical process proverb
# It's about object behavior, swappable. But the template isn't quite conditional_animal_wisdom.
# It's uncategorized.

# Fix #95: "Buy cheap, buy twice" - no concrete nouns to swap, mark FALSE
# Fix #110: "Don't take any wooden nickels" - about human deception, mark FALSE
# Fix #130: "If it ain't broke, don't fix it" - too generic, mark FALSE
# Fix #132: "If the shoe fits, wear it" - actually metaphor for accepting criticism, mark FALSE
# Fix #135: "If you can't stand the heat, get out of the kitchen" - metaphor for pressure, mark FALSE
# Fix #176: duplicate of #105, classify same as valid
# Fix #191: duplicate of #144, classify same as valid
# Fix #196: "nail that sticks out" - Japanese proverb about conformity, mark FALSE
# Fix #199/200: duplicates of #145
# Fix #206: "Too many cooks" - cooks are people, mark FALSE
# Fix #216: cat/mice represent people, mark FALSE

# Apply fixes
fixes = {
    80: ("A miss is as good as a mile", "FALSE", "NONE", "Wordplay on miss/mile. About abstract concept (near-misses). Depends on pun."),
    # index 80 is already correct
}

# Let me rebuild with all fixes applied
# Index in list is 0-based, proverb number is 1-based

# Fix index 80 (proverb 81): rolling stone
classifications[80] = ("A rolling stone gathers no moss",
     "TRUE", "uncategorized",
     "Moving object doesn't accumulate surface growth. Swappable: a spinning wheel collects no dust. A=stone, B=moss.")

# Fix index 94 (proverb 95): buy cheap buy twice - no concrete nouns
classifications[94] = ("Buy cheap, buy twice",
     "FALSE", "NONE",
     "No concrete swappable nouns. About abstract purchasing behavior.")

# Fix index 109 (proverb 110): wooden nickels - about human deception
classifications[109] = ("Don't take any wooden nickels",
     "FALSE", "NONE",
     "About human gullibility/deception. The wooden nickels are metaphor for scams.")

# Fix index 129 (proverb 130): if it ain't broke
classifications[129] = ("If it ain't broke, don't fix it",
     "FALSE", "NONE",
     "No specific concrete nouns (uses generic 'it'). About abstract concept of leaving well enough alone.")

# Fix index 131 (proverb 132): if the shoe fits
classifications[131] = ("If the shoe fits, wear it",
     "FALSE", "NONE",
     "Shoe is metaphor for criticism/description. About accepting truth about oneself. Meaning breaks on noun swap.")

# Fix index 134 (proverb 135): heat/kitchen
classifications[134] = ("If you can't stand the heat, get out of the kitchen",
     "FALSE", "NONE",
     "Kitchen/heat are metaphors for workplace pressure. About human resilience. Meaning is social, not physical.")

# Fix index 175 (proverb 176): cart before horse duplicate - keep valid
classifications[175] = ("Putting the cart before the horse",
     "TRUE", "uncategorized",
     "Sequence/order matters for physical function. Swappable: putting the roof before the walls. A=cart, B=horse. Duplicate of #105.")

# Fix index 190 (proverb 191): early bird duplicate - keep valid
classifications[190] = ("The early bird catches the worm",
     "TRUE", "conditional_animal_wisdom",
     "First arrival gets the resource. Swappable: the early cat catches the mouse. A=early bird, B=worm. Duplicate of #144.")

# Fix index 195 (proverb 196): nail sticks out - about conformity
classifications[195] = ("The nail that sticks out gets hammered down",
     "FALSE", "NONE",
     "Nail represents a nonconformist person. About human social conformity pressure (Japanese cultural proverb).")

# Fix index 198 (proverb 199): squeaky wheel duplicate
classifications[198] = ("The squeaky wheel gets the grease",
     "TRUE", "uncategorized",
     "Malfunctioning part gets maintenance attention. Swappable: the leaky pipe gets the solder. A=squeaky wheel, B=grease. Duplicate of #145.")

# Fix index 199 (proverb 200): squeaky wheel oil duplicate
classifications[199] = ("The squeaky wheel gets the oil",
     "TRUE", "uncategorized",
     "Malfunctioning part gets maintenance. Variant of #145/#199. Swappable: the rusty hinge gets the lubricant. A=squeaky wheel, B=oil.")

# Fix index 205 (proverb 206): too many cooks - cooks are people
classifications[205] = ("Too many cooks spoil the broth",
     "FALSE", "NONE",
     "Primary nouns include people/roles (cooks). About human coordination failure and too many people involved.")

# Fix index 215 (proverb 216): cat and mice - represent people
classifications[215] = ("When the cat is away, the mice will play",
     "FALSE", "NONE",
     "Cat/mice represent authority figure and subordinates. About human behavior when unsupervised.")

# Fix index 207 (proverb 208): two birds one stone - duplicate
classifications[207] = ("Two birds with one stone",
     "TRUE", "proportional_mismatch",
     "One resource accomplishes multiple goals. Shortened duplicate of #150. Swappable: two fish with one net. A=two birds, B=one stone.")

# Now let me also reconsider a few more:
# #34 (hen tomorrow vs egg today) - this is actually valid, about concrete objects with production relationship
# #43 (plough/mouse) - valid
# #77 (bird in hand) - valid
# #145 (squeaky wheel) - valid, but let me make sure the template is right
# The squeaky wheel gets attention = the problematic part gets fixed. This is more "uncategorized" than proportional_mismatch
classifications[144] = ("It is the squeaky wheel that gets the grease",
     "TRUE", "uncategorized",
     "Malfunctioning part draws maintenance attention. Swappable: the leaky pipe gets the patch. A=squeaky wheel, B=grease.")

# #136 (mouse cookie) - reconsidering: this is from a children's book, but the structure is valid causal chain
# #137 (dogs/fleas) - valid conditional_animal_wisdom
# #138 (peanuts/monkeys) - reconsidering: this is really about human employers/employees
classifications[137] = ("If you pay peanuts, you get monkeys",
     "FALSE", "NONE",
     "Peanuts/monkeys represent wages/workers. About human employment and compensation. Metaphorical.")

# #226 (flies/honey/vinegar) - reconsidering: flies represent people, honey/vinegar represent approaches
classifications[225] = ("You catch more flies with honey than with vinegar",
     "FALSE", "NONE",
     "Flies represent people. Honey/vinegar represent kind vs harsh approaches. About human persuasion.")

# #136 (mouse/cookie) - reconsidering: mouse represents a person (demanding person)
classifications[135] = ("If you give a mouse a cookie, he'll always ask for a glass of milk",
     "FALSE", "NONE",
     "Mouse represents a person (from children's book). About human behavior (escalating demands). Anthropomorphized animal.")

# #144 (early bird) - reconsidering: bird represents a person (early riser gets opportunity)
# But the structure IS about animal behavior encoding a lesson, which is the definition of conditional_animal_wisdom
# I'll keep it valid.

# #191 same as #144
# Keep valid.

# Let me also reconsider #12 (arrogant bug/cocky roach)
# "An arrogant bug is a cocky roach" - is this really about object relationships?
# Bug and roach are the same thing. This is tautological/humorous.
# The structure "A is just a B with P" fits false_equivalence. Keep it.

# #173 (frying pan to fire) - let me verify this is about objects not people
# "Out of the frying pan into the fire" - physical objects, concrete escalation. Keep valid.

# #164 (gift horse) - horse is a concrete object here, the inspection is physical. Keep valid.
# But wait - this is really about human gratitude/ingratitude. The horse represents any gift.
# Hmm, but the structure IS about inspecting a physical gift animal. I'll keep it.
# Actually, "looking in the mouth" is a specific horse-inspection technique. This is too culturally specific.
classifications[163] = ("Never look a gift horse in the mouth",
     "FALSE", "NONE",
     "Meaning depends on specific horse-inspection practice (teeth = age). About human ingratitude. Culturally specific.")

# #148 (islands/reeds) - valid mutual dependency
# #166 (oil/water) - valid physical property
# #189 (bread/buttered side) - valid physical observation

# Let me reconsider #34 again - "hen tomorrow vs egg today"
# This IS about concrete objects with a production relationship (hen produces eggs).
# But it's really about human decision-making (delayed vs immediate gratification).
# The nouns ARE swappable though: "better a cow tomorrow than a pail of milk today"
# I'll keep it valid as proportional_mismatch.

# Reconsider #53 (best patch same cloth) - this is practical advice about materials. Keep valid.
# Reconsider #60 (well depth / pump handle) - practical observation. Keep valid.

# Reconsider #88 (any port in a storm) - this IS about human desperation/choices
# Port and storm are metaphors for refuge and crisis. Mark FALSE.
classifications[87] = ("Any port in a storm",
     "FALSE", "NONE",
     "Port/storm are metaphors for refuge/crisis. About human desperation and lowered standards.")

# Reconsider #100 (cross stream where shallowest) - practical physical advice
# But metaphorically about taking easiest approach. The literal meaning IS about streams though.
# Swappable: climb the fence where it's lowest. Keep valid.

# Reconsider #105 (cart before horse) - clear physical ordering. Keep valid.

# Reconsider #184 (strike while iron is hot) - literal blacksmithing advice
# But always used metaphorically about timing. The literal meaning IS about metalwork.
# Swappable: bend while the clay is wet. Keep valid.

# Reconsider #158 (make hay while sun shines) - literal agricultural advice
# But used metaphorically. Literal meaning IS about hay-making. Keep valid.

# Reconsider #220 (candle at both ends) - physical object. Keep valid.
# But this is really about human overwork/exhaustion. Candle represents energy/life.
classifications[219] = ("You cannot burn a candle at both ends.",
     "FALSE", "NONE",
     "Candle represents human energy/time. About overwork and exhaustion. Metaphorical.")

# Reconsider #192 (last straw, camel's back) - valid physical chain
# But camel is representing a person's patience... Still, the physical structure holds.
# Swappable: the last grain tips the scale. Keep valid.

# Reconsider #151 (last drop, cup overflow) - same pattern as #192. Keep valid.

# Reconsider #172 (seeding/weeding) - literal agricultural advice. Keep valid.

# Reconsider #186 (pennies/pounds) - abstract monetary concept
# But the structure is about physical accumulation of coins.
# Swappable: mind the drops and the buckets fill. Keep valid.

# Reconsider #229 (wheat from chaff) - literal agricultural processing
# But always used metaphorically. Literal meaning IS about grain processing.
# Swappable: separate the gold from the sand. Keep valid...
# But actually "wheat from chaff" is almost always about human judgment (good from bad ideas/people).
# The key test: could you swap nouns and get something equally folksy?
# "Separate the ore from the slag" - yes, works fine. Keep valid.

# Reconsider #205 (good tune on old fiddle) - about objects. Keep valid.
# But this is about old people still being capable. Fiddle represents a person.
classifications[204] = ("There is many a good tune played on an old fiddle",
     "FALSE", "NONE",
     "Fiddle represents an older person. About human capability despite age. Metaphorical.")

# Reconsider #174 (penny wise, pound foolish) - abstract monetary concept
# Penny and pound are concrete nouns with size relationship.
# Swappable: inch-wise and mile-foolish. Keep valid.

# Reconsider #140 (in for a penny, in for a pound) - similar to #174
# About human commitment. Penny/pound represent stakes.
# The meaning is about human behavior (commitment escalation).
classifications[139] = ("In for a penny, in for a pound",
     "FALSE", "NONE",
     "About human behavior (commitment escalation). Penny/pound represent stakes. Metaphorical.")

# Reconsider #125 (half a loaf) - about having something vs nothing
# Concrete nouns. Swappable: half a barrel is better than no water.
# But it's really about human contentment and settling. Keep valid since the physical structure holds.

# Reconsider #77 (bird in hand) - about certainty vs uncertainty
# But uses concrete animals. Swappable: a fish on the line vs ten in the lake.
# Meaning is about human risk assessment. But the structure IS physical.
# I'll keep it since the noun relationships are genuinely physical.

# Reconsider #107 (new wine old bottles) - Biblical. About incompatibility of new/old.
# Literal meaning: fermentation bursts old wineskins. Physical process.
# Swappable: don't put fresh dye in a worn vat. Keep valid.

# Reconsider #101 (coat/cloth) - practical tailoring advice. Keep valid.

# Let me finalize some borderline cases by being stricter:

# #34 hen/egg - The delayed-gratification concept is really about human patience. But the nouns ARE concrete
# and the hen-egg relationship is physical (hen produces eggs). Keep valid.

# #65 cracked plate - genuine physical observation. Keep valid.

# #8 small leak/ship - genuine physical chain. Keep valid.

# #24 early ripe/rotten - genuine physical process. Keep valid.

# #120 for want of a nail - classic causal chain with concrete nouns. Keep valid.

# #143 spilt milk - genuine irreversibility. Keep valid.

# #150 two birds one stone - genuine efficiency with objects. Keep valid.
# But this is really about human efficiency/multitasking. The birds/stone are metaphorical.
# Hmm, but the physical structure holds: one projectile hitting two targets.
# Keep valid.

# #157 little strokes/great oaks - genuine physical process. Keep valid.

# #166 oil and water - genuine physical property. Keep valid.

# #221 silk purse/sow's ear - material transformation. Keep valid.

# #222 bricks/straw - material requirement. Keep valid.

# #225 unscramble eggs - genuine irreversibility. Keep valid.

# Now verify count
print(f"Total proverbs: {len(classifications)}")
valid_count = sum(1 for _, v, _, _ in classifications if v == "TRUE")
false_count = sum(1 for _, v, _, _ in classifications if v == "FALSE")
print(f"Valid: {valid_count}, Invalid: {false_count}")

# Count by template
from collections import Counter
templates = Counter(t for _, v, t, _ in classifications if v == "TRUE")
print(f"Template distribution: {dict(templates)}")
none_templates = Counter(t for _, v, t, _ in classifications if v == "FALSE")
print(f"Invalid template: {dict(none_templates)}")

# Write CSV
output_path = "/home/john/Development/folksy-generator/data/classified_proverbs.csv"
with open(output_path, 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f, quoting=csv.QUOTE_ALL)
    writer.writerow(['proverb', 'valid', 'meta_template', 'notes'])
    for proverb, valid, template, notes in classifications:
        writer.writerow([proverb, valid, template, notes])

print(f"\nCSV written to {output_path}")
print(f"Total rows (excluding header): {len(classifications)}")
