M1-no-launcher-precheck KILLED | launcher.test.mjs rc=1 ✖ row 64 a role skill that isn't enabled refuses skill-not-enabled, and one that isn't a plain direc
M2-not-enabled-mapped-refused KILLED | launcher.test.mjs rc=1 ✖ row 64 a role skill that isn't enabled refuses skill-not-enabled, and one that isn't a plain direc
M3-no-path-check KILLED | skills.test.mjs rc=1 ✖ a skill file that can't go into the prompt refuses: a bad name, non-UTF-8 bytes, or the end marker
M4-no-size-check KILLED | skills.test.mjs rc=1 ✖ a role's skills over SKILL_BYTES together refuse, naming the skill that crossed it (0.949446ms)
M5-no-end-marker-check KILLED | skills.test.mjs rc=1 ✖ a skill file that can't go into the prompt refuses: a bad name, non-UTF-8 bytes, or the end marker
M6-walk-follows-symlinks KILLED | skills.test.mjs rc=1 ✖ a skill directory that isn't plain refuses: a symlinked skill, SKILL.md or sub-file, or a non-file
M7-found-follows-symlinks KILLED | skills.test.mjs rc=1 ✖ a skill directory that isn't plain refuses: a symlinked skill, SKILL.md or sub-file, or a non-file
M8-no-newline-before-end KILLED | skills.test.mjs rc=1 ✖ each repo role's prompt carries exactly its listed skills, each file as the bundle copy and the so
M9-role-allows-dot KILLED | role.test.mjs rc=1 ✖ row 64 skills: optional, distinct skill directory names, none on version 1 (0.778394ms)
M10-resolve-drops-skills KILLED | resolve.test.mjs rc=0  ; skills.test.mjs rc=1 ✖ each repo role's prompt carries exactly its listed skills, each file as the bundle copy and the so
M11-claude-slash-on KILLED | skills.test.mjs rc=1 ✖ each adapter passes the skills only as --system-prompt text, with skill discovery off (14.743943ms
M12-claude-unrestricted KILLED | skills.test.mjs rc=1 ✖ each adapter passes the skills only as --system-prompt text, with skill discovery off (14.675833ms
M13-pi-skills-on KILLED | skills.test.mjs rc=1 ✖ each adapter passes the skills only as --system-prompt text, with skill discovery off (8.408382ms)
restored True
