topic: a hyphenated level is a repo name, not a topic

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
This commit is contained in:
2026-10-13 00:36:39 +09:00
parent 2401663b4b
commit bf70572b3f
+3 -2
View File
@@ -110,7 +110,7 @@ def check_decisions(ws: Workspace) -> None:
# ── topics ───────────────────────────────────────────────────────────────────
TOPIC = re.compile(r"(?<![\w/:.@-])yukart/([a-z_]+)((?:/[A-Za-z0-9_<>+#*.-]*)*)")
TOPIC = re.compile(r"(?<![\w/:.@-])yukart/([a-z][a-z0-9_-]*)((?:/[A-Za-z0-9_<>+#*.-]*)*)")
# Same shape, not a topic: Flutter platform channel names, systemd directory names.
NOT_TOPIC = re.compile(r"MethodChannel\(|EventChannel\(|Directory=")
@@ -145,7 +145,8 @@ def check_topics(ws: Workspace) -> None:
continue
for m in TOPIC.finditer(line):
root, rest = m.group(1), m.group(2).rstrip(".")
if root in ws.repos or root in IGNORED_TOPIC_ROOTS:
# Topic levels never contain '-'; repo names (yukart/svc-core) usually do.
if root in ws.repos or "-" in root or root in IGNORED_TOPIC_ROOTS:
continue
segs = ["yukart", root] + rest.split("/")[1:]
if rest == "":