diff --git a/builder/tools.py b/builder/tools.py
index d67e47e..119a5d3 100644
--- a/builder/tools.py
+++ b/builder/tools.py
@@ -298,5 +298,5 @@ def _story_title_of(act: TagAction, level: int) -> str:
     assert isinstance(act, TagAction), "act Must be TagAction class!"
     assert isinstance(level, int), "level Must be int!"
 
-    return "{} {}\n".format("#" * level, act.note)
+    return "{}{} {}\n".format("\n" if level > 1 else "", "#" * level, act.note)
 

Need to fix: append head break line at scene head
シーン冒頭、前に一行開ける
===

**Description**
action出力にて、シーン冒頭のマークダウン、もう一行前も開けておく

diff --git a/tests/test_tools.py b/tests/test_tools.py
index a6530a4..90ca074 100644
--- a/tests/test_tools.py
+++ b/tests/test_tools.py
@@ -87,7 +87,7 @@ class PrivateMethodsTest(unittest.TestCase):
         data = [
                 (self.ma.comment("test"), GroupType.STORY, 1, "<!--test-->"),
                 (self.ma.title("test"), GroupType.STORY, 1, "# test\n"),
-                (self.ma.title("test"), GroupType.STORY, 2, "## test\n"),
+                (self.ma.title("test"), GroupType.STORY, 2, "\n## test\n"),
                 (self.ma.title("test"), GroupType.SCENE, 1, "**test**"),
                 (self.ma.hr(), GroupType.STORY, 1, "--------" * 9),
                 ]
@@ -325,7 +325,7 @@ class PrivateMethodsTest(unittest.TestCase):
         data = [
                 ("a test", 0, " a test\n"),
                 ("a test", 1, "# a test\n"),
-                ("a test", 2, "## a test\n"),
+                ("a test", 2, "\n## a test\n"),
                 ]
 
         for title, lv, expected in data:

pip install -e .
parse_log_pytest
pytest
coveralls pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.8.0
coveralls==4.0.1
docopt==0.6.2
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
idna==3.10
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pytest @ file:///croot/pytest_1738938843180/work
requests==2.32.3
-e git+https://github.com/nagisc007/storybuilder.git@0beb7a2554cb09dcdc523aa63dbb6ffb4f58a007#egg=StoryBuilder
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
urllib3==2.3.0

name: storybuilder
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - coveralls==4.0.1
      - docopt==0.6.2
      - idna==3.10
      - requests==2.32.3
      - urllib3==2.3.0
prefix: /opt/conda/envs/storybuilder

tests/test_tools.py::PrivateMethodsTest::test_action_of_by_tag tests/test_tools.py::PrivateMethodsTest::test_story_title_of
tests/test_tools.py::PrivateMethodsTest::test_action_of_by_type tests/test_tools.py::PrivateMethodsTest::test_action_with_obj_and_info_as_eng tests/test_tools.py::PrivateMethodsTest::test_action_with_obj_and_info_as_jpn tests/test_tools.py::PrivateMethodsTest::test_behavior_with_obj tests/test_tools.py::PrivateMethodsTest::test_comment_of tests/test_tools.py::PrivateMethodsTest::test_description_of_by_tag tests/test_tools.py::PrivateMethodsTest::test_description_of_by_type tests/test_tools.py::PrivateMethodsTest::test_flag_info_if tests/test_tools.py::PrivateMethodsTest::test_hr_of tests/test_tools.py::PrivateMethodsTest::test_list_head_inserted tests/test_tools.py::PrivateMethodsTest::test_output_story_to_console tests/test_tools.py::PrivateMethodsTest::test_output_story_to_file_as_action tests/test_tools.py::PrivateMethodsTest::test_output_story_to_file_as_description tests/test_tools.py::PrivateMethodsTest::test_output_with_linenumber tests/test_tools.py::PrivateMethodsTest::test_scene_title_of tests/test_tools.py::PrivateMethodsTest::test_story_converted_as_action tests/test_tools.py::PrivateMethodsTest::test_story_converted_as_action_in_group tests/test_tools.py::PrivateMethodsTest::test_story_converted_as_action_jpn tests/test_tools.py::PrivateMethodsTest::test_story_converted_as_description tests/test_tools.py::PrivateMethodsTest::test_story_converted_as_description_in_group tests/test_tools.py::PrivateMethodsTest::test_story_data_converted
builder/tools.py
builder/tools.py