{
  "revision": "2026-09-12",
  "scope": "Static checker regression fixtures. Not a Claude Code runtime test.",
  "cases": [
    {
      "name": "plain import",
      "agents": "- Run pnpm test.\n",
      "claude": "@AGENTS.md\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "relative import in prose",
      "agents": "- Run pnpm test.",
      "claude": "See @./AGENTS.md for project instructions.\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "fenced example is not an import",
      "agents": "- Keep original.",
      "claude": "## Example\n```markdown\n@AGENTS.md\n```\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "long fence stays open past shorter fence",
      "agents": "- Keep original.",
      "claude": "````markdown\n```\n@AGENTS.md\n````\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "unclosed tilde fence",
      "agents": "- Keep original.",
      "claude": "~~~markdown\n@AGENTS.md",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "inline and indented code",
      "agents": "- Keep original.",
      "claude": "Use `` ` @AGENTS.md ` `` as an example.\n\n    @AGENTS.md\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "multiline comment",
      "agents": "- Keep original.",
      "claude": "<!--\n@AGENTS.md\n-->\n- Keep concise updates.",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "case-sensitive names and path boundaries",
      "agents": "- Keep original.",
      "claude": "@agents.md\n@AGENTS.MD\n@AGENTS.md.bak\n@AGENTS.md/notes\n@../AGENTS.md\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "missing import target",
      "agents": "",
      "claude": "@AGENTS.md\n\n- Keep concise updates.",
      "source": "agents",
      "imports": true,
      "ready": false
    },
    {
      "name": "missing import target when Claude selected",
      "agents": " \n",
      "claude": "@AGENTS.md",
      "source": "claude",
      "imports": true,
      "ready": false
    },
    {
      "name": "path case, headings, duplicate scoped lines",
      "agents": "# API\n- Edit src/API.ts.\n",
      "claude": "## Backend\n- Edit src/api.ts.\n  - Run pnpm test.\n\n## Frontend\n- Edit src/api.ts.\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "CRLF and original whitespace",
      "agents": " \r\n# API\r\n- Run pnpm test.\r\n\r\n",
      "claude": "@AGENTS.md\r\n\r\n## Overlay\r\n- Keep casing.\r\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "standalone migration has no added newline",
      "agents": "",
      "claude": "# Standalone\n\n- Keep `src/API.ts`.",
      "source": "claude",
      "imports": false,
      "ready": true,
      "preserve": "move"
    },
    {
      "name": "empty workspace has no output",
      "agents": "",
      "claude": "",
      "source": "agents",
      "imports": false,
      "ready": false
    },
    {
      "name": "missing selected source has no output",
      "agents": "- Keep original.",
      "claude": "",
      "source": "claude",
      "imports": false,
      "ready": false
    },
    {
      "name": "report preserves backticks and tildes",
      "agents": "# Original\n~~~markdown\n## Fake report heading\n~~~~\n```js\nconst x = 1;\n```\n",
      "claude": "@AGENTS.md\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "comment marker inside code must not hide a later import",
      "agents": "- Keep original.",
      "claude": "```\n<!--\n```\n@AGENTS.md\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "fence with Windows line endings",
      "agents": "- Keep original.",
      "claude": "```markdown\r\n@AGENTS.md\r\n```\r\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "comment marker inside inline code",
      "agents": "- Keep original.",
      "claude": "Example `<!--` then @AGENTS.md\n",
      "source": "agents",
      "imports": true,
      "ready": true,
      "preserve": "both"
    },
    {
      "name": "quoted fence is not an import",
      "agents": "- Keep original.",
      "claude": "> ```markdown\n> @AGENTS.md\n> ```\n",
      "source": "agents",
      "imports": false,
      "ready": true,
      "preserve": "prepend"
    },
    {
      "name": "quote fence ends with its container",
      "agents": "",
      "claude": "> ```markdown\n> example\n\n@AGENTS.md",
      "source": "claude",
      "imports": true,
      "ready": false
    },
    {
      "name": "unresolved file import blocks source migration",
      "agents": "",
      "claude": "@../AGENTS.md\n- Keep original.",
      "source": "claude",
      "imports": false,
      "ready": false
    }
  ]
}
