How it works
Every ship has a progression: an ordered list of skills, each unlocking at a total number of Commander Skill Points. We only recommend milestones you can fully afford — the rest of your points stay saved for the next one.
Example: Brisbane B progression
- 1points →Last Stand1 pt
- 3points →Priority Target2 pts
- 6points →Superintendent3 pts
- 10points →Concealment Expert4 pts
- 13points →Adrenaline Rush3 pts
- 16points →Survivability Expert3 pts
- 20points →Top Grade Gunner4 pts
- 21points →Demolition Expert1 pt
Built-in sample checks
These run live in your browser every time this page loads, so you can see the engine behaves as documented.
- Brisbane B @ 7 points returns the 6-point milestonePASS
Result: Last Stand, Priority Target, Superintendent = 6/7
- Brisbane B @ 7 points advises saving 1 point until 10PASS
Result: save 1 until 10 (Concealment Expert)
- Brisbane B @ 10 points spends 10/10PASS
Result: 10/10
- Brisbane B @ 21 points spends 21/21PASS
Result: 21/21
- Brisbane B @ 21 points has no leftover recommendationPASS
Result: no next skill
- Brisbane B build uses the Cruiser skill treePASS
Result: Cruiser Commander Skills (verified)
- Brisbane B build emits no data warningsPASS
Result: 0 warnings
- Yamato @ 1 takes Emergency Repair SpecialistPASS
Result: Emergency Repair Specialist = 1/1
- Yamato @ 2 banks 1 point until Grease the Gears at 3PASS
Result: 1/2 used, bank 1, next Grease the Gears at 3
- Yamato @ 3 adds Grease the GearsPASS
Result: Emergency Repair Specialist, Grease the Gears = 3/3
- Yamato @ 7 banks 1 point until Concealment Expert at 10PASS
Result: 6/7 used, bank 1, next Concealment Expert at 10
- Yamato @ 10 spends 10/10PASS
Result: 10/10
- Yamato @ 14 spends 14/14PASS
Result: 14/14
- Yamato @ 17 spends 17/17PASS
Result: 17/17
- Yamato @ 21 spends 21/21PASS
Result: 21/21
- Yamato @ 21 has no next skillPASS
Result: no next skill
- Yamato final build is the approved 7-skill survivability pathPASS
Result: Emergency Repair Specialist, Grease the Gears, Adrenaline Rush, Concealment Expert, Fire Prevention Expert, Basics of Survivability, Emergency Repair Expert
- Yamato build is verified, not pendingPASS
Result: verified, 7 skills recommended
- Yamato is labelled with the verified Battleship skill treePASS
Result: Battleship Commander Skills (verified)
- Yamato build emits no data warningsPASS
Result: 0 warnings
- Yamato never references a Cruiser skill idPASS
Result: 0 cruiser skill references
- Yamato uses only Battleship-tree skillsPASS
Result: all battleship skills
- Battleship skill catalog holds all 24 verified skillsPASS
Result: 24 battleship skills
- Battleship tree has 6 skills at each point costPASS
Result: 1pt:6, 2pt:6, 3pt:6, 4pt:6
- Every battleship skill declares shipType BattleshipPASS
Result: all battleship
- Battleship skill ids are uniquePASS
Result: no duplicates
- Aircraft Carrier and Submarine trees are both verifiedPASS
Result: Aircraft Carrier:verified, Submarine:verified
- Shimakaze @ 1 takes Preventive MaintenancePASS
Result: Preventive Maintenance = 1/1
- Shimakaze @ 3 adds Last StandPASS
Result: Preventive Maintenance, Last Stand = 3/3
- Shimakaze @ 6 spends 6/6PASS
Result: 6/6
- Shimakaze @ 7 banks 1 point until Concealment Expert at 10PASS
Result: 6/7 used, bank 1, next Concealment Expert at 10
- Shimakaze @ 10 spends 10/10PASS
Result: 10/10
- Shimakaze @ 12 banks 2 points until Fill the Tubes at 13PASS
Result: 10/12 used, bank 2, next Fill the Tubes at 13
- Shimakaze @ 13 spends 13/13PASS
Result: 13/13
- Shimakaze @ 16 spends 16/16PASS
Result: 16/16
- Shimakaze @ 17 banks 1 point until Radio Location at 20PASS
Result: 16/17 used, bank 1, next Radio Location at 20
- Shimakaze @ 20 spends 20/20PASS
Result: 20/20
- Shimakaze @ 21 spends 21/21PASS
Result: 21/21
- Shimakaze @ 21 has no next skillPASS
Result: no next skill
- Shimakaze final build is the approved 8-skill torpedo pathPASS
Result: Preventive Maintenance, Last Stand, Survivability Expert, Concealment Expert, Fill the Tubes, Adrenaline Rush, Radio Location, Liquidator
- Shimakaze is labelled with the verified Destroyer skill treePASS
Result: Destroyer Commander Skills (verified)
- Shimakaze build emits no data warningsPASS
Result: 0 warnings
- Shimakaze never references a Cruiser or Battleship skill idPASS
Result: 0 foreign references
- Destroyer skill catalog holds all 24 verified skillsPASS
Result: 24 destroyer skills
- Destroyer tree has 6 skills at each point costPASS
Result: 1pt:6, 2pt:6, 3pt:6, 4pt:6
- Every destroyer skill declares shipType DestroyerPASS
Result: all destroyer
- Every destroyer skill id uses the dd- prefixPASS
Result: all dd- prefixed
- Destroyer skill ids are uniquePASS
Result: no duplicates
- Destroyer ids never collide with Cruiser or Battleship idsPASS
Result: no collisions
- Destroyer skill names are uniquePASS
Result: no duplicate names
- Every destroyer skill has a non-empty effect descriptionPASS
Result: all described
- Every destroyer skill cost is 1, 2, 3 or 4PASS
Result: all valid costs
- Liquidator is corrected to torpedo flooding chance, not fire/flood durationPASS
Result: flooding chance
- Fill the Tubes is reload-only (no tube traverse clause)PASS
Result: reload only
- Main Battery and AA Expert is range + flak, explicitly not reloadPASS
Result: range and flak
- Fearless Brawler no longer claims a dispersion penaltyPASS
Result: no dispersion penalty
- Swift in Silence states the +5% reload trade-offPASS
Result: trade-off stated
- Dazzle is a 15 second post-detection effectPASS
Result: 15 s window
- Demolition Expert fire chance corrected to +1%PASS
Result: +1%
- Extra-Heavy Ammunition is AP + depth charges with no velocity penaltyPASS
Result: ap and depth charges
- Gun Feeder shell-switch bonus corrected to -40%PASS
Result: -40%
- No destroyer skill text still claims a tube-traverse or shell-velocity mechanicPASS
Result: no stale mechanics
- All three verified destroyer builds reference only valid dd- skill idsPASS
Result: all resolve
- Shimakaze, Gearing and Daring each still spend exactly 21 pointsPASS
Result: 21, 21, 21
- Verified destroyer builds keep no-reset behaviour (milestones are a prefix chain)PASS
Result: no resets
- Cruiser tree is unchanged at 24 skillsPASS
Result: 24 cruiser skills
- Yorktown @ 1 takes Air SupremacyPASS
Result: Air Supremacy = 1/1
- Yorktown @ 2 adds Improved Engine BoostPASS
Result: Air Supremacy, Improved Engine Boost = 2/2
- Yorktown @ 4 spends 4/4PASS
Result: 4/4
- Yorktown @ 6 spends 6/6PASS
Result: 6/6
- Yorktown @ 7 banks 1 point until Sight Stabilization at 9PASS
Result: 6/7 used, bank 1, next Sight Stabilization at 9
- Yorktown @ 9 spends 9/9PASS
Result: 9/9
- Yorktown @ 12 spends 12/12PASS
Result: 12/12
- Yorktown @ 15 spends 15/15PASS
Result: 15/15
- Yorktown @ 19 spends 19/19PASS
Result: 19/19
- Yorktown @ 20 banks 1 point until Patrol Group Leader at 21PASS
Result: 19/20 used, bank 1, next Patrol Group Leader at 21
- Yorktown @ 21 spends 21/21PASS
Result: 21/21
- Yorktown @ 21 has no next skillPASS
Result: no next skill
- Yorktown final build is the approved 9-skill tactical pathPASS
Result: Air Supremacy, Improved Engine Boost, Improved Engines, Torpedo Bomber, Sight Stabilization, Aircraft Armor, Survivability Expert, Proximity Fuze, Patrol Group Leader
- Yorktown is labelled with the verified Aircraft Carrier skill treePASS
Result: Aircraft Carrier Commander Skills (verified)
- Yorktown build emits no data warningsPASS
Result: 0 warnings
- Yorktown never references a Cruiser, Battleship or Destroyer skill idPASS
Result: 0 foreign references
- Aircraft Carrier skill catalog holds all 24 verified skillsPASS
Result: 24 aircraft carrier skills
- Aircraft Carrier tree has 6 skills at each point costPASS
Result: 1pt:6, 2pt:6, 3pt:6, 4pt:6
- Every aircraft carrier skill declares shipType Aircraft CarrierPASS
Result: all aircraft carrier
- Every aircraft carrier skill id uses the cv- prefixPASS
Result: all cv- prefixed
- Aircraft carrier skill ids are uniquePASS
Result: no duplicates
- Aircraft carrier ids never collide with other class idsPASS
Result: no collisions
- Aircraft carrier tree uses current skill names, not legacy aliasesPASS
Result: Swift Flying Fish, Combat Maneuver Specialist, Defensive Fire Expert present; no legacy names
- Thrasher @ 1 takes LiquidatorPASS
Result: Liquidator = 1/1
- Thrasher @ 3 adds Last StandPASS
Result: Liquidator, Last Stand = 3/3
- Thrasher @ 5 spends 5/5PASS
Result: 5/5
- Thrasher @ 6 banks 1 point until Sonarman at 8PASS
Result: 5/6 used, bank 1, next Sonarman at 8
- Thrasher @ 8 spends 8/8PASS
Result: 8/8
- Thrasher @ 12 spends 12/12PASS
Result: 12/12
- Thrasher @ 16 spends 16/16PASS
Result: 16/16
- Thrasher @ 20 spends 20/20PASS
Result: 20/20
- Thrasher @ 21 spends 21/21PASS
Result: 21/21
- Thrasher @ 21 has no next skillPASS
Result: no next skill
- Thrasher final build is the approved 8-skill submarine pathPASS
Result: Liquidator, Last Stand, Preventive Maintenance, Sonarman, Torpedo Aiming Master, Adrenaline Rush, Improved Battery Efficiency, Helmsman
- Thrasher is labelled with the verified Submarine skill treePASS
Result: Submarine Commander Skills (verified)
- Thrasher build emits no data warningsPASS
Result: 0 warnings
- Thrasher never references a Cruiser, Battleship, Destroyer or Carrier skill idPASS
Result: 0 foreign references
- Submarine skill catalog holds exactly 20 verified skillsPASS
Result: 20 submarine skills
- Submarine tree has 5 skills at each point costPASS
Result: 1pt:5, 2pt:5, 3pt:5, 4pt:5
- Submarine tree declares 5 skills per row, unlike the 6-per-row classesPASS
Result: Submarine:5, Cruiser:6, Battleship:6, Destroyer:6, Aircraft Carrier:6
- Every submarine skill declares shipType SubmarinePASS
Result: all submarine
- Every submarine skill id uses the ss- prefixPASS
Result: all ss- prefixed
- Submarine skill ids are uniquePASS
Result: no duplicates
- Submarine ids never collide with other class idsPASS
Result: no collisions
- All five ship-class skill trees are verifiedPASS
Result: all verified
- No ship references a skill from another class's treePASS
Result: no leaks
- Every skill in a class tree declares that classPASS
Result: all match
- Fleet ids are uniquePASS
Result: no duplicates
- No duplicate ship name for the same tier + nationPASS
Result: no duplicates
- Fleet-only ships have no shipId linkPASS
Result: all links resolve
- Only the verified curated ships have build entriesPASS
Result: Acasta, Admiral Scheer, Affondatore, Agano, Agincourt, Akatsuki, Algérie, Almirante Oquendo, Almte. Cochrane, Almte. Grau, Amagi, Amalfi, Andalucía, Andrea Doria, Anhalt, Antioquia, Aoba, Arizona, Ark Royal, Asturias, Aviere, Bajie, Baleares, Baltimore, Bayern, Benson, Bismarck, Black, Blücher, Bremen, Brest, Bretagne, Bridgeport, Brindisi, Brisbane B, Budyonny, Buffalo, Burrows, C. Colombo, Cachalot, Cambridge, Canarias, Cassard, Castilla, Cataluña, Celebes, Cervantes, Cherbourg, Chios, Christopher, Chumphon, Chung Mu, Chungking, Colorado, Congress, Conte di Cavour, Coronel Bolognesi, Cossack, Danu, Daring, De Grasse, Defence, Delhi, Des Moines, Deutschland, Duca d'Aosta, Duca degli Abruzzi, Duchaffault, Dunkerque B, Eastern Dragon, Elli, Emerald, F. Caracciolo, F. der Grosse, Farragut, Fiume, Fletcher, Florida, Foca, Fubuki, Furious, Furutaka, Fushun, Fusō, G. Kurfürst, GQ Johnny, Gadjah Mada, Galicia, Gambia, Gearing, Gneisenau, Gnevny, Gorizia, Graf Zeppelin B, Harbin, Hatsuharu, Hayate, Hindenburg, Hipper, Hobart, Hsienyang, Huanghe, Hughes, Icarus, Incomparable, Independence, Iowa, Ipiranga, Ise, Iwami, Izmail, Izumo, Jaarsveld, Jervis, Jianwei, Jinan, Juruá, Jutland, K. Schönberg, Kagero, Kalmar, Kiev, Kijkduin, Kongō, Kotovsky, Kremlin, Kurama, Kushiro, König, Königsberg, L'Adroit, L'Aventurier, La Argentina, La Galissonnière, Laffey, Lanzhou, Laudon, Le Hardi, Leander, Leipzig, Lepanto, Libertad, Lightning, London, Los Andes, Lugdunum, Lüshun B, M. Colonna, Maestrale, Mahan, Maine, Marcílio Dias, Marlborough B, Marseille, Mecklenburg, Menno van Coehoorn, Mikoyan, Minekaze, Minsk, Molotov, Monaghan, Montana, Montcalm, Moskva, Muavenet, Mutsuki, N. Carolina, Nagato, Napoli, Narai, Neustrashimy, New Mexico, New Orleans, New York, Nicholas, Niord, Novorossiysk, Novosibirsk, Nürnberg, Nürnberg '44, Ohio, Omaha, Optio, Orage, Orion '44, Orkan, Osborne, P. E. Friedrich, Pensacola, Perth, Petropavlovsk, Pilus Posterior, Pilus Prior, Podvoisky, Pommern, Preussen, Pyotr Velikiy, Rahmat, Raimondo Montecuccoli, Renown, Repulse, Riga, Rochester, Rodney, Roon, Roussillon, S-1, Salem, San Diego, Scarlet Thunder, Scharnhorst, Schlieffen, Sejong, Shchors, Shimakaze, Shinonome B, Sinop, Siroco, Slava, Somme, Sov. Soyuz, Stord, Strasbourg, Sturdy, Tallinn, Tashkent, Tegetthoff, Teng She, Tennessee, Thrasher, Tiger, Trento, Tulsa, Uganda, Undine, Utrecht, V. Veneto, Venezia, Viribus Unitis, Vladivostok, W. Virginia '41, W. Virginia '44, Wahnsinn, Warspite, Weimar, Wichita, Wisconsin, Wukong, Yahagi, Yamato, Yorck, Yorktown, Yudachi, Yueyang, Yugumo, Yukon, Z-44, ZH-1, Zara, Zarya Svobody, Émile Bertin
- Audit catalogued count matches the fleet arrayPASS
Result: 282 catalogued
- Fleet holds exactly the verified 282 shipsPASS
Result: 282 ships
- Audit uses the verified port totalPASS
Result: verified 282
- Outstanding gap is 0 (complete snapshot)PASS
Result: 0 gap
- Snapshot is reported completePASS
Result: complete
- Unresolved gap = max(verified total - catalogued, 0)PASS
Result: 0 outstanding
- Unresolved gap is never negativePASS
Result: 0 unresolved when catalogued exceeds the estimate
- Tier II shows 0 owned in the verified fleet snapshotPASS
Result: 0 catalogued
- Audit tier buckets sum to the catalogued totalPASS
Result: 282
- Audit type buckets sum to the catalogued totalPASS
Result: 282
- Audit nation buckets sum to the catalogued totalPASS
Result: 282
- Explicit build/status ship links are exactly 261PASS
Result: 261 links: Acasta, Admiral Scheer, Affondatore, Agano, Agincourt, Akatsuki, Algérie, Almirante Oquendo, Almte. Cochrane, Almte. Grau, Amagi, Amalfi, Andalucía, Andrea Doria, Anhalt, Antioquia, Aoba, Arizona, Ark Royal, Asturias, Aviere, Bajie, Baleares, Baltimore, Bayern, Benson, Bismarck, Black, Blücher, Bremen, Brest, Bretagne, Bridgeport, Brindisi, Brisbane B, Budyonny, Buffalo, Burrows, C. Colombo, Cachalot, Cambridge, Canarias, Cassard, Castilla, Cataluña, Celebes, Cervantes, Cherbourg, Chios, Christopher, Chumphon, Chung Mu, Chungking, Colorado, Congress, Conte di Cavour, Coronel Bolognesi, Cossack, Danu, Daring, De Grasse, Defence, Delhi, Des Moines, Deutschland, Duca d'Aosta, Duca degli Abruzzi, Duchaffault, Dunkerque B, Eastern Dragon, Elli, Emerald, F. Caracciolo, F. der Grosse, Farragut, Fiume, Fletcher, Florida, Foca, Fubuki, Furious, Furutaka, Fushun, Fusō, G. Kurfürst, GQ Johnny, Gadjah Mada, Galicia, Gambia, Gearing, Gneisenau, Gnevny, Gorizia, Graf Zeppelin B, Harbin, Hatsuharu, Hayate, Hindenburg, Hipper, Hobart, Hsienyang, Huanghe, Hughes, Icarus, Incomparable, Independence, Iowa, Ipiranga, Ise, Iwami, Izmail, Izumo, Jaarsveld, Jervis, Jianwei, Jinan, Juruá, Jutland, K. Schönberg, Kagero, Kalmar, Kiev, Kijkduin, Kongō, Kotovsky, Kremlin, Kurama, Kushiro, König, Königsberg, L'Adroit, L'Aventurier, La Argentina, La Galissonnière, Laffey, Lanzhou, Laudon, Le Hardi, Leander, Leipzig, Lepanto, Libertad, Lightning, London, Los Andes, Lugdunum, Lüshun B, M. Colonna, Maestrale, Mahan, Maine, Marcílio Dias, Marlborough B, Marseille, Mecklenburg, Menno van Coehoorn, Mikoyan, Minekaze, Minsk, Molotov, Monaghan, Montana, Montcalm, Moskva, Muavenet, Mutsuki, N. Carolina, Nagato, Napoli, Narai, Neustrashimy, New Mexico, New Orleans, New York, Nicholas, Niord, Novorossiysk, Novosibirsk, Nürnberg, Nürnberg '44, Ohio, Omaha, Optio, Orage, Orion '44, Orkan, Osborne, P. E. Friedrich, Pensacola, Perth, Petropavlovsk, Pilus Posterior, Pilus Prior, Podvoisky, Pommern, Preussen, Pyotr Velikiy, Rahmat, Raimondo Montecuccoli, Renown, Repulse, Riga, Rochester, Rodney, Roon, Roussillon, S-1, Salem, San Diego, Scarlet Thunder, Scharnhorst, Schlieffen, Sejong, Shchors, Shimakaze, Shinonome B, Sinop, Siroco, Slava, Somme, Sov. Soyuz, Stord, Strasbourg, Sturdy, Tallinn, Tashkent, Tegetthoff, Teng She, Tennessee, Thrasher, Tiger, Trento, Tulsa, Uganda, Undine, Utrecht, V. Veneto, Venezia, Viribus Unitis, Vladivostok, W. Virginia '41, W. Virginia '44, Wahnsinn, Warspite, Weimar, Wichita, Wisconsin, Wukong, Yahagi, Yamato, Yorck, Yorktown, Yudachi, Yueyang, Yugumo, Yukon, Z-44, ZH-1, Zara, Zarya Svobody, Émile Bertin
- Audit reports no data-quality issuesPASS
Result: no issues
- Tier II is flagged as 0 owned in the verified snapshotPASS
Result: 0 owned in this verified fleet snapshot
- Every tier with transcribed records is marked transcribed, not missingPASS
Result: all transcribed
- Tier II is the only tier without a verified capturePASS
Result: ★ Supership excluded: Tier II
- Capture status covers every tier bucketPASS
Result: 11 tiers
- Unresolved gap stays derived from verified total - cataloguedPASS
Result: 0 unresolved
- Unresolved gap floors at zeroPASS
Result: 0 unresolved
- Search "Zarya S." resolvesPASS
Result: Zarya Svobody
- Search "S. Thunder" resolvesPASS
Result: Scarlet Thunder
- Search "M. Van Coehoorn" resolvesPASS
Result: Menno van Coehoorn
- Search "Lushun B" resolvesPASS
Result: Lüshun B
- Search "Libertad" resolvesPASS
Result: Libertad
- Search "Kushiro" resolvesPASS
Result: Kushiro
- Search "Christopher" resolvesPASS
Result: Christopher
- Search "Blücher" resolvesPASS
Result: Blücher
- Search "Orage" resolvesPASS
Result: Orage
- Search "Delhi" resolvesPASS
Result: Delhi
- Search "Jinan" resolvesPASS
Result: Jinan
- Every catalogued fleet ship is selectable in the generatorPASS
Result: 282 selectable
- Exactly 261 ships have a verified ship-specific buildPASS
Result: 261 verified
- Class-tree-only pending shipsPASS
Result: 21 pending
- Verified builds are exactly the curated shipsPASS
Result: Acasta, Admiral Scheer, Affondatore, Agano, Agincourt, Akatsuki, Algérie, Almirante Oquendo, Almte. Cochrane, Almte. Grau, Amagi, Amalfi, Andalucía, Andrea Doria, Anhalt, Antioquia, Aoba, Arizona, Ark Royal, Asturias, Aviere, Bajie, Baleares, Baltimore, Bayern, Benson, Bismarck, Black, Blücher, Bremen, Brest, Bretagne, Bridgeport, Brindisi, Brisbane B, Budyonny, Buffalo, Burrows, C. Colombo, Cachalot, Cambridge, Canarias, Cassard, Castilla, Cataluña, Celebes, Cervantes, Cherbourg, Chios, Christopher, Chumphon, Chung Mu, Chungking, Colorado, Congress, Conte di Cavour, Coronel Bolognesi, Cossack, Danu, Daring, De Grasse, Defence, Delhi, Des Moines, Deutschland, Duca d'Aosta, Duca degli Abruzzi, Duchaffault, Dunkerque B, Eastern Dragon, Elli, Emerald, F. Caracciolo, F. der Grosse, Farragut, Fiume, Fletcher, Florida, Foca, Fubuki, Furious, Furutaka, Fushun, Fusō, G. Kurfürst, GQ Johnny, Gadjah Mada, Galicia, Gambia, Gearing, Gneisenau, Gnevny, Gorizia, Graf Zeppelin B, Harbin, Hatsuharu, Hayate, Hindenburg, Hipper, Hobart, Hsienyang, Huanghe, Hughes, Icarus, Incomparable, Independence, Iowa, Ipiranga, Ise, Iwami, Izmail, Izumo, Jaarsveld, Jervis, Jianwei, Jinan, Juruá, Jutland, K. Schönberg, Kagero, Kalmar, Kiev, Kijkduin, Kongō, Kotovsky, Kremlin, Kurama, Kushiro, König, Königsberg, L'Adroit, L'Aventurier, La Argentina, La Galissonnière, Laffey, Lanzhou, Laudon, Le Hardi, Leander, Leipzig, Lepanto, Libertad, Lightning, London, Los Andes, Lugdunum, Lüshun B, M. Colonna, Maestrale, Mahan, Maine, Marcílio Dias, Marlborough B, Marseille, Mecklenburg, Menno van Coehoorn, Mikoyan, Minekaze, Minsk, Molotov, Monaghan, Montana, Montcalm, Moskva, Muavenet, Mutsuki, N. Carolina, Nagato, Napoli, Narai, Neustrashimy, New Mexico, New Orleans, New York, Nicholas, Niord, Novorossiysk, Novosibirsk, Nürnberg, Nürnberg '44, Ohio, Omaha, Optio, Orage, Orion '44, Orkan, Osborne, P. E. Friedrich, Pensacola, Perth, Petropavlovsk, Pilus Posterior, Pilus Prior, Podvoisky, Pommern, Preussen, Pyotr Velikiy, Rahmat, Raimondo Montecuccoli, Renown, Repulse, Riga, Rochester, Rodney, Roon, Roussillon, S-1, Salem, San Diego, Scarlet Thunder, Scharnhorst, Schlieffen, Sejong, Shchors, Shimakaze, Shinonome B, Sinop, Siroco, Slava, Somme, Sov. Soyuz, Stord, Strasbourg, Sturdy, Tallinn, Tashkent, Tegetthoff, Teng She, Tennessee, Thrasher, Tiger, Trento, Tulsa, Uganda, Undine, Utrecht, V. Veneto, Venezia, Viribus Unitis, Vladivostok, W. Virginia '41, W. Virginia '44, Wahnsinn, Warspite, Weimar, Wichita, Wisconsin, Wukong, Yahagi, Yamato, Yorck, Yorktown, Yudachi, Yueyang, Yugumo, Yukon, Z-44, ZH-1, Zara, Zarya Svobody, Émile Bertin
- No fleet record reports a data issuePASS
Result: 0 data issues
- Selectable states cover the whole fleetPASS
Result: 282
- Every selectable ship resolves to its own class skill treePASS
Result: 0 mismatches
- Every selectable ship resolves to a verified class treePASS
Result: 0 unverified trees
- Fleet-only ships carry no ship-specific progressionPASS
Result: 0 borrowed progressions
- Fleet-only ships report the pending state, never a generated buildPASS
Result: class-tree pending
- Class trees keep their class-specific row widthPASS
Result: Cruiser 24/6, Submarine 20/5
- Fallback ship page resolves for a fleet-only CruiserPASS
Result: Yūbari: Cruiser tree, class-tree
- Fallback ship page resolves for a fleet-only BattleshipPASS
Result: Yavuz: Battleship tree, class-tree
- Fallback ship page resolves for a fleet-only DestroyerPASS
Result: Shenyang: Destroyer tree, class-tree
- Fallback ship page resolves for a fleet-only Aircraft CarrierPASS
Result: Langley: Aircraft Carrier tree, class-tree
- Fallback ship page resolves for a fleet-only SubmarinePASS
Result: none in fleet
- Verified ship pages still resolve by their curated ship idPASS
Result: Brisbane B verified, Yamato verified, Shimakaze verified, Yorktown verified, Thrasher verified
- Generator search finds a fleet-only ship by aliasPASS
Result: 1 match
- Build availability filter returns only verified buildsPASS
Result: 261 ships
- Verification queue prioritises Tier X before Tier IXPASS
Result: 10 before 9
- Verification queue assigns no buildsPASS
Result: 0 builds assigned
- Verification queue groups by a single class eachPASS
Result: 0 mixed groups
- Des Moines milestone sequencePASS
Result: 1/3/6/10/13/16/19/21
- Des Moines @ 21 points spends 21/21PASS
Result: 21/21
- Des Moines @ 21 points has no leftover recommendationPASS
Result: no next skill
- Des Moines costs sum to exactly 21PASS
Result: 21
- Des Moines @ 8 points banks points for Concealment ExpertPASS
Result: save until 10 (Concealment Expert)
- Des Moines progression is strictly no-resetPASS
Result: prefix at every milestone
- Des Moines uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Des Moines rates the whole Cruiser treePASS
Result: 24 rated
- Montana milestone sequencePASS
Result: 1/3/6/10/14/17/20/21
- Montana @ 21 points spends 21/21PASS
Result: 21/21
- Montana @ 21 points has no leftover recommendationPASS
Result: no next skill
- Montana costs sum to exactly 21PASS
Result: 21
- Montana @ 12 points banks points for Fire Prevention ExpertPASS
Result: save until 14 (Fire Prevention Expert)
- Montana progression is strictly no-resetPASS
Result: prefix at every milestone
- Montana uses only Battleship tree skill idsPASS
Result: 0 foreign ids
- Montana rates the whole Battleship treePASS
Result: 24 rated
- Gearing milestone sequencePASS
Result: 1/3/6/10/13/16/19/21
- Gearing @ 21 points spends 21/21PASS
Result: 21/21
- Gearing @ 21 points has no leftover recommendationPASS
Result: no next skill
- Gearing costs sum to exactly 21PASS
Result: 21
- Gearing @ 8 points banks points for Concealment ExpertPASS
Result: save until 10 (Concealment Expert)
- Gearing progression is strictly no-resetPASS
Result: prefix at every milestone
- Gearing uses only Destroyer tree skill idsPASS
Result: 0 foreign ids
- Gearing rates the whole Destroyer treePASS
Result: 24 rated
- Hindenburg milestone sequencePASS
Result: 1/3/7/10/13/16/20/21
- Hindenburg @ 21 points spends 21/21PASS
Result: 21/21
- Hindenburg @ 21 points has no leftover recommendationPASS
Result: no next skill
- Hindenburg costs sum to exactly 21PASS
Result: 21
- Hindenburg @ 5 points banks points for Concealment ExpertPASS
Result: save until 7 (Concealment Expert)
- Hindenburg progression is strictly no-resetPASS
Result: prefix at every milestone
- Hindenburg uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Hindenburg rates the whole Cruiser treePASS
Result: 24 rated
- Kremlin milestone sequencePASS
Result: 1/3/6/10/13/17/20/21
- Kremlin @ 21 points spends 21/21PASS
Result: 21/21
- Kremlin @ 21 points has no leftover recommendationPASS
Result: no next skill
- Kremlin costs sum to exactly 21PASS
Result: 21
- Kremlin @ 15 points banks points for Concealment ExpertPASS
Result: save until 17 (Concealment Expert)
- Kremlin progression is strictly no-resetPASS
Result: prefix at every milestone
- Kremlin uses only Battleship tree skill idsPASS
Result: 0 foreign ids
- Kremlin rates the whole Battleship treePASS
Result: 24 rated
- Venezia milestone sequencePASS
Result: 1/3/6/10/13/16/20/21
- Venezia @ 21 points spends 21/21PASS
Result: 21/21
- Venezia @ 21 points has no leftover recommendationPASS
Result: no next skill
- Venezia costs sum to exactly 21PASS
Result: 21
- Venezia @ 8 points banks points for Concealment ExpertPASS
Result: save until 10 (Concealment Expert)
- Venezia progression is strictly no-resetPASS
Result: prefix at every milestone
- Venezia uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Venezia rates the whole Cruiser treePASS
Result: 24 rated
- Daring milestone sequencePASS
Result: 1/3/5/8/12/15/19/21
- Daring @ 21 points spends 21/21PASS
Result: 21/21
- Daring @ 21 points has no leftover recommendationPASS
Result: no next skill
- Daring costs sum to exactly 21PASS
Result: 21
- Daring @ 10 points banks points for Concealment ExpertPASS
Result: save until 12 (Concealment Expert)
- Daring progression is strictly no-resetPASS
Result: prefix at every milestone
- Daring uses only Destroyer tree skill idsPASS
Result: 0 foreign ids
- Daring rates the whole Destroyer treePASS
Result: 24 rated
- Schlieffen milestone sequencePASS
Result: 1/3/6/10/14/17/21
- Schlieffen @ 21 points spends 21/21PASS
Result: 21/21
- Schlieffen @ 21 points has no leftover recommendationPASS
Result: no next skill
- Schlieffen costs sum to exactly 21PASS
Result: 21
- Schlieffen @ 8 points banks points for Manual Secondary Battery AimingPASS
Result: save until 10 (Manual Secondary Battery Aiming)
- Schlieffen progression is strictly no-resetPASS
Result: prefix at every milestone
- Schlieffen uses only Battleship tree skill idsPASS
Result: 0 foreign ids
- Schlieffen rates the whole Battleship treePASS
Result: 24 rated
- Petropavlovsk milestone sequencePASS
Result: 1/3/6/9/12/16/19/21
- Petropavlovsk @ 21 points spends 21/21PASS
Result: 21/21
- Petropavlovsk @ 21 points has no leftover recommendationPASS
Result: no next skill
- Petropavlovsk costs sum to exactly 21PASS
Result: 21
- Petropavlovsk @ 14 points banks points for Concealment ExpertPASS
Result: save until 16 (Concealment Expert)
- Petropavlovsk progression is strictly no-resetPASS
Result: prefix at every milestone
- Petropavlovsk uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Petropavlovsk rates the whole Cruiser treePASS
Result: 24 rated
- Graf Zeppelin B milestone sequencePASS
Result: 1/3/6/9/12/16/20/21
- Graf Zeppelin B @ 21 points spends 21/21PASS
Result: 21/21
- Graf Zeppelin B @ 21 points has no leftover recommendationPASS
Result: no next skill
- Graf Zeppelin B costs sum to exactly 21PASS
Result: 21
- Graf Zeppelin B @ 14 points banks points for Enhanced Aircraft ArmorPASS
Result: save until 16 (Enhanced Aircraft Armor)
- Graf Zeppelin B progression is strictly no-resetPASS
Result: prefix at every milestone
- Graf Zeppelin B uses only Aircraft Carrier tree skill idsPASS
Result: 0 foreign ids
- Graf Zeppelin B rates the whole Aircraft Carrier treePASS
Result: 24 rated
- Sturdy milestone sequencePASS
Result: 1/3/7/11/14/17/19/20/21
- Sturdy @ 21 points spends 21/21PASS
Result: 21/21
- Sturdy @ 21 points has no leftover recommendationPASS
Result: no next skill
- Sturdy costs sum to exactly 21PASS
Result: 21
- Sturdy @ 5 points banks points for Improved Battery EfficiencyPASS
Result: save until 7 (Improved Battery Efficiency)
- Sturdy progression is strictly no-resetPASS
Result: prefix at every milestone
- Sturdy uses only Submarine tree skill idsPASS
Result: 0 foreign ids
- Sturdy rates the whole Submarine treePASS
Result: 20 rated
- Roussillon milestone sequencePASS
Result: 1/3/6/9/12/16/20/21
- Roussillon @ 21 points spends 21/21PASS
Result: 21/21
- Roussillon @ 21 points has no leftover recommendationPASS
Result: no next skill
- Roussillon costs sum to exactly 21PASS
Result: 21
- Roussillon @ 14 points banks points for Fire Prevention ExpertPASS
Result: save until 16 (Fire Prevention Expert)
- Roussillon progression is strictly no-resetPASS
Result: prefix at every milestone
- Roussillon uses only Battleship tree skill idsPASS
Result: 0 foreign ids
- Roussillon rates the whole Battleship treePASS
Result: 24 rated
- Affondatore milestone sequencePASS
Result: 1/3/6/10/13/16/20/21
- Affondatore @ 21 points spends 21/21PASS
Result: 21/21
- Affondatore @ 21 points has no leftover recommendationPASS
Result: no next skill
- Affondatore costs sum to exactly 21PASS
Result: 21
- Affondatore @ 8 points banks points for Fire Prevention ExpertPASS
Result: save until 10 (Fire Prevention Expert)
- Affondatore progression is strictly no-resetPASS
Result: prefix at every milestone
- Affondatore uses only Battleship tree skill idsPASS
Result: 0 foreign ids
- Affondatore rates the whole Battleship treePASS
Result: 24 rated
- Novosibirsk milestone sequencePASS
Result: 1/3/6/9/12/15/19/21
- Novosibirsk @ 21 points spends 21/21PASS
Result: 21/21
- Novosibirsk @ 21 points has no leftover recommendationPASS
Result: no next skill
- Novosibirsk costs sum to exactly 21PASS
Result: 21
- Novosibirsk @ 17 points banks points for Top Grade GunnerPASS
Result: save until 19 (Top Grade Gunner)
- Novosibirsk progression is strictly no-resetPASS
Result: prefix at every milestone
- Novosibirsk uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Novosibirsk rates the whole Cruiser treePASS
Result: 24 rated
- Castilla milestone sequencePASS
Result: 1/3/6/10/13/15/18/21
- Castilla @ 21 points spends 21/21PASS
Result: 21/21
- Castilla @ 21 points has no leftover recommendationPASS
Result: no next skill
- Castilla costs sum to exactly 21PASS
Result: 21
- Castilla @ 8 points banks points for Top Grade GunnerPASS
Result: save until 10 (Top Grade Gunner)
- Castilla progression is strictly no-resetPASS
Result: prefix at every milestone
- Castilla uses only Cruiser tree skill idsPASS
Result: 0 foreign ids
- Castilla rates the whole Cruiser treePASS
Result: 24 rated
- Lüshun B milestone sequencePASS
Result: 1/3/6/9/13/15/18/21
- Lüshun B @ 21 points spends 21/21PASS
Result: 21/21
- Lüshun B @ 21 points has no leftover recommendationPASS
Result: no next skill
- Lüshun B costs sum to exactly 21PASS
Result: 21
- Lüshun B @ 11 points banks points for Concealment ExpertPASS
Result: save until 13 (Concealment Expert)
- Lüshun B progression is strictly no-resetPASS
Result: prefix at every milestone
- Lüshun B uses only Destroyer tree skill idsPASS
Result: 0 foreign ids
- Lüshun B rates the whole Destroyer treePASS
Result: 24 rated
- Yueyang milestone sequencePASS
Result: 1/3/6/9/13/16/18/21
- Yueyang @ 21 points spends 21/21PASS
Result: 21/21
- Yueyang @ 21 points has no leftover recommendationPASS
Result: no next skill
- Yueyang costs sum to exactly 21PASS
Result: 21
- Yueyang @ 11 points banks points for Concealment ExpertPASS
Result: save until 13 (Concealment Expert)
- Yueyang progression is strictly no-resetPASS
Result: prefix at every milestone
- Yueyang uses only Destroyer tree skill idsPASS
Result: 0 foreign ids
- Yueyang rates the whole Destroyer treePASS
Result: 24 rated
- Cassard milestone sequencePASS
Result: 1/3/6/10/12/15/18/21
- Cassard @ 21 points spends 21/21PASS
Result: 21/21
- Cassard @ 21 points has no leftover recommendationPASS
Result: no next skill
- Cassard costs sum to exactly 21PASS
Result: 21
- Cassard @ 8 points banks points for Concealment ExpertPASS
Result: save until 10 (Concealment Expert)
- Cassard progression is strictly no-resetPASS
Result: prefix at every milestone
- Cassard uses only Destroyer tree skill idsPASS
Result: 0 foreign ids
- Cassard rates the whole Destroyer treePASS
Result: 24 rated
- Verification queue excludes every verified shipPASS
Result: 0 present
- Fleet records and ship ids are uniquePASS
Result: 0 duplicates
- Cruiser and Battleship trees are 24 skills eachPASS
Result: 24/24
- The eleven previously verified builds still spend 21/21PASS
Result: 21/21, 21/21, 21/21, 21/21, 21/21, 21/21, 21/21, 21/21, 21/21, 21/21, 21/21
- Dashboard total fleet matches the fleet catalogPASS
Result: 282
- Dashboard verified totalPASS
Result: 261
- Dashboard pending totalPASS
Result: 21
- Dashboard data issuesPASS
Result: 0
- Sum of class totals equals the fleetPASS
Result: 282
- Sum of tier totals equals the fleetPASS
Result: 282
- Sum of nation totals equals the fleetPASS
Result: 282
- Sum of verified by class equals verified totalPASS
Result: 261
- Sum of pending by class equals pending totalPASS
Result: 21
- Every breakdown row sums verified + pending + issues to its totalPASS
Result: 0 mismatches
- Overall coverage percentage is computed from the dataPASS
Result: 92.6
- Nation rows are sorted weakest coverage firstPASS
Result: sorted
- Priority queue returns at least ten candidatesPASS
Result: 10
- Priority queue never contains a verified shipPASS
Result: 0 verified
- Priority queue has no duplicatesPASS
Result: 10 unique
- Every queue candidate resolves to a real fleet entryPASS
Result: 0 unresolved
- Every queue candidate states why it is prioritisedPASS
Result: 0 missing reasons
- Queue is ordered by descending priority scorePASS
Result: descending
- Batch 5 ships are removed from the priority queuePASS
Result: 0 of Affondatore/Novosibirsk/Castilla queued
- Affondatore has exactly one fleet recordPASS
Result: 1 record
- Affondatore fleet record is corrected to Italy / Battleship / tier 11PASS
Result: Italy/Battleship/11/owned
- Affondatore build uses the Battleship treePASS
Result: Battleship
- No destroyer named Affondatore remains in the fleetPASS
Result: 0
- Affondatore build uses only battleship skill idsPASS
Result: 0 foreign ids
- Novosibirsk and Castilla use only cruiser skill idsPASS
Result: 0 foreign ids
- Class totals reflect Affondatore moving from Destroyer to BattleshipPASS
Result: BB 82 / DD 66
- Lüshun B has exactly one fleet recordPASS
Result: 1 record
- Lüshun B fleet record is upgraded in place to the verified buildPASS
Result: lushun-b/verified/owned
- Lüshun B build is a Destroyer buildPASS
Result: Destroyer/verified
- Lüshun B uses only destroyer skill idsPASS
Result: 0 foreign ids
- Lüshun B every skill id resolves in the destroyer treePASS
Result: 0 unresolved
- Lüshun B rates all 24 destroyer skills exactly oncePASS
Result: 24 unique
- Lüshun B progression totals exactly 21 pointsPASS
Result: 21
- Yueyang has exactly one fleet recordPASS
Result: 1 record
- Yueyang fleet record is upgraded in place to the verified buildPASS
Result: yueyang/verified/owned
- Yueyang build is a Destroyer buildPASS
Result: Destroyer/verified
- Yueyang uses only destroyer skill idsPASS
Result: 0 foreign ids
- Yueyang every skill id resolves in the destroyer treePASS
Result: 0 unresolved
- Yueyang rates all 24 destroyer skills exactly oncePASS
Result: 24 unique
- Yueyang progression totals exactly 21 pointsPASS
Result: 21
- Cassard has exactly one fleet recordPASS
Result: 1 record
- Cassard fleet record is upgraded in place to the verified buildPASS
Result: cassard/verified/owned
- Cassard build is a Destroyer buildPASS
Result: Destroyer/verified
- Cassard uses only destroyer skill idsPASS
Result: 0 foreign ids
- Cassard every skill id resolves in the destroyer treePASS
Result: 0 unresolved
- Cassard rates all 24 destroyer skills exactly oncePASS
Result: 24 unique
- Cassard progression totals exactly 21 pointsPASS
Result: 21
- Batch 6 builds do not duplicate Shimakaze/Gearing/Daring progressionsPASS
Result: 3 distinct
- Batch 6 ships are removed from the priority queuePASS
Result: 0 of Lüshun B/Yueyang/Cassard queued
- Coverage totals after the Tier V-VII batchPASS
Result: 282 total / 261 verified / 21 pending / 0 issues
- aoba has verified ship-specific upgradesPASS
Result: Ship-specific Verified
- orion-44 has verified ship-specific upgradesPASS
Result: Ship-specific Verified
- kurama has verified ship-specific upgradesPASS
Result: Ship-specific Verified
- marlborough-b stays on the class-based upgrade labelPASS
Result: Class-based recommendation
- Unknown ships use class-based upgrade recommendationsPASS
Result: Class-based recommendation / 5 slots
- Upgrade slot availability follows tier gatesPASS
Result: 1,2,3,4,5,6
- Every recommended upgrade is class- and slot-compatiblePASS
Result: 0 incompatible
- Thrasher shows six submarine-legal upgrade slotsPASS
Result: Class-based recommendation / Sonar Modification 1, Sonar Modification 2, Dive Capacity Modification 1, Submarine Steering Gears, Reinforced Bulkheads, Dive Capacity Modification 2
- Carrier recommendations use aircraft-only upgradesPASS
Result: 0 surface-only upgrades