From 6ad857ae206bf87f5e3d74296f49451a48a6151d Mon Sep 17 00:00:00 2001 From: Andrew Yim Date: Sat, 27 Jun 2026 08:00:26 +0900 Subject: [PATCH] =?UTF-8?q?docs(notion-writer):=20fix=20plan=20=E2=80=94?= =?UTF-8?q?=20circular=20import,=20columns=20loop,=20error=20hint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-flight review fixes: lazy import in md_translate to break the notion_writer<->md_translate cycle; clean columns state machine; markdown deletion hint in explain_api_error. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../plans/2026-06-27-notion-writer-cli-enhancements.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/plans/2026-06-27-notion-writer-cli-enhancements.md b/docs/superpowers/plans/2026-06-27-notion-writer-cli-enhancements.md index 56cbdb1..683c56b 100644 --- a/docs/superpowers/plans/2026-06-27-notion-writer-cli-enhancements.md +++ b/docs/superpowers/plans/2026-06-27-notion-writer-cli-enhancements.md @@ -674,7 +674,8 @@ from __future__ import annotations import re from typing import List -from notion_writer import extract_notion_id, format_id_with_dashes +# NOTE: `notion_writer` is imported lazily inside _translate_mentions to avoid +# a circular import (notion_writer imports this module at its top level). # Skill alert type -> (emoji, Notion enhanced-markdown background color) CALLOUT_MAP = { @@ -689,6 +690,8 @@ _MENTION_RE = re.compile(r'@\[([^\]]+)\]\(([^)\s]+)\)') def _translate_mentions(text: str) -> str: + from notion_writer import extract_notion_id, format_id_with_dashes # lazy: breaks import cycle + def repl(m: "re.Match") -> str: title, target = m.group(1), m.group(2) page_id = extract_notion_id(target)