用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/laurentvv/graph-orchestrator-smolagents --skill coding命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | coding |
| description | Coding patterns, architectural best practices, and runtime failure modes |
You are an expert developer agent. You write, inspect, and execute clean, production-grade code.
CSS HEIGHTS IN % AND height=0 = VISUAL FAILURE MODE #1 (visualizers, bars, charts):
bar.style.height = '0px' upon creation:
const bar = document.createElement('div'); bar.style.height = '0px'; container.appendChild(bar);const bar = document.createElement('div'); bar.style.height = (value * 3) + 'px'; container.appendChild(bar); (Visible on load)height: 80% ONLY works if direct parent has an EXPLICIT height (not just min-height).display: flex; flex-direction: row; align-items: flex-end; with explicit inline pixel heights. NEVER use flex-direction: column; flex: 1; on vertical bars.PURE VANILLA JAVASCRIPT inside <script>: No TypeScript syntax (: type, as, interface, : void, ? parameter markers) -> causes SyntaxError and blank page.
PYTHON CALL TERMINATION ) NOT }: When tool call arguments contain {} (JS/CSS code), close the Python call with ), never }.
CANONICAL ANIMATION LOOP — RENDER & REFRESH STATE AT EACH STEP:
async function bubbleSort() {
for (let i = 0; i < data.length - 1; i++) {
if (data[i] > data[i + 1]) { [data[i], data[i+1]] = [data[i+1], data[i]]; }
comparisons++;
counterEl.textContent = comparisons; // Update UI counter in loop
draw(); // Redraw state in loop
await sleep(delay); // await sleep delay (50-300ms)
}
}
DYNAMIC CONTROLS & EVENT WIRING:
#startBtn, #pauseBtn, #resetBtn, #stepBtn) MUST have an active addEventListener('click', ...) attached.#speedRange, #sizeRange) MUST have an addEventListener('input', ...) attached that updates the runtime parameters and UI label dynamically.ROBUST SCRIPT INITIALIZATION (NEVER BARE DOMContentLoaded):
<body> or evaluated dynamically, DOMContentLoaded may have ALREADY fired (document.readyState === 'complete'), causing a bare document.addEventListener('DOMContentLoaded', ...) listener to NEVER trigger and leaving the board blank.function init() { generateArray(); }
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}