import os topics_path = r'E:\Wiki\2nd\10_Wiki\Topics' def get_files_with_prefix(prefix): matches = [] for root, dirs, files in os.walk(topics_path): for f in files: if f.lower().startswith(prefix.lower()) and f.endswith('.md'): # Extract name without ext and handle paths relative to Topics rel_path = os.path.relpath(os.path.join(root, f), topics_path).replace('\\', '/') matches.append(rel_path[:-3]) return sorted(matches) # 1. Skybound Orphans skybound_files = get_files_with_prefix('2026-04-') skybound_files = [f for f in skybound_files if 'skybound' in f.lower()] # 2. Datacollector Orphans dc_files = get_files_with_prefix('2026-04-') dc_files = [f for f in dc_files if 'datacollector' in f.lower()] # 3. War Commander (Game Design) files wc_files = get_files_with_prefix('') # Look for files in Game Design wc_files = [f for f in wc_files if 'Game Design' in f] print(f"Skybound files found: {len(skybound_files)}") print(f"Datacollector files found: {len(dc_files)}") print(f"War Commander files found: {len(wc_files)}") # Generating Skybound Update with open(os.path.join(topics_path, 'Skybound', 'Skybound-Knowledge-Hub.md'), 'r', encoding='utf-8') as f: hub_content = f.read() if '## ๐Ÿท๏ธ Keyword Cluster: #Project_Logs' not in hub_content: log_section = "\n## ๐Ÿท๏ธ Keyword Cluster: #Project_Logs (์ตœ๊ทผ ๊ฐœ๋ฐœ ๋กœ๊ทธ)\n" for f in skybound_files: name = os.path.basename(f) log_section += f"- [[{f}|{name}]]\n" hub_content += log_section with open(os.path.join(topics_path, 'Skybound', 'Skybound-Knowledge-Hub.md'), 'w', encoding='utf-8') as f: f.write(hub_content) # Generating Datacollector Hub dc_hub = f"""# ๐Ÿ“ก Datacollector Project: Engineering Hub (MOC) ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํ—ˆ๋ธŒ์ž…๋‹ˆ๋‹ค. --- ## ๐Ÿท๏ธ Keyword Cluster: #Development_Logs (๊ฐœ๋ฐœ ๋ฐ ์ด์Šˆ ๊ธฐ๋ก) - {"".join([f"- [[{f}]]\n" for f in dc_files])} --- **Status**: Managed by Antigravity AI """ with open(os.path.join(topics_path, 'Datacollector', 'Datacollector-Knowledge-Hub.md'), 'w', encoding='utf-8') as f: f.write(dc_hub) # Generating War Commander Hub wc_hub = f"""# โš”๏ธ War Commander: Strategic Knowledge Hub (MOC) ์ „์žฅ ์ง€๋ฐฐ๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ์ „์ˆ  ๋ฐ ์ž์› ๊ด€๋ฆฌ ์ฒด๊ณ„์ž…๋‹ˆ๋‹ค. --- ## ๐Ÿท๏ธ Keyword Cluster: #Tactical_Units (์ „์ˆ  ๋ถ€๋Œ€ ๋ฐ ์šด์šฉ) - [[Game Design/Combined-Arms|Combined Arms (์ œ๋ณ‘ํ˜‘๋™)]] - [[Game Design/Mixed-Platoons|Mixed Platoons (ํ˜ผ์„ฑ ์†Œ๋Œ€)]] - [[Game Design/Rock-Paper-Scissors-Dynamic|Rock-Paper-Scissors Dynamic (์ƒ์„ฑ ์ฒด๊ณ„)]] ## ๐Ÿท๏ธ Keyword Cluster: #Base_Defense (๊ธฐ์ง€ ๋ฐฉ์–ด ๋ฐ ๊ฑด์ถ•) - [[Game Design/Defensive-Architecture|Defensive Architecture (๋ฐฉ์–ด ๊ฑด์ถ•ํ•™)]] - [[Game Design/Defense-Buildings|Defense Buildings (๋ฐฉ์–ด ๊ฑด๋ฌผ)]] - [[Game Design/Base-Layouts|Base Layouts (๊ธฐ์ง€ ๋ฐฐ์น˜)]] - [[Game Design/Anti-Air-and-Anti-Ground-Combat|Anti-Air & Anti-Ground Combat]] ## ๐Ÿท๏ธ Keyword Cluster: #Resources_Progression (์ž์› ๋ฐ ์„ฑ์žฅ) - [[Game Design/Iridium|Iridium (์ด๋ฆฌ๋“)]] - [[Game Design/Arc-2-Technology|Arc 2 Technology]] - [[Game Design/Evolution-of-the-War-Commander-Combat-Ecosystem|Combat Ecosystem Evolution]] --- **Last Update**: 2026-04-27 """ with open(os.path.join(topics_path, 'Game Design', 'War-Commander-Strategic-Hub.md'), 'w', encoding='utf-8') as f: f.write(wc_hub)