{"version":"2.1.222","anchor":"codex-import-explains-shell-exec-marker-refusals","canonical_anchor":"codex-import-explains-shell-exec-marker-refusals","heading":"Codex import explains shell-exec marker refusals","tier":"notice","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.222\/e\/codex-import-explains-shell-exec-marker-refusals","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.222","markdown":"### Codex import explains shell-exec marker refusals\n\nCodex import now tells you exactly why a command was skipped and to port it manually.\n\n**What**\n\nThree new refusal strings spell out why a command was not imported when its body mixes shell execution markers with argument placeholders.\n\n**Details**\n\n- Covers dangling markers, placeholders combined with backticks or `!`, and shell blocks containing `!` next to argument placeholders.\n- Each reason tells the user to port the command manually rather than silently dropping it.\n\n**Evidence**\n\n`Contains a dangling shell-exec marker that argument substitution could complete into a live command at invocation time. Port it manually.`\n\n- Area: Elsewhere\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 0\/5"}