Skip to content
frontmatter
キー値
specdojo.idprj-0001:pjr-a6pv-result-validation-reason-markdown-escape
specdojo.typeproject
specdojo.statusready
specdojo.rulebookspecdojo:pjr-rulebook
specdojo.part_ofprj-0001:pjr-index
specdojo.item_typeissue
specdojo.item_statusdone
specdojo.prioritymedium
specdojo.ownerDEV
specdojo.registered_at2026-10-18T18:07:57Z
specdojo.completed_at2026-10-19T22:28:11Z
specdojo.conclusionresult に描く自由記述の文に既存の escapeMarkdownInline を適用し、* や _ を含む語をコードの書式で囲むようにした。既にコードの書式の部分は変えない。統合後の JSEY が通った
specdojo.derived_fromPJR-8WBN

PJR-A6PV result に書く検査の理由の文で * などがエスケープされず、統合の前に止まる ​

1. 課題内容 ​

2026-10-19 03:07 の PJR-EVAX で、executor が validate:schema:file の not_applicable の理由に「No *.yaml or *.yml files were changed」と書き、runner がそれをそのまま result に描いたため、_.yaml or * が強調と読まれて markdownlint の MD037 に当たり、統合の前の記法の検査で止まった。8WBN・Z104 の後は executor が not_applicable の理由を書くことが増えたため起きやすい

2. 影響範囲 ​

観点影響
スコープsrc/exec/results.ts(result に描く自由記述の文の無害化)
スケジュール中。executor が検査の理由に記号を含む文を書くと、統合の前で止まる
コスト人が result を直して再開する手間
品質result の Markdown が規約に合わない
関係者exec run の利用者、夜間の自動実行

3. 対応方針 ​

項目内容
原因runner は、executor が書いた検査の理由(reason)や要約を、強調などの Markdown の記号を無害化せずに result に描く
対応策result に描く自由記述の文で、Markdown の強調などに読まれる記号を無害化する
依存事項なし
完了条件下記の完了条件を満たす

3.1. 完了条件 ​

  • result に描く検査の reason・summary などの自由記述の文で、アスタリスクやアンダースコアなど強調に読まれる記号を、文の意味を変えずに無害化する(エスケープする、glob のような語をコードの書式にする、など)。どの形にしたかと理由を result に書く。
  • 既にコードの書式で囲まれた部分は、二重に変えない。
  • 単体テストで、アスタリスクを含む理由(例: 拡張子の glob を 2 つ並べた文)から作った result が markdownlint を通ることを確かめる。
  • 作業を終える前に、npm run typecheck・npm run lint:ts・npm run test:unit を実行して通す。
  • 親の検証(lint-ts・lint-fm・lint-md・typecheck・test-unit・test-integration・validate-schema)が通る。
  • runner のコードを変えるため、統合の後に exec run --register を 1 回流して動作を確かめる(PJR-JSEY)。
  • CHANGELOG の ## [0.4.1] - 未定 の節に書く。公開済みの版の節は変えない。

4. 対応結果 ​

  • result の自由記述を 1 行へ正規化した後、既存の共通処理 escapeMarkdownInline を適用するようにした。_・* を含む ASCII トークンをコードスパンで囲むため、Prettier 後も Markdown の強調として解釈されず、文中の glob や識別子の意味を保てる。既存のコードスパンは同処理が保持するため二重に囲まない。
  • not_applicable の理由に生の *.yaml・*.yml と既存コードスパンの *.md を含めて result を描画する単体テストを追加し、glob がそれぞれコードスパンになり、既存コードスパンが変わらず、生成結果が markdownlint を通ることを確認対象にした。
  • src/exec/results.ts、tests/src/exec/results.test.ts、CHANGELOG の未公開版を更新した。変更ファイルの Prettier 整形と catalog 検証は成功した。型検査・lint・単体・統合テストは親 runner の検証に委ねる。統合後の exec run --register による実動確認は PJR-JSEY で行う。

5. 関連ドキュメント ​